aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--BUILD879
-rw-r--r--LICENSE2
-rw-r--r--Makefile1185
-rw-r--r--PYTHON-MANIFEST.in2
-rw-r--r--binding.gyp122
-rw-r--r--build.yaml368
-rw-r--r--config.m4138
-rw-r--r--examples/cpp/helloworld/Makefile2
-rw-r--r--examples/cpp/helloworld/greeter_async_server.cc2
-rw-r--r--examples/cpp/route_guide/Makefile2
-rw-r--r--examples/csharp/helloworld/GreeterClient/Program.cs2
-rw-r--r--examples/csharp/route_guide/RouteGuideClient/Program.cs2
-rw-r--r--examples/node/greeter_client.js2
-rw-r--r--examples/node/greeter_server.js2
-rw-r--r--examples/node/route_guide/route_guide_client.js2
-rw-r--r--examples/node/route_guide/route_guide_server.js2
-rw-r--r--examples/objective-c/auth_sample/MakeRPCViewController.m2
-rw-r--r--examples/objective-c/helloworld/main.m2
-rw-r--r--examples/php/greeter_client.php2
-rw-r--r--examples/php/route_guide/route_guide_client.php2
-rw-r--r--examples/protos/helloworld.proto2
-rw-r--r--examples/protos/route_guide.proto2
-rw-r--r--examples/python/helloworld/greeter_client.py2
-rw-r--r--examples/python/route_guide/route_guide_client.py2
-rw-r--r--examples/python/route_guide/route_guide_server.py2
-rwxr-xr-xexamples/ruby/greeter_client.rb2
-rwxr-xr-xexamples/ruby/route_guide/route_guide_client.rb2
-rw-r--r--gRPC.podspec326
-rwxr-xr-xgrpc.gemspec240
-rw-r--r--include/grpc++/alarm.h2
-rw-r--r--include/grpc++/channel.h2
-rw-r--r--include/grpc++/client_context.h2
-rw-r--r--include/grpc++/completion_queue.h2
-rw-r--r--include/grpc++/create_channel.h2
-rw-r--r--include/grpc++/generic/async_generic_service.h2
-rw-r--r--include/grpc++/generic/generic_stub.h2
-rw-r--r--include/grpc++/impl/call.h2
-rw-r--r--include/grpc++/impl/client_unary_call.h2
-rw-r--r--include/grpc++/impl/codegen/async_stream.h2
-rw-r--r--include/grpc++/impl/codegen/async_unary_call.h2
-rw-r--r--include/grpc++/impl/codegen/call.h2
-rw-r--r--include/grpc++/impl/codegen/call_hook.h2
-rw-r--r--include/grpc++/impl/codegen/client_context.h2
-rw-r--r--include/grpc++/impl/codegen/client_unary_call.h2
-rw-r--r--include/grpc++/impl/codegen/completion_queue.h2
-rw-r--r--include/grpc++/impl/codegen/completion_queue_tag.h2
-rw-r--r--include/grpc++/impl/codegen/config_protobuf.h2
-rw-r--r--include/grpc++/impl/codegen/core_codegen_interface.h2
-rw-r--r--include/grpc++/impl/codegen/impl/async_stream.h2
-rw-r--r--include/grpc++/impl/codegen/impl/sync.h2
-rw-r--r--include/grpc++/impl/codegen/method_handler_impl.h2
-rw-r--r--include/grpc++/impl/codegen/proto_utils.h2
-rw-r--r--include/grpc++/impl/codegen/rpc_method.h2
-rw-r--r--include/grpc++/impl/codegen/security/auth_context.h2
-rw-r--r--include/grpc++/impl/codegen/serialization_traits.h2
-rw-r--r--include/grpc++/impl/codegen/server_context.h2
-rw-r--r--include/grpc++/impl/codegen/server_interface.h2
-rw-r--r--include/grpc++/impl/codegen/service_type.h2
-rw-r--r--include/grpc++/impl/codegen/string_ref.h2
-rw-r--r--include/grpc++/impl/codegen/stub_options.h2
-rw-r--r--include/grpc++/impl/codegen/sync.h2
-rw-r--r--include/grpc++/impl/codegen/sync_cxx11.h2
-rw-r--r--include/grpc++/impl/codegen/sync_no_cxx11.h2
-rw-r--r--include/grpc++/impl/codegen/sync_stream.h2
-rw-r--r--include/grpc++/impl/codegen/time.h2
-rw-r--r--include/grpc++/impl/grpc_library.h2
-rw-r--r--include/grpc++/impl/method_handler_impl.h2
-rw-r--r--include/grpc++/impl/proto_utils.h2
-rw-r--r--include/grpc++/impl/rpc_method.h2
-rw-r--r--include/grpc++/impl/serialization_traits.h2
-rw-r--r--include/grpc++/impl/service_type.h2
-rw-r--r--include/grpc++/impl/sync.h2
-rw-r--r--include/grpc++/impl/sync_cxx11.h2
-rw-r--r--include/grpc++/impl/sync_no_cxx11.h2
-rw-r--r--include/grpc++/security/auth_context.h2
-rw-r--r--include/grpc++/security/auth_metadata_processor.h2
-rw-r--r--include/grpc++/security/credentials.h2
-rw-r--r--include/grpc++/security/server_credentials.h2
-rw-r--r--include/grpc++/server.h2
-rw-r--r--include/grpc++/server_builder.h2
-rw-r--r--include/grpc++/server_context.h2
-rw-r--r--include/grpc++/support/async_stream.h2
-rw-r--r--include/grpc++/support/async_unary_call.h2
-rw-r--r--include/grpc++/support/byte_buffer.h2
-rw-r--r--include/grpc++/support/channel_arguments.h2
-rw-r--r--include/grpc++/support/config.h2
-rw-r--r--include/grpc++/support/config_protobuf.h2
-rw-r--r--include/grpc++/support/slice.h2
-rw-r--r--include/grpc++/support/status.h2
-rw-r--r--include/grpc++/support/status_code_enum.h2
-rw-r--r--include/grpc++/support/string_ref.h2
-rw-r--r--include/grpc++/support/stub_options.h2
-rw-r--r--include/grpc++/support/sync_stream.h2
-rw-r--r--include/grpc++/support/time.h2
-rw-r--r--include/grpc/byte_buffer.h2
-rw-r--r--include/grpc/byte_buffer_reader.h2
-rw-r--r--include/grpc/census.h2
-rw-r--r--include/grpc/compression.h2
-rw-r--r--include/grpc/grpc.h5
-rw-r--r--include/grpc/grpc_security.h2
-rw-r--r--include/grpc/grpc_zookeeper.h2
-rw-r--r--include/grpc/impl/codegen/alloc.h2
-rw-r--r--include/grpc/impl/codegen/atm.h2
-rw-r--r--include/grpc/impl/codegen/atm_gcc_atomic.h2
-rw-r--r--include/grpc/impl/codegen/atm_gcc_sync.h2
-rw-r--r--include/grpc/impl/codegen/atm_win32.h2
-rw-r--r--include/grpc/impl/codegen/byte_buffer.h2
-rw-r--r--include/grpc/impl/codegen/grpc_types.h9
-rw-r--r--include/grpc/impl/codegen/log.h2
-rw-r--r--include/grpc/impl/codegen/port_platform.h9
-rw-r--r--include/grpc/impl/codegen/slice.h2
-rw-r--r--include/grpc/impl/codegen/slice_buffer.h2
-rw-r--r--include/grpc/impl/codegen/status.h2
-rw-r--r--include/grpc/impl/codegen/sync_generic.h2
-rw-r--r--include/grpc/impl/codegen/sync_posix.h2
-rw-r--r--include/grpc/impl/codegen/sync_win32.h2
-rw-r--r--include/grpc/impl/codegen/time.h2
-rw-r--r--include/grpc/status.h2
-rw-r--r--include/grpc/support/alloc.h2
-rw-r--r--include/grpc/support/atm.h2
-rw-r--r--include/grpc/support/atm_gcc_atomic.h2
-rw-r--r--include/grpc/support/atm_gcc_sync.h2
-rw-r--r--include/grpc/support/atm_win32.h2
-rw-r--r--include/grpc/support/avl.h2
-rw-r--r--include/grpc/support/cmdline.h2
-rw-r--r--include/grpc/support/cpu.h2
-rw-r--r--include/grpc/support/histogram.h2
-rw-r--r--include/grpc/support/host_port.h2
-rw-r--r--include/grpc/support/log.h2
-rw-r--r--include/grpc/support/log_win32.h2
-rw-r--r--include/grpc/support/port_platform.h2
-rw-r--r--include/grpc/support/slice.h2
-rw-r--r--include/grpc/support/slice_buffer.h2
-rw-r--r--include/grpc/support/string_util.h2
-rw-r--r--include/grpc/support/subprocess.h2
-rw-r--r--include/grpc/support/sync.h2
-rw-r--r--include/grpc/support/sync_generic.h2
-rw-r--r--include/grpc/support/sync_posix.h2
-rw-r--r--include/grpc/support/sync_win32.h2
-rw-r--r--include/grpc/support/thd.h2
-rw-r--r--include/grpc/support/time.h2
-rw-r--r--include/grpc/support/tls.h2
-rw-r--r--include/grpc/support/tls_gcc.h2
-rw-r--r--include/grpc/support/tls_msvc.h2
-rw-r--r--include/grpc/support/tls_pthread.h2
-rw-r--r--include/grpc/support/useful.h2
-rw-r--r--package.json241
-rw-r--r--package.xml240
-rw-r--r--setup.py2
-rwxr-xr-xsrc/boringssl/gen_build_yaml.py2
-rw-r--r--src/compiler/cpp_generator.cc2
-rw-r--r--src/compiler/cpp_generator.h2
-rw-r--r--src/compiler/cpp_plugin.cc2
-rw-r--r--src/compiler/csharp_generator.cc2
-rw-r--r--src/compiler/python_generator.cc2
-rw-r--r--src/compiler/python_generator.h2
-rw-r--r--src/compiler/python_plugin.cc2
-rw-r--r--src/core/ext/census/README.md (renamed from src/core/lib/census/README.md)0
-rw-r--r--src/core/ext/census/aggregation.h (renamed from src/core/lib/census/aggregation.h)8
-rw-r--r--src/core/ext/census/census_init.c (renamed from src/core/lib/statistics/census_init.c)8
-rw-r--r--src/core/ext/census/census_interface.h (renamed from src/core/lib/statistics/census_interface.h)8
-rw-r--r--src/core/ext/census/census_log.c (renamed from src/core/lib/statistics/census_log.c)4
-rw-r--r--src/core/ext/census/census_log.h (renamed from src/core/lib/statistics/census_log.h)8
-rw-r--r--src/core/ext/census/census_rpc_stats.c (renamed from src/core/lib/statistics/census_rpc_stats.c)12
-rw-r--r--src/core/ext/census/census_rpc_stats.h (renamed from src/core/lib/statistics/census_rpc_stats.h)10
-rw-r--r--src/core/ext/census/census_tracing.c (renamed from src/core/lib/statistics/census_tracing.c)8
-rw-r--r--src/core/ext/census/census_tracing.h (renamed from src/core/lib/statistics/census_tracing.h)10
-rw-r--r--src/core/ext/census/context.c (renamed from src/core/lib/census/context.c)2
-rw-r--r--src/core/ext/census/grpc_context.c (renamed from src/core/lib/census/grpc_context.c)2
-rw-r--r--src/core/ext/census/grpc_filter.c (renamed from src/core/lib/census/grpc_filter.c)8
-rw-r--r--src/core/ext/census/grpc_filter.h (renamed from src/core/lib/census/grpc_filter.h)8
-rw-r--r--src/core/ext/census/grpc_plugin.c (renamed from src/core/lib/census/grpc_plugin.c)8
-rw-r--r--src/core/ext/census/hash_table.c (renamed from src/core/lib/statistics/hash_table.c)4
-rw-r--r--src/core/ext/census/hash_table.h (renamed from src/core/lib/statistics/hash_table.h)8
-rw-r--r--src/core/ext/census/initialize.c (renamed from src/core/lib/census/initialize.c)2
-rw-r--r--src/core/ext/census/mlog.c (renamed from src/core/lib/census/mlog.c)4
-rw-r--r--src/core/ext/census/mlog.h (renamed from src/core/lib/census/mlog.h)8
-rw-r--r--src/core/ext/census/operation.c (renamed from src/core/lib/census/operation.c)2
-rw-r--r--src/core/ext/census/placeholders.c (renamed from src/core/lib/census/placeholders.c)0
-rw-r--r--src/core/ext/census/rpc_metric_id.h (renamed from src/core/lib/census/rpc_metric_id.h)8
-rw-r--r--src/core/ext/census/tracing.c (renamed from src/core/lib/census/tracing.c)2
-rw-r--r--src/core/ext/census/window_stats.c (renamed from src/core/lib/statistics/window_stats.c)4
-rw-r--r--src/core/ext/census/window_stats.h (renamed from src/core/lib/statistics/window_stats.h)8
-rw-r--r--src/core/ext/lb_policy/grpclb/load_balancer_api.c (renamed from src/core/lib/client_config/lb_policies/load_balancer_api.c)2
-rw-r--r--src/core/ext/lb_policy/grpclb/load_balancer_api.h (renamed from src/core/lib/client_config/lb_policies/load_balancer_api.h)8
-rw-r--r--src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c (renamed from src/core/lib/proto/grpc/lb/v0/load_balancer.pb.c)2
-rw-r--r--src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h (renamed from src/core/lib/proto/grpc/lb/v0/load_balancer.pb.h)0
-rw-r--r--src/core/ext/lb_policy/pick_first/pick_first.c (renamed from src/core/lib/client_config/lb_policies/pick_first.c)81
-rw-r--r--src/core/ext/lb_policy/round_robin/round_robin.c (renamed from src/core/lib/client_config/lb_policies/round_robin.c)90
-rw-r--r--src/core/ext/resolver/dns/native/README.md2
-rw-r--r--src/core/ext/resolver/dns/native/dns_resolver.c (renamed from src/core/lib/client_config/resolvers/dns_resolver.c)40
-rw-r--r--src/core/ext/resolver/sockaddr/README.md1
-rw-r--r--src/core/ext/resolver/sockaddr/sockaddr_resolver.c (renamed from src/core/lib/client_config/resolvers/sockaddr_resolver.c)77
-rw-r--r--src/core/ext/resolver/zookeeper/README.md1
-rw-r--r--src/core/ext/resolver/zookeeper/zookeeper_resolver.c (renamed from src/core/lib/client_config/resolvers/zookeeper_resolver.c)50
-rw-r--r--src/core/ext/transport/chttp2/client/insecure/README.md1
-rw-r--r--src/core/ext/transport/chttp2/client/insecure/channel_create.c (renamed from src/core/lib/surface/channel_create.c)6
-rw-r--r--src/core/ext/transport/chttp2/client/secure/README.md1
-rw-r--r--src/core/ext/transport/chttp2/client/secure/secure_channel_create.c (renamed from src/core/lib/surface/secure_channel_create.c)9
-rw-r--r--src/core/ext/transport/chttp2/server/insecure/README.md1
-rw-r--r--src/core/ext/transport/chttp2/server/insecure/server_chttp2.c (renamed from src/core/lib/surface/server_chttp2.c)4
-rw-r--r--src/core/ext/transport/chttp2/server/secure/README.md1
-rw-r--r--src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c (renamed from src/core/lib/security/server_secure_chttp2.c)4
-rw-r--r--src/core/ext/transport/chttp2/transport/README.md4
-rw-r--r--src/core/ext/transport/chttp2/transport/alpn.c (renamed from src/core/lib/transport/chttp2/alpn.c)4
-rw-r--r--src/core/ext/transport/chttp2/transport/alpn.h (renamed from src/core/lib/transport/chttp2/alpn.h)8
-rw-r--r--src/core/ext/transport/chttp2/transport/bin_encoder.c (renamed from src/core/lib/transport/chttp2/bin_encoder.c)6
-rw-r--r--src/core/ext/transport/chttp2/transport/bin_encoder.h (renamed from src/core/lib/transport/chttp2/bin_encoder.h)8
-rw-r--r--src/core/ext/transport/chttp2/transport/chttp2_transport.c (renamed from src/core/lib/transport/chttp2_transport.c)69
-rw-r--r--src/core/ext/transport/chttp2/transport/chttp2_transport.h (renamed from src/core/lib/transport/chttp2_transport.h)8
-rw-r--r--src/core/ext/transport/chttp2/transport/frame.h (renamed from src/core/lib/transport/chttp2/frame.h)8
-rw-r--r--src/core/ext/transport/chttp2/transport/frame_data.c (renamed from src/core/lib/transport/chttp2/frame_data.c)30
-rw-r--r--src/core/ext/transport/chttp2/transport/frame_data.h (renamed from src/core/lib/transport/chttp2/frame_data.h)12
-rw-r--r--src/core/ext/transport/chttp2/transport/frame_goaway.c (renamed from src/core/lib/transport/chttp2/frame_goaway.c)6
-rw-r--r--src/core/ext/transport/chttp2/transport/frame_goaway.h (renamed from src/core/lib/transport/chttp2/frame_goaway.h)10
-rw-r--r--src/core/ext/transport/chttp2/transport/frame_ping.c (renamed from src/core/lib/transport/chttp2/frame_ping.c)6
-rw-r--r--src/core/ext/transport/chttp2/transport/frame_ping.h (renamed from src/core/lib/transport/chttp2/frame_ping.h)10
-rw-r--r--src/core/ext/transport/chttp2/transport/frame_rst_stream.c (renamed from src/core/lib/transport/chttp2/frame_rst_stream.c)16
-rw-r--r--src/core/ext/transport/chttp2/transport/frame_rst_stream.h (renamed from src/core/lib/transport/chttp2/frame_rst_stream.h)14
-rw-r--r--src/core/ext/transport/chttp2/transport/frame_settings.c (renamed from src/core/lib/transport/chttp2/frame_settings.c)12
-rw-r--r--src/core/ext/transport/chttp2/transport/frame_settings.h (renamed from src/core/lib/transport/chttp2/frame_settings.h)10
-rw-r--r--src/core/ext/transport/chttp2/transport/frame_window_update.c (renamed from src/core/lib/transport/chttp2/frame_window_update.c)18
-rw-r--r--src/core/ext/transport/chttp2/transport/frame_window_update.h (renamed from src/core/lib/transport/chttp2/frame_window_update.h)14
-rw-r--r--src/core/ext/transport/chttp2/transport/hpack_encoder.c (renamed from src/core/lib/transport/chttp2/hpack_encoder.c)18
-rw-r--r--src/core/ext/transport/chttp2/transport/hpack_encoder.h (renamed from src/core/lib/transport/chttp2/hpack_encoder.h)12
-rw-r--r--src/core/ext/transport/chttp2/transport/hpack_parser.c (renamed from src/core/lib/transport/chttp2/hpack_parser.c)49
-rw-r--r--src/core/ext/transport/chttp2/transport/hpack_parser.h (renamed from src/core/lib/transport/chttp2/hpack_parser.h)12
-rw-r--r--src/core/ext/transport/chttp2/transport/hpack_table.c (renamed from src/core/lib/transport/chttp2/hpack_table.c)28
-rw-r--r--src/core/ext/transport/chttp2/transport/hpack_table.h (renamed from src/core/lib/transport/chttp2/hpack_table.h)8
-rw-r--r--src/core/ext/transport/chttp2/transport/hpack_tables.txt (renamed from src/core/lib/transport/chttp2/hpack_tables.txt)0
-rw-r--r--src/core/ext/transport/chttp2/transport/http2_errors.h (renamed from src/core/lib/transport/chttp2/http2_errors.h)8
-rw-r--r--src/core/ext/transport/chttp2/transport/huffsyms.c (renamed from src/core/lib/transport/chttp2/huffsyms.c)4
-rw-r--r--src/core/ext/transport/chttp2/transport/huffsyms.h (renamed from src/core/lib/transport/chttp2/huffsyms.h)8
-rw-r--r--src/core/ext/transport/chttp2/transport/incoming_metadata.c (renamed from src/core/lib/transport/chttp2/incoming_metadata.c)6
-rw-r--r--src/core/ext/transport/chttp2/transport/incoming_metadata.h (renamed from src/core/lib/transport/chttp2/incoming_metadata.h)8
-rw-r--r--src/core/ext/transport/chttp2/transport/internal.h (renamed from src/core/lib/transport/chttp2/internal.h)38
-rw-r--r--src/core/ext/transport/chttp2/transport/parsing.c (renamed from src/core/lib/transport/chttp2/parsing.c)44
-rw-r--r--src/core/ext/transport/chttp2/transport/status_conversion.c (renamed from src/core/lib/transport/chttp2/status_conversion.c)4
-rw-r--r--src/core/ext/transport/chttp2/transport/status_conversion.h (renamed from src/core/lib/transport/chttp2/status_conversion.h)10
-rw-r--r--src/core/ext/transport/chttp2/transport/stream_lists.c (renamed from src/core/lib/transport/chttp2/stream_lists.c)4
-rw-r--r--src/core/ext/transport/chttp2/transport/stream_map.c (renamed from src/core/lib/transport/chttp2/stream_map.c)4
-rw-r--r--src/core/ext/transport/chttp2/transport/stream_map.h (renamed from src/core/lib/transport/chttp2/stream_map.h)8
-rw-r--r--src/core/ext/transport/chttp2/transport/timeout_encoding.c (renamed from src/core/lib/transport/chttp2/timeout_encoding.c)4
-rw-r--r--src/core/ext/transport/chttp2/transport/timeout_encoding.h (renamed from src/core/lib/transport/chttp2/timeout_encoding.h)8
-rw-r--r--src/core/ext/transport/chttp2/transport/varint.c (renamed from src/core/lib/transport/chttp2/varint.c)4
-rw-r--r--src/core/ext/transport/chttp2/transport/varint.h (renamed from src/core/lib/transport/chttp2/varint.h)8
-rw-r--r--src/core/ext/transport/chttp2/transport/writing.c (renamed from src/core/lib/transport/chttp2/writing.c)48
-rw-r--r--src/core/lib/channel/channel_args.c2
-rw-r--r--src/core/lib/channel/channel_args.h16
-rw-r--r--src/core/lib/channel/channel_stack.c2
-rw-r--r--src/core/lib/channel/channel_stack.h2
-rw-r--r--src/core/lib/channel/client_channel.c2
-rw-r--r--src/core/lib/channel/client_channel.h2
-rw-r--r--src/core/lib/channel/compress_filter.c2
-rw-r--r--src/core/lib/channel/compress_filter.h2
-rw-r--r--src/core/lib/channel/connected_channel.c2
-rw-r--r--src/core/lib/channel/connected_channel.h2
-rw-r--r--src/core/lib/channel/context.h2
-rw-r--r--src/core/lib/channel/http_client_filter.c6
-rw-r--r--src/core/lib/channel/http_client_filter.h2
-rw-r--r--src/core/lib/channel/http_server_filter.c20
-rw-r--r--src/core/lib/channel/http_server_filter.h2
-rw-r--r--src/core/lib/channel/subchannel_call_holder.c2
-rw-r--r--src/core/lib/channel/subchannel_call_holder.h2
-rw-r--r--src/core/lib/client_config/client_config.c2
-rw-r--r--src/core/lib/client_config/client_config.h2
-rw-r--r--src/core/lib/client_config/connector.c2
-rw-r--r--src/core/lib/client_config/connector.h2
-rw-r--r--src/core/lib/client_config/default_initial_connect_string.c2
-rw-r--r--src/core/lib/client_config/initial_connect_string.c2
-rw-r--r--src/core/lib/client_config/initial_connect_string.h2
-rw-r--r--src/core/lib/client_config/lb_policy.c2
-rw-r--r--src/core/lib/client_config/lb_policy.h2
-rw-r--r--src/core/lib/client_config/lb_policy_factory.c7
-rw-r--r--src/core/lib/client_config/lb_policy_factory.h17
-rw-r--r--src/core/lib/client_config/lb_policy_registry.c13
-rw-r--r--src/core/lib/client_config/lb_policy_registry.h7
-rw-r--r--src/core/lib/client_config/resolver.c2
-rw-r--r--src/core/lib/client_config/resolver.h2
-rw-r--r--src/core/lib/client_config/resolver_factory.c2
-rw-r--r--src/core/lib/client_config/resolver_factory.h2
-rw-r--r--src/core/lib/client_config/resolver_registry.c24
-rw-r--r--src/core/lib/client_config/resolver_registry.h6
-rw-r--r--src/core/lib/client_config/subchannel.c2
-rw-r--r--src/core/lib/client_config/subchannel.h2
-rw-r--r--src/core/lib/client_config/subchannel_factory.c2
-rw-r--r--src/core/lib/client_config/subchannel_factory.h2
-rw-r--r--src/core/lib/client_config/uri_parser.c70
-rw-r--r--src/core/lib/client_config/uri_parser.h14
-rw-r--r--src/core/lib/compression/algorithm_metadata.h2
-rw-r--r--src/core/lib/compression/compression_algorithm.c2
-rw-r--r--src/core/lib/compression/message_compress.c2
-rw-r--r--src/core/lib/compression/message_compress.h2
-rw-r--r--src/core/lib/debug/trace.c2
-rw-r--r--src/core/lib/debug/trace.h2
-rw-r--r--src/core/lib/http/format_request.c2
-rw-r--r--src/core/lib/http/format_request.h2
-rw-r--r--src/core/lib/http/httpcli.c2
-rw-r--r--src/core/lib/http/httpcli.h2
-rw-r--r--src/core/lib/http/httpcli_security_connector.c2
-rw-r--r--src/core/lib/http/parser.c18
-rw-r--r--src/core/lib/http/parser.h2
-rw-r--r--src/core/lib/iomgr/closure.c2
-rw-r--r--src/core/lib/iomgr/closure.h2
-rw-r--r--src/core/lib/iomgr/endpoint.c2
-rw-r--r--src/core/lib/iomgr/endpoint.h2
-rw-r--r--src/core/lib/iomgr/endpoint_pair.h2
-rw-r--r--src/core/lib/iomgr/endpoint_pair_windows.c2
-rw-r--r--src/core/lib/iomgr/ev_poll_and_epoll_posix.c1936
-rw-r--r--src/core/lib/iomgr/ev_poll_and_epoll_posix.h (renamed from src/core/lib/census/grpc_plugin.h)13
-rw-r--r--src/core/lib/iomgr/ev_posix.c165
-rw-r--r--src/core/lib/iomgr/ev_posix.h158
-rw-r--r--src/core/lib/iomgr/exec_ctx.c2
-rw-r--r--src/core/lib/iomgr/exec_ctx.h2
-rw-r--r--src/core/lib/iomgr/executor.c2
-rw-r--r--src/core/lib/iomgr/executor.h2
-rw-r--r--src/core/lib/iomgr/fd_posix.c454
-rw-r--r--src/core/lib/iomgr/fd_posix.h192
-rw-r--r--src/core/lib/iomgr/iocp_windows.c2
-rw-r--r--src/core/lib/iomgr/iocp_windows.h2
-rw-r--r--src/core/lib/iomgr/iomgr.c4
-rw-r--r--src/core/lib/iomgr/iomgr.h2
-rw-r--r--src/core/lib/iomgr/iomgr_internal.h6
-rw-r--r--src/core/lib/iomgr/iomgr_posix.c8
-rw-r--r--src/core/lib/iomgr/iomgr_posix.h2
-rw-r--r--src/core/lib/iomgr/iomgr_windows.c5
-rw-r--r--src/core/lib/iomgr/pollset.h2
-rw-r--r--src/core/lib/iomgr/pollset_multipoller_with_epoll.c324
-rw-r--r--src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c234
-rw-r--r--src/core/lib/iomgr/pollset_posix.c633
-rw-r--r--src/core/lib/iomgr/pollset_posix.h153
-rw-r--r--src/core/lib/iomgr/pollset_set.h2
-rw-r--r--src/core/lib/iomgr/pollset_set_posix.c202
-rw-r--r--src/core/lib/iomgr/pollset_set_posix.h45
-rw-r--r--src/core/lib/iomgr/pollset_set_windows.c4
-rw-r--r--src/core/lib/iomgr/pollset_set_windows.h2
-rw-r--r--src/core/lib/iomgr/pollset_windows.c6
-rw-r--r--src/core/lib/iomgr/pollset_windows.h5
-rw-r--r--src/core/lib/iomgr/resolve_address.h2
-rw-r--r--src/core/lib/iomgr/resolve_address_posix.c2
-rw-r--r--src/core/lib/iomgr/resolve_address_windows.c2
-rw-r--r--src/core/lib/iomgr/sockaddr.h2
-rw-r--r--src/core/lib/iomgr/sockaddr_posix.h2
-rw-r--r--src/core/lib/iomgr/sockaddr_utils.h2
-rw-r--r--src/core/lib/iomgr/sockaddr_win32.h2
-rw-r--r--src/core/lib/iomgr/socket_utils_common_posix.c24
-rw-r--r--src/core/lib/iomgr/socket_utils_linux.c2
-rw-r--r--src/core/lib/iomgr/socket_utils_posix.c2
-rw-r--r--src/core/lib/iomgr/socket_utils_posix.h12
-rw-r--r--src/core/lib/iomgr/socket_windows.c2
-rw-r--r--src/core/lib/iomgr/socket_windows.h2
-rw-r--r--src/core/lib/iomgr/tcp_client.h2
-rw-r--r--src/core/lib/iomgr/tcp_client_posix.c8
-rw-r--r--src/core/lib/iomgr/tcp_client_windows.c5
-rw-r--r--src/core/lib/iomgr/tcp_posix.c7
-rw-r--r--src/core/lib/iomgr/tcp_posix.h4
-rw-r--r--src/core/lib/iomgr/tcp_server.h2
-rw-r--r--src/core/lib/iomgr/tcp_server_posix.c3
-rw-r--r--src/core/lib/iomgr/tcp_server_windows.c2
-rw-r--r--src/core/lib/iomgr/tcp_windows.c2
-rw-r--r--src/core/lib/iomgr/tcp_windows.h2
-rw-r--r--src/core/lib/iomgr/time_averaged_stats.c2
-rw-r--r--src/core/lib/iomgr/time_averaged_stats.h2
-rw-r--r--src/core/lib/iomgr/timer.c2
-rw-r--r--src/core/lib/iomgr/timer.h2
-rw-r--r--src/core/lib/iomgr/timer_heap.c2
-rw-r--r--src/core/lib/iomgr/timer_heap.h2
-rw-r--r--src/core/lib/iomgr/udp_server.c19
-rw-r--r--src/core/lib/iomgr/udp_server.h4
-rw-r--r--src/core/lib/iomgr/unix_sockets_posix_noop.c7
-rw-r--r--src/core/lib/iomgr/wakeup_fd_eventfd.c2
-rw-r--r--src/core/lib/iomgr/wakeup_fd_nospecial.c2
-rw-r--r--src/core/lib/iomgr/wakeup_fd_pipe.c2
-rw-r--r--src/core/lib/iomgr/wakeup_fd_pipe.h2
-rw-r--r--src/core/lib/iomgr/wakeup_fd_posix.c2
-rw-r--r--src/core/lib/iomgr/wakeup_fd_posix.h2
-rw-r--r--src/core/lib/iomgr/workqueue.h2
-rw-r--r--src/core/lib/iomgr/workqueue_posix.c5
-rw-r--r--src/core/lib/iomgr/workqueue_posix.h2
-rw-r--r--src/core/lib/iomgr/workqueue_windows.c2
-rw-r--r--src/core/lib/iomgr/workqueue_windows.h2
-rw-r--r--src/core/lib/json/json.c2
-rw-r--r--src/core/lib/json/json.h2
-rw-r--r--src/core/lib/json/json_common.h2
-rw-r--r--src/core/lib/json/json_reader.c20
-rw-r--r--src/core/lib/json/json_reader.h2
-rw-r--r--src/core/lib/json/json_string.c2
-rw-r--r--src/core/lib/json/json_writer.c2
-rw-r--r--src/core/lib/json/json_writer.h2
-rw-r--r--src/core/lib/profiling/basic_timers.c2
-rw-r--r--src/core/lib/profiling/stap_timers.c2
-rw-r--r--src/core/lib/profiling/timers.h2
-rw-r--r--src/core/lib/security/auth_filters.h2
-rw-r--r--src/core/lib/security/b64.c2
-rw-r--r--src/core/lib/security/b64.h2
-rw-r--r--src/core/lib/security/client_auth_filter.c6
-rw-r--r--src/core/lib/security/credentials.c2
-rw-r--r--src/core/lib/security/credentials.h2
-rw-r--r--src/core/lib/security/credentials_metadata.c2
-rw-r--r--src/core/lib/security/credentials_posix.c2
-rw-r--r--src/core/lib/security/credentials_win32.c2
-rw-r--r--src/core/lib/security/google_default_credentials.c2
-rw-r--r--src/core/lib/security/handshake.c2
-rw-r--r--src/core/lib/security/handshake.h2
-rw-r--r--src/core/lib/security/json_token.c2
-rw-r--r--src/core/lib/security/json_token.h2
-rw-r--r--src/core/lib/security/jwt_verifier.c2
-rw-r--r--src/core/lib/security/jwt_verifier.h2
-rw-r--r--src/core/lib/security/secure_endpoint.c2
-rw-r--r--src/core/lib/security/secure_endpoint.h2
-rw-r--r--src/core/lib/security/security_connector.c4
-rw-r--r--src/core/lib/security/security_connector.h2
-rw-r--r--src/core/lib/security/security_context.c2
-rw-r--r--src/core/lib/security/security_context.h2
-rw-r--r--src/core/lib/security/server_auth_filter.c2
-rw-r--r--src/core/lib/support/alloc.c2
-rw-r--r--src/core/lib/support/avl.c2
-rw-r--r--src/core/lib/support/block_annotate.h2
-rw-r--r--src/core/lib/support/cmdline.c2
-rw-r--r--src/core/lib/support/cpu_iphone.c2
-rw-r--r--src/core/lib/support/cpu_linux.c2
-rw-r--r--src/core/lib/support/cpu_posix.c2
-rw-r--r--src/core/lib/support/cpu_windows.c2
-rw-r--r--src/core/lib/support/env.h2
-rw-r--r--src/core/lib/support/env_linux.c2
-rw-r--r--src/core/lib/support/env_posix.c2
-rw-r--r--src/core/lib/support/env_win32.c2
-rw-r--r--src/core/lib/support/histogram.c2
-rw-r--r--src/core/lib/support/host_port.c2
-rw-r--r--src/core/lib/support/load_file.c2
-rw-r--r--src/core/lib/support/load_file.h2
-rw-r--r--src/core/lib/support/log.c2
-rw-r--r--src/core/lib/support/log_android.c2
-rw-r--r--src/core/lib/support/log_linux.c2
-rw-r--r--src/core/lib/support/log_posix.c2
-rw-r--r--src/core/lib/support/log_win32.c2
-rw-r--r--src/core/lib/support/murmur_hash.c2
-rw-r--r--src/core/lib/support/murmur_hash.h2
-rw-r--r--src/core/lib/support/slice.c2
-rw-r--r--src/core/lib/support/slice_buffer.c2
-rw-r--r--src/core/lib/support/stack_lockfree.c2
-rw-r--r--src/core/lib/support/stack_lockfree.h2
-rw-r--r--src/core/lib/support/string.c2
-rw-r--r--src/core/lib/support/string.h2
-rw-r--r--src/core/lib/support/string_posix.c2
-rw-r--r--src/core/lib/support/string_win32.c2
-rw-r--r--src/core/lib/support/string_win32.h2
-rw-r--r--src/core/lib/support/subprocess_posix.c2
-rw-r--r--src/core/lib/support/sync.c2
-rw-r--r--src/core/lib/support/sync_posix.c2
-rw-r--r--src/core/lib/support/sync_win32.c2
-rw-r--r--src/core/lib/support/thd.c2
-rw-r--r--src/core/lib/support/thd_internal.h2
-rw-r--r--src/core/lib/support/thd_posix.c2
-rw-r--r--src/core/lib/support/thd_win32.c2
-rw-r--r--src/core/lib/support/time.c2
-rw-r--r--src/core/lib/support/time_posix.c2
-rw-r--r--src/core/lib/support/time_precise.c2
-rw-r--r--src/core/lib/support/time_precise.h2
-rw-r--r--src/core/lib/support/time_win32.c2
-rw-r--r--src/core/lib/support/tls_pthread.c2
-rw-r--r--src/core/lib/support/tmpfile.h2
-rw-r--r--src/core/lib/support/tmpfile_posix.c2
-rw-r--r--src/core/lib/support/tmpfile_win32.c2
-rw-r--r--src/core/lib/surface/alarm.c2
-rw-r--r--src/core/lib/surface/api_trace.c2
-rw-r--r--src/core/lib/surface/api_trace.h2
-rw-r--r--src/core/lib/surface/byte_buffer.c2
-rw-r--r--src/core/lib/surface/byte_buffer_reader.c2
-rw-r--r--src/core/lib/surface/call.c22
-rw-r--r--src/core/lib/surface/call.h2
-rw-r--r--src/core/lib/surface/call_details.c2
-rw-r--r--src/core/lib/surface/call_log_batch.c2
-rw-r--r--src/core/lib/surface/call_test_only.h2
-rw-r--r--src/core/lib/surface/channel.c2
-rw-r--r--src/core/lib/surface/channel.h2
-rw-r--r--src/core/lib/surface/channel_connectivity.c2
-rw-r--r--src/core/lib/surface/channel_ping.c2
-rw-r--r--src/core/lib/surface/channel_stack_type.h2
-rw-r--r--src/core/lib/surface/completion_queue.c2
-rw-r--r--src/core/lib/surface/completion_queue.h2
-rw-r--r--src/core/lib/surface/event_string.c2
-rw-r--r--src/core/lib/surface/event_string.h2
-rw-r--r--src/core/lib/surface/init.c26
-rw-r--r--src/core/lib/surface/init.h2
-rw-r--r--src/core/lib/surface/init_secure.c2
-rw-r--r--src/core/lib/surface/init_unsecure.c2
-rw-r--r--src/core/lib/surface/lame_client.c2
-rw-r--r--src/core/lib/surface/metadata_array.c2
-rw-r--r--src/core/lib/surface/server.c32
-rw-r--r--src/core/lib/surface/server.h2
-rw-r--r--src/core/lib/surface/surface_trace.h2
-rw-r--r--src/core/lib/surface/version.c2
-rw-r--r--src/core/lib/transport/byte_stream.c2
-rw-r--r--src/core/lib/transport/byte_stream.h2
-rw-r--r--src/core/lib/transport/connectivity_state.c2
-rw-r--r--src/core/lib/transport/connectivity_state.h2
-rw-r--r--src/core/lib/transport/metadata.c4
-rw-r--r--src/core/lib/transport/metadata.h2
-rw-r--r--src/core/lib/transport/metadata_batch.c2
-rw-r--r--src/core/lib/transport/metadata_batch.h2
-rw-r--r--src/core/lib/transport/static_metadata.c21
-rw-r--r--src/core/lib/transport/static_metadata.h108
-rw-r--r--src/core/lib/transport/transport.c21
-rw-r--r--src/core/lib/transport/transport.h29
-rw-r--r--src/core/lib/transport/transport_impl.h2
-rw-r--r--src/core/lib/transport/transport_op_string.c2
-rw-r--r--src/core/lib/tsi/fake_transport_security.c2
-rw-r--r--src/core/lib/tsi/fake_transport_security.h2
-rw-r--r--src/core/lib/tsi/ssl_transport_security.c2
-rw-r--r--src/core/lib/tsi/ssl_transport_security.h2
-rw-r--r--src/core/lib/tsi/ssl_types.h2
-rw-r--r--src/core/lib/tsi/transport_security.c2
-rw-r--r--src/core/lib/tsi/transport_security.h2
-rw-r--r--src/core/lib/tsi/transport_security_interface.h2
-rw-r--r--src/core/plugin_registry/grpc_plugin_registry.c58
-rw-r--r--src/core/plugin_registry/grpc_unsecure_plugin_registry.c58
-rw-r--r--src/cpp/client/channel.cc2
-rw-r--r--src/cpp/client/client_context.cc2
-rw-r--r--src/cpp/client/create_channel.cc2
-rw-r--r--src/cpp/client/credentials.cc2
-rw-r--r--src/cpp/client/insecure_credentials.cc2
-rw-r--r--src/cpp/client/secure_credentials.cc2
-rw-r--r--src/cpp/client/secure_credentials.h2
-rw-r--r--src/cpp/common/channel_arguments.cc2
-rw-r--r--src/cpp/common/completion_queue.cc2
-rw-r--r--src/cpp/common/create_auth_context.h2
-rw-r--r--src/cpp/common/insecure_create_auth_context.cc2
-rw-r--r--src/cpp/common/secure_channel_arguments.cc2
-rw-r--r--src/cpp/common/secure_create_auth_context.cc2
-rw-r--r--src/cpp/server/server.cc5
-rw-r--r--src/cpp/server/server_builder.cc2
-rw-r--r--src/cpp/server/server_context.cc2
-rw-r--r--src/cpp/util/byte_buffer.cc2
-rw-r--r--src/cpp/util/string_ref.cc2
-rw-r--r--src/cpp/util/time.cc2
-rw-r--r--src/csharp/.nuget/packages.config4
-rw-r--r--src/csharp/Grpc.Auth/GoogleAuthInterceptors.cs2
-rw-r--r--src/csharp/Grpc.Auth/Grpc.Auth.csproj51
-rw-r--r--src/csharp/Grpc.Auth/Grpc.Auth.nuspec2
-rw-r--r--src/csharp/Grpc.Auth/app.config19
-rw-r--r--src/csharp/Grpc.Auth/packages.config8
-rw-r--r--src/csharp/Grpc.Core.Tests/Grpc.Core.Tests.csproj1
-rw-r--r--src/csharp/Grpc.Core.Tests/GrpcEnvironmentTest.cs2
-rw-r--r--src/csharp/Grpc.Core.Tests/HalfcloseTest.cs97
-rw-r--r--src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs2
-rw-r--r--src/csharp/Grpc.Core.Tests/PInvokeTest.cs8
-rw-r--r--src/csharp/Grpc.Core/AsyncAuthInterceptor.cs2
-rw-r--r--src/csharp/Grpc.Core/CallCredentials.cs2
-rw-r--r--src/csharp/Grpc.Core/CallInvocationDetails.cs2
-rw-r--r--src/csharp/Grpc.Core/CallOptions.cs2
-rw-r--r--src/csharp/Grpc.Core/Channel.cs2
-rw-r--r--src/csharp/Grpc.Core/ChannelCredentials.cs2
-rw-r--r--src/csharp/Grpc.Core/ChannelOptions.cs2
-rw-r--r--src/csharp/Grpc.Core/ContextPropagationToken.cs2
-rw-r--r--src/csharp/Grpc.Core/GrpcEnvironment.cs2
-rw-r--r--src/csharp/Grpc.Core/Internal/AsyncCall.cs16
-rw-r--r--src/csharp/Grpc.Core/Internal/AsyncCallBase.cs40
-rw-r--r--src/csharp/Grpc.Core/Internal/AsyncCallServer.cs8
-rw-r--r--src/csharp/Grpc.Core/Internal/AsyncCompletion.cs2
-rw-r--r--src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs2
-rw-r--r--src/csharp/Grpc.Core/Internal/CStringSafeHandle.cs2
-rw-r--r--src/csharp/Grpc.Core/Internal/CallCredentialsSafeHandle.cs2
-rw-r--r--src/csharp/Grpc.Core/Internal/CallSafeHandle.cs2
-rw-r--r--src/csharp/Grpc.Core/Internal/ChannelArgsSafeHandle.cs2
-rw-r--r--src/csharp/Grpc.Core/Internal/ChannelCredentialsSafeHandle.cs2
-rw-r--r--src/csharp/Grpc.Core/Internal/ChannelSafeHandle.cs2
-rw-r--r--src/csharp/Grpc.Core/Internal/CompletionQueueEvent.cs2
-rw-r--r--src/csharp/Grpc.Core/Internal/CompletionQueueSafeHandle.cs2
-rw-r--r--src/csharp/Grpc.Core/Internal/CompletionRegistry.cs2
-rw-r--r--src/csharp/Grpc.Core/Internal/DefaultSslRootsOverride.cs2
-rw-r--r--src/csharp/Grpc.Core/Internal/Enums.cs2
-rw-r--r--src/csharp/Grpc.Core/Internal/MetadataArraySafeHandle.cs2
-rw-r--r--src/csharp/Grpc.Core/Internal/NativeExtension.cs2
-rw-r--r--src/csharp/Grpc.Core/Internal/NativeLogRedirector.cs2
-rw-r--r--src/csharp/Grpc.Core/Internal/NativeMetadataCredentialsPlugin.cs2
-rw-r--r--src/csharp/Grpc.Core/Internal/NativeMethods.cs2
-rw-r--r--src/csharp/Grpc.Core/Internal/PlatformApis.cs2
-rw-r--r--src/csharp/Grpc.Core/Internal/ServerCallHandler.cs2
-rw-r--r--src/csharp/Grpc.Core/Internal/ServerCredentialsSafeHandle.cs2
-rw-r--r--src/csharp/Grpc.Core/Internal/ServerSafeHandle.cs2
-rw-r--r--src/csharp/Grpc.Core/Internal/Timespec.cs2
-rw-r--r--src/csharp/Grpc.Core/Internal/UnmanagedLibrary.cs2
-rw-r--r--src/csharp/Grpc.Core/KeyCertificatePair.cs2
-rw-r--r--src/csharp/Grpc.Core/Logging/ConsoleLogger.cs2
-rw-r--r--src/csharp/Grpc.Core/Marshaller.cs2
-rw-r--r--src/csharp/Grpc.Core/Metadata.cs2
-rw-r--r--src/csharp/Grpc.Core/Method.cs2
-rw-r--r--src/csharp/Grpc.Core/Profiling/Profilers.cs2
-rw-r--r--src/csharp/Grpc.Core/Server.cs2
-rw-r--r--src/csharp/Grpc.Core/ServerCredentials.cs2
-rw-r--r--src/csharp/Grpc.Core/ServerPort.cs2
-rw-r--r--src/csharp/Grpc.Core/Utils/GrpcPreconditions.cs2
-rw-r--r--src/csharp/Grpc.Core/Version.cs2
-rw-r--r--src/csharp/Grpc.Core/VersionInfo.cs2
-rw-r--r--src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs2
-rw-r--r--src/csharp/Grpc.HealthCheck.Tests/HealthServiceImplTest.cs2
-rw-r--r--src/csharp/Grpc.HealthCheck/HealthServiceImpl.cs2
-rw-r--r--src/csharp/Grpc.IntegrationTesting.Client/Grpc.IntegrationTesting.Client.csproj39
-rw-r--r--src/csharp/Grpc.IntegrationTesting.Client/app.config19
-rw-r--r--src/csharp/Grpc.IntegrationTesting.Client/packages.config8
-rw-r--r--src/csharp/Grpc.IntegrationTesting.QpsWorker/app.config4
-rw-r--r--src/csharp/Grpc.IntegrationTesting.Server/Grpc.IntegrationTesting.Server.csproj39
-rw-r--r--src/csharp/Grpc.IntegrationTesting.Server/app.config19
-rw-r--r--src/csharp/Grpc.IntegrationTesting.Server/packages.config8
-rw-r--r--src/csharp/Grpc.IntegrationTesting/BenchmarkServiceImpl.cs9
-rw-r--r--src/csharp/Grpc.IntegrationTesting/ClientRunners.cs197
-rw-r--r--src/csharp/Grpc.IntegrationTesting/GenericService.cs71
-rw-r--r--src/csharp/Grpc.IntegrationTesting/Grpc.IntegrationTesting.csproj50
-rw-r--r--src/csharp/Grpc.IntegrationTesting/Histogram.cs2
-rw-r--r--src/csharp/Grpc.IntegrationTesting/InteropClientServerTest.cs2
-rw-r--r--src/csharp/Grpc.IntegrationTesting/QpsWorker.cs2
-rw-r--r--src/csharp/Grpc.IntegrationTesting/RunnerClientServerTest.cs14
-rw-r--r--src/csharp/Grpc.IntegrationTesting/ServerRunners.cs67
-rw-r--r--src/csharp/Grpc.IntegrationTesting/WorkerServiceImpl.cs2
-rw-r--r--src/csharp/Grpc.IntegrationTesting/app.config19
-rw-r--r--src/csharp/Grpc.IntegrationTesting/packages.config8
-rw-r--r--src/csharp/ext/grpc_csharp_ext.c2
-rwxr-xr-xsrc/csharp/generate_proto_csharp.sh2
-rw-r--r--src/csharp/tests.json1
-rw-r--r--src/node/ext/byte_buffer.cc2
-rw-r--r--src/node/ext/call.cc2
-rw-r--r--src/node/ext/call_credentials.cc2
-rw-r--r--src/node/ext/call_credentials.h2
-rw-r--r--src/node/ext/node_grpc.cc2
-rw-r--r--src/node/ext/timeval.cc2
-rw-r--r--src/node/health_check/health.js2
-rw-r--r--src/node/index.js6
-rw-r--r--src/node/interop/async_delay_queue.js2
-rw-r--r--src/node/interop/interop_client.js14
-rw-r--r--src/node/interop/interop_server.js2
-rw-r--r--src/node/performance/benchmark_client.js2
-rw-r--r--src/node/performance/benchmark_server.js2
-rw-r--r--src/node/performance/worker.js2
-rw-r--r--src/node/performance/worker_service_impl.js2
-rw-r--r--src/node/src/client.js153
-rw-r--r--src/node/src/common.js2
-rw-r--r--src/node/src/credentials.js2
-rw-r--r--src/node/src/metadata.js2
-rw-r--r--src/node/src/server.js2
-rw-r--r--src/node/stress/metrics_client.js (renamed from src/core/lib/client_config/lb_policies/round_robin.h)35
-rw-r--r--src/node/stress/metrics_server.js87
-rw-r--r--src/node/stress/stress_client.js126
-rw-r--r--src/node/test/call_test.js2
-rw-r--r--src/node/test/channel_test.js2
-rw-r--r--src/node/test/common_test.js2
-rw-r--r--src/node/test/constant_test.js2
-rw-r--r--src/node/test/credentials_test.js25
-rw-r--r--src/node/test/echo_service.proto2
-rw-r--r--src/node/test/end_to_end_test.js2
-rw-r--r--src/node/test/server_test.js2
-rw-r--r--src/node/test/surface_test.js44
-rw-r--r--src/node/test/test_messages.proto2
-rw-r--r--src/node/test/test_service.proto2
-rw-r--r--src/objective-c/GRPCClient/GRPCCall.m2
-rw-r--r--src/objective-c/GRPCClient/private/GRPCChannel.h2
-rw-r--r--src/objective-c/GRPCClient/private/GRPCChannel.m2
-rw-r--r--src/objective-c/GRPCClient/private/GRPCCompletionQueue.h2
-rw-r--r--src/objective-c/GRPCClient/private/GRPCCompletionQueue.m2
-rw-r--r--src/objective-c/GRPCClient/private/GRPCHost.h2
-rw-r--r--src/objective-c/GRPCClient/private/GRPCHost.m2
-rw-r--r--src/objective-c/GRPCClient/private/GRPCReachabilityFlagNames.xmacro.h2
-rw-r--r--src/objective-c/GRPCClient/private/GRPCWrappedCall.m2
-rw-r--r--src/objective-c/ProtoRPC/ProtoMethod.m2
-rw-r--r--src/objective-c/RxLibrary/GRXWriteable.m2
-rw-r--r--src/objective-c/examples/Sample/Sample/ViewController.m2
-rw-r--r--src/objective-c/tests/GRPCClientTests.m2
-rw-r--r--src/objective-c/tests/InteropTestsLocalSSL.m2
-rw-r--r--src/objective-c/tests/InteropTestsRemote.m2
-rw-r--r--src/objective-c/tests/RxLibraryUnitTests.m2
-rw-r--r--src/php/ext/grpc/LICENSE2
-rw-r--r--src/php/ext/grpc/call.c2
-rw-r--r--src/php/ext/grpc/channel.c2
-rw-r--r--src/php/tests/generated_code/AbstractGeneratedCodeTest.php2
-rw-r--r--src/php/tests/generated_code/math_client.php2
-rw-r--r--src/php/tests/unit_tests/CallCredentials2Test.php2
-rw-r--r--src/php/tests/unit_tests/CallCredentials3Test.php2
-rw-r--r--src/php/tests/unit_tests/CallCredentialsTest.php2
-rwxr-xr-xsrc/php/tests/unit_tests/CallTest.php2
-rw-r--r--src/php/tests/unit_tests/ChannelCredentialsTest.php2
-rw-r--r--src/php/tests/unit_tests/ChannelTest.php2
-rwxr-xr-xsrc/php/tests/unit_tests/EndToEndTest.php2
-rw-r--r--src/php/tests/unit_tests/ServerTest.php2
-rwxr-xr-xsrc/php/tests/unit_tests/TimevalTest.php2
-rwxr-xr-xsrc/proto/gen_build_yaml.py2
-rw-r--r--src/proto/grpc/health/v1/health.proto2
-rw-r--r--src/proto/grpc/testing/control.proto2
-rw-r--r--src/proto/grpc/testing/duplicate/echo_duplicate.proto2
-rw-r--r--src/proto/grpc/testing/echo.proto2
-rw-r--r--src/proto/grpc/testing/echo_messages.proto2
-rw-r--r--src/proto/grpc/testing/metrics.proto2
-rw-r--r--src/proto/grpc/testing/services.proto2
-rw-r--r--src/python/grpcio/commands.py2
-rw-r--r--src/python/grpcio/grpc/_adapter/_low.py2
-rw-r--r--src/python/grpcio/grpc/_adapter/_types.py2
-rw-r--r--src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi2
-rw-r--r--src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi2
-rw-r--r--src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pxd.pxi2
-rw-r--r--src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi2
-rw-r--r--src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi2
-rw-r--r--src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi2
-rw-r--r--src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi2
-rw-r--r--src/python/grpcio/grpc/_cython/_cygrpc/server.pxd.pxi2
-rw-r--r--src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi2
-rw-r--r--src/python/grpcio/grpc/_cython/cygrpc.pxd2
-rw-r--r--src/python/grpcio/grpc/_cython/cygrpc.pyx2
-rw-r--r--src/python/grpcio/grpc/_cython/imports.generated.h2
-rw-r--r--src/python/grpcio/grpc/_links/invocation.py2
-rw-r--r--src/python/grpcio/grpc/_links/service.py2
-rw-r--r--src/python/grpcio/grpc/beta/_server.py2
-rw-r--r--src/python/grpcio/grpc/beta/implementations.py11
-rw-r--r--src/python/grpcio/grpc/beta/interfaces.py2
-rw-r--r--src/python/grpcio/grpc/framework/alpha/_face_utilities.py2
-rw-r--r--src/python/grpcio/grpc/framework/alpha/_reexport.py2
-rw-r--r--src/python/grpcio/grpc/framework/alpha/exceptions.py2
-rw-r--r--src/python/grpcio/grpc/framework/alpha/interfaces.py2
-rw-r--r--src/python/grpcio/grpc/framework/base/_ingestion.py2
-rw-r--r--src/python/grpcio/grpc/framework/base/_interfaces.py2
-rw-r--r--src/python/grpcio/grpc/framework/base/_reception.py2
-rw-r--r--src/python/grpcio/grpc/framework/base/_transmission.py2
-rw-r--r--src/python/grpcio/grpc/framework/base/interfaces.py2
-rw-r--r--src/python/grpcio/grpc/framework/core/_end.py2
-rw-r--r--src/python/grpcio/grpc/framework/core/_ingestion.py2
-rw-r--r--src/python/grpcio/grpc/framework/core/_interfaces.py2
-rw-r--r--src/python/grpcio/grpc/framework/core/_termination.py2
-rw-r--r--src/python/grpcio/grpc/framework/crust/_control.py2
-rw-r--r--src/python/grpcio/grpc/framework/crust/implementations.py2
-rw-r--r--src/python/grpcio/grpc/framework/face/_control.py2
-rw-r--r--src/python/grpcio/grpc/framework/face/exceptions.py2
-rw-r--r--src/python/grpcio/grpc/framework/face/implementations.py2
-rw-r--r--src/python/grpcio/grpc/framework/face/interfaces.py2
-rw-r--r--src/python/grpcio/grpc/framework/foundation/activated.py2
-rw-r--r--src/python/grpcio/grpc/framework/foundation/callable_util.py2
-rw-r--r--src/python/grpcio/grpc/framework/foundation/future.py2
-rw-r--r--src/python/grpcio/grpc/framework/foundation/logging_pool.py2
-rw-r--r--src/python/grpcio/grpc/framework/foundation/relay.py2
-rw-r--r--src/python/grpcio/grpc/framework/foundation/stream.py2
-rw-r--r--src/python/grpcio/grpc/framework/foundation/stream_util.py2
-rw-r--r--src/python/grpcio/grpc/framework/interfaces/base/base.py2
-rw-r--r--src/python/grpcio/grpc/framework/interfaces/face/face.py2
-rw-r--r--src/python/grpcio/grpc/framework/interfaces/links/links.py2
-rw-r--r--src/python/grpcio/grpc_core_dependencies.py122
-rw-r--r--src/python/grpcio/grpc_version.py2
-rw-r--r--src/python/grpcio/precompiled.py5
-rw-r--r--src/python/grpcio/tests/__init__.py2
-rw-r--r--src/python/grpcio/tests/_loader.py2
-rw-r--r--src/python/grpcio/tests/_result.py2
-rw-r--r--src/python/grpcio/tests/_runner.py2
-rw-r--r--src/python/grpcio/tests/interop/_secure_interop_test.py4
-rw-r--r--src/python/grpcio/tests/interop/client.py4
-rw-r--r--src/python/grpcio/tests/interop/methods.py2
-rw-r--r--src/python/grpcio/tests/protoc_plugin/beta_python_plugin_test.py2
-rw-r--r--src/python/grpcio/tests/unit/_adapter/_intermediary_low_test.py2
-rw-r--r--src/python/grpcio/tests/unit/_adapter/_proto_scenarios.py2
-rw-r--r--src/python/grpcio/tests/unit/_core_over_links_base_interface_test.py2
-rw-r--r--src/python/grpcio/tests/unit/_crust_over_core_over_links_face_interface_test.py2
-rw-r--r--src/python/grpcio/tests/unit/_links/_proto_scenarios.py2
-rw-r--r--src/python/grpcio/tests/unit/beta/_beta_features_test.py4
-rw-r--r--src/python/grpcio/tests/unit/beta/_face_interface_test.py2
-rw-r--r--src/python/grpcio/tests/unit/beta/_implementations_test.py5
-rw-r--r--src/python/grpcio/tests/unit/framework/_crust_over_core_face_interface_test.py2
-rw-r--r--src/python/grpcio/tests/unit/framework/common/test_constants.py2
-rw-r--r--src/python/grpcio/tests/unit/framework/common/test_control.py2
-rw-r--r--src/python/grpcio/tests/unit/framework/common/test_coverage.py2
-rw-r--r--src/python/grpcio/tests/unit/framework/face/testing/base_util.py2
-rw-r--r--src/python/grpcio/tests/unit/framework/face/testing/blocking_invocation_inline_service_test_case.py2
-rw-r--r--src/python/grpcio/tests/unit/framework/face/testing/control.py2
-rw-r--r--src/python/grpcio/tests/unit/framework/face/testing/coverage.py2
-rw-r--r--src/python/grpcio/tests/unit/framework/face/testing/digest.py2
-rw-r--r--src/python/grpcio/tests/unit/framework/face/testing/event_invocation_synchronous_event_service_test_case.py2
-rw-r--r--src/python/grpcio/tests/unit/framework/face/testing/future_invocation_asynchronous_event_service_test_case.py2
-rw-r--r--src/python/grpcio/tests/unit/framework/face/testing/interfaces.py2
-rw-r--r--src/python/grpcio/tests/unit/framework/face/testing/service.py2
-rw-r--r--src/python/grpcio/tests/unit/framework/face/testing/test_case.py2
-rw-r--r--src/python/grpcio/tests/unit/framework/foundation/_logging_pool_test.py2
-rw-r--r--src/python/grpcio/tests/unit/framework/interfaces/base/_control.py2
-rw-r--r--src/python/grpcio/tests/unit/framework/interfaces/base/test_interfaces.py2
-rw-r--r--src/python/grpcio/tests/unit/framework/interfaces/face/_blocking_invocation_inline_service.py2
-rw-r--r--src/python/grpcio/tests/unit/framework/interfaces/face/_digest.py2
-rw-r--r--src/python/grpcio/tests/unit/framework/interfaces/face/_future_invocation_asynchronous_event_service.py2
-rw-r--r--src/python/grpcio/tests/unit/framework/interfaces/face/_invocation.py2
-rw-r--r--src/python/grpcio/tests/unit/framework/interfaces/face/_receiver.py2
-rw-r--r--src/python/grpcio/tests/unit/framework/interfaces/face/_service.py2
-rw-r--r--src/python/grpcio/tests/unit/framework/interfaces/face/test_cases.py2
-rw-r--r--src/python/grpcio/tests/unit/framework/interfaces/face/test_interfaces.py2
-rw-r--r--src/python/grpcio/tests/unit/framework/interfaces/links/test_cases.py2
-rw-r--r--src/python/grpcio/tests/unit/test_common.py2
-rw-r--r--src/python/grpcio_health_checking/grpc/health/v1/__init__.py2
-rw-r--r--src/python/grpcio_health_checking/grpc/health/v1/health.proto2
-rw-r--r--src/python/grpcio_health_checking/grpc/health/v1/health.py2
-rw-r--r--src/ruby/ext/grpc/extconf.rb2
-rw-r--r--src/ruby/ext/grpc/rb_byte_buffer.c17
-rw-r--r--src/ruby/ext/grpc/rb_call.c16
-rw-r--r--src/ruby/ext/grpc/rb_call_credentials.c2
-rw-r--r--src/ruby/ext/grpc/rb_channel.c2
-rw-r--r--src/ruby/ext/grpc/rb_channel_args.c2
-rw-r--r--src/ruby/ext/grpc/rb_channel_credentials.c2
-rw-r--r--src/ruby/ext/grpc/rb_completion_queue.c2
-rw-r--r--src/ruby/ext/grpc/rb_grpc.c2
-rw-r--r--src/ruby/ext/grpc/rb_grpc_imports.generated.h2
-rw-r--r--src/ruby/ext/grpc/rb_server.c2
-rw-r--r--src/ruby/ext/grpc/rb_server_credentials.c2
-rw-r--r--src/ruby/lib/grpc.rb2
-rw-r--r--src/ruby/lib/grpc/core/time_consts.rb2
-rw-r--r--src/ruby/lib/grpc/errors.rb2
-rw-r--r--src/ruby/lib/grpc/generic/bidi_call.rb2
-rw-r--r--src/ruby/lib/grpc/generic/client_stub.rb2
-rw-r--r--src/ruby/lib/grpc/generic/rpc_desc.rb2
-rw-r--r--src/ruby/lib/grpc/generic/rpc_server.rb2
-rw-r--r--src/ruby/lib/grpc/grpc.rb2
-rw-r--r--src/ruby/lib/grpc/version.rb2
-rwxr-xr-xsrc/ruby/pb/generate_proto_ruby.sh11
-rw-r--r--src/ruby/pb/grpc/health/checker.rb2
-rwxr-xr-xsrc/ruby/pb/test/client.rb2
-rw-r--r--src/ruby/qps/client.rb164
-rw-r--r--src/ruby/qps/histogram.rb88
-rw-r--r--src/ruby/qps/qps-common.rb76
-rw-r--r--src/ruby/qps/server.rb91
-rw-r--r--src/ruby/qps/src/proto/grpc/testing/control.rb129
-rw-r--r--src/ruby/qps/src/proto/grpc/testing/messages.rb80
-rw-r--r--src/ruby/qps/src/proto/grpc/testing/payloads.rb33
-rw-r--r--src/ruby/qps/src/proto/grpc/testing/services.rb14
-rw-r--r--src/ruby/qps/src/proto/grpc/testing/services_services.rb46
-rw-r--r--src/ruby/qps/src/proto/grpc/testing/stats.rb39
-rwxr-xr-xsrc/ruby/qps/worker.rb128
-rw-r--r--src/ruby/spec/client_server_spec.rb2
-rw-r--r--src/ruby/spec/generic/rpc_server_spec.rb2
-rw-r--r--src/ruby/spec/pb/health/checker_spec.rb2
-rwxr-xr-xsrc/zlib/gen_build_yaml.py2
-rw-r--r--templates/BUILD.template32
-rw-r--r--templates/Makefile.template7
-rw-r--r--templates/binding.gyp.template2
-rw-r--r--templates/package.json.template1
-rw-r--r--templates/src/core/lib/surface/version.c.template2
-rw-r--r--templates/src/core/plugin_registry.template52
-rw-r--r--templates/src/csharp/Grpc.Core/VersionInfo.cs.template2
-rw-r--r--templates/src/python/grpcio/grpc_core_dependencies.py.template2
-rw-r--r--templates/src/python/grpcio/grpc_version.py.template2
-rw-r--r--templates/src/ruby/lib/grpc/version.rb.template2
-rw-r--r--templates/test/core/end2end/end2end_defs.include2
-rw-r--r--templates/tools/dockerfile/clang_update.include4
-rw-r--r--templates/tools/dockerfile/gcp_api_libraries.include4
-rw-r--r--templates/tools/dockerfile/grpc_interop_stress_cxx/Dockerfile.template40
-rw-r--r--templates/tools/dockerfile/test/csharp_jessie_x64/Dockerfile.template2
-rw-r--r--templates/tools/dockerfile/test/cxx_jessie_x64/Dockerfile.template2
-rw-r--r--templates/tools/dockerfile/test/cxx_jessie_x86/Dockerfile.template2
-rw-r--r--templates/tools/dockerfile/test/cxx_ubuntu1404_x64/Dockerfile.template2
-rw-r--r--templates/tools/dockerfile/test/cxx_ubuntu1604_x64/Dockerfile.template2
-rw-r--r--templates/tools/dockerfile/test/fuzzer/Dockerfile.template43
-rw-r--r--templates/tools/dockerfile/test/node_jessie_x64/Dockerfile.template2
-rw-r--r--templates/tools/dockerfile/test/php_jessie_x64/Dockerfile.template2
-rw-r--r--templates/tools/dockerfile/test/python_jessie_x64/Dockerfile.template2
-rw-r--r--templates/tools/dockerfile/test/ruby_jessie_x64/Dockerfile.template2
-rw-r--r--templates/tools/dockerfile/test/sanity/Dockerfile.template2
-rw-r--r--templates/tools/fuzzer/runners.template44
-rw-r--r--templates/tools/openssl/use_openssl.sh.template2
-rw-r--r--templates/vsprojects/buildtests_c.sln.template2
-rw-r--r--templates/vsprojects/grpc.sln.template2
-rw-r--r--templates/vsprojects/vcxproj.template2
-rw-r--r--test/core/bad_client/bad_client.c13
-rwxr-xr-xtest/core/bad_client/gen_build_yaml.py2
-rw-r--r--test/core/bad_client/tests/badreq.c2
-rw-r--r--test/core/bad_client/tests/connection_prefix.c2
-rw-r--r--test/core/bad_client/tests/headers.c2
-rw-r--r--test/core/bad_client/tests/initial_settings_frame.c2
-rw-r--r--test/core/bad_client/tests/server_registered_method.c2
-rw-r--r--test/core/bad_client/tests/simple_request.c2
-rw-r--r--test/core/bad_client/tests/unknown_frame.c2
-rw-r--r--test/core/bad_client/tests/window_overflow.c2
-rw-r--r--test/core/bad_ssl/bad_ssl_test.c2
-rwxr-xr-xtest/core/bad_ssl/gen_build_yaml.py2
-rw-r--r--test/core/bad_ssl/server_common.c2
-rw-r--r--test/core/bad_ssl/server_common.h2
-rw-r--r--test/core/bad_ssl/servers/alpn.c4
-rw-r--r--test/core/bad_ssl/servers/cert.c2
-rw-r--r--test/core/census/context_test.c2
-rw-r--r--test/core/census/mlog_test.c4
-rw-r--r--test/core/channel/channel_args_test.c2
-rw-r--r--test/core/channel/channel_stack_test.c2
-rw-r--r--test/core/client_config/lb_policies_test.c13
-rw-r--r--test/core/client_config/resolvers/dns_resolver_connectivity_test.c7
-rw-r--r--test/core/client_config/resolvers/dns_resolver_test.c10
-rw-r--r--test/core/client_config/resolvers/sockaddr_resolver_test.c13
-rw-r--r--test/core/client_config/set_initial_connect_string_test.c2
-rw-r--r--test/core/client_config/uri_corpus/042dc4512fa3d391c5170cf3aa61e6a638f843421
-rw-r--r--test/core/client_config/uri_corpus/0e9bbe975f2027e8c39c89f85f667530368e7d111
-rw-r--r--test/core/client_config/uri_corpus/14b57bcbf1e17b1db1de491ef2ba3768f704b7dc1
-rw-r--r--test/core/client_config/uri_corpus/1794310671a060eead6e5ee66ac978a18ec7e84f2
-rw-r--r--test/core/client_config/uri_corpus/1d30b2a79afbaf2828ff42b9a9647e942ba1ab801
-rw-r--r--test/core/client_config/uri_corpus/1fcf5d9c333b70596cf5ba04d1f7affdf445b9713
-rw-r--r--test/core/client_config/uri_corpus/23162c8a8936e20b195404c21337ee734d02a6bc1
-rw-r--r--test/core/client_config/uri_corpus/23f3198b815ca60bdadcaae682b9f965dda387f11
-rw-r--r--test/core/client_config/uri_corpus/2ef3893b43f1f60b77b59ce06a6bce9815d78eaf2
-rw-r--r--test/core/client_config/uri_corpus/356c3c129e203b5c74550b4209764d74b9caefce1
-rw-r--r--test/core/client_config/uri_corpus/3b58860f3451d3e7aad99690a8d39782ca5116fc4
-rw-r--r--test/core/client_config/uri_corpus/47b5228404451fc9d4071fa69192514bb4ce33c11
-rw-r--r--test/core/client_config/uri_corpus/636c5606fc23713a1bae88c8899c0541cfad4fd84
-rw-r--r--test/core/client_config/uri_corpus/63fe493b270b17426d77a27cbf3abac5b2c2794a1
-rw-r--r--test/core/client_config/uri_corpus/655300a902b62662296a8e46bfb04fbcb07182cb1
-rw-r--r--test/core/client_config/uri_corpus/6b70979a70a038ff6607d6cf85485ee95baf58e61
-rw-r--r--test/core/client_config/uri_corpus/7314ab3545a7535a26e0e8aad67caea5534d68b12
-rw-r--r--test/core/client_config/uri_corpus/884dcaee2908ffe5f12b65b8eba81016099c42661
-rw-r--r--test/core/client_config/uri_corpus/96c8d266b7dc037288ef305c996608270f72e7fb2
-rw-r--r--test/core/client_config/uri_corpus/975536c71ade4800415a7e9c2f1b45c35a6d5ea81
-rw-r--r--test/core/client_config/uri_corpus/99750aa67d30beaea8af565c829d4999aa8cb91b1
-rw-r--r--test/core/client_config/uri_corpus/a1f0f9b75bb354eb063d7cba4fcfa2d0b88d63de1
-rw-r--r--test/core/client_config/uri_corpus/a296eb3d1d436ed7df7195b10aa3c4de3896f98d1
-rw-r--r--test/core/client_config/uri_corpus/a8b8e66050b424f1b8c07d46f868199fb7f60e381
-rw-r--r--test/core/client_config/uri_corpus/af55baf8c8855e563befdf1eefbcbd46c5ddb8d21
-rw-r--r--test/core/client_config/uri_corpus/b3c0bf66c2bf5d24ef1daf4cc5a9d6d5bd0e8bfd1
-rw-r--r--test/core/client_config/uri_corpus/ceb4e2264ba7a8d5be47d276b37ec09489e002451
-rw-r--r--test/core/client_config/uri_corpus/cf4395958f5bfb46fd6f535a39657d016c75114c1
-rw-r--r--test/core/client_config/uri_corpus/d46668372b7e20154a89409a7430a28e642afdca1
-rw-r--r--test/core/client_config/uri_corpus/d6fe7412a0a1d1c733160246f3fa425f4f97682a1
-rw-r--r--test/core/client_config/uri_corpus/dns.txt1
-rw-r--r--test/core/client_config/uri_corpus/ea02d9fea9bad5b89cf353a0169238f584177e714
-rw-r--r--test/core/client_config/uri_corpus/ec4731dddf94ed3ea92ae4d5a71f145ab6e3f6ee1
-rw-r--r--test/core/client_config/uri_corpus/ed2f78646f19fc47dd85ff0877c232b71913ece21
-rw-r--r--test/core/client_config/uri_corpus/f6889f4a6350fea1596a3adea5cdac02bd5d1ff32
-rw-r--r--test/core/client_config/uri_corpus/f6f3bd030f0d321efe7c51ca3f057de23509af671
-rw-r--r--test/core/client_config/uri_corpus/f97598cff03306af3c70400608fec47268b5075d2
-rw-r--r--test/core/client_config/uri_corpus/f9e1ec1fc642b575bc9955618b7065747f56b1011
-rw-r--r--test/core/client_config/uri_corpus/fe0630a3aeed2ec6f474f362e4c839478290d5c41
-rw-r--r--test/core/client_config/uri_corpus/ipv4.txt1
-rw-r--r--test/core/client_config/uri_corpus/ipv6.txt1
-rw-r--r--test/core/client_config/uri_corpus/unix.txt1
-rw-r--r--test/core/client_config/uri_fuzzer_test.c (renamed from src/core/lib/client_config/resolvers/dns_resolver.h)24
-rw-r--r--test/core/client_config/uri_parser_test.c70
-rw-r--r--test/core/compression/algorithm_test.c2
-rw-r--r--test/core/compression/compression_test.c2
-rw-r--r--test/core/compression/message_compress_test.c2
-rw-r--r--test/core/end2end/cq_verifier.c2
-rw-r--r--test/core/end2end/dualstack_socket_test.c2
-rw-r--r--test/core/end2end/end2end_nosec_tests.c8
-rw-r--r--test/core/end2end/end2end_tests.c8
-rw-r--r--test/core/end2end/fixtures/h2_census.c4
-rw-r--r--test/core/end2end/fixtures/h2_compress.c4
-rw-r--r--test/core/end2end/fixtures/h2_fakesec.c2
-rw-r--r--test/core/end2end/fixtures/h2_full+pipe.c4
-rw-r--r--test/core/end2end/fixtures/h2_full+poll+pipe.c122
-rw-r--r--test/core/end2end/fixtures/h2_full+poll.c120
-rw-r--r--test/core/end2end/fixtures/h2_full+trace.c4
-rw-r--r--test/core/end2end/fixtures/h2_full.c4
-rw-r--r--test/core/end2end/fixtures/h2_oauth2.c2
-rw-r--r--test/core/end2end/fixtures/h2_proxy.c4
-rw-r--r--test/core/end2end/fixtures/h2_sockpair+trace.c4
-rw-r--r--test/core/end2end/fixtures/h2_sockpair.c4
-rw-r--r--test/core/end2end/fixtures/h2_sockpair_1byte.c4
-rw-r--r--test/core/end2end/fixtures/h2_ssl+poll.c194
-rw-r--r--test/core/end2end/fixtures/h2_ssl.c2
-rw-r--r--test/core/end2end/fixtures/h2_ssl_proxy.c2
-rw-r--r--test/core/end2end/fixtures/h2_uds+poll.c126
-rw-r--r--test/core/end2end/fixtures/h2_uds.c4
-rw-r--r--test/core/end2end/fixtures/proxy.c9
-rwxr-xr-xtest/core/end2end/gen_build_yaml.py9
-rw-r--r--test/core/end2end/goaway_server_test.c301
-rw-r--r--test/core/end2end/invalid_call_argument_test.c2
-rw-r--r--test/core/end2end/no_server_test.c2
-rw-r--r--test/core/end2end/tests/bad_hostname.c4
-rw-r--r--test/core/end2end/tests/binary_metadata.c2
-rw-r--r--test/core/end2end/tests/call_creds.c2
-rw-r--r--test/core/end2end/tests/cancel_after_accept.c2
-rw-r--r--test/core/end2end/tests/cancel_after_client_done.c2
-rw-r--r--test/core/end2end/tests/cancel_after_invoke.c2
-rw-r--r--test/core/end2end/tests/cancel_before_invoke.c2
-rw-r--r--test/core/end2end/tests/cancel_in_a_vacuum.c2
-rw-r--r--test/core/end2end/tests/cancel_with_status.c2
-rw-r--r--test/core/end2end/tests/compressed_payload.c2
-rw-r--r--test/core/end2end/tests/connectivity.c2
-rw-r--r--test/core/end2end/tests/default_host.c2
-rw-r--r--test/core/end2end/tests/empty_batch.c2
-rw-r--r--test/core/end2end/tests/high_initial_seqno.c2
-rw-r--r--test/core/end2end/tests/hpack_size.c2
-rw-r--r--test/core/end2end/tests/idempotent_request.c248
-rw-r--r--test/core/end2end/tests/invoke_large_request.c2
-rw-r--r--test/core/end2end/tests/large_metadata.c2
-rw-r--r--test/core/end2end/tests/max_concurrent_streams.c2
-rw-r--r--test/core/end2end/tests/max_message_length.c2
-rw-r--r--test/core/end2end/tests/negative_deadline.c2
-rw-r--r--test/core/end2end/tests/no_op.c2
-rw-r--r--test/core/end2end/tests/payload.c2
-rw-r--r--test/core/end2end/tests/ping.c2
-rw-r--r--test/core/end2end/tests/ping_pong_streaming.c2
-rw-r--r--test/core/end2end/tests/registered_call.c2
-rw-r--r--test/core/end2end/tests/request_with_flags.c2
-rw-r--r--test/core/end2end/tests/request_with_payload.c2
-rw-r--r--test/core/end2end/tests/server_finishes_request.c2
-rw-r--r--test/core/end2end/tests/simple_delayed_request.c2
-rw-r--r--test/core/end2end/tests/simple_metadata.c2
-rw-r--r--test/core/end2end/tests/simple_request.c3
-rw-r--r--test/core/end2end/tests/trailing_metadata.c2
-rw-r--r--test/core/fling/client.c2
-rw-r--r--test/core/fling/fling_stream_test.c2
-rw-r--r--test/core/fling/fling_test.c2
-rw-r--r--test/core/fling/server.c2
-rw-r--r--test/core/http/corpus/0299ca2580e4398d170c4a336e0c33eb2cd9d4272
-rw-r--r--test/core/http/corpus/05e613853d64a9669ea3cf41b0de777dc24931ba2
-rw-r--r--test/core/http/corpus/069352518a1d1baa05f317c677d275cefda2ac972
-rw-r--r--test/core/http/corpus/0925527c9358b1e10ec0f0387cd99f35204d9a342
-rw-r--r--test/core/http/corpus/0c5b7c2569410b526605e308309a7f36574e530d4
-rw-r--r--test/core/http/corpus/0ef3d0a84360bb5ad66274f1226f5cb273ecdbcf3
-rw-r--r--test/core/http/corpus/1e1273f90187fdf5df3625764245610f86af6aa43
-rw-r--r--test/core/http/corpus/1fbc57d118f3733287e9a9d808bb8947b3260e553
-rw-r--r--test/core/http/corpus/24756c396bc72894fd720092bb6f9c03e66b469f2
-rw-r--r--test/core/http/corpus/276def41311933421ae7a9ee42e906c85b6a4d3f2
-rw-r--r--test/core/http/corpus/29daa75432381937fd005cb25e314e328de6e9f92
-rw-r--r--test/core/http/corpus/2a75204bc492084ad853682f8de3fb137d5907bc2
-rw-r--r--test/core/http/corpus/2d34ba249b755a880525cf53c665633a5e3593052
-rw-r--r--test/core/http/corpus/33f4ea0c7ea27c37d8f95cfa64d282370efdafd22
-rw-r--r--test/core/http/corpus/35554617ea6418bd43161fe9a2c337ed82d7ec5b4
-rw-r--r--test/core/http/corpus/35f0c561297cfc840ddaeebb9fc61091f4eadece2
-rw-r--r--test/core/http/corpus/3953688866ccb3b4f371f1a858570d6afdb6452d3
-rw-r--r--test/core/http/corpus/39b19c41ba537f37511eff7727733715db432e762
-rw-r--r--test/core/http/corpus/3e3c4756d5e40b5aa250954cbac86b826e70a7ac3
-rw-r--r--test/core/http/corpus/3f03265921120c6ffa61b944e213e062a5538d4b2
-rw-r--r--test/core/http/corpus/3fb034e66ee5494a67acae1b4e6ff64ba92a20462
-rw-r--r--test/core/http/corpus/466059ed07a0d55d6ad5e522c7d367cbf278eaf94
-rw-r--r--test/core/http/corpus/487725eb38511c79a9340bf4560a1411061fa6fa2
-rw-r--r--test/core/http/corpus/48b9b205cae8ac21512a3f26f49fd53e21ee13c52
-rw-r--r--test/core/http/corpus/4b1f1f79a0bfa3f942479dd5f8edb59a7c257c552
-rw-r--r--test/core/http/corpus/5028c56a5116a186b7343ff59567b47347a0796d3
-rw-r--r--test/core/http/corpus/533f62b3f495ce704babf3ee8d840f196a714dff4
-rw-r--r--test/core/http/corpus/5892cbb284771fc9761caae37b19cd6e27dbc1042
-rw-r--r--test/core/http/corpus/5aeab6e4f7c2a1c09d4ac0dbdb3beac4893607ee2
-rw-r--r--test/core/http/corpus/5b6292bdf009b0daecbc90b85cca30a88c36eec52
-rw-r--r--test/core/http/corpus/5c1659b77678b41faa4fa13df7772dae3238d1c02
-rw-r--r--test/core/http/corpus/5c81f61621e29ec9c6a64ac3af9b3b216141618e2
-rw-r--r--test/core/http/corpus/657368df512ca6294b9df16adf935a3f374a8be23
-rw-r--r--test/core/http/corpus/7fc4520094902ce2c760d70eaad5b674d28173375
-rw-r--r--test/core/http/corpus/81f59a12b458ec3604035cb962165c604d1355e62
-rw-r--r--test/core/http/corpus/8f41c50e88ee8c17ecad3d41d63d38fb12aca0b94
-rw-r--r--test/core/http/corpus/97c16de7fe3c390a2e6c09ff5c28f17d5c67542c2
-rw-r--r--test/core/http/corpus/97e4499d450c95660de86747f527e670f20125483
-rw-r--r--test/core/http/corpus/9a996857196e0998a1278994a9bab3d35526e7f12
-rw-r--r--test/core/http/corpus/9b7e00049ec356ecd84b1747e4e1941140139ae83
-rw-r--r--test/core/http/corpus/9f0c38ec455cc363369b3674a2d32bc21c206de15
-rw-r--r--test/core/http/corpus/a1dc7bc235e46eb21d91084d7b52d5ff9f45df853
-rw-r--r--test/core/http/corpus/aa3bbb876eafa8ad8ca4ff2eabc6dd94341d24412
-rw-r--r--test/core/http/corpus/b04fea5c041c707db0ad9c09a81672557b52cc472
-rw-r--r--test/core/http/corpus/c4acff8aa2ff886f35439f72625d05002990c9404
-rw-r--r--test/core/http/corpus/c55ce9995b002e88a102ae2891a71e8bacb346c82
-rw-r--r--test/core/http/corpus/ca5a0c00b8969310acb73d15ad0d0c602f1bd0c23
-rw-r--r--test/core/http/corpus/cce734f1b263de6994f7950e0df7bf0c81449f703
-rw-r--r--test/core/http/corpus/d4c3e4cf5d035596433c30eaabbd2b2925f4b4533
-rw-r--r--test/core/http/corpus/d51f7fcc089f269c7afecaaca51966bab5fde6292
-rw-r--r--test/core/http/corpus/d936dad71c129cf659097dc3db64550c4dd467f42
-rw-r--r--test/core/http/corpus/e275b0466a8fb8d9e0e15856e343ddc7112ae66b3
-rw-r--r--test/core/http/corpus/e5c364b205855a2991ce07482aebb2a3a61470892
-rw-r--r--test/core/http/corpus/ee2077e08c3cfccd9bd82adb574ac4fc7d429afb2
-rw-r--r--test/core/http/corpus/fc5d4b9117ba9e87388174aee4f4970bdfe8d0661
-rw-r--r--test/core/http/corpus/fdeb2c7daa9e7704f67e141106384e6dd0042c0b2
-rw-r--r--test/core/http/corpus/request1.txt3
-rw-r--r--test/core/http/corpus/request2.txt3
-rw-r--r--test/core/http/corpus/request3.txt3
-rw-r--r--test/core/http/corpus/request4.txt3
-rw-r--r--test/core/http/corpus/request5.txt3
-rw-r--r--test/core/http/corpus/response1.txt4
-rw-r--r--test/core/http/corpus/response2.txt4
-rw-r--r--test/core/http/corpus/response3.txt5
-rw-r--r--test/core/http/corpus/response4.txt2
-rw-r--r--test/core/http/corpus/response5.txt5
-rw-r--r--test/core/http/corpus/response6.txt5
-rw-r--r--test/core/http/corpus/toolong.txt2
-rw-r--r--test/core/http/format_request_test.c2
-rw-r--r--test/core/http/fuzzer.c (renamed from src/core/lib/client_config/lb_policies/pick_first.h)23
-rw-r--r--test/core/http/httpcli_test.c2
-rw-r--r--test/core/http/httpscli_test.c2
-rw-r--r--test/core/http/parser_test.c37
-rwxr-xr-xtest/core/http/test_server.py2
-rw-r--r--test/core/internal_api_canaries/iomgr.c115
-rw-r--r--test/core/internal_api_canaries/support.c58
-rw-r--r--test/core/internal_api_canaries/transport.c81
-rw-r--r--test/core/iomgr/endpoint_pair_test.c6
-rw-r--r--test/core/iomgr/endpoint_tests.c2
-rw-r--r--test/core/iomgr/endpoint_tests.h2
-rw-r--r--test/core/iomgr/fd_conservation_posix_test.c2
-rw-r--r--test/core/iomgr/fd_posix_test.c13
-rw-r--r--test/core/iomgr/resolve_address_test.c2
-rw-r--r--test/core/iomgr/sockaddr_utils_test.c2
-rw-r--r--test/core/iomgr/socket_utils_test.c2
-rw-r--r--test/core/iomgr/tcp_client_posix_test.c3
-rw-r--r--test/core/iomgr/tcp_posix_test.c2
-rw-r--r--test/core/iomgr/tcp_server_posix_test.c2
-rw-r--r--test/core/iomgr/time_averaged_stats_test.c2
-rw-r--r--test/core/iomgr/timer_heap_test.c2
-rw-r--r--test/core/iomgr/timer_list_test.c2
-rw-r--r--test/core/iomgr/udp_server_test.c4
-rw-r--r--test/core/iomgr/workqueue_test.c2
-rw-r--r--test/core/json/corpus/006d552e952c42b5340baaeb85c2cb80c81e78dd1
-rw-r--r--test/core/json/corpus/007eb985c44b6089a34995a7d9ebf349f1c2bf181
-rw-r--r--test/core/json/corpus/03b74a08f23734691512cb12d0b38d189a8df9051
-rw-r--r--test/core/json/corpus/0495693af07325fb0d52eafd2d4c4d802c6457c61
-rw-r--r--test/core/json/corpus/05454ab015cf74e9c3e8574d995517e05dd567511
-rw-r--r--test/core/json/corpus/0716d9708d321ffb6a00818614779e779925365c1
-rw-r--r--test/core/json/corpus/0a9b3522a8e711e3bd53e2c2eb9d28b34a003acc1
-rw-r--r--test/core/json/corpus/0ade7c2cf97f75d009975f4d720d1fa6c19f48971
-rw-r--r--test/core/json/corpus/0b1fcf0ac07e1e50cfe27316c7e1c8cc997f13181
-rw-r--r--test/core/json/corpus/0bc13548356d08009703d35e9c8d74397367bdfb1
-rw-r--r--test/core/json/corpus/0ea9a160c57f2c705dce037196e360bf9be739c51
-rw-r--r--test/core/json/corpus/0f20d9c46991c0e97419e2cca07c7389f1d6bdf81
-rw-r--r--test/core/json/corpus/0f2e2e6346f70c419300b661251754d50f7ca8ea1
-rw-r--r--test/core/json/corpus/108b310facc1a193833fc2971fd83081f775ea0c1
-rw-r--r--test/core/json/corpus/108e5bcd69b19ad0df743641085163b84f376fe82
-rw-r--r--test/core/json/corpus/10e3ecd5624465020fdf0662a67e0f0885536cae1
-rw-r--r--test/core/json/corpus/113c8c97cbb0a2b6176d75eaa9ac9baaa7ccddcc1
-rw-r--r--test/core/json/corpus/11479d936dd006410a5946b6081a94d573bf8efd1
-rw-r--r--test/core/json/corpus/11aa091189b78d1cc35c7ff4907ac16a73aba5471
-rw-r--r--test/core/json/corpus/1227907b2ee5a9492a890beed55332e4560834c81
-rw-r--r--test/core/json/corpus/134d65130947ec69cf8df8483424b45e99cf04e31
-rw-r--r--test/core/json/corpus/13584505caa892d94982a968bbc4391ebcfe0d061
-rw-r--r--test/core/json/corpus/137f554ee0f6b903acb81ab4e1f98c11fe92b0081
-rw-r--r--test/core/json/corpus/1401ea03ec78b8f20dc7be952555004d7147f0f51
-rw-r--r--test/core/json/corpus/141d45a59b073aeec4443cd7bcf20f7833ddbc951
-rw-r--r--test/core/json/corpus/15a8f2e7f94aa00b46f1b991416aa015dd6335801
-rw-r--r--test/core/json/corpus/15c9c1284c27c8893559e15c9b2a50cbd5bbb56f1
-rw-r--r--test/core/json/corpus/15d1a6cda48ef569b368a0c4627435bc2c80a9881
-rw-r--r--test/core/json/corpus/17a29f2ac6df774585d7713091b299729738030c1
-rw-r--r--test/core/json/corpus/17b815f1f72cb64481bc40263e91ce063040f7391
-rw-r--r--test/core/json/corpus/182d57403d2c973a394055017d35b7621aa0aa051
-rw-r--r--test/core/json/corpus/190fbe2da448f6bdec0706c5301ad13363ae3ad91
-rw-r--r--test/core/json/corpus/1b045a24b8f1f1fd6e8234d5019952ee7713a8b71
-rw-r--r--test/core/json/corpus/1b6453892473a467d07372d45eb05abc2031647a1
-rw-r--r--test/core/json/corpus/1c6463aa2dabcb4fadc8e5441d8b418535e768af1
-rw-r--r--test/core/json/corpus/1dea95b5050b766274ef80847505c0e4f47f3ebb1
-rw-r--r--test/core/json/corpus/1df0754d3e7970b3afe549b11ca128dcd0d4832b1
-rw-r--r--test/core/json/corpus/1dfe267b623b20cd97c6e8969d8b9148af9f4a2c1
-rw-r--r--test/core/json/corpus/1e5c2f367f02e47a8c160cda1cd9d91decbac4411
-rw-r--r--test/core/json/corpus/20efdba13ca7a3657d071b3d56997aa3b083068a1
-rw-r--r--test/core/json/corpus/215a956168f77421253e947c2436371d56aa7ea11
-rw-r--r--test/core/json/corpus/2174b9ab6bf4f7c21fe1ed56957f1776ef6119591
-rw-r--r--test/core/json/corpus/232f4bced4075545bb1469d5c2360f083ec7ec651
-rw-r--r--test/core/json/corpus/26aca41ee8f199e7c0c7cf31d979952571c53fc91
-rw-r--r--test/core/json/corpus/27d84210636e9e83786be9e9b96b69f70b743b861
-rw-r--r--test/core/json/corpus/27da426a5883662d19ea78f306d7a992be52f8272
-rw-r--r--test/core/json/corpus/296dcda6f7e6979e68ddef7cbc1206a355084ad31
-rw-r--r--test/core/json/corpus/29b08c03ca5a6851fa4604a984cb7ff44433a5a51
-rw-r--r--test/core/json/corpus/2a3d964ec4527ad9f02129fcbf087b67a6ea64441
-rw-r--r--test/core/json/corpus/2b04974149815b143afb17af4388d751217e54ec1
-rw-r--r--test/core/json/corpus/2b3b1ad952e3acb566e32a84e2d503acde13eb531
-rw-r--r--test/core/json/corpus/2cc301a6ed7f01e2cd339f02bd0fda20c227a17e1
-rw-r--r--test/core/json/corpus/2d3d5b9275553430b4cfa68114099120ad7809ee1
-rw-r--r--test/core/json/corpus/2d5dbf403e0c12e2fe21b04ca3daff171c028ab71
-rw-r--r--test/core/json/corpus/2d7c769bed62004270034b976b1d940a5686106b1
-rw-r--r--test/core/json/corpus/2db120231eea12d9cdc6a00f30839b3cef2046be1
-rw-r--r--test/core/json/corpus/2db610e1a230409a205cf22fbad3348a54cbe7031
-rw-r--r--test/core/json/corpus/2df1dd2e2f5d57e7d9d4e60a756a86e6035732251
-rw-r--r--test/core/json/corpus/2e32faacd3ea4461ec7aace297b4be6904d9a3891
-rw-r--r--test/core/json/corpus/2e756d91759d7e74f5b776c0d2a1935292f576d11
-rw-r--r--test/core/json/corpus/2f09b24f9f5fa0af2c29b604b4b0f97fa61638951
-rw-r--r--test/core/json/corpus/3027d901361162b38fcaf17f97ba7d9646e324951
-rw-r--r--test/core/json/corpus/30d4467ecb771ece9ed6c78a46adc299072d9db91
-rw-r--r--test/core/json/corpus/311048bbf4c4bbabcde73607d7e76915cee9312e1
-rw-r--r--test/core/json/corpus/323b48969d7bf9a50aacf0912f1b5cb02119e2ab1
-rw-r--r--test/core/json/corpus/33400a242baeb5c46ddb1578c28b10d32a9c3cd31
-rw-r--r--test/core/json/corpus/356a192b7913b04c54574d18c28d46e6395428ab1
-rw-r--r--test/core/json/corpus/35e995c107a71caeb833bb3b79f9f54781b33fa11
-rw-r--r--test/core/json/corpus/373769c15c145472c8ec3bdde8fc84e85ec792112
-rw-r--r--test/core/json/corpus/3795d911970a1fd8416b93649051b418948e3edf1
-rw-r--r--test/core/json/corpus/37d3333e1e2a384c3ba14a52682ca29f061d1ac71
-rw-r--r--test/core/json/corpus/38cd33bb390445e35b6514024b1317902cb7ba1b1
-rw-r--r--test/core/json/corpus/3a90c688f44447a78efc111872b061a001f04d2b1
-rw-r--r--test/core/json/corpus/3b1e7b56ad4465d126ea994d34d20dcecbb3a50a1
-rw-r--r--test/core/json/corpus/3c0a8d6c31edaca124714624eb64cb8ec0cbab131
-rw-r--r--test/core/json/corpus/3cc0c9adcf3882f01409c70391c3cd30588ef34c1
-rw-r--r--test/core/json/corpus/3d0d9878b812ce4634962ba3dd755c09535502001
-rw-r--r--test/core/json/corpus/3d4d5887a2fcdc5dd360b8a6f89dbce6500d85801
-rw-r--r--test/core/json/corpus/3efb5b7ff94c5b9d411c93da9a70e1cc547f4c591
-rw-r--r--test/core/json/corpus/421b7e8ea86e3c07474af16ab3ccef55d18572052
-rw-r--r--test/core/json/corpus/428d051e437dd260f2a2f7ed920d9734ca34dc901
-rw-r--r--test/core/json/corpus/42adc281578ffb1b8684b78b47aa40a16d10b6e71
-rw-r--r--test/core/json/corpus/43620ecd2e2fd58fe5650da2e9783f980f29ec071
-rw-r--r--test/core/json/corpus/43b1ffcda49477adb1632822202631990ed3a2691
-rw-r--r--test/core/json/corpus/45279f85bf2f533a629073caf89403006279fab22
-rw-r--r--test/core/json/corpus/455d9bb597f08bf698454157ecd86647b5dec4e01
-rw-r--r--test/core/json/corpus/4561eb5c7e43cae048c06aaaad3d5f5218b376e91
-rw-r--r--test/core/json/corpus/46417b001eeb87c32b642499fd5e1690d5d88c7f1
-rw-r--r--test/core/json/corpus/468af040024e96e9878ef33cc52755c5e7f5cbd51
-rw-r--r--test/core/json/corpus/469e5ed2547e9e55a96e96eb832c615631e3b5761
-rw-r--r--test/core/json/corpus/472b07b9fcf2c2451e8781e944bf5f77cd8457c81
-rw-r--r--test/core/json/corpus/486da8aff04083c5e0fe112e733f2ae510e312a11
-rw-r--r--test/core/json/corpus/488a5ed641e340ae51992e04ce6590bdec5872181
-rw-r--r--test/core/json/corpus/4a0a19218e082a343a1b17e5333409af9d98f0f51
-rw-r--r--test/core/json/corpus/4a6644a1a3d5218f4bbd60220cab79c0b7bef45e1
-rw-r--r--test/core/json/corpus/4b39d4b8a9a04b9469e8fe4016322327fe5408821
-rw-r--r--test/core/json/corpus/4bb0294e14946fb1f64213384097a676d3ef94f01
-rw-r--r--test/core/json/corpus/4cd66dfabbd964f8c6c4414b07cdb45dae692e191
-rw-r--r--test/core/json/corpus/4d134bc072212ace2df385dae143139da74ec0ef1
-rw-r--r--test/core/json/corpus/4efa35221b2088e785048d0ff8fd99b03d5316fc1
-rw-r--r--test/core/json/corpus/4fa2a4a5a2f7dc4ddbdecae3ee85c787817b4cf81
-rw-r--r--test/core/json/corpus/4fed4bf2dc6259d9de54e9fa7db4fd5a61f2535e1
-rw-r--r--test/core/json/corpus/4ff800de0863adb5851fa26935159aa53b11cba71
-rw-r--r--test/core/json/corpus/4ff99a030518a132748c44bc1d836018e5b82cd01
-rw-r--r--test/core/json/corpus/531c87b9772e54e3e183ef729f0a7d5a0d584f461
-rw-r--r--test/core/json/corpus/534d66e7b0709d1e7692faae9e7f7299c92bba4b1
-rw-r--r--test/core/json/corpus/548775f9d7d13339dba3001f8238b84e9a4575331
-rw-r--r--test/core/json/corpus/54ec3b2d8a9b7a6d8204712eb1b90da703cf8a791
-rw-r--r--test/core/json/corpus/552cfe1d8958e6d003ec8e883c4983dd67ef255e1
-rw-r--r--test/core/json/corpus/55f0c61d096a08506076489ded3b868db40867701
-rw-r--r--test/core/json/corpus/56cd60743c2cee939f5f357905bd36ec9363f4411
-rw-r--r--test/core/json/corpus/56e5f35e3d08b4e17e3558cacddf9e5ed13a01591
-rw-r--r--test/core/json/corpus/580b03c49fba02bb8e399500eb66f2ff0482b22a1
-rw-r--r--test/core/json/corpus/5852643fbbcf92b0181327b69b4874c6ba6fa9f41
-rw-r--r--test/core/json/corpus/58f497e5efaf9f69080f9eef63b0b9dabcfdbc0d1
-rw-r--r--test/core/json/corpus/59129aacfb6cebbe2c52f30ef3424209f7252e821
-rw-r--r--test/core/json/corpus/598a287a3e56caae23ed63abc95d5f3457165eef1
-rw-r--r--test/core/json/corpus/5a37a26dd2482226f534f79d321d28e7a615ab721
-rw-r--r--test/core/json/corpus/5a710dcd4c78ca1a74ceb9fbfb011f7ac86a5f7b1
-rw-r--r--test/core/json/corpus/5ae7b87f5377d5ffc16fd3f69b4a4aa7be8b11842
-rw-r--r--test/core/json/corpus/5b3fe86d5a309a6ba745881bd220fe1100b271ce1
-rw-r--r--test/core/json/corpus/5c38b7da113ab4535dbc22777ce8a1480c1c9d1e1
-rw-r--r--test/core/json/corpus/5ca6c45a8d2e11c782806df43e7668beb4aba8f51
-rw-r--r--test/core/json/corpus/5da7b543313339f84fd52e96bacf3a73368a1d2c1
-rw-r--r--test/core/json/corpus/5e12ae9117668bcc22832640cc626315940aeba81
-rw-r--r--test/core/json/corpus/5e397439a2680ed827c46704969c6711dabbda841
-rw-r--r--test/core/json/corpus/5e629dfb8b7533c7c2d173d4c3d587c88112cc291
-rw-r--r--test/core/json/corpus/5e785c7c26813577f3e30ef8f7e37ab2a9ffe39c1
-rw-r--r--test/core/json/corpus/5f3394f5058822cc044b926548376258971764801
-rw-r--r--test/core/json/corpus/5fb9bcbbb30a377209eab0541d144e44e71508d71
-rw-r--r--test/core/json/corpus/6008213a61d06b4382b223768530c3452968b7b31
-rw-r--r--test/core/json/corpus/60ba4b2daa4ed4d070fec06687e249e0e6f9ee451
-rw-r--r--test/core/json/corpus/625ed64c30c8ab2f0b3bc75690f9faa4270f00411
-rw-r--r--test/core/json/corpus/6314c2b304d04dc0108a95d29a93515e85e2b0b01
-rw-r--r--test/core/json/corpus/6462d8079d2ea921617e7d073b85cfab706800d31
-rw-r--r--test/core/json/corpus/6474383282788e556aa86f57fc8650137ad264d01
-rw-r--r--test/core/json/corpus/648c3f58ecc8fb4b8c779e6b11006ab5b1986dad1
-rw-r--r--test/core/json/corpus/66328e03a2ccd5e54dab23b816182786e6f518b61
-rw-r--r--test/core/json/corpus/683e9045bc95e0cb5fc16ec64b118433475ba559bin0 -> 4 bytes
-rw-r--r--test/core/json/corpus/689f13680f4682303c8aa6828b67955959dc96691
-rw-r--r--test/core/json/corpus/68c6ba7f0602a5410d1fa3c5de24fe264436b9931
-rw-r--r--test/core/json/corpus/699cafde80b1e1777306f781186d1253f018ab231
-rw-r--r--test/core/json/corpus/69ab053b59e235fd6af246c5180f15bd952951131
-rw-r--r--test/core/json/corpus/69afa12510b2e653b0af7c7030832647b2d63c371
-rw-r--r--test/core/json/corpus/6b75857f86be5c51b21a97f4a61e69e8bb6cd6981
-rw-r--r--test/core/json/corpus/6c75e71ecde9f073a7bad89f4831c8cde0bc18301
-rw-r--r--test/core/json/corpus/6ce5170dc4f2eee3b31a875b6a41f2444959f3dd1
-rw-r--r--test/core/json/corpus/6d2859436fbbee637f0a5981ca82e8f88a1d0d281
-rw-r--r--test/core/json/corpus/6d63e39f56d1d537bab9c2830303cabab3cd90351
-rw-r--r--test/core/json/corpus/6e05a0a240fe2974e14527bbe390d294564156e21
-rw-r--r--test/core/json/corpus/6e6c9d301adb0f0ddffd79cdf3426a2de99bad482
-rw-r--r--test/core/json/corpus/6e989edf725ec64849377681ce02641c3d1870e81
-rw-r--r--test/core/json/corpus/70142f66475ae2fb33722d8d4750f386ecfefe7b1
-rw-r--r--test/core/json/corpus/719edbe667ce2729ac78a22dac29263c911440291
-rw-r--r--test/core/json/corpus/71f99ca2bda6ef2e15b965479a79587f9d794be01
-rw-r--r--test/core/json/corpus/743e89b768af4bd591ea7228118550b1bfb8e7d11
-rw-r--r--test/core/json/corpus/7714a1a32872442a2eaff472685f3ea69451a7321
-rw-r--r--test/core/json/corpus/7719a1c782a1ba91c031a682a0a2f8658209adbf1
-rw-r--r--test/core/json/corpus/775e8ffda1f5d340dba472d06dc7c8bf8159e3791
-rw-r--r--test/core/json/corpus/77de68daecd823babbb58edb1c8e14d7106e83bb1
-rw-r--r--test/core/json/corpus/7957dc9aac31e6a6783fb3a6ee073688fed6cf9d1
-rw-r--r--test/core/json/corpus/7ae893cbbf9b11ff411640b80985ce618907559c1
-rw-r--r--test/core/json/corpus/7b20ac50954063e3ad00813acab4a98b2bfdb8581
-rw-r--r--test/core/json/corpus/7b6273145fb090de1c6163586f884a1da4b5cfbf1
-rw-r--r--test/core/json/corpus/7cf84b5a78281e6c6b5a9884110f3dbc6a40e3102
-rw-r--r--test/core/json/corpus/7ef13b83e6bde582d9000be043e729cd3221c1501
-rw-r--r--test/core/json/corpus/82059e250904b478f65daa0e647c1647ba6d6a3d1
-rw-r--r--test/core/json/corpus/8207fdf4bd302d6b6b1894990b353944a8716aa71
-rw-r--r--test/core/json/corpus/831a49ad81b59025c241ac9e58bd88463fd798eb1
-rw-r--r--test/core/json/corpus/84582c1dbe026475319df14c19967d1dd0bf751f1
-rw-r--r--test/core/json/corpus/860d4ad0b7c026d1fcf51932b5e46500be7860a62
-rw-r--r--test/core/json/corpus/865c7cf36a4f4499a6242e51b77b58b868a7447b1
-rw-r--r--test/core/json/corpus/87a2b80f9272583517c0207af176fc40ea55022c1
-rw-r--r--test/core/json/corpus/887309d048beef83ad3eabf2a79a64a389ab1c9f1
-rw-r--r--test/core/json/corpus/88d89860ccaf21e5f0f002303a2cd853ecbb2acb1
-rw-r--r--test/core/json/corpus/88f658400b1870ddf081fb03020c3098b0b1e0831
-rw-r--r--test/core/json/corpus/88f8b0984bb2f081918ad883c8f0ffacb5a8ff0a2
-rw-r--r--test/core/json/corpus/89304953495f060c7abd3584d83cb1c8e6d6653b1
-rw-r--r--test/core/json/corpus/8a5f6dc6873e3fd51fd866854d85258f8aa83a022
-rw-r--r--test/core/json/corpus/8a87261277c15667e2957dd52c5db6757ebc8e881
-rw-r--r--test/core/json/corpus/8aa61d8bd260942521bb1ba82cd4cce2324fdbee1
-rw-r--r--test/core/json/corpus/8d8874439569824e371a0284460440175cdb8a271
-rw-r--r--test/core/json/corpus/8d952ec2e33b2a6a1c7876898719a610f55463881
-rw-r--r--test/core/json/corpus/8e6fec8a05b24f221b6e94fdfe205e5bf7709a2c1
-rw-r--r--test/core/json/corpus/8e7fda77644ff91578d25243fad51a3cd6d608601
-rw-r--r--test/core/json/corpus/8ea6295ff82bb119acd44a91b463b19fedafb2261
-rw-r--r--test/core/json/corpus/8ee51caaa2c2f4ee2e5b4b7ef5a89db7df1068d71
-rw-r--r--test/core/json/corpus/8ef4dd9f2d0f9d770c937d9a43413d24df83f09b1
-rw-r--r--test/core/json/corpus/8efd86fb78a56a5145ed7739dcb00c78581c53751
-rw-r--r--test/core/json/corpus/8f0ba762c2fed0fc993feb91948902ac397b09191
-rw-r--r--test/core/json/corpus/8fe81e450694cac1eb4c4a5c966ffbc56ade35131
-rw-r--r--test/core/json/corpus/902ba3cda1883801594b6e1b452790cc53948fda1
-rw-r--r--test/core/json/corpus/910a1528b28ebc6ff2f2a4fedb013c86de4103e21
-rw-r--r--test/core/json/corpus/92049bf3d8a0ec93c2d1633631c0082e66ca69e72
-rw-r--r--test/core/json/corpus/920a3c318f3127b9c30ab02a077555c7dfbb6edb1
-rw-r--r--test/core/json/corpus/925fc05dd661aeb4a776dcbc5df3dcb2cefaf0a61
-rw-r--r--test/core/json/corpus/9367ba65affd5bf7aabf79c28e783cc5d93518e81
-rw-r--r--test/core/json/corpus/939f5049b1eefb91ccbd3fcecaed8cb21ea6b2851
-rw-r--r--test/core/json/corpus/9405c2b00eaa5526f71cc78914dbd3ecaf093b6e1
-rw-r--r--test/core/json/corpus/94d3598751569d2a5be258e59665cbbf0692dfbe1
-rw-r--r--test/core/json/corpus/94f96d95d01e98fd2f04ce26c0913e5f9a882fb41
-rw-r--r--test/core/json/corpus/95b54a84db75abab401d282fdb04440a879a97081
-rw-r--r--test/core/json/corpus/96189202e587ec951d5795da3e03062f2fb5d7081
-rw-r--r--test/core/json/corpus/9711703428704ce2827a719eddb9d54be23a0cb71
-rw-r--r--test/core/json/corpus/9734597e96eebe99b2243121a51d178a338ec46f1
-rw-r--r--test/core/json/corpus/9747c85a9510011bf87c23a80b029b9f2d04c37d1
-rw-r--r--test/core/json/corpus/97d170e1550eee4afc0af065b78cda302a97674c1
-rw-r--r--test/core/json/corpus/98e02e7fc96479e8d10ff2cc7610be772e2d6fba1
-rw-r--r--test/core/json/corpus/996156b191b619eff79b2fcbb7598518a09b06bc1
-rw-r--r--test/core/json/corpus/99667fcfa6d583a742fb5450527fc86dfb78ebbf1
-rw-r--r--test/core/json/corpus/9b1ead2dbeeb1a3e9a7bebcf6964c3cfbc7e88671
-rw-r--r--test/core/json/corpus/9b7669e201574bfb979d56110539a90da5aca2c01
-rw-r--r--test/core/json/corpus/9c24b456af3cb51a1ff2780c2d9cbdd7d93f6c761
-rw-r--r--test/core/json/corpus/9d0441f23ae7d5a3a5b1140497868ee6eeab656b2
-rw-r--r--test/core/json/corpus/9d890bd3139a8f9a44d435ff8edfbeb5b072ded02
-rw-r--r--test/core/json/corpus/9e6a55b6b4563e652a23be9d623ca5055c3569401
-rw-r--r--test/core/json/corpus/9ec88420ef0408642f6930996e35f5b9f18ec88c1
-rw-r--r--test/core/json/corpus/9edd067c569315d5e93b0d14c7eac9fa6d81d3cd1
-rw-r--r--test/core/json/corpus/9fbda4f714043d975389b536b4497c6d713452e51
-rw-r--r--test/core/json/corpus/9fc8cb8ab3b05e306e5e81d9d949e69f931244eabin0 -> 3 bytes
-rw-r--r--test/core/json/corpus/a02b857f2eff73e8e188f35529dd91f8144b23b91
-rw-r--r--test/core/json/corpus/a060d5bfd1235cbbe4bcecf332fa3b03bc2282e31
-rw-r--r--test/core/json/corpus/a0931fae1d43e7887c1cabde83fdfc52eaeedba81
-rw-r--r--test/core/json/corpus/a0d4af29c6c223b48fe34d6a09b3a7466242f33c1
-rw-r--r--test/core/json/corpus/a1abe8a785030d475a7350438fd23a05c382c1102
-rw-r--r--test/core/json/corpus/a1fb86293eac950c2b4f5182d9e4b5d9e0982ef61
-rw-r--r--test/core/json/corpus/a2d4e3d6f5ba43c9199d5d2011678f82cfd55afc1
-rw-r--r--test/core/json/corpus/a39653cb3d97c58c44013197f4d75575777001771
-rw-r--r--test/core/json/corpus/a4c74ad56ae0e94e96101a8f2ce9b1e588df5e441
-rw-r--r--test/core/json/corpus/a6b34b06b00e9226f2bd961483f9da81d8de99a81
-rw-r--r--test/core/json/corpus/a72c3b9cc71eb7f0e0e4dabcd2dcd2b997f21c071
-rw-r--r--test/core/json/corpus/a749d24bac55bc19465acc92b12244c56ca0f20d1
-rw-r--r--test/core/json/corpus/a78009ff8b3f4d722ee0eb84795e857e74a58aea1
-rw-r--r--test/core/json/corpus/a7ae4b16677806d78d0016c276b6722eba8eef3c1
-rw-r--r--test/core/json/corpus/a806f43dd48e35e75c27814c13a2a96c12449bd11
-rw-r--r--test/core/json/corpus/a90a858013f90d2a94e0d62a7156ffd6848bf2381
-rw-r--r--test/core/json/corpus/a94bfbfe16d026b52d7f73cf78fdf7d6a6c5c58b1
-rw-r--r--test/core/json/corpus/a9718f029d11a9335ef596cbd42794de5b0b18b51
-rw-r--r--test/core/json/corpus/aa6e08a488d1ed00aa51f20c2477fc89e7b0a8522
-rw-r--r--test/core/json/corpus/aaa038513c192fec501e4e7302156872ce2fde372
-rw-r--r--test/core/json/corpus/ac2686c095a5a1c92a1d4209a6c287778720c86d1
-rw-r--r--test/core/json/corpus/ac3478d69a3c81fa62e60f5c3696165a4e5e6ac41
-rw-r--r--test/core/json/corpus/ac9231da4082430afe8f4d40127814c613648d8e1
-rw-r--r--test/core/json/corpus/adc83b19e793491b1c6ea0fd8b46cd9f32e592fc1
-rw-r--r--test/core/json/corpus/aff25e569bd8c93157e08cd18ebcd896438e34c91
-rw-r--r--test/core/json/corpus/affced8168ec801de89deac663f708f0c96cf1a41
-rw-r--r--test/core/json/corpus/b015dfc2f62b640d7c25adab7b38c5fcb5cb64c81
-rw-r--r--test/core/json/corpus/b021dd7cd98b63092685ea092df0dc01c8f633341
-rw-r--r--test/core/json/corpus/b17485b8bdec8809b3819a83753ca893871df4031
-rw-r--r--test/core/json/corpus/b32ef51eca9c6c658e6fb75fdf96bbba066404e71
-rw-r--r--test/core/json/corpus/b3f0c7f6bb763af1be91d9e74eabfeb199dc1f1f1
-rw-r--r--test/core/json/corpus/b45a1635ec526bcc890f9d735976704e516c5f191
-rw-r--r--test/core/json/corpus/b50ce51a7baa28cd298ebd05b4a3b9b70f9d43701
-rw-r--r--test/core/json/corpus/b5126721812b925426b30d283d2bb8b6969f230a1
-rw-r--r--test/core/json/corpus/b57af943a3ee411bffeaa3872eec9c6fb01569a41
-rw-r--r--test/core/json/corpus/b5abf6fd22ed0f852781de35d043059d0f86f3cd1
-rw-r--r--test/core/json/corpus/b6589fc6ab0dc82cf12099d1c2d40ab994e8410c1
-rw-r--r--test/core/json/corpus/b6f19238d2b04c5b86a17369093dafda34f332e72
-rw-r--r--test/core/json/corpus/b858cb282617fb0956d960215c8e84d1ccf909c61
-rw-r--r--test/core/json/corpus/b9c38fad09c80db7781fefbe51039752de575ecc1
-rw-r--r--test/core/json/corpus/bb407c8992800444201dccfe744dac49c0295fde1
-rw-r--r--test/core/json/corpus/bc335734f73502b92d2bd3587259ce915985f0ee1
-rw-r--r--test/core/json/corpus/bd113c2c8a2328e3674c680c7cff829a6c8ab9241
-rw-r--r--test/core/json/corpus/be051d58015d4af1977a5dfd14ef3fd070ecc9d21
-rw-r--r--test/core/json/corpus/be461a0cd1fda052a69c3fd94f8cf5f6f86afa341
-rw-r--r--test/core/json/corpus/bef524502f8dbbc45af717ece01ec88edd7f903b1
-rw-r--r--test/core/json/corpus/bf21a9e8fbc5a3846fb05b4fa0859e0917b2202f1
-rw-r--r--test/core/json/corpus/c0b6a90832b78ed5f6d129d3640c612540527c851
-rw-r--r--test/core/json/corpus/c18d315f0d35849b2aae4a47cab4608204b85d762
-rw-r--r--test/core/json/corpus/c257fd6bc9e5254a733378ab4ddd39629c4a30691
-rw-r--r--test/core/json/corpus/c2bf7f49d8f2e13a60af4473b3b3451b65b3aa9a1
-rw-r--r--test/core/json/corpus/c308517acf6f7088634d491a1608240f83a3ac951
-rw-r--r--test/core/json/corpus/c3badd71ef8a51b97ce93cbfe99f6778048f21281
-rw-r--r--test/core/json/corpus/c482a632702ae7f532d126e70149dda4fadc3cd71
-rw-r--r--test/core/json/corpus/c541bb86e55b98e083b141114066f9c17d8533741
-rw-r--r--test/core/json/corpus/c5b50b9015b6aaedd7eb1077b1204858f837b53c1
-rw-r--r--test/core/json/corpus/c62ef0dbd1350da9ea5a32e56672d385837643e71
-rw-r--r--test/core/json/corpus/c7a34d6d49e1da1ccd490350c2df3a168ed09ae83
-rw-r--r--test/core/json/corpus/c88c4bec8d440c56d3ea7abce39276f0927dbe0a1
-rw-r--r--test/core/json/corpus/c92f147bfc034003ac42ed9e62a16c84102ab4171
-rw-r--r--test/core/json/corpus/c96b0fe6034668edf37ef0f5f391d5107953dc061
-rw-r--r--test/core/json/corpus/cac74aa5d7aab7fce0253f00c1a025980c1f9b7a1
-rw-r--r--test/core/json/corpus/caea0a0e6d8708cf682eaa446c344da56a7d55151
-rw-r--r--test/core/json/corpus/cc8a3dd2678d4b400ad630f402012b894e841b051
-rw-r--r--test/core/json/corpus/cd851bec7adad52f79777fb9347d5fd2f9486aa71
-rw-r--r--test/core/json/corpus/ce3899b62ba3efe00eb31ddad2861ffe16a30d061
-rw-r--r--test/core/json/corpus/ce8b76fdcdbf1c951afc2b115be9acc8a6358b321
-rw-r--r--test/core/json/corpus/cec87b67871fc7a59652bc3546fbbb68e4d31e282
-rw-r--r--test/core/json/corpus/cf32406111908544e504c84731147f072cdf2fbd1
-rw-r--r--test/core/json/corpus/cf35dc76bf9a2052636c1ecc92942161830dcdc31
-rw-r--r--test/core/json/corpus/cf6a5e6bfe4f15b43e411dd2782e10f1670c97671
-rw-r--r--test/core/json/corpus/cfc45616f5f0e7c25df91f6984ff5f6f1648beab1
-rw-r--r--test/core/json/corpus/cff891e5858ae68d08ecc8470ca6a68c9438bfa31
-rw-r--r--test/core/json/corpus/cfff4e9d08cba81b663dd1999710008342851e191
-rw-r--r--test/core/json/corpus/crash-f21867fe8b6df0b54c13e2e6e613dce871ecf0f01
-rw-r--r--test/core/json/corpus/d1db03c626fb16c3b9cd44cc38cf40ebd355a1941
-rw-r--r--test/core/json/corpus/d85ca051da784c0441898c5affbf11a2ae8f56bc1
-rw-r--r--test/core/json/corpus/da03f536ceaf609972aa2a699687cc6f73ac0dcd1
-rw-r--r--test/core/json/corpus/da4b9237bacccdf19c0760cab7aec4a8359010b01
-rw-r--r--test/core/json/corpus/dcc45e405208d7a2db33d0b5b9da2a2f1b0349571
-rw-r--r--test/core/json/corpus/dcc60d3aaa1fc4d00201a3512284fcb79b5b68efbin0 -> 13 bytes
-rw-r--r--test/core/json/corpus/dd0567ae57bf3cc85891a1ca988c2945d91866781
-rw-r--r--test/core/json/corpus/dd890a5a32e9f0489c6c77695f2155041f00fc9a1
-rw-r--r--test/core/json/corpus/df88e2baf7b76ffb2e94b9da57fd8d137f44b1ef1
-rw-r--r--test/core/json/corpus/e00ee378c3f6e0b3cd89bd6e7517478d093f73dd1
-rw-r--r--test/core/json/corpus/e0c124e90d068e2a70a3e148052869033453ec581
-rw-r--r--test/core/json/corpus/e0d87b1f3e54e5adc5c2205f9e14772822a257661
-rw-r--r--test/core/json/corpus/e1199df649697c570db5d6b2ea09d755eddd32b71
-rw-r--r--test/core/json/corpus/e235f6f2a8b6a22117f1baa932fb6c69799e11361
-rw-r--r--test/core/json/corpus/e3a654055a867ae62d8e68fa2c410228ac55cb6d1
-rw-r--r--test/core/json/corpus/e3c680aac46b9c46392e3b2c43ecdcc1547f20231
-rw-r--r--test/core/json/corpus/e3d134b35cc25a4861d90023c95988ec6103ddd51
-rw-r--r--test/core/json/corpus/e3ff65de4b1622315c3b34b7a5e39bffb275489d1
-rw-r--r--test/core/json/corpus/e4a4085cc31476f5de9047422851d8ccf86339df1
-rw-r--r--test/core/json/corpus/e4e3c69da200af932c8a79fa055d7aeea28eb1d11
-rw-r--r--test/core/json/corpus/e6c3dd630428fd54834172b8fd2735fed9416da41
-rw-r--r--test/core/json/corpus/e71eb37fca2070521e1e07c503c2bcd6445b35ea1
-rw-r--r--test/core/json/corpus/e760e6e22ae8cd1ea78fe28b5eb1f3d7b5fdc5361
-rw-r--r--test/core/json/corpus/e95ff1142118a2ca5b84935612a8a64d55360e641
-rw-r--r--test/core/json/corpus/e9c5e2c67930513941753c2d54591c7098c82f6c1
-rw-r--r--test/core/json/corpus/eb26070d17ffa908204912e75cb43138350420381
-rw-r--r--test/core/json/corpus/ebc6aee49e5ae57722df86e7fa33c420f045a4491
-rw-r--r--test/core/json/corpus/ed1dc11d713e7487de18ce8317b62916959206d01
-rw-r--r--test/core/json/corpus/ede3f66106acd7796da8b3942d029fe2130582861
-rw-r--r--test/core/json/corpus/eed7bd220cd511b6d42ce6553019266a22a3d56a1
-rw-r--r--test/core/json/corpus/f090932162756b798b1a050b05e3d36a3437c4fc1
-rw-r--r--test/core/json/corpus/f1905eaa84ba6a3593ec6ac0486a5b42893c01f11
-rw-r--r--test/core/json/corpus/f4635fbbf765ead81a261ca152df02622e182d2c1
-rw-r--r--test/core/json/corpus/f46eeb1020c7c4153e742a50bc24c2c6939dab1e1
-rw-r--r--test/core/json/corpus/f473451610783521d51bc08cdd920ddd97f8a71f1
-rw-r--r--test/core/json/corpus/f63aa599600f6e7d648c4287905e16e8e6e479fd1
-rw-r--r--test/core/json/corpus/f667dcf1c06e87db2dc49d86ea1c285e796f8f8c1
-rw-r--r--test/core/json/corpus/f8d0f85975e49b959799cc52847110cc940b9db11
-rw-r--r--test/core/json/corpus/f92c47e35da42d79a48beff54b93cd28f55f05fb1
-rw-r--r--test/core/json/corpus/f9a33bb8bd78d869fbafa402d9be58940ce2c3181
-rw-r--r--test/core/json/corpus/fbf6f3156c1bd4bb701839bc0e26533bdccd1c9a1
-rw-r--r--test/core/json/corpus/fe2ef495a1152561572949784c16bf23abb280571
-rw-r--r--test/core/json/corpus/fe5dbbcea5ce7e2988b8c69bcfdfde8904aabc1f1
-rw-r--r--test/core/json/corpus/ff8fb34603c7f772768d61504954553e6bed173c1
-rw-r--r--test/core/json/corpus/test1.json1
-rw-r--r--test/core/json/corpus/test2.json1
-rw-r--r--test/core/json/corpus/test3.json1
-rw-r--r--test/core/json/corpus/test4.json1
-rw-r--r--test/core/json/corpus/test5.json1
-rw-r--r--test/core/json/corpus/test6.json1
-rw-r--r--test/core/json/corpus/test7.json1
-rw-r--r--test/core/json/corpus/test8.json1
-rw-r--r--test/core/json/corpus/test9.json1
-rw-r--r--test/core/json/fuzzer.c87
-rw-r--r--test/core/json/json_rewrite.c2
-rw-r--r--test/core/json/json_rewrite_test.c2
-rw-r--r--test/core/json/json_stream_error_test.c2
-rw-r--r--test/core/json/json_test.c16
-rw-r--r--test/core/network_benchmarks/low_level_ping_pong.c2
-rw-r--r--test/core/profiling/timers_test.c2
-rw-r--r--test/core/security/auth_context_test.c2
-rw-r--r--test/core/security/b64_test.c2
-rw-r--r--test/core/security/create_jwt.c2
-rw-r--r--test/core/security/credentials_test.c2
-rw-r--r--test/core/security/fetch_oauth2.c2
-rw-r--r--test/core/security/json_token_test.c2
-rw-r--r--test/core/security/jwt_verifier_test.c14
-rw-r--r--test/core/security/oauth2_utils.c2
-rw-r--r--test/core/security/oauth2_utils.h2
-rw-r--r--test/core/security/print_google_default_creds_token.c2
-rw-r--r--test/core/security/secure_endpoint_test.c2
-rw-r--r--test/core/security/security_connector_test.c2
-rw-r--r--test/core/security/verify_jwt.c2
-rw-r--r--test/core/statistics/census_log_tests.c4
-rw-r--r--test/core/statistics/census_stub_test.c6
-rw-r--r--test/core/statistics/hash_table_test.c4
-rw-r--r--test/core/statistics/rpc_stats_test.c8
-rw-r--r--test/core/statistics/trace_test.c8
-rw-r--r--test/core/statistics/window_stats_test.c4
-rw-r--r--test/core/support/alloc_test.c2
-rw-r--r--test/core/support/avl_test.c2
-rw-r--r--test/core/support/cpu_test.c2
-rw-r--r--test/core/support/env_test.c2
-rw-r--r--test/core/support/load_file_test.c2
-rw-r--r--test/core/support/murmur_hash_test.c2
-rw-r--r--test/core/support/stack_lockfree_test.c2
-rw-r--r--test/core/support/string_test.c2
-rw-r--r--test/core/support/sync_test.c2
-rw-r--r--test/core/support/thd_test.c2
-rw-r--r--test/core/support/time_test.c2
-rw-r--r--test/core/support/tls_test.c2
-rw-r--r--test/core/support/useful_test.c2
-rw-r--r--test/core/surface/byte_buffer_reader_test.c2
-rw-r--r--test/core/surface/channel_create_test.c2
-rw-r--r--test/core/surface/completion_queue_test.c2
-rw-r--r--test/core/surface/lame_client_test.c2
-rw-r--r--test/core/surface/secure_channel_create_test.c2
-rw-r--r--test/core/surface/server_chttp2_test.c2
-rw-r--r--test/core/surface/server_test.c16
-rw-r--r--test/core/transport/chttp2/alpn_test.c4
-rw-r--r--test/core/transport/chttp2/bin_encoder_test.c4
-rw-r--r--test/core/transport/chttp2/hpack_encoder_test.c13
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/0141fcddc9807ee093313b2256f1306fbbdc6cda1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/0255050a9ccb25f46d6c1bf6a5a8a4c0c7635599bin0 -> 27 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/0320a995a8c76c64c8a0e0297f632b76d9bc92d61
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/042091aeac4cc255506b96fa11c7354e699fde761
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/0696e7bf7837d98de01c915d3c9d80e5d21b30d21
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/06995c2f3f01c7ec50547415dc324c64030b7a3ebin0 -> 4 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/06f7ce769fe07804fc842462d4be8c1aa2ba82c21
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/0781b055c85ab8fbd0a3d0080a32e394af8761c41
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/080e1f19e6061c5bcac31add2095f87f6ce461291
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/0828169ba82152a8907f1001e3d98804397d46101
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/08ffc4a4160e9fe6f322c28870a89a41fd9c37d7bin0 -> 37 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/090a7a758898a6e7c9108b7e8a1cb9cda383e7071
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/0940663729501b750a18542e1041cc26385c61481
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/0a10bd140c6c5fb109a0816ca061739688a6db9abin0 -> 24 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/0a4d3fda02cdcb7adad1daa80d65780c9c8d1464bin0 -> 50 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/0ad812832efa33e086874fbf3496664d3f1b4dbebin0 -> 39 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/0c9996d4fef87bacd7a001e99a515b3ba3d5788fbin0 -> 35 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/0d6210208831fe55951af56cdeee3d54a91a53611
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/0d784965b2262df7ed7a1eb57b92a718cc76bde81
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/0dc9e41eedf35ccedf4e2b0d230ead7c4d72fdb2bin0 -> 60 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/0dd470c8939ed535de6b36f7b7bfb68aeace493e1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/0e61e471fa6d3405daef4276ee00cf5fc189f378bin0 -> 36 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/0e9196f951874edbb5ed098739ea5c8b6c0751c2bin0 -> 64 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/11442d93a554b9e7f9ab02782bbf9443bf6e1ddcbin0 -> 36 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/11833b795d04eda5a3af56ef7b3c3a26a8ee34441
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/141272316382b0f3e9ec841c735b84e7aa517c3e1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/15ae43369798e48c396dfe7d53a21878b96e66c8bin0 -> 44 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/166bf1843c229d34a2880d234dd166c27bdc11fd1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/179e8ac763b4051a953a38b6b3b1f1e1f6cc6c9ebin0 -> 14 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/17faf0ba8a491a835d35977a9007b90ab7d30d2abin0 -> 49 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/188f6cf2470e95b228341de305ef839b27f01a5c1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/1ab3e52adace335d02e2b5130eb4f7c918add7fd1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/1b5150514364e2c17f5a4edac1b7af99b936f55abin0 -> 48 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/1e8befb98cbaba059d6771abd1680e19484e7723bin0 -> 27 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/1e9b962969c359bc2ff766704c8ca8e25f5eccfcbin0 -> 31 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/1f80af104acf41b912bf4a48fb938267e37187191
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/1fcc4afd6f48e83d61ea74970df3ca9dcd8ec291bin0 -> 48 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/213a734ccdb813b18ad9f2dd99b7f9967ee1460b1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/2151945f43991c27e123c45dc72b93752a47e65f1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/21545d998c27a5a1572a89a552937752432b1c141
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/23c7443fa1ab713e7c34ec50222b1b8cceaedc651
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/2445bb2c6779712dc9e14c01fecb7103f8732858bin0 -> 37 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/244b0a20500e31d3c538418800db816b07f4d2101
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/2461b9fa6b5bc4b6424dec5b9a18d4ec7c3091121
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/24ec2f3e17d3850564788f3fed17a5c586c44658bin0 -> 39 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/2537b8d6b902b8dfc6e17f194cf7d05ddecf74cf1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/253ad01acea4b7038edc3f2a8c4a0c0f5c4dcd051
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/256d0bbdbed22f5867a6f503bf082011e61ee12bbin0 -> 52 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/26f0e88adbd8f8cdf778131a35b33ecf8711fa491
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/2e5dd8fb9d2a31fad9d681eda697d085b647b57c1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/2fdfd2abf30c636ec8c841f1ac26594e25664f0fbin0 -> 47 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/311dac5092e36134d3490f98aa4207425e0ee9411
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/320fe6224a5b691c0425e34b6b14e8c6fe9f96201
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/3255f1c7441a7150dc3c33022bfbe8c956c7b7b11
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/33bc9db104eb72891fb096f34cbac191b3f9918dbin0 -> 36 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/342ff1db70a7616b4ef76c03a42802c6702c18cb1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/344c011df992ccfc0ec682c14a1cb2d7959998c71
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/35775efb9d0d68fa07987b9a84934389b528e4361
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/3650168db6fe115fb1e73eed4b76cd224d977d011
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/38228bf98cdb50fd3fa830ba5a9d4c7399063dff1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/38717bee901151b22a10beb12c6623ccc844d3c21
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/3a4bb427a85bdc5bf66ac71db073c99e0dc9f8811
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/3ab48621d9b8f075369099a8ec7517bd23fd6e701
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/3aec8d9311130dfbb6584fe6e619579c21992b5f1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/3b14837f22905dcb04f93aed2aa69bf95924fb9d1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/3be63c163805927e04fd7f84d96122c48240e6011
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/3bf2e349747c0f539181e0d4084a5fe506811a9e1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/3c5af4d73e94d0e8ad5666b6acb340f929031e951
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/3d2b25346a9671d83bd082d170a45eed739bae6b1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/3de7b860c3fba2bc55707fd6875dce276f2f249b1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/3e2004ff9f40e398e0f41138a25a8b66e3d843d9bin0 -> 38 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/3f8983e457033cc85997c356935ba9c21460e86b1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/4105669086d83a20f8d991088553ba08202478cd1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/4180619316eef7912d1cf52ffe85897242e1ae881
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/420291d7139d9246de747739fd98102434a742ddbin0 -> 50 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/4256437fc5897c0cd5d755816e4e68c7be326849bin0 -> 11 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/42b25a5413c536478a3e63da5adef4250babf2f4bin0 -> 27 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/42bef44ae751a45c671d9da5b1231d2ac747a48dbin0 -> 38 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/438c3c9045c3cf7910aceec34f77b47a70ca4abd1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/43af96b4f65ed0ace7236427f2f8833c4835989e1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/44c6119bb91a452d6128ce0ea0d62938800779ea1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/46d595331689ae01d77aff387747a98ff3480096bin0 -> 36 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/471a307b81dc37459087d41532741c5c9d7ba8361
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/48900b4a5557530922ce45c15ad0d3b0a337520dbin0 -> 24 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/48bcce2c6487b18706ef0c609ca39c456215bac81
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/49027bbd3f3f3cafa315843c8fe8280f86985273bin0 -> 38 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/499376c5e291da2f9c25999abf4960fab5a92ec8bin0 -> 39 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/4a3b7ce0cdf217963a0b692769e5d6f4befe73b8bin0 -> 39 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/4a3fdb96bc8c80f1992f0f72f963f84856cbade8bin0 -> 37 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/4aae80e05793d7adb42a7e6e8a5283b6773187771
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/4c7a034d3a3b4f29d99caf021a0e9bbb89706c2ebin0 -> 64 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/4ce8a43fb17a075627160812ad26c25210d8a82d1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/5032a75a98cd14d4dab75c1c5e2cd981abb19dcfbin0 -> 36 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/50b3f4b6aed97f442496d27f3b4315a18ba76d5f1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/51064b88a98658d48a0da7f1545c2d1293ad95381
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/51752f12d59fadaaa0dc72e6370612b84ee1555b1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/51eff6fcbfe1a51ceb3f5f2140c01eea89b4313d1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/51f65f681cf3a1218d83ad58642c06deaea862101
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/521809903d36db80b1ccd707f354361f2bf05075bin0 -> 25 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/52fe8f0e1fa270ea16f66c93f2ffab265ce059e81
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/53de87ae94acdc8e58a369459c12a3240f1294fe1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/54a2b3993c3483745f6314c870a038a8e58f97a7bin0 -> 38 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/55d60c2e5040a38be8ca41de63e137e3fef892a41
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/5653c44a5b520bdf2bdc599b7966f1d7c44950b31
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/5838b5a683229ebb6e6277e2810863e642b8afc2bin0 -> 16 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/588d225784891ac88e30ac6eb5651d63fac340831
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/58d51c21a20b6549567a0ab8fee29d162dd3fc5a1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/58f1036d8ff855841ec25b3c33e85a8fec0d94b71
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/5a99df42fb7bbafa2d55714ee235b1c46776b2ad1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/5b42793550699b2c015bed677cfcddc052f735131
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/5b8ca72ba00231c38b19f582127e6a146eba42821
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/5baa13dc95da05e7ba02bbe9583ea24517a29a1a1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/5bab61eb53176449e25c2c82f172b82cb13ffb9d1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/5c6f6b6f7f3e7b435f060abb73c20d2b773a7f561
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/5c9fd9cc7100feaeead1e0e45201945a6e76fd85bin0 -> 38 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/5ff49c9edc7361797a951585f3e180222c8dd95d1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/6129954942e26c2a9ec071b6659675745613cf3cbin0 -> 40 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/61fa69b6b51b0ed91914fe48779173f8d26a1d541
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/6362ac61cfb6e964aff78f3cd648475dfd5fd4e91
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/644deba51c79b6ebd470bd4367452941045d112abin0 -> 35 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/64beae98e2276749b133e6368c9e0f19a79eba961
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/64d7add9192301fd878854dc96f9fa9053f039921
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/65566df65e8f55428b6672cc351df414fa8f936c1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/65bb703af35d5afb824cd68c41d7a1aeb3848d351
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/66c537bf59cb3667c037b3517be3d31245c9da8a1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/66f576baeb0c9435a56eb7375dadc5b5d630ed871
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/67b4cec5183659aeae0f5bc71b3adf0542a11828bin0 -> 35 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/68c94721eda2f62481bff9f1d183df70498d0c5b1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/68ee8169a65d58edb9fc1c752ea81dfec383203c1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/6b203d49bbba6ee74def0d35c2266e06ad3c45d9bin0 -> 59 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/6d580f28d785c0bf87ac351a31a89289449feadb1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/6f231dec759eb2105e09263d53e171de19a92c74bin0 -> 43 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/70ff6621a09e4f641538cb1b27e8b382b2f56a941
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/71981b55f27a1eb6274eda247048fa2c597f50041
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/71c2b0bebf7f0e916e4ab7eb36d47ccca2b9101cbin0 -> 48 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/74610e278a5b90aa12ce1beaf222c4306b02ed431
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/748ee9817eba56ec9938601a0e380c74bad4563f1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/7727e3eeb2a48c46bf5a678c300ff8a38b8ffe3a1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/78176d80c1d74c4b1b820d386ae483ac4d1d92b71
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/789abb571563a6795220046f76b7cf0ade90743c1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/78f5ff40e5554aa9c31b45f79a7ae9699f93e7fdbin0 -> 47 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/7a28fc2e9c72d51d29e87eed63ed405c9779b5e11
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/7a42083be21dce7f96edef1f3b3b2fea0bcaeb3f1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/7a51275b11ecb1efec9251390531681c8d6f2481bin0 -> 11 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/7b9682cd7a3984698f6eac034c59c0f91b4fb83dbin0 -> 29 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/7ba7239a29d6183960e3986abc8f19cfb548b9051
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/7d3b3d5f23d0ede9f7e5dbd1115db58c8a54a2131
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/8035c81c95dedfc27c3649064f98f49e3e72c21fbin0 -> 37 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/804e1052842ce4d44b9c775ade2b18fcb8ce7bcf1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/80514b85933ea9bdd3462595f949c5af24409b871
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/8057c32b8bd28a5ec2105d62f2abe8cf69c9f5fc1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/806a3bd4e078d91adeacedfd3e47ef8ae229244a1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/8090444f98218e65ff9594789ff22bbea3c0497c1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/80e516692955d5f224706f268e247858858e16d8bin0 -> 56 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/810a1372fa97380265f5529c5043ae96f007f5bbbin0 -> 46 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/8127597d3c146b2a89579e44daef9d03a0f941ec1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/82ed571f8922caa572d13b4cc9b5c5fabafaade91
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/8328e86178800f87a3bf6f80749984f45b0cd0e81
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/84441efd7d8bdb0ce2fac28f218d3d5d4d77f1d4bin0 -> 40 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/84cbf70f45a64d5a01d1c96367b6d6160134f1ad1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/85eb0f4502a51e646dab4ae08eabd90613cdf8e1bin0 -> 40 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/86080f33e4eae21b37863c253ce61eaa13021a97bin0 -> 49 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/862e3ccf601ee0f7fbd8b23e6811fd50485a118f1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/86bae059b18af8ae263e5ae0022b67da0cfc0fbe1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/870f9cc4bd89c6c04c6a51ceae1efa8634627cd61
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/8762a523cdb78d2344d553fa52a229bd63c44e511
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/894211571f9153c3c2ea4102541dac69be8aaa9cbin0 -> 15 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/894e9b7832c52acb04bfa994ef53c7105d8db2061
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/8b0e12978b8e2eecf62346e438e47d09938456931
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/8b3fa0bd4f289eff6a04a5205e04baaeafbdf6371
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/8d1deedd1e463f8c95129a6f839c380a7c83ab041
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/8d1e029bd72381e382c87e61b4c5a9741d80d644bin0 -> 36 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/8dd1983889b6632228d4897c365a1e6124d101e1bin0 -> 37 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/8dfc2183691385432f92957cff0b2538e5a0ebfabin0 -> 50 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/8eb9b86b4f0aa79b8ef84b44e1fb03094e7bb426bin0 -> 24 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/8ec540c36da3814e93da765bf2ff0825b59c1bd01
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/8f1bec32f4b8e64062f5405a096543e61d771076bin0 -> 48 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/8f3e48c49d0794909f6e8e61e5a4312edf484c33bin0 -> 39 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/8fbbf3c0eaa25b64d0a97a8ee08006539e6491991
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/907d0021d42d0fdc867fd02d3609cdce13c8a0551
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/919511c217a3427c22cad4a71aae31a6cd47b193bin0 -> 63 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/9267c81c3283da8193c198de05e05fa30631a4531
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/92e80997a4237d76f10b70dae2870b7255c974351
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/935322db76f5d4c74c2dc68fc4631915b8e243231
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/939f2627ef6263d0176566de267ff3eb910e6a601
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/94adea6a0d9a44bee6f5e88adcee57be9e9e3597bin0 -> 23 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/94dcbe0d3352bd9b230096b8dce9c6d8d63f9d511
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/95dad738f60e3e5eb0f1cdafd91ad461f4418e8fbin0 -> 38 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/960c0a21c9e5c1a61b93b34da3189b0de1c264dfbin0 -> 37 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/96903512b1f1dec08206123f024b62d0e31cd4dc1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/96a89c005e8d9992e34cc149b0be096ad0051446bin0 -> 51 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/97db8a66dd513eea47a5a25115508f4e599848541
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/98f2cb84ad89550cf56ee54e11f1448ae7287247bin0 -> 29 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/993497422a59b7f9f0f6db8c867339b5c9e4c9781
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/999821e3750a7f2c9db663d2d100b4404c2250401
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/99b2ed83be40cab431d1940e8de2dc3ebfe9352fbin0 -> 47 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/99e888b7372b29256dbefd476855ff73584cc00fbin0 -> 47 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/9b18087deb3cfafa1b964aa65d8ee980bc61404ebin0 -> 23 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/9b3c745ea3e313909a228a07b49aae110b02ae4a1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/9be1ce0ba77758928ff5e9c45139b1624cbe9c2d1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/9c703141efd69eb8f32a58133c8035fb585e0f4cbin0 -> 50 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/9c7f77981677499f0426a0ffb5cb79d5fe55dcb21
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/9ca59e6cadaa5be9af30dfe5620d1bcd70f442e51
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/9d139835d91474e8d8361d65698a31b8b38c4f7b1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/9e2179564a99e96e179c96f28802a0a2759b581c1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/9e56bb3b68d2e2617cb2d2f0f3941f7fc832e4621
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/9f318b2c2ff9cf4615bd06ba13bdd086b4ad08c61
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/9f8d90b1480989fc46ea2f1c66cf687638994587bin0 -> 47 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/a09db5715f0bc3879a0e18e4db5a6b5640b254a31
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/a0c59a090818bca29d76ccf9843f7e2faf330ddf1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/a1cf10478e5e01a0d951c743a3dd45aa5fc409f21
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/a22c0f03f8c005a4612a9dcbcd6a643334c35d2f1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/a3154b8ed26b3461f2b091c732da00b63ce8bed31
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/a84a1ed1a24e753a27adfd3ba806f06fc44f899fbin0 -> 39 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/a871e7ce66afd4f57702cd1299de06cd08995561bin0 -> 31 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/a8dc736ea964586b7dcbf2bc065ec4675d1daba31
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/a91a835836c72217824f0b63491d9b623130502a1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/ab97c1f6033dc7d96f69b9e1461fd594c16f4ebfbin0 -> 25 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/ac8a8c23acd8c290a11dc7828f7f397957fa64001
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/ac94b2788f5252f9e2e8502c7c75e04bef4c0b761
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/ad03b4f58470c43db6593a35be48989486d754f91
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/af417c83e831a96fda1bdde99a1af6509ef2df3d1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/affd292cd2ce3306b4651cc7ec0ec0524cbbae3d1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/b0587e6e319f4b56d877e7ed46bc7da9b1e7249c1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/b166aa66b5b3ad178bc38aee5768226c8adc082f1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/b1ade0571262c6e5f1d72f6d25ebb513d2055bc91
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/b244c690157ff21d073940ef8c77d1898f37cf8e1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/b523091ee4f17d20f51f9b5cf82293465cf617801
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/b7d4d49ac2c530eb8444a449feb689ee50fd210d1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/b855c161121bfa29c6fb22d3c0236fae4af6984e1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/bcaa71abf23b2e5130e0cc464755fe769bf4aaa71
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/bcf4684ce097faa7e9d99b6e93cc2de24f57aee3bin0 -> 7 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/bdca6504d2ee7925f62e176355bb4813447720751
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/beb208fd8675ba7de2ecb12998d2d628d579ca7c1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/bf0c98689ab81fc32787023300caf9a4175583dcbin0 -> 58 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/bf479e97b39b697e715663de6a1e78dd58d641221
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/bf826c96be94d1b42eea0666f7239cc5f699a3751
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/c17650d19ae4a48abb36739c83d8979453f5705f1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/c1e5307d88feda2c3b15fc221cba92bcf41622bf1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/c249f408c552a0408eab3fe1d1cbeca95cd537c11
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/c26b460aebc9082c519539069f7e0600429896961
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/c2eae71daad0d3561ab4d09b8b85372b8d790bc11
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/c37fda8d02e99132a1de99f959596c784ab8a53cbin0 -> 48 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/c4836760377a7091fb20f4afa9c712875792b9a7bin0 -> 46 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/c48caad597176404f776d532d4baf9faf7655ee2bin0 -> 58 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/c4eff0f59986fc5ab09d5bd95f394292f28826591
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/c5fc2086d167c8c3a7d9ec778db69c5fa14a59fe1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/c600877ce547166eb1b9d83afbe128d98767f8a31
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/c6a98fdaf6de78e59e1a149a43f3e42222d650b71
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/c8d22f7fb4f37f2d8cc7953fa2d599d38d899aecbin0 -> 36 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/c90951c19b24bac84296e3ec32cdeafe99e99cfb1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/c95ff2a172626efb50e94aa6781feba6098200761
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/ca6c557afb9c571de62e9b65ca6469a6133760da1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/cb2d0fb23f66c968af2e80d59f71d4c1aed96fbd1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/cc60a642cc2037ad3c459a57381b8f65d8d7aa351
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/ccd3b8aa26c52f6d9c607c26ebdf621142aff745bin0 -> 25 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/ccdfd1354997eb117bd76b75440a7e4ff20bf5641
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/cd7a7b8f08c189e95ae3e2ea44b9015000e823f31
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/ce05678d812a5f8ae8e115938410116ce91694561
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/ce6b642b81373f05baa2a6fe6e9d5d1387046285bin0 -> 38 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/cf84d06e4dddb997a79a41f9b6122bf620bbdb4b1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/cfbcc3e8cd65aa8b654688145ade34b8789468a61
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/d000502f32ca5620d7745f39ff6be3b547e26a6dbin0 -> 27 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/d131f83ee73450ff45565d0c638be7d8beeb30d91
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/d2817b89d7aaa7fa880c077b1a67168ec2f4f0f7bin0 -> 35 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/d3ccd7039dd34baef465c4b78baa7a30312a8f071
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/d4cfaf3b59b22b654d7af80ee6715ce5015bfdc0bin0 -> 48 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/d5670827c8e8d4c95ac0f738c0790c19916c03361
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/d59d7e94863f1ed89cacfbaabf7bc59946036c8f1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/d76d0c7f24ae3cc3f530d5306b8dcc15290c7ff21
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/d8b15e9e555ad9900ba4be8cc9f87bef75725b241
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/d9748abd540810c2449c3dd39a0ebb62754e520fbin0 -> 50 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/da9fc821f0c1e00728b139b36269bc3d21c0a8cc1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/dcd1bd94ad97b4e67fd7e12ff1bf7c039eb17f661
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/dd3ba9b139e13324fc76cd62af84b00ca8b872051
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/de0a9dce0ea4e4bfdcb13f788ae728bf979fed251
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/deb6f9a930d9b31586ede19fd8fd3caae0e5b1f21
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/dee95e0280b70681eddfb68e3b418126c5661e18bin0 -> 40 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/df01203edfa2dfe9e108ddde786ae48235624fefbin0 -> 27 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/df0adbe2523508e9afb42a58d98c2657710d6033bin0 -> 48 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/e05fcba1b22f658c8bd6f3c330b2b3c9faebf9771
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/e145caa75d73e3d819a9cb4b6217f1f53112f3f81
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/e1d86c0094657386197d191855b5645ac1dd5936bin0 -> 48 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/e25adf8de44f5978d00b7e8c52aee89c5cd1fe931
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/e29f05162e3d96d5549f96aa4a54c868535b28471
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/e3a970ac8636d29da3ded328b876ed3550cb32091
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/e3cfdc862187b4ec28bd4fb2ced5094bb5b09909bin0 -> 26 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/e4ce52007d001806fc9368b62c124dfc56e8471c1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/e52173f0bc3325629046e85e2dc41acc6ba7d1c31
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/e6589006e3bda4c57247ad66fcd73ac00ee2cbe21
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/e6fab7572fb2a1c6e107b6f83cffd103a233d021bin0 -> 35 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/e790f5d312957dbfd20abdefe4b1735779ff9689bin0 -> 36 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/e8809017a4cf6c1e80a93f661166ead961f26bb4bin0 -> 47 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/e9733e973c33b38c2087b7f1deb36688b3b142591
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/ea8134769855d574f6673bf0301eb2e24632c6eb1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/eb489536e4e5589a93a17cd36669475b8f2a5e1b1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/eb48ebd4d01e5623dd16ae61938b3333fab3ce781
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/eb6ca7624384239c7f7e0d83edb7cc334b7926d7bin0 -> 38 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/ec9457ad41ed745ea9377ffdb16ad09f981daa7fbin0 -> 48 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/edff5256a2d60d0e51caef25dc1d6f1643dad6d5bin0 -> 38 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/ee4d9c5d22512da42726f47213ff56404d1d81d1bin0 -> 22 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/eef2f30b5e2ecd98ebefb12d57aba8b4ad52d9041
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/ef23911de1a27d03d2d4983ca1527e17d6a7092b1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/ef5b7fc62a2daecf1e8f928b1fa3ebd028413a41bin0 -> 64 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/ef718258ca1870198e91a2fbc1eaa90b620673fb1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/efb46deb37a78f41dd760f6b7203b20956eb114e1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/efdd6824bd2456e3e408e0e84369c4fa3aa14f411
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/efec040a5de1969df5e37e4bc50a0a8f0de341d81
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/f1e30464c24dc1d7cec7ec1dd2adec8512232b43bin0 -> 35 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/f27a617b936814476770a3b31a5afb80d0f3b423bin0 -> 27 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/f3f0d99ac2962f8fddb25c65fb4c8c6eb63518a91
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/f4628084cf46f139babb886a782b4ab5977d5d2e1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/f4753e8881e4b3c71f2728149be7d04cc648f6a61
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/f4d6ff635ae4fda497221da4bfa3e593df59a44e1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/f52f4d51aaaed0f9c3a20936cf5efd25d0692f671
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/f7cf30724ab740918eee6e4a6b6658ae3d7706e81
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/f823828ffd2a60efee36f1de52cb0f024ac5b4bb1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/f8760761bd5ab7b47376bfbc5a44e16b2d5ca8001
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/fb15042c268625089ef6c8aa3d8a6f12d1d02c741
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/fc3dd4292d6884a770199596f5e9cbc1e869e5fbbin0 -> 48 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/fd34ec90fe8f9218fd25c3eac151aec998cff6d8bin0 -> 36 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/fdf548cde981fab4fb17bd63a124b75eddc5c8361
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/fe47fb18b064e26479c3c3140082bd01065e897a1
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/ff2097734bd7bb8451aece13c9336c4624735170bin0 -> 52 bytes
-rw-r--r--test/core/transport/chttp2/hpack_parser_corpus/ff7d6ff060e63355701b2e655c802902338497de1
-rw-r--r--test/core/transport/chttp2/hpack_parser_fuzzer_test.c (renamed from src/core/lib/client_config/resolvers/sockaddr_resolver.h)32
-rw-r--r--test/core/transport/chttp2/hpack_parser_test.c4
-rw-r--r--test/core/transport/chttp2/hpack_table_test.c4
-rw-r--r--test/core/transport/chttp2/status_conversion_test.c4
-rw-r--r--test/core/transport/chttp2/stream_map_test.c4
-rw-r--r--test/core/transport/chttp2/timeout_encoding_test.c4
-rw-r--r--test/core/transport/chttp2/varint_test.c4
-rw-r--r--test/core/transport/connectivity_state_test.c2
-rw-r--r--test/core/transport/metadata_test.c4
-rw-r--r--test/core/tsi/transport_security_test.c2
-rw-r--r--test/core/util/one_corpus_entry_fuzzer.c (renamed from src/core/lib/client_config/resolvers/zookeeper_resolver.h)20
-rw-r--r--test/core/util/port_posix.c2
-rw-r--r--test/core/util/port_server_client.c2
-rw-r--r--test/core/util/port_server_client.h2
-rw-r--r--test/core/util/port_windows.c2
-rw-r--r--test/core/util/reconnect_server.c2
-rw-r--r--test/core/util/test_config.c2
-rw-r--r--test/core/util/test_config.h2
-rw-r--r--test/core/util/test_tcp_server.c2
-rw-r--r--test/core/util/test_tcp_server.h2
-rw-r--r--test/cpp/common/alarm_cpp_test.cc2
-rw-r--r--test/cpp/common/auth_property_iterator_test.cc2
-rw-r--r--test/cpp/common/channel_arguments_test.cc2
-rw-r--r--test/cpp/common/secure_auth_context_test.cc2
-rw-r--r--test/cpp/end2end/async_end2end_test.cc4
-rw-r--r--test/cpp/end2end/client_crash_test.cc2
-rw-r--r--test/cpp/end2end/client_crash_test_server.cc2
-rw-r--r--test/cpp/end2end/end2end_test.cc2
-rw-r--r--test/cpp/end2end/generic_end2end_test.cc2
-rw-r--r--test/cpp/end2end/mock_test.cc2
-rw-r--r--test/cpp/end2end/server_crash_test.cc2
-rw-r--r--test/cpp/end2end/server_crash_test_client.cc2
-rw-r--r--test/cpp/end2end/shutdown_test.cc2
-rw-r--r--test/cpp/end2end/streaming_throughput_test.cc2
-rw-r--r--test/cpp/end2end/thread_stress_test.cc177
-rw-r--r--test/cpp/end2end/zookeeper_test.cc2
-rw-r--r--test/cpp/grpclb/grpclb_api_test.cc2
-rw-r--r--test/cpp/interop/client.cc2
-rw-r--r--test/cpp/interop/client_helper.cc2
-rw-r--r--test/cpp/interop/client_helper.h2
-rw-r--r--test/cpp/interop/interop_client.cc2
-rw-r--r--test/cpp/interop/interop_client.h2
-rw-r--r--test/cpp/interop/interop_test.cc2
-rw-r--r--test/cpp/interop/metrics_client.cc2
-rw-r--r--test/cpp/interop/reconnect_interop_client.cc2
-rw-r--r--test/cpp/interop/reconnect_interop_server.cc2
-rw-r--r--test/cpp/interop/server_helper.cc2
-rw-r--r--test/cpp/interop/server_helper.h2
-rw-r--r--test/cpp/interop/server_main.cc2
-rw-r--r--test/cpp/interop/stress_interop_client.cc2
-rw-r--r--test/cpp/interop/stress_test.cc6
-rw-r--r--test/cpp/qps/async_streaming_ping_pong_test.cc2
-rw-r--r--test/cpp/qps/async_unary_ping_pong_test.cc2
-rw-r--r--test/cpp/qps/client.h2
-rw-r--r--test/cpp/qps/client_async.cc2
-rw-r--r--test/cpp/qps/client_sync.cc2
-rw-r--r--test/cpp/qps/driver.cc2
-rw-r--r--test/cpp/qps/driver.h2
-rw-r--r--test/cpp/qps/generic_async_streaming_ping_pong_test.cc2
-rw-r--r--test/cpp/qps/interarrival.h2
-rw-r--r--test/cpp/qps/perf_db_client.h2
-rwxr-xr-xtest/cpp/qps/qps-sweep.sh2
-rw-r--r--test/cpp/qps/qps_driver.cc2
-rw-r--r--test/cpp/qps/qps_interarrival_test.cc2
-rw-r--r--test/cpp/qps/qps_openloop_test.cc2
-rw-r--r--test/cpp/qps/qps_test.cc2
-rw-r--r--test/cpp/qps/qps_test_with_poll.cc2
-rw-r--r--test/cpp/qps/qps_worker.cc2
-rw-r--r--test/cpp/qps/qps_worker.h2
-rw-r--r--test/cpp/qps/secure_sync_unary_ping_pong_test.cc2
-rw-r--r--test/cpp/qps/server.h2
-rw-r--r--test/cpp/qps/server_async.cc2
-rw-r--r--test/cpp/qps/server_sync.cc2
-rw-r--r--test/cpp/qps/sync_streaming_ping_pong_test.cc2
-rw-r--r--test/cpp/qps/sync_unary_ping_pong_test.cc2
-rw-r--r--test/cpp/qps/usage_timer.cc2
-rw-r--r--test/cpp/qps/usage_timer.h2
-rw-r--r--test/cpp/qps/worker.cc2
-rw-r--r--test/cpp/util/benchmark_config.cc2
-rw-r--r--test/cpp/util/byte_buffer_test.cc2
-rw-r--r--test/cpp/util/cli_call.cc2
-rw-r--r--test/cpp/util/cli_call_test.cc2
-rw-r--r--test/cpp/util/grpc_cli.cc2
-rw-r--r--test/cpp/util/metrics_server.cc2
-rw-r--r--test/cpp/util/subprocess.cc2
-rw-r--r--test/cpp/util/test_config.cc2
-rw-r--r--test/cpp/util/time_test.cc2
-rw-r--r--test/distrib/csharp/DistribTest/Program.cs2
-rwxr-xr-xtest/distrib/csharp/run_distrib_test.sh2
-rwxr-xr-xtest/distrib/csharp/update_version.sh2
-rwxr-xr-xtest/distrib/node/distrib_test.js2
-rwxr-xr-xtest/distrib/node/run_distrib_test.sh24
-rwxr-xr-xtest/distrib/php/run_distrib_test.sh2
-rwxr-xr-xtest/distrib/python/run_distrib_test.sh2
-rwxr-xr-xtest/distrib/ruby/run_distrib_test.sh2
-rwxr-xr-xtools/buildgen/build-cleaner.py2
-rwxr-xr-xtools/buildgen/bunch.py2
-rw-r--r--tools/buildgen/generate_build_additions.sh2
-rwxr-xr-xtools/buildgen/generate_projects.py2
-rwxr-xr-xtools/buildgen/mako_renderer.py2
-rwxr-xr-xtools/buildgen/plugins/expand_bin_attrs.py2
-rwxr-xr-xtools/buildgen/plugins/expand_filegroups.py70
-rw-r--r--tools/buildgen/plugins/make_fuzzer_tests.py57
-rw-r--r--tools/buildgen/plugins/transitive_dependencies.py2
-rw-r--r--tools/codegen/core/gen_hpack_tables.c4
-rw-r--r--tools/codegen/core/gen_legal_metadata_characters.c2
-rwxr-xr-xtools/codegen/core/gen_load_balancing_proto.sh4
-rwxr-xr-xtools/codegen/core/gen_static_metadata.py31
-rw-r--r--tools/distrib/build_ruby_environment_macos.sh2
-rwxr-xr-xtools/distrib/check_copyright.py20
-rwxr-xr-xtools/distrib/check_include_guards.py2
-rwxr-xr-xtools/distrib/check_nanopb_output.sh6
-rwxr-xr-xtools/distrib/check_windows_dlls.sh2
-rwxr-xr-xtools/distrib/clang_format_code.sh2
-rwxr-xr-xtools/distrib/python/docgen.py2
-rwxr-xr-xtools/distrib/python/submit.py2
-rw-r--r--tools/dockerfile/distribtest/csharp_centos7_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/csharp_jessie_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/csharp_jessie_x86/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/csharp_ubuntu1404_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/csharp_ubuntu1504_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/csharp_ubuntu1510_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/csharp_ubuntu1604_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/csharp_wheezy_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/php_jessie_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/python_arch_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/python_centos6_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/python_centos7_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/python_fedora20_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/python_fedora21_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/python_fedora22_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/python_fedora23_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/python_jessie_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/python_jessie_x86/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/python_opensuse_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/python_ubuntu1204_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/python_ubuntu1404_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/python_ubuntu1504_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/python_ubuntu1510_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/python_ubuntu1604_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/python_wheezy_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/ruby_centos6_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/ruby_centos7_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/ruby_fedora20_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/ruby_fedora21_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/ruby_fedora22_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/ruby_fedora23_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/ruby_jessie_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/ruby_jessie_x86/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/ruby_opensuse_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/ruby_ubuntu1204_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/ruby_ubuntu1404_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/ruby_ubuntu1504_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/ruby_ubuntu1510_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/ruby_ubuntu1604_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/ruby_wheezy_x64/Dockerfile2
-rw-r--r--tools/dockerfile/grpc_clang_format/Dockerfile2
-rwxr-xr-xtools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh4
-rw-r--r--tools/dockerfile/grpc_interop_csharp/Dockerfile2
-rwxr-xr-xtools/dockerfile/grpc_interop_csharp/build_interop.sh2
-rw-r--r--tools/dockerfile/grpc_interop_cxx/Dockerfile2
-rwxr-xr-xtools/dockerfile/grpc_interop_cxx/build_interop.sh2
-rw-r--r--tools/dockerfile/grpc_interop_go/Dockerfile2
-rwxr-xr-xtools/dockerfile/grpc_interop_go/build_interop.sh2
-rw-r--r--tools/dockerfile/grpc_interop_http2/Dockerfile2
-rwxr-xr-xtools/dockerfile/grpc_interop_http2/build_interop.sh2
-rw-r--r--tools/dockerfile/grpc_interop_java/Dockerfile2
-rwxr-xr-xtools/dockerfile/grpc_interop_java/build_interop.sh2
-rw-r--r--tools/dockerfile/grpc_interop_node/Dockerfile2
-rwxr-xr-xtools/dockerfile/grpc_interop_node/build_interop.sh2
-rw-r--r--tools/dockerfile/grpc_interop_php/Dockerfile2
-rwxr-xr-xtools/dockerfile/grpc_interop_php/build_interop.sh2
-rw-r--r--tools/dockerfile/grpc_interop_python/Dockerfile2
-rwxr-xr-xtools/dockerfile/grpc_interop_python/build_interop.sh2
-rw-r--r--tools/dockerfile/grpc_interop_ruby/Dockerfile2
-rwxr-xr-xtools/dockerfile/grpc_interop_ruby/build_interop.sh2
-rw-r--r--tools/dockerfile/grpc_interop_stress_cxx/Dockerfile55
-rwxr-xr-xtools/dockerfile/grpc_interop_stress_cxx/build_interop_stress.sh6
-rw-r--r--tools/dockerfile/grpc_linuxbrew/Dockerfile2
-rw-r--r--tools/dockerfile/test/csharp_jessie_x64/Dockerfile2
-rw-r--r--tools/dockerfile/test/cxx_jessie_x64/Dockerfile6
-rw-r--r--tools/dockerfile/test/cxx_jessie_x86/Dockerfile2
-rw-r--r--tools/dockerfile/test/cxx_ubuntu1404_x64/Dockerfile2
-rw-r--r--tools/dockerfile/test/cxx_ubuntu1604_x64/Dockerfile2
-rw-r--r--tools/dockerfile/test/fuzzer/Dockerfile123
-rw-r--r--tools/dockerfile/test/node_jessie_x64/Dockerfile2
-rw-r--r--tools/dockerfile/test/php_jessie_x64/Dockerfile2
-rw-r--r--tools/dockerfile/test/python_jessie_x64/Dockerfile2
-rw-r--r--tools/dockerfile/test/ruby_jessie_x64/Dockerfile2
-rw-r--r--tools/dockerfile/test/sanity/Dockerfile2
-rw-r--r--tools/doxygen/Doxyfile.c++64
-rw-r--r--tools/doxygen/Doxyfile.c++.internal85
-rw-r--r--tools/doxygen/Doxyfile.core38
-rw-r--r--tools/doxygen/Doxyfile.core.internal242
-rwxr-xr-xtools/fuzzer/build_and_run_fuzzer.sh37
-rw-r--r--tools/fuzzer/runners/hpack_parser_fuzzer_test.sh38
-rw-r--r--tools/fuzzer/runners/http_fuzzer_test.sh38
-rw-r--r--tools/fuzzer/runners/json_fuzzer_test.sh38
-rw-r--r--tools/fuzzer/runners/uri_fuzzer_test.sh38
-rwxr-xr-xtools/gce/create_interop_worker.sh64
-rwxr-xr-xtools/gce/create_linux_performance_worker.sh12
-rwxr-xr-xtools/gce/create_linux_worker.sh2
-rwxr-xr-xtools/gce/linux_performance_worker_init.sh13
-rwxr-xr-xtools/gce/linux_worker_init.sh2
-rwxr-xr-xtools/gcp/stress_test/run_client.py2
-rwxr-xr-xtools/gcp/stress_test/run_server.py2
-rwxr-xr-xtools/gcp/stress_test/stress_test_utils.py2
-rwxr-xr-xtools/gcp/utils/big_query_utils.py2
-rwxr-xr-xtools/gcp/utils/kubernetes_api.py2
-rwxr-xr-xtools/gource/gource.sh31
-rwxr-xr-xtools/jenkins/build_docker_and_run_tests.sh2
-rwxr-xr-xtools/jenkins/build_interop_image.sh2
-rwxr-xr-xtools/jenkins/build_interop_stress_image.sh9
-rwxr-xr-xtools/jenkins/docker_run_tests.sh4
-rwxr-xr-xtools/jenkins/run_distribution.sh2
-rwxr-xr-xtools/jenkins/run_fuzzer.sh43
-rwxr-xr-xtools/jenkins/run_interop_stress.sh2
-rwxr-xr-xtools/jenkins/run_jenkins.sh2
-rwxr-xr-xtools/jenkins/run_performance.sh2
-rwxr-xr-xtools/jenkins/run_portability.sh2
-rwxr-xr-xtools/openssl/use_openssl.sh2
-rwxr-xr-xtools/run_tests/build_artifact_node.sh2
-rwxr-xr-xtools/run_tests/build_artifact_python.sh13
-rwxr-xr-xtools/run_tests/build_csharp.sh2
-rwxr-xr-xtools/run_tests/build_node.sh4
-rwxr-xr-xtools/run_tests/build_package_node.sh2
-rwxr-xr-xtools/run_tests/build_php.sh2
-rwxr-xr-xtools/run_tests/build_python.sh3
-rwxr-xr-xtools/run_tests/build_ruby.sh2
-rw-r--r--tools/run_tests/configs.json8
-rwxr-xr-xtools/run_tests/jobset.py9
-rwxr-xr-xtools/run_tests/performance/build_performance.sh52
-rwxr-xr-xtools/run_tests/performance/remote_host_build.sh36
-rwxr-xr-xtools/run_tests/performance/remote_host_prepare.sh45
-rwxr-xr-xtools/run_tests/performance/run_worker_csharp.sh38
-rwxr-xr-xtools/run_tests/performance/run_worker_node.sh38
-rwxr-xr-xtools/run_tests/post_tests_php.sh2
-rwxr-xr-xtools/run_tests/post_tests_ruby.sh2
-rwxr-xr-xtools/run_tests/pre_build_csharp.sh2
-rwxr-xr-xtools/run_tests/pre_build_node.sh4
-rw-r--r--tools/run_tests/report_utils.py2
-rw-r--r--tools/run_tests/run_csharp.bat4
-rwxr-xr-xtools/run_tests/run_csharp.sh2
-rwxr-xr-xtools/run_tests/run_interop_tests.py2
-rwxr-xr-xtools/run_tests/run_node.sh4
-rwxr-xr-xtools/run_tests/run_performance_tests.py431
-rwxr-xr-xtools/run_tests/run_python.sh3
-rwxr-xr-xtools/run_tests/run_stress_tests.py2
-rwxr-xr-xtools/run_tests/run_tests.py41
-rwxr-xr-xtools/run_tests/sanity/check_cache_mk.sh2
-rwxr-xr-xtools/run_tests/sanity/check_sources_and_headers.py2
-rwxr-xr-xtools/run_tests/sanity/check_submodules.sh2
-rw-r--r--tools/run_tests/sources_and_headers.json736
-rw-r--r--tools/run_tests/stress_test/README.md14
-rw-r--r--tools/run_tests/stress_test/STRESS_CLIENT_SPEC.md6
-rw-r--r--tools/run_tests/stress_test/configs/opt-tsan-asan.json135
-rw-r--r--tools/run_tests/stress_test/configs/opt.json86
-rwxr-xr-xtools/run_tests/stress_test/run_on_gke.py637
-rwxr-xr-xtools/run_tests/stress_test/run_stress_tests_on_gke.py556
-rw-r--r--tools/run_tests/tests.json18358
-rw-r--r--vsprojects/build_vs2010.bat2
-rw-r--r--vsprojects/build_vs2013.bat2
-rw-r--r--vsprojects/build_vs2015.bat2
-rw-r--r--vsprojects/buildtests_c.sln105
-rw-r--r--vsprojects/grpc.sln24
-rw-r--r--vsprojects/vcxproj/gpr/gpr.vcxproj28
-rw-r--r--vsprojects/vcxproj/gpr/gpr.vcxproj.filters84
-rw-r--r--vsprojects/vcxproj/grpc++/grpc++.vcxproj97
-rw-r--r--vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters247
-rw-r--r--vsprojects/vcxproj/grpc++_codegen_lib/grpc++_codegen_lib.vcxproj40
-rw-r--r--vsprojects/vcxproj/grpc++_codegen_lib/grpc++_codegen_lib.vcxproj.filters120
-rw-r--r--vsprojects/vcxproj/grpc++_test_util/grpc++_test_util.vcxproj16
-rw-r--r--vsprojects/vcxproj/grpc++_test_util/grpc++_test_util.vcxproj.filters8
-rw-r--r--vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj70
-rw-r--r--vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters198
-rw-r--r--vsprojects/vcxproj/grpc/grpc.vcxproj322
-rw-r--r--vsprojects/vcxproj/grpc/grpc.vcxproj.filters707
-rw-r--r--vsprojects/vcxproj/grpc_codegen_lib/grpc_codegen_lib.vcxproj12
-rw-r--r--vsprojects/vcxproj/grpc_codegen_lib/grpc_codegen_lib.vcxproj.filters30
-rw-r--r--vsprojects/vcxproj/grpc_test_util/grpc_test_util.vcxproj12
-rw-r--r--vsprojects/vcxproj/grpc_test_util/grpc_test_util.vcxproj.filters24
-rw-r--r--vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj234
-rw-r--r--vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters547
-rw-r--r--vsprojects/vcxproj/one_input_fuzzer/one_input_fuzzer.vcxproj167
-rw-r--r--vsprojects/vcxproj/one_input_fuzzer/one_input_fuzzer.vcxproj.filters21
-rw-r--r--vsprojects/vcxproj/qps/qps.vcxproj32
-rw-r--r--vsprojects/vcxproj/qps/qps.vcxproj.filters10
-rw-r--r--vsprojects/vcxproj/test/end2end/tests/end2end_nosec_tests/end2end_nosec_tests.vcxproj4
-rw-r--r--vsprojects/vcxproj/test/end2end/tests/end2end_nosec_tests/end2end_nosec_tests.vcxproj.filters9
-rw-r--r--vsprojects/vcxproj/test/end2end/tests/end2end_tests/end2end_tests.vcxproj4
-rw-r--r--vsprojects/vcxproj/test/end2end/tests/end2end_tests/end2end_tests.vcxproj.filters9
-rw-r--r--vsprojects/vcxproj/test/internal_api_canary_iomgr_test/internal_api_canary_iomgr_test.vcxproj199
-rw-r--r--vsprojects/vcxproj/test/internal_api_canary_iomgr_test/internal_api_canary_iomgr_test.vcxproj.filters21
-rw-r--r--vsprojects/vcxproj/test/internal_api_canary_support_test/internal_api_canary_support_test.vcxproj199
-rw-r--r--vsprojects/vcxproj/test/internal_api_canary_support_test/internal_api_canary_support_test.vcxproj.filters21
-rw-r--r--vsprojects/vcxproj/test/internal_api_canary_transport_test/internal_api_canary_transport_test.vcxproj199
-rw-r--r--vsprojects/vcxproj/test/internal_api_canary_transport_test/internal_api_canary_transport_test.vcxproj.filters21
2107 files changed, 32215 insertions, 11786 deletions
diff --git a/BUILD b/BUILD
index ef78f44508..fbe69f3a6d 100644
--- a/BUILD
+++ b/BUILD
@@ -41,6 +41,7 @@ package(default_visibility = ["//visibility:public"])
+
cc_library(
name = "gpr",
srcs = [
@@ -102,6 +103,20 @@ cc_library(
"src/core/lib/support/wrap_memcpy.c",
],
hdrs = [
+ "include/grpc/impl/codegen/alloc.h",
+ "include/grpc/impl/codegen/atm.h",
+ "include/grpc/impl/codegen/atm_gcc_atomic.h",
+ "include/grpc/impl/codegen/atm_gcc_sync.h",
+ "include/grpc/impl/codegen/atm_win32.h",
+ "include/grpc/impl/codegen/log.h",
+ "include/grpc/impl/codegen/port_platform.h",
+ "include/grpc/impl/codegen/slice.h",
+ "include/grpc/impl/codegen/slice_buffer.h",
+ "include/grpc/impl/codegen/sync.h",
+ "include/grpc/impl/codegen/sync_generic.h",
+ "include/grpc/impl/codegen/sync_posix.h",
+ "include/grpc/impl/codegen/sync_win32.h",
+ "include/grpc/impl/codegen/time.h",
"include/grpc/support/alloc.h",
"include/grpc/support/atm.h",
"include/grpc/support/atm_gcc_atomic.h",
@@ -130,20 +145,6 @@ cc_library(
"include/grpc/support/tls_msvc.h",
"include/grpc/support/tls_pthread.h",
"include/grpc/support/useful.h",
- "include/grpc/impl/codegen/alloc.h",
- "include/grpc/impl/codegen/atm.h",
- "include/grpc/impl/codegen/atm_gcc_atomic.h",
- "include/grpc/impl/codegen/atm_gcc_sync.h",
- "include/grpc/impl/codegen/atm_win32.h",
- "include/grpc/impl/codegen/log.h",
- "include/grpc/impl/codegen/port_platform.h",
- "include/grpc/impl/codegen/slice.h",
- "include/grpc/impl/codegen/slice_buffer.h",
- "include/grpc/impl/codegen/sync.h",
- "include/grpc/impl/codegen/sync_generic.h",
- "include/grpc/impl/codegen/sync_posix.h",
- "include/grpc/impl/codegen/sync_win32.h",
- "include/grpc/impl/codegen/time.h",
],
includes = [
"include",
@@ -154,11 +155,39 @@ cc_library(
)
+
cc_library(
name = "grpc",
srcs = [
- "src/core/lib/census/grpc_filter.h",
- "src/core/lib/census/grpc_plugin.h",
+ "src/core/ext/census/aggregation.h",
+ "src/core/ext/census/census_interface.h",
+ "src/core/ext/census/census_rpc_stats.h",
+ "src/core/ext/census/grpc_filter.h",
+ "src/core/ext/census/mlog.h",
+ "src/core/ext/census/rpc_metric_id.h",
+ "src/core/ext/lb_policy/grpclb/load_balancer_api.h",
+ "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h",
+ "src/core/ext/transport/chttp2/transport/alpn.h",
+ "src/core/ext/transport/chttp2/transport/bin_encoder.h",
+ "src/core/ext/transport/chttp2/transport/chttp2_transport.h",
+ "src/core/ext/transport/chttp2/transport/frame.h",
+ "src/core/ext/transport/chttp2/transport/frame_data.h",
+ "src/core/ext/transport/chttp2/transport/frame_goaway.h",
+ "src/core/ext/transport/chttp2/transport/frame_ping.h",
+ "src/core/ext/transport/chttp2/transport/frame_rst_stream.h",
+ "src/core/ext/transport/chttp2/transport/frame_settings.h",
+ "src/core/ext/transport/chttp2/transport/frame_window_update.h",
+ "src/core/ext/transport/chttp2/transport/hpack_encoder.h",
+ "src/core/ext/transport/chttp2/transport/hpack_parser.h",
+ "src/core/ext/transport/chttp2/transport/hpack_table.h",
+ "src/core/ext/transport/chttp2/transport/http2_errors.h",
+ "src/core/ext/transport/chttp2/transport/huffsyms.h",
+ "src/core/ext/transport/chttp2/transport/incoming_metadata.h",
+ "src/core/ext/transport/chttp2/transport/internal.h",
+ "src/core/ext/transport/chttp2/transport/status_conversion.h",
+ "src/core/ext/transport/chttp2/transport/stream_map.h",
+ "src/core/ext/transport/chttp2/transport/timeout_encoding.h",
+ "src/core/ext/transport/chttp2/transport/varint.h",
"src/core/lib/channel/channel_args.h",
"src/core/lib/channel/channel_stack.h",
"src/core/lib/channel/channel_stack_builder.h",
@@ -172,17 +201,12 @@ cc_library(
"src/core/lib/client_config/client_config.h",
"src/core/lib/client_config/connector.h",
"src/core/lib/client_config/initial_connect_string.h",
- "src/core/lib/client_config/lb_policies/load_balancer_api.h",
- "src/core/lib/client_config/lb_policies/pick_first.h",
- "src/core/lib/client_config/lb_policies/round_robin.h",
"src/core/lib/client_config/lb_policy.h",
"src/core/lib/client_config/lb_policy_factory.h",
"src/core/lib/client_config/lb_policy_registry.h",
"src/core/lib/client_config/resolver.h",
"src/core/lib/client_config/resolver_factory.h",
"src/core/lib/client_config/resolver_registry.h",
- "src/core/lib/client_config/resolvers/dns_resolver.h",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.h",
"src/core/lib/client_config/subchannel.h",
"src/core/lib/client_config/subchannel_factory.h",
"src/core/lib/client_config/subchannel_index.h",
@@ -196,17 +220,16 @@ cc_library(
"src/core/lib/iomgr/closure.h",
"src/core/lib/iomgr/endpoint.h",
"src/core/lib/iomgr/endpoint_pair.h",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.h",
+ "src/core/lib/iomgr/ev_posix.h",
"src/core/lib/iomgr/exec_ctx.h",
"src/core/lib/iomgr/executor.h",
- "src/core/lib/iomgr/fd_posix.h",
"src/core/lib/iomgr/iocp_windows.h",
"src/core/lib/iomgr/iomgr.h",
"src/core/lib/iomgr/iomgr_internal.h",
"src/core/lib/iomgr/iomgr_posix.h",
"src/core/lib/iomgr/pollset.h",
- "src/core/lib/iomgr/pollset_posix.h",
"src/core/lib/iomgr/pollset_set.h",
- "src/core/lib/iomgr/pollset_set_posix.h",
"src/core/lib/iomgr/pollset_set_windows.h",
"src/core/lib/iomgr/pollset_windows.h",
"src/core/lib/iomgr/resolve_address.h",
@@ -234,9 +257,15 @@ cc_library(
"src/core/lib/json/json_common.h",
"src/core/lib/json/json_reader.h",
"src/core/lib/json/json_writer.h",
- "src/core/lib/proto/grpc/lb/v0/load_balancer.pb.h",
- "src/core/lib/statistics/census_interface.h",
- "src/core/lib/statistics/census_rpc_stats.h",
+ "src/core/lib/security/auth_filters.h",
+ "src/core/lib/security/b64.h",
+ "src/core/lib/security/credentials.h",
+ "src/core/lib/security/handshake.h",
+ "src/core/lib/security/json_token.h",
+ "src/core/lib/security/jwt_verifier.h",
+ "src/core/lib/security/secure_endpoint.h",
+ "src/core/lib/security/security_connector.h",
+ "src/core/lib/security/security_context.h",
"src/core/lib/surface/api_trace.h",
"src/core/lib/surface/call.h",
"src/core/lib/surface/call_test_only.h",
@@ -250,57 +279,57 @@ cc_library(
"src/core/lib/surface/server.h",
"src/core/lib/surface/surface_trace.h",
"src/core/lib/transport/byte_stream.h",
- "src/core/lib/transport/chttp2/alpn.h",
- "src/core/lib/transport/chttp2/bin_encoder.h",
- "src/core/lib/transport/chttp2/frame.h",
- "src/core/lib/transport/chttp2/frame_data.h",
- "src/core/lib/transport/chttp2/frame_goaway.h",
- "src/core/lib/transport/chttp2/frame_ping.h",
- "src/core/lib/transport/chttp2/frame_rst_stream.h",
- "src/core/lib/transport/chttp2/frame_settings.h",
- "src/core/lib/transport/chttp2/frame_window_update.h",
- "src/core/lib/transport/chttp2/hpack_encoder.h",
- "src/core/lib/transport/chttp2/hpack_parser.h",
- "src/core/lib/transport/chttp2/hpack_table.h",
- "src/core/lib/transport/chttp2/http2_errors.h",
- "src/core/lib/transport/chttp2/huffsyms.h",
- "src/core/lib/transport/chttp2/incoming_metadata.h",
- "src/core/lib/transport/chttp2/internal.h",
- "src/core/lib/transport/chttp2/status_conversion.h",
- "src/core/lib/transport/chttp2/stream_map.h",
- "src/core/lib/transport/chttp2/timeout_encoding.h",
- "src/core/lib/transport/chttp2/varint.h",
- "src/core/lib/transport/chttp2_transport.h",
"src/core/lib/transport/connectivity_state.h",
"src/core/lib/transport/metadata.h",
"src/core/lib/transport/metadata_batch.h",
"src/core/lib/transport/static_metadata.h",
"src/core/lib/transport/transport.h",
"src/core/lib/transport/transport_impl.h",
- "src/core/lib/security/auth_filters.h",
- "src/core/lib/security/b64.h",
- "src/core/lib/security/credentials.h",
- "src/core/lib/security/handshake.h",
- "src/core/lib/security/json_token.h",
- "src/core/lib/security/jwt_verifier.h",
- "src/core/lib/security/secure_endpoint.h",
- "src/core/lib/security/security_connector.h",
- "src/core/lib/security/security_context.h",
"src/core/lib/tsi/fake_transport_security.h",
"src/core/lib/tsi/ssl_transport_security.h",
"src/core/lib/tsi/ssl_types.h",
"src/core/lib/tsi/transport_security.h",
"src/core/lib/tsi/transport_security_interface.h",
- "src/core/lib/census/aggregation.h",
- "src/core/lib/census/mlog.h",
- "src/core/lib/census/rpc_metric_id.h",
- "third_party/nanopb/pb.h",
- "third_party/nanopb/pb_common.h",
- "third_party/nanopb/pb_decode.h",
- "third_party/nanopb/pb_encode.h",
- "src/core/lib/census/grpc_context.c",
- "src/core/lib/census/grpc_filter.c",
- "src/core/lib/census/grpc_plugin.c",
+ "src/core/ext/census/context.c",
+ "src/core/ext/census/grpc_context.c",
+ "src/core/ext/census/grpc_filter.c",
+ "src/core/ext/census/grpc_plugin.c",
+ "src/core/ext/census/initialize.c",
+ "src/core/ext/census/mlog.c",
+ "src/core/ext/census/operation.c",
+ "src/core/ext/census/placeholders.c",
+ "src/core/ext/census/tracing.c",
+ "src/core/ext/lb_policy/grpclb/load_balancer_api.c",
+ "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c",
+ "src/core/ext/lb_policy/pick_first/pick_first.c",
+ "src/core/ext/lb_policy/round_robin/round_robin.c",
+ "src/core/ext/resolver/dns/native/dns_resolver.c",
+ "src/core/ext/resolver/sockaddr/sockaddr_resolver.c",
+ "src/core/ext/transport/chttp2/client/insecure/channel_create.c",
+ "src/core/ext/transport/chttp2/client/secure/secure_channel_create.c",
+ "src/core/ext/transport/chttp2/server/insecure/server_chttp2.c",
+ "src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c",
+ "src/core/ext/transport/chttp2/transport/alpn.c",
+ "src/core/ext/transport/chttp2/transport/bin_encoder.c",
+ "src/core/ext/transport/chttp2/transport/chttp2_transport.c",
+ "src/core/ext/transport/chttp2/transport/frame_data.c",
+ "src/core/ext/transport/chttp2/transport/frame_goaway.c",
+ "src/core/ext/transport/chttp2/transport/frame_ping.c",
+ "src/core/ext/transport/chttp2/transport/frame_rst_stream.c",
+ "src/core/ext/transport/chttp2/transport/frame_settings.c",
+ "src/core/ext/transport/chttp2/transport/frame_window_update.c",
+ "src/core/ext/transport/chttp2/transport/hpack_encoder.c",
+ "src/core/ext/transport/chttp2/transport/hpack_parser.c",
+ "src/core/ext/transport/chttp2/transport/hpack_table.c",
+ "src/core/ext/transport/chttp2/transport/huffsyms.c",
+ "src/core/ext/transport/chttp2/transport/incoming_metadata.c",
+ "src/core/ext/transport/chttp2/transport/parsing.c",
+ "src/core/ext/transport/chttp2/transport/status_conversion.c",
+ "src/core/ext/transport/chttp2/transport/stream_lists.c",
+ "src/core/ext/transport/chttp2/transport/stream_map.c",
+ "src/core/ext/transport/chttp2/transport/timeout_encoding.c",
+ "src/core/ext/transport/chttp2/transport/varint.c",
+ "src/core/ext/transport/chttp2/transport/writing.c",
"src/core/lib/channel/channel_args.c",
"src/core/lib/channel/channel_stack.c",
"src/core/lib/channel/channel_stack_builder.c",
@@ -314,17 +343,12 @@ cc_library(
"src/core/lib/client_config/connector.c",
"src/core/lib/client_config/default_initial_connect_string.c",
"src/core/lib/client_config/initial_connect_string.c",
- "src/core/lib/client_config/lb_policies/load_balancer_api.c",
- "src/core/lib/client_config/lb_policies/pick_first.c",
- "src/core/lib/client_config/lb_policies/round_robin.c",
"src/core/lib/client_config/lb_policy.c",
"src/core/lib/client_config/lb_policy_factory.c",
"src/core/lib/client_config/lb_policy_registry.c",
"src/core/lib/client_config/resolver.c",
"src/core/lib/client_config/resolver_factory.c",
"src/core/lib/client_config/resolver_registry.c",
- "src/core/lib/client_config/resolvers/dns_resolver.c",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.c",
"src/core/lib/client_config/subchannel.c",
"src/core/lib/client_config/subchannel_factory.c",
"src/core/lib/client_config/subchannel_index.c",
@@ -334,22 +358,20 @@ cc_library(
"src/core/lib/debug/trace.c",
"src/core/lib/http/format_request.c",
"src/core/lib/http/httpcli.c",
+ "src/core/lib/http/httpcli_security_connector.c",
"src/core/lib/http/parser.c",
"src/core/lib/iomgr/closure.c",
"src/core/lib/iomgr/endpoint.c",
"src/core/lib/iomgr/endpoint_pair_posix.c",
"src/core/lib/iomgr/endpoint_pair_windows.c",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.c",
+ "src/core/lib/iomgr/ev_posix.c",
"src/core/lib/iomgr/exec_ctx.c",
"src/core/lib/iomgr/executor.c",
- "src/core/lib/iomgr/fd_posix.c",
"src/core/lib/iomgr/iocp_windows.c",
"src/core/lib/iomgr/iomgr.c",
"src/core/lib/iomgr/iomgr_posix.c",
"src/core/lib/iomgr/iomgr_windows.c",
- "src/core/lib/iomgr/pollset_multipoller_with_epoll.c",
- "src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c",
- "src/core/lib/iomgr/pollset_posix.c",
- "src/core/lib/iomgr/pollset_set_posix.c",
"src/core/lib/iomgr/pollset_set_windows.c",
"src/core/lib/iomgr/pollset_windows.c",
"src/core/lib/iomgr/resolve_address_posix.c",
@@ -381,7 +403,20 @@ cc_library(
"src/core/lib/json/json_reader.c",
"src/core/lib/json/json_string.c",
"src/core/lib/json/json_writer.c",
- "src/core/lib/proto/grpc/lb/v0/load_balancer.pb.c",
+ "src/core/lib/security/b64.c",
+ "src/core/lib/security/client_auth_filter.c",
+ "src/core/lib/security/credentials.c",
+ "src/core/lib/security/credentials_metadata.c",
+ "src/core/lib/security/credentials_posix.c",
+ "src/core/lib/security/credentials_win32.c",
+ "src/core/lib/security/google_default_credentials.c",
+ "src/core/lib/security/handshake.c",
+ "src/core/lib/security/json_token.c",
+ "src/core/lib/security/jwt_verifier.c",
+ "src/core/lib/security/secure_endpoint.c",
+ "src/core/lib/security/security_connector.c",
+ "src/core/lib/security/security_context.c",
+ "src/core/lib/security/server_auth_filter.c",
"src/core/lib/surface/alarm.c",
"src/core/lib/surface/api_trace.c",
"src/core/lib/surface/byte_buffer.c",
@@ -391,92 +426,44 @@ cc_library(
"src/core/lib/surface/call_log_batch.c",
"src/core/lib/surface/channel.c",
"src/core/lib/surface/channel_connectivity.c",
- "src/core/lib/surface/channel_create.c",
"src/core/lib/surface/channel_init.c",
"src/core/lib/surface/channel_ping.c",
"src/core/lib/surface/channel_stack_type.c",
"src/core/lib/surface/completion_queue.c",
"src/core/lib/surface/event_string.c",
"src/core/lib/surface/init.c",
+ "src/core/lib/surface/init_secure.c",
"src/core/lib/surface/lame_client.c",
"src/core/lib/surface/metadata_array.c",
"src/core/lib/surface/server.c",
- "src/core/lib/surface/server_chttp2.c",
"src/core/lib/surface/validate_metadata.c",
"src/core/lib/surface/version.c",
"src/core/lib/transport/byte_stream.c",
- "src/core/lib/transport/chttp2/alpn.c",
- "src/core/lib/transport/chttp2/bin_encoder.c",
- "src/core/lib/transport/chttp2/frame_data.c",
- "src/core/lib/transport/chttp2/frame_goaway.c",
- "src/core/lib/transport/chttp2/frame_ping.c",
- "src/core/lib/transport/chttp2/frame_rst_stream.c",
- "src/core/lib/transport/chttp2/frame_settings.c",
- "src/core/lib/transport/chttp2/frame_window_update.c",
- "src/core/lib/transport/chttp2/hpack_encoder.c",
- "src/core/lib/transport/chttp2/hpack_parser.c",
- "src/core/lib/transport/chttp2/hpack_table.c",
- "src/core/lib/transport/chttp2/huffsyms.c",
- "src/core/lib/transport/chttp2/incoming_metadata.c",
- "src/core/lib/transport/chttp2/parsing.c",
- "src/core/lib/transport/chttp2/status_conversion.c",
- "src/core/lib/transport/chttp2/stream_lists.c",
- "src/core/lib/transport/chttp2/stream_map.c",
- "src/core/lib/transport/chttp2/timeout_encoding.c",
- "src/core/lib/transport/chttp2/varint.c",
- "src/core/lib/transport/chttp2/writing.c",
- "src/core/lib/transport/chttp2_transport.c",
"src/core/lib/transport/connectivity_state.c",
"src/core/lib/transport/metadata.c",
"src/core/lib/transport/metadata_batch.c",
"src/core/lib/transport/static_metadata.c",
"src/core/lib/transport/transport.c",
"src/core/lib/transport/transport_op_string.c",
- "src/core/lib/http/httpcli_security_connector.c",
- "src/core/lib/security/b64.c",
- "src/core/lib/security/client_auth_filter.c",
- "src/core/lib/security/credentials.c",
- "src/core/lib/security/credentials_metadata.c",
- "src/core/lib/security/credentials_posix.c",
- "src/core/lib/security/credentials_win32.c",
- "src/core/lib/security/google_default_credentials.c",
- "src/core/lib/security/handshake.c",
- "src/core/lib/security/json_token.c",
- "src/core/lib/security/jwt_verifier.c",
- "src/core/lib/security/secure_endpoint.c",
- "src/core/lib/security/security_connector.c",
- "src/core/lib/security/security_context.c",
- "src/core/lib/security/server_auth_filter.c",
- "src/core/lib/security/server_secure_chttp2.c",
- "src/core/lib/surface/init_secure.c",
- "src/core/lib/surface/secure_channel_create.c",
"src/core/lib/tsi/fake_transport_security.c",
"src/core/lib/tsi/ssl_transport_security.c",
"src/core/lib/tsi/transport_security.c",
- "src/core/lib/census/context.c",
- "src/core/lib/census/initialize.c",
- "src/core/lib/census/mlog.c",
- "src/core/lib/census/operation.c",
- "src/core/lib/census/placeholders.c",
- "src/core/lib/census/tracing.c",
- "third_party/nanopb/pb_common.c",
- "third_party/nanopb/pb_decode.c",
- "third_party/nanopb/pb_encode.c",
+ "src/core/plugin_registry/grpc_plugin_registry.c",
],
hdrs = [
- "include/grpc/grpc_security.h",
"include/grpc/byte_buffer.h",
"include/grpc/byte_buffer_reader.h",
+ "include/grpc/census.h",
"include/grpc/compression.h",
"include/grpc/grpc.h",
- "include/grpc/status.h",
+ "include/grpc/grpc_security.h",
"include/grpc/impl/codegen/byte_buffer.h",
"include/grpc/impl/codegen/compression_types.h",
"include/grpc/impl/codegen/connectivity_state.h",
"include/grpc/impl/codegen/grpc_types.h",
"include/grpc/impl/codegen/propagation_bits.h",
"include/grpc/impl/codegen/status.h",
- "include/grpc/census.h",
+ "include/grpc/status.h",
],
includes = [
"include",
@@ -486,6 +473,7 @@ cc_library(
"//external:libssl",
"//external:zlib",
":gpr",
+ "//external:nanopb",
],
copts = [
"-std=gnu99",
@@ -493,6 +481,7 @@ cc_library(
)
+
cc_library(
name = "grpc_codegen_lib",
srcs = [
@@ -503,21 +492,21 @@ cc_library(
"include/grpc/impl/codegen/atm_gcc_atomic.h",
"include/grpc/impl/codegen/atm_gcc_sync.h",
"include/grpc/impl/codegen/atm_win32.h",
+ "include/grpc/impl/codegen/byte_buffer.h",
+ "include/grpc/impl/codegen/compression_types.h",
+ "include/grpc/impl/codegen/connectivity_state.h",
+ "include/grpc/impl/codegen/grpc_types.h",
"include/grpc/impl/codegen/log.h",
"include/grpc/impl/codegen/port_platform.h",
+ "include/grpc/impl/codegen/propagation_bits.h",
"include/grpc/impl/codegen/slice.h",
"include/grpc/impl/codegen/slice_buffer.h",
+ "include/grpc/impl/codegen/status.h",
"include/grpc/impl/codegen/sync.h",
"include/grpc/impl/codegen/sync_generic.h",
"include/grpc/impl/codegen/sync_posix.h",
"include/grpc/impl/codegen/sync_win32.h",
"include/grpc/impl/codegen/time.h",
- "include/grpc/impl/codegen/byte_buffer.h",
- "include/grpc/impl/codegen/compression_types.h",
- "include/grpc/impl/codegen/connectivity_state.h",
- "include/grpc/impl/codegen/grpc_types.h",
- "include/grpc/impl/codegen/propagation_bits.h",
- "include/grpc/impl/codegen/status.h",
],
includes = [
"include",
@@ -529,11 +518,39 @@ cc_library(
)
+
cc_library(
name = "grpc_unsecure",
srcs = [
- "src/core/lib/census/grpc_filter.h",
- "src/core/lib/census/grpc_plugin.h",
+ "src/core/ext/census/aggregation.h",
+ "src/core/ext/census/census_interface.h",
+ "src/core/ext/census/census_rpc_stats.h",
+ "src/core/ext/census/grpc_filter.h",
+ "src/core/ext/census/mlog.h",
+ "src/core/ext/census/rpc_metric_id.h",
+ "src/core/ext/lb_policy/grpclb/load_balancer_api.h",
+ "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h",
+ "src/core/ext/transport/chttp2/transport/alpn.h",
+ "src/core/ext/transport/chttp2/transport/bin_encoder.h",
+ "src/core/ext/transport/chttp2/transport/chttp2_transport.h",
+ "src/core/ext/transport/chttp2/transport/frame.h",
+ "src/core/ext/transport/chttp2/transport/frame_data.h",
+ "src/core/ext/transport/chttp2/transport/frame_goaway.h",
+ "src/core/ext/transport/chttp2/transport/frame_ping.h",
+ "src/core/ext/transport/chttp2/transport/frame_rst_stream.h",
+ "src/core/ext/transport/chttp2/transport/frame_settings.h",
+ "src/core/ext/transport/chttp2/transport/frame_window_update.h",
+ "src/core/ext/transport/chttp2/transport/hpack_encoder.h",
+ "src/core/ext/transport/chttp2/transport/hpack_parser.h",
+ "src/core/ext/transport/chttp2/transport/hpack_table.h",
+ "src/core/ext/transport/chttp2/transport/http2_errors.h",
+ "src/core/ext/transport/chttp2/transport/huffsyms.h",
+ "src/core/ext/transport/chttp2/transport/incoming_metadata.h",
+ "src/core/ext/transport/chttp2/transport/internal.h",
+ "src/core/ext/transport/chttp2/transport/status_conversion.h",
+ "src/core/ext/transport/chttp2/transport/stream_map.h",
+ "src/core/ext/transport/chttp2/transport/timeout_encoding.h",
+ "src/core/ext/transport/chttp2/transport/varint.h",
"src/core/lib/channel/channel_args.h",
"src/core/lib/channel/channel_stack.h",
"src/core/lib/channel/channel_stack_builder.h",
@@ -547,17 +564,12 @@ cc_library(
"src/core/lib/client_config/client_config.h",
"src/core/lib/client_config/connector.h",
"src/core/lib/client_config/initial_connect_string.h",
- "src/core/lib/client_config/lb_policies/load_balancer_api.h",
- "src/core/lib/client_config/lb_policies/pick_first.h",
- "src/core/lib/client_config/lb_policies/round_robin.h",
"src/core/lib/client_config/lb_policy.h",
"src/core/lib/client_config/lb_policy_factory.h",
"src/core/lib/client_config/lb_policy_registry.h",
"src/core/lib/client_config/resolver.h",
"src/core/lib/client_config/resolver_factory.h",
"src/core/lib/client_config/resolver_registry.h",
- "src/core/lib/client_config/resolvers/dns_resolver.h",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.h",
"src/core/lib/client_config/subchannel.h",
"src/core/lib/client_config/subchannel_factory.h",
"src/core/lib/client_config/subchannel_index.h",
@@ -571,17 +583,16 @@ cc_library(
"src/core/lib/iomgr/closure.h",
"src/core/lib/iomgr/endpoint.h",
"src/core/lib/iomgr/endpoint_pair.h",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.h",
+ "src/core/lib/iomgr/ev_posix.h",
"src/core/lib/iomgr/exec_ctx.h",
"src/core/lib/iomgr/executor.h",
- "src/core/lib/iomgr/fd_posix.h",
"src/core/lib/iomgr/iocp_windows.h",
"src/core/lib/iomgr/iomgr.h",
"src/core/lib/iomgr/iomgr_internal.h",
"src/core/lib/iomgr/iomgr_posix.h",
"src/core/lib/iomgr/pollset.h",
- "src/core/lib/iomgr/pollset_posix.h",
"src/core/lib/iomgr/pollset_set.h",
- "src/core/lib/iomgr/pollset_set_posix.h",
"src/core/lib/iomgr/pollset_set_windows.h",
"src/core/lib/iomgr/pollset_windows.h",
"src/core/lib/iomgr/resolve_address.h",
@@ -609,9 +620,6 @@ cc_library(
"src/core/lib/json/json_common.h",
"src/core/lib/json/json_reader.h",
"src/core/lib/json/json_writer.h",
- "src/core/lib/proto/grpc/lb/v0/load_balancer.pb.h",
- "src/core/lib/statistics/census_interface.h",
- "src/core/lib/statistics/census_rpc_stats.h",
"src/core/lib/surface/api_trace.h",
"src/core/lib/surface/call.h",
"src/core/lib/surface/call_test_only.h",
@@ -625,44 +633,50 @@ cc_library(
"src/core/lib/surface/server.h",
"src/core/lib/surface/surface_trace.h",
"src/core/lib/transport/byte_stream.h",
- "src/core/lib/transport/chttp2/alpn.h",
- "src/core/lib/transport/chttp2/bin_encoder.h",
- "src/core/lib/transport/chttp2/frame.h",
- "src/core/lib/transport/chttp2/frame_data.h",
- "src/core/lib/transport/chttp2/frame_goaway.h",
- "src/core/lib/transport/chttp2/frame_ping.h",
- "src/core/lib/transport/chttp2/frame_rst_stream.h",
- "src/core/lib/transport/chttp2/frame_settings.h",
- "src/core/lib/transport/chttp2/frame_window_update.h",
- "src/core/lib/transport/chttp2/hpack_encoder.h",
- "src/core/lib/transport/chttp2/hpack_parser.h",
- "src/core/lib/transport/chttp2/hpack_table.h",
- "src/core/lib/transport/chttp2/http2_errors.h",
- "src/core/lib/transport/chttp2/huffsyms.h",
- "src/core/lib/transport/chttp2/incoming_metadata.h",
- "src/core/lib/transport/chttp2/internal.h",
- "src/core/lib/transport/chttp2/status_conversion.h",
- "src/core/lib/transport/chttp2/stream_map.h",
- "src/core/lib/transport/chttp2/timeout_encoding.h",
- "src/core/lib/transport/chttp2/varint.h",
- "src/core/lib/transport/chttp2_transport.h",
"src/core/lib/transport/connectivity_state.h",
"src/core/lib/transport/metadata.h",
"src/core/lib/transport/metadata_batch.h",
"src/core/lib/transport/static_metadata.h",
"src/core/lib/transport/transport.h",
"src/core/lib/transport/transport_impl.h",
- "src/core/lib/census/aggregation.h",
- "src/core/lib/census/mlog.h",
- "src/core/lib/census/rpc_metric_id.h",
- "third_party/nanopb/pb.h",
- "third_party/nanopb/pb_common.h",
- "third_party/nanopb/pb_decode.h",
- "third_party/nanopb/pb_encode.h",
- "src/core/lib/surface/init_unsecure.c",
- "src/core/lib/census/grpc_context.c",
- "src/core/lib/census/grpc_filter.c",
- "src/core/lib/census/grpc_plugin.c",
+ "src/core/ext/census/context.c",
+ "src/core/ext/census/grpc_context.c",
+ "src/core/ext/census/grpc_filter.c",
+ "src/core/ext/census/grpc_plugin.c",
+ "src/core/ext/census/initialize.c",
+ "src/core/ext/census/mlog.c",
+ "src/core/ext/census/operation.c",
+ "src/core/ext/census/placeholders.c",
+ "src/core/ext/census/tracing.c",
+ "src/core/ext/lb_policy/grpclb/load_balancer_api.c",
+ "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c",
+ "src/core/ext/lb_policy/pick_first/pick_first.c",
+ "src/core/ext/lb_policy/round_robin/round_robin.c",
+ "src/core/ext/resolver/dns/native/dns_resolver.c",
+ "src/core/ext/resolver/sockaddr/sockaddr_resolver.c",
+ "src/core/ext/transport/chttp2/client/insecure/channel_create.c",
+ "src/core/ext/transport/chttp2/server/insecure/server_chttp2.c",
+ "src/core/ext/transport/chttp2/transport/alpn.c",
+ "src/core/ext/transport/chttp2/transport/bin_encoder.c",
+ "src/core/ext/transport/chttp2/transport/chttp2_transport.c",
+ "src/core/ext/transport/chttp2/transport/frame_data.c",
+ "src/core/ext/transport/chttp2/transport/frame_goaway.c",
+ "src/core/ext/transport/chttp2/transport/frame_ping.c",
+ "src/core/ext/transport/chttp2/transport/frame_rst_stream.c",
+ "src/core/ext/transport/chttp2/transport/frame_settings.c",
+ "src/core/ext/transport/chttp2/transport/frame_window_update.c",
+ "src/core/ext/transport/chttp2/transport/hpack_encoder.c",
+ "src/core/ext/transport/chttp2/transport/hpack_parser.c",
+ "src/core/ext/transport/chttp2/transport/hpack_table.c",
+ "src/core/ext/transport/chttp2/transport/huffsyms.c",
+ "src/core/ext/transport/chttp2/transport/incoming_metadata.c",
+ "src/core/ext/transport/chttp2/transport/parsing.c",
+ "src/core/ext/transport/chttp2/transport/status_conversion.c",
+ "src/core/ext/transport/chttp2/transport/stream_lists.c",
+ "src/core/ext/transport/chttp2/transport/stream_map.c",
+ "src/core/ext/transport/chttp2/transport/timeout_encoding.c",
+ "src/core/ext/transport/chttp2/transport/varint.c",
+ "src/core/ext/transport/chttp2/transport/writing.c",
"src/core/lib/channel/channel_args.c",
"src/core/lib/channel/channel_stack.c",
"src/core/lib/channel/channel_stack_builder.c",
@@ -676,17 +690,12 @@ cc_library(
"src/core/lib/client_config/connector.c",
"src/core/lib/client_config/default_initial_connect_string.c",
"src/core/lib/client_config/initial_connect_string.c",
- "src/core/lib/client_config/lb_policies/load_balancer_api.c",
- "src/core/lib/client_config/lb_policies/pick_first.c",
- "src/core/lib/client_config/lb_policies/round_robin.c",
"src/core/lib/client_config/lb_policy.c",
"src/core/lib/client_config/lb_policy_factory.c",
"src/core/lib/client_config/lb_policy_registry.c",
"src/core/lib/client_config/resolver.c",
"src/core/lib/client_config/resolver_factory.c",
"src/core/lib/client_config/resolver_registry.c",
- "src/core/lib/client_config/resolvers/dns_resolver.c",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.c",
"src/core/lib/client_config/subchannel.c",
"src/core/lib/client_config/subchannel_factory.c",
"src/core/lib/client_config/subchannel_index.c",
@@ -701,17 +710,14 @@ cc_library(
"src/core/lib/iomgr/endpoint.c",
"src/core/lib/iomgr/endpoint_pair_posix.c",
"src/core/lib/iomgr/endpoint_pair_windows.c",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.c",
+ "src/core/lib/iomgr/ev_posix.c",
"src/core/lib/iomgr/exec_ctx.c",
"src/core/lib/iomgr/executor.c",
- "src/core/lib/iomgr/fd_posix.c",
"src/core/lib/iomgr/iocp_windows.c",
"src/core/lib/iomgr/iomgr.c",
"src/core/lib/iomgr/iomgr_posix.c",
"src/core/lib/iomgr/iomgr_windows.c",
- "src/core/lib/iomgr/pollset_multipoller_with_epoll.c",
- "src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c",
- "src/core/lib/iomgr/pollset_posix.c",
- "src/core/lib/iomgr/pollset_set_posix.c",
"src/core/lib/iomgr/pollset_set_windows.c",
"src/core/lib/iomgr/pollset_windows.c",
"src/core/lib/iomgr/resolve_address_posix.c",
@@ -743,7 +749,6 @@ cc_library(
"src/core/lib/json/json_reader.c",
"src/core/lib/json/json_string.c",
"src/core/lib/json/json_writer.c",
- "src/core/lib/proto/grpc/lb/v0/load_balancer.pb.c",
"src/core/lib/surface/alarm.c",
"src/core/lib/surface/api_trace.c",
"src/core/lib/surface/byte_buffer.c",
@@ -753,70 +758,40 @@ cc_library(
"src/core/lib/surface/call_log_batch.c",
"src/core/lib/surface/channel.c",
"src/core/lib/surface/channel_connectivity.c",
- "src/core/lib/surface/channel_create.c",
"src/core/lib/surface/channel_init.c",
"src/core/lib/surface/channel_ping.c",
"src/core/lib/surface/channel_stack_type.c",
"src/core/lib/surface/completion_queue.c",
"src/core/lib/surface/event_string.c",
"src/core/lib/surface/init.c",
+ "src/core/lib/surface/init_unsecure.c",
"src/core/lib/surface/lame_client.c",
"src/core/lib/surface/metadata_array.c",
"src/core/lib/surface/server.c",
- "src/core/lib/surface/server_chttp2.c",
"src/core/lib/surface/validate_metadata.c",
"src/core/lib/surface/version.c",
"src/core/lib/transport/byte_stream.c",
- "src/core/lib/transport/chttp2/alpn.c",
- "src/core/lib/transport/chttp2/bin_encoder.c",
- "src/core/lib/transport/chttp2/frame_data.c",
- "src/core/lib/transport/chttp2/frame_goaway.c",
- "src/core/lib/transport/chttp2/frame_ping.c",
- "src/core/lib/transport/chttp2/frame_rst_stream.c",
- "src/core/lib/transport/chttp2/frame_settings.c",
- "src/core/lib/transport/chttp2/frame_window_update.c",
- "src/core/lib/transport/chttp2/hpack_encoder.c",
- "src/core/lib/transport/chttp2/hpack_parser.c",
- "src/core/lib/transport/chttp2/hpack_table.c",
- "src/core/lib/transport/chttp2/huffsyms.c",
- "src/core/lib/transport/chttp2/incoming_metadata.c",
- "src/core/lib/transport/chttp2/parsing.c",
- "src/core/lib/transport/chttp2/status_conversion.c",
- "src/core/lib/transport/chttp2/stream_lists.c",
- "src/core/lib/transport/chttp2/stream_map.c",
- "src/core/lib/transport/chttp2/timeout_encoding.c",
- "src/core/lib/transport/chttp2/varint.c",
- "src/core/lib/transport/chttp2/writing.c",
- "src/core/lib/transport/chttp2_transport.c",
"src/core/lib/transport/connectivity_state.c",
"src/core/lib/transport/metadata.c",
"src/core/lib/transport/metadata_batch.c",
"src/core/lib/transport/static_metadata.c",
"src/core/lib/transport/transport.c",
"src/core/lib/transport/transport_op_string.c",
- "src/core/lib/census/context.c",
- "src/core/lib/census/initialize.c",
- "src/core/lib/census/mlog.c",
- "src/core/lib/census/operation.c",
- "src/core/lib/census/placeholders.c",
- "src/core/lib/census/tracing.c",
- "third_party/nanopb/pb_common.c",
- "third_party/nanopb/pb_decode.c",
- "third_party/nanopb/pb_encode.c",
+ "src/core/plugin_registry/grpc_unsecure_plugin_registry.c",
],
hdrs = [
"include/grpc/byte_buffer.h",
"include/grpc/byte_buffer_reader.h",
+ "include/grpc/census.h",
"include/grpc/compression.h",
"include/grpc/grpc.h",
- "include/grpc/status.h",
"include/grpc/impl/codegen/byte_buffer.h",
"include/grpc/impl/codegen/compression_types.h",
"include/grpc/impl/codegen/connectivity_state.h",
"include/grpc/impl/codegen/grpc_types.h",
"include/grpc/impl/codegen/propagation_bits.h",
"include/grpc/impl/codegen/status.h",
- "include/grpc/census.h",
+ "include/grpc/status.h",
],
includes = [
"include",
@@ -824,6 +799,7 @@ cc_library(
],
deps = [
":gpr",
+ "//external:nanopb",
],
copts = [
"-std=gnu99",
@@ -831,11 +807,11 @@ cc_library(
)
+
cc_library(
name = "grpc_zookeeper",
srcs = [
- "src/core/lib/client_config/resolvers/zookeeper_resolver.h",
- "src/core/lib/client_config/resolvers/zookeeper_resolver.c",
+ "src/core/ext/resolver/zookeeper/zookeeper_resolver.c",
],
hdrs = [
"include/grpc/grpc_zookeeper.h",
@@ -851,24 +827,18 @@ cc_library(
)
+
cc_library(
name = "grpc++",
srcs = [
- "src/cpp/client/secure_credentials.h",
- "src/cpp/common/core_codegen.h",
- "src/cpp/common/secure_auth_context.h",
- "src/cpp/server/secure_server_credentials.h",
"src/cpp/client/create_channel_internal.h",
+ "src/cpp/client/secure_credentials.h",
"src/cpp/common/core_codegen.h",
"src/cpp/common/create_auth_context.h",
+ "src/cpp/common/secure_auth_context.h",
"src/cpp/server/dynamic_thread_pool.h",
+ "src/cpp/server/secure_server_credentials.h",
"src/cpp/server/thread_pool_interface.h",
- "src/cpp/client/secure_credentials.cc",
- "src/cpp/common/auth_property_iterator.cc",
- "src/cpp/common/secure_auth_context.cc",
- "src/cpp/common/secure_channel_arguments.cc",
- "src/cpp/common/secure_create_auth_context.cc",
- "src/cpp/server/secure_server_credentials.cc",
"src/cpp/client/channel.cc",
"src/cpp/client/client_context.cc",
"src/cpp/client/create_channel.cc",
@@ -876,14 +846,21 @@ cc_library(
"src/cpp/client/credentials.cc",
"src/cpp/client/generic_stub.cc",
"src/cpp/client/insecure_credentials.cc",
+ "src/cpp/client/secure_credentials.cc",
+ "src/cpp/codegen/codegen_init.cc",
+ "src/cpp/common/auth_property_iterator.cc",
"src/cpp/common/channel_arguments.cc",
"src/cpp/common/completion_queue.cc",
"src/cpp/common/core_codegen.cc",
"src/cpp/common/rpc_method.cc",
+ "src/cpp/common/secure_auth_context.cc",
+ "src/cpp/common/secure_channel_arguments.cc",
+ "src/cpp/common/secure_create_auth_context.cc",
"src/cpp/server/async_generic_service.cc",
"src/cpp/server/create_default_thread_pool.cc",
"src/cpp/server/dynamic_thread_pool.cc",
"src/cpp/server/insecure_server_credentials.cc",
+ "src/cpp/server/secure_server_credentials.cc",
"src/cpp/server/server.cc",
"src/cpp/server/server_builder.cc",
"src/cpp/server/server_context.cc",
@@ -893,7 +870,6 @@ cc_library(
"src/cpp/util/status.cc",
"src/cpp/util/string_ref.cc",
"src/cpp/util/time.cc",
- "src/cpp/codegen/codegen_init.cc",
],
hdrs = [
"include/grpc++/alarm.h",
@@ -906,6 +882,37 @@ cc_library(
"include/grpc++/grpc++.h",
"include/grpc++/impl/call.h",
"include/grpc++/impl/client_unary_call.h",
+ "include/grpc++/impl/codegen/async_stream.h",
+ "include/grpc++/impl/codegen/async_unary_call.h",
+ "include/grpc++/impl/codegen/call.h",
+ "include/grpc++/impl/codegen/call_hook.h",
+ "include/grpc++/impl/codegen/channel_interface.h",
+ "include/grpc++/impl/codegen/client_context.h",
+ "include/grpc++/impl/codegen/client_unary_call.h",
+ "include/grpc++/impl/codegen/completion_queue.h",
+ "include/grpc++/impl/codegen/completion_queue_tag.h",
+ "include/grpc++/impl/codegen/config.h",
+ "include/grpc++/impl/codegen/config_protobuf.h",
+ "include/grpc++/impl/codegen/core_codegen_interface.h",
+ "include/grpc++/impl/codegen/grpc_library.h",
+ "include/grpc++/impl/codegen/method_handler_impl.h",
+ "include/grpc++/impl/codegen/proto_utils.h",
+ "include/grpc++/impl/codegen/rpc_method.h",
+ "include/grpc++/impl/codegen/rpc_service_method.h",
+ "include/grpc++/impl/codegen/security/auth_context.h",
+ "include/grpc++/impl/codegen/serialization_traits.h",
+ "include/grpc++/impl/codegen/server_context.h",
+ "include/grpc++/impl/codegen/server_interface.h",
+ "include/grpc++/impl/codegen/service_type.h",
+ "include/grpc++/impl/codegen/status.h",
+ "include/grpc++/impl/codegen/status_code_enum.h",
+ "include/grpc++/impl/codegen/string_ref.h",
+ "include/grpc++/impl/codegen/stub_options.h",
+ "include/grpc++/impl/codegen/sync.h",
+ "include/grpc++/impl/codegen/sync_cxx11.h",
+ "include/grpc++/impl/codegen/sync_no_cxx11.h",
+ "include/grpc++/impl/codegen/sync_stream.h",
+ "include/grpc++/impl/codegen/time.h",
"include/grpc++/impl/grpc_library.h",
"include/grpc++/impl/method_handler_impl.h",
"include/grpc++/impl/proto_utils.h",
@@ -940,37 +947,6 @@ cc_library(
"include/grpc++/support/stub_options.h",
"include/grpc++/support/sync_stream.h",
"include/grpc++/support/time.h",
- "include/grpc++/impl/codegen/async_stream.h",
- "include/grpc++/impl/codegen/async_unary_call.h",
- "include/grpc++/impl/codegen/call.h",
- "include/grpc++/impl/codegen/call_hook.h",
- "include/grpc++/impl/codegen/channel_interface.h",
- "include/grpc++/impl/codegen/client_context.h",
- "include/grpc++/impl/codegen/client_unary_call.h",
- "include/grpc++/impl/codegen/completion_queue.h",
- "include/grpc++/impl/codegen/completion_queue_tag.h",
- "include/grpc++/impl/codegen/config.h",
- "include/grpc++/impl/codegen/config_protobuf.h",
- "include/grpc++/impl/codegen/core_codegen_interface.h",
- "include/grpc++/impl/codegen/grpc_library.h",
- "include/grpc++/impl/codegen/method_handler_impl.h",
- "include/grpc++/impl/codegen/proto_utils.h",
- "include/grpc++/impl/codegen/rpc_method.h",
- "include/grpc++/impl/codegen/rpc_service_method.h",
- "include/grpc++/impl/codegen/security/auth_context.h",
- "include/grpc++/impl/codegen/serialization_traits.h",
- "include/grpc++/impl/codegen/server_context.h",
- "include/grpc++/impl/codegen/server_interface.h",
- "include/grpc++/impl/codegen/service_type.h",
- "include/grpc++/impl/codegen/status.h",
- "include/grpc++/impl/codegen/status_code_enum.h",
- "include/grpc++/impl/codegen/string_ref.h",
- "include/grpc++/impl/codegen/stub_options.h",
- "include/grpc++/impl/codegen/sync.h",
- "include/grpc++/impl/codegen/sync_cxx11.h",
- "include/grpc++/impl/codegen/sync_no_cxx11.h",
- "include/grpc++/impl/codegen/sync_stream.h",
- "include/grpc++/impl/codegen/time.h",
],
includes = [
"include",
@@ -984,32 +960,13 @@ cc_library(
)
+
cc_library(
name = "grpc++_codegen_lib",
srcs = [
"src/cpp/codegen/codegen_init.cc",
],
hdrs = [
- "include/grpc/impl/codegen/alloc.h",
- "include/grpc/impl/codegen/atm.h",
- "include/grpc/impl/codegen/atm_gcc_atomic.h",
- "include/grpc/impl/codegen/atm_gcc_sync.h",
- "include/grpc/impl/codegen/atm_win32.h",
- "include/grpc/impl/codegen/log.h",
- "include/grpc/impl/codegen/port_platform.h",
- "include/grpc/impl/codegen/slice.h",
- "include/grpc/impl/codegen/slice_buffer.h",
- "include/grpc/impl/codegen/sync.h",
- "include/grpc/impl/codegen/sync_generic.h",
- "include/grpc/impl/codegen/sync_posix.h",
- "include/grpc/impl/codegen/sync_win32.h",
- "include/grpc/impl/codegen/time.h",
- "include/grpc/impl/codegen/byte_buffer.h",
- "include/grpc/impl/codegen/compression_types.h",
- "include/grpc/impl/codegen/connectivity_state.h",
- "include/grpc/impl/codegen/grpc_types.h",
- "include/grpc/impl/codegen/propagation_bits.h",
- "include/grpc/impl/codegen/status.h",
"include/grpc++/impl/codegen/async_stream.h",
"include/grpc++/impl/codegen/async_unary_call.h",
"include/grpc++/impl/codegen/call.h",
@@ -1041,16 +998,38 @@ cc_library(
"include/grpc++/impl/codegen/sync_no_cxx11.h",
"include/grpc++/impl/codegen/sync_stream.h",
"include/grpc++/impl/codegen/time.h",
+ "include/grpc/impl/codegen/alloc.h",
+ "include/grpc/impl/codegen/atm.h",
+ "include/grpc/impl/codegen/atm_gcc_atomic.h",
+ "include/grpc/impl/codegen/atm_gcc_sync.h",
+ "include/grpc/impl/codegen/atm_win32.h",
+ "include/grpc/impl/codegen/byte_buffer.h",
+ "include/grpc/impl/codegen/compression_types.h",
+ "include/grpc/impl/codegen/connectivity_state.h",
+ "include/grpc/impl/codegen/grpc_types.h",
+ "include/grpc/impl/codegen/log.h",
+ "include/grpc/impl/codegen/port_platform.h",
+ "include/grpc/impl/codegen/propagation_bits.h",
+ "include/grpc/impl/codegen/slice.h",
+ "include/grpc/impl/codegen/slice_buffer.h",
+ "include/grpc/impl/codegen/status.h",
+ "include/grpc/impl/codegen/sync.h",
+ "include/grpc/impl/codegen/sync_generic.h",
+ "include/grpc/impl/codegen/sync_posix.h",
+ "include/grpc/impl/codegen/sync_win32.h",
+ "include/grpc/impl/codegen/time.h",
],
includes = [
"include",
".",
],
deps = [
+ "//external:protobuf_clib",
],
)
+
cc_library(
name = "grpc++_unsecure",
srcs = [
@@ -1059,7 +1038,6 @@ cc_library(
"src/cpp/common/create_auth_context.h",
"src/cpp/server/dynamic_thread_pool.h",
"src/cpp/server/thread_pool_interface.h",
- "src/cpp/common/insecure_create_auth_context.cc",
"src/cpp/client/channel.cc",
"src/cpp/client/client_context.cc",
"src/cpp/client/create_channel.cc",
@@ -1067,9 +1045,11 @@ cc_library(
"src/cpp/client/credentials.cc",
"src/cpp/client/generic_stub.cc",
"src/cpp/client/insecure_credentials.cc",
+ "src/cpp/codegen/codegen_init.cc",
"src/cpp/common/channel_arguments.cc",
"src/cpp/common/completion_queue.cc",
"src/cpp/common/core_codegen.cc",
+ "src/cpp/common/insecure_create_auth_context.cc",
"src/cpp/common/rpc_method.cc",
"src/cpp/server/async_generic_service.cc",
"src/cpp/server/create_default_thread_pool.cc",
@@ -1084,7 +1064,6 @@ cc_library(
"src/cpp/util/status.cc",
"src/cpp/util/string_ref.cc",
"src/cpp/util/time.cc",
- "src/cpp/codegen/codegen_init.cc",
],
hdrs = [
"include/grpc++/alarm.h",
@@ -1097,6 +1076,37 @@ cc_library(
"include/grpc++/grpc++.h",
"include/grpc++/impl/call.h",
"include/grpc++/impl/client_unary_call.h",
+ "include/grpc++/impl/codegen/async_stream.h",
+ "include/grpc++/impl/codegen/async_unary_call.h",
+ "include/grpc++/impl/codegen/call.h",
+ "include/grpc++/impl/codegen/call_hook.h",
+ "include/grpc++/impl/codegen/channel_interface.h",
+ "include/grpc++/impl/codegen/client_context.h",
+ "include/grpc++/impl/codegen/client_unary_call.h",
+ "include/grpc++/impl/codegen/completion_queue.h",
+ "include/grpc++/impl/codegen/completion_queue_tag.h",
+ "include/grpc++/impl/codegen/config.h",
+ "include/grpc++/impl/codegen/config_protobuf.h",
+ "include/grpc++/impl/codegen/core_codegen_interface.h",
+ "include/grpc++/impl/codegen/grpc_library.h",
+ "include/grpc++/impl/codegen/method_handler_impl.h",
+ "include/grpc++/impl/codegen/proto_utils.h",
+ "include/grpc++/impl/codegen/rpc_method.h",
+ "include/grpc++/impl/codegen/rpc_service_method.h",
+ "include/grpc++/impl/codegen/security/auth_context.h",
+ "include/grpc++/impl/codegen/serialization_traits.h",
+ "include/grpc++/impl/codegen/server_context.h",
+ "include/grpc++/impl/codegen/server_interface.h",
+ "include/grpc++/impl/codegen/service_type.h",
+ "include/grpc++/impl/codegen/status.h",
+ "include/grpc++/impl/codegen/status_code_enum.h",
+ "include/grpc++/impl/codegen/string_ref.h",
+ "include/grpc++/impl/codegen/stub_options.h",
+ "include/grpc++/impl/codegen/sync.h",
+ "include/grpc++/impl/codegen/sync_cxx11.h",
+ "include/grpc++/impl/codegen/sync_no_cxx11.h",
+ "include/grpc++/impl/codegen/sync_stream.h",
+ "include/grpc++/impl/codegen/time.h",
"include/grpc++/impl/grpc_library.h",
"include/grpc++/impl/method_handler_impl.h",
"include/grpc++/impl/proto_utils.h",
@@ -1131,37 +1141,6 @@ cc_library(
"include/grpc++/support/stub_options.h",
"include/grpc++/support/sync_stream.h",
"include/grpc++/support/time.h",
- "include/grpc++/impl/codegen/async_stream.h",
- "include/grpc++/impl/codegen/async_unary_call.h",
- "include/grpc++/impl/codegen/call.h",
- "include/grpc++/impl/codegen/call_hook.h",
- "include/grpc++/impl/codegen/channel_interface.h",
- "include/grpc++/impl/codegen/client_context.h",
- "include/grpc++/impl/codegen/client_unary_call.h",
- "include/grpc++/impl/codegen/completion_queue.h",
- "include/grpc++/impl/codegen/completion_queue_tag.h",
- "include/grpc++/impl/codegen/config.h",
- "include/grpc++/impl/codegen/config_protobuf.h",
- "include/grpc++/impl/codegen/core_codegen_interface.h",
- "include/grpc++/impl/codegen/grpc_library.h",
- "include/grpc++/impl/codegen/method_handler_impl.h",
- "include/grpc++/impl/codegen/proto_utils.h",
- "include/grpc++/impl/codegen/rpc_method.h",
- "include/grpc++/impl/codegen/rpc_service_method.h",
- "include/grpc++/impl/codegen/security/auth_context.h",
- "include/grpc++/impl/codegen/serialization_traits.h",
- "include/grpc++/impl/codegen/server_context.h",
- "include/grpc++/impl/codegen/server_interface.h",
- "include/grpc++/impl/codegen/service_type.h",
- "include/grpc++/impl/codegen/status.h",
- "include/grpc++/impl/codegen/status_code_enum.h",
- "include/grpc++/impl/codegen/string_ref.h",
- "include/grpc++/impl/codegen/stub_options.h",
- "include/grpc++/impl/codegen/sync.h",
- "include/grpc++/impl/codegen/sync_cxx11.h",
- "include/grpc++/impl/codegen/sync_no_cxx11.h",
- "include/grpc++/impl/codegen/sync_stream.h",
- "include/grpc++/impl/codegen/time.h",
],
includes = [
"include",
@@ -1175,6 +1154,7 @@ cc_library(
)
+
cc_library(
name = "grpc_plugin_support",
srcs = [
@@ -1226,6 +1206,7 @@ cc_library(
)
+
cc_library(
name = "grpc_csharp_ext",
srcs = [
@@ -1245,6 +1226,7 @@ cc_library(
+
objc_library(
name = "gpr_objc",
srcs = [
@@ -1294,6 +1276,20 @@ objc_library(
"src/core/lib/support/wrap_memcpy.c",
],
hdrs = [
+ "include/grpc/impl/codegen/alloc.h",
+ "include/grpc/impl/codegen/atm.h",
+ "include/grpc/impl/codegen/atm_gcc_atomic.h",
+ "include/grpc/impl/codegen/atm_gcc_sync.h",
+ "include/grpc/impl/codegen/atm_win32.h",
+ "include/grpc/impl/codegen/log.h",
+ "include/grpc/impl/codegen/port_platform.h",
+ "include/grpc/impl/codegen/slice.h",
+ "include/grpc/impl/codegen/slice_buffer.h",
+ "include/grpc/impl/codegen/sync.h",
+ "include/grpc/impl/codegen/sync_generic.h",
+ "include/grpc/impl/codegen/sync_posix.h",
+ "include/grpc/impl/codegen/sync_win32.h",
+ "include/grpc/impl/codegen/time.h",
"include/grpc/support/alloc.h",
"include/grpc/support/atm.h",
"include/grpc/support/atm_gcc_atomic.h",
@@ -1322,20 +1318,6 @@ objc_library(
"include/grpc/support/tls_msvc.h",
"include/grpc/support/tls_pthread.h",
"include/grpc/support/useful.h",
- "include/grpc/impl/codegen/alloc.h",
- "include/grpc/impl/codegen/atm.h",
- "include/grpc/impl/codegen/atm_gcc_atomic.h",
- "include/grpc/impl/codegen/atm_gcc_sync.h",
- "include/grpc/impl/codegen/atm_win32.h",
- "include/grpc/impl/codegen/log.h",
- "include/grpc/impl/codegen/port_platform.h",
- "include/grpc/impl/codegen/slice.h",
- "include/grpc/impl/codegen/slice_buffer.h",
- "include/grpc/impl/codegen/sync.h",
- "include/grpc/impl/codegen/sync_generic.h",
- "include/grpc/impl/codegen/sync_posix.h",
- "include/grpc/impl/codegen/sync_win32.h",
- "include/grpc/impl/codegen/time.h",
"src/core/lib/profiling/timers.h",
"src/core/lib/support/backoff.h",
"src/core/lib/support/block_annotate.h",
@@ -1358,12 +1340,50 @@ objc_library(
)
+
objc_library(
name = "grpc_objc",
srcs = [
- "src/core/lib/census/grpc_context.c",
- "src/core/lib/census/grpc_filter.c",
- "src/core/lib/census/grpc_plugin.c",
+ "src/core/ext/census/context.c",
+ "src/core/ext/census/grpc_context.c",
+ "src/core/ext/census/grpc_filter.c",
+ "src/core/ext/census/grpc_plugin.c",
+ "src/core/ext/census/initialize.c",
+ "src/core/ext/census/mlog.c",
+ "src/core/ext/census/operation.c",
+ "src/core/ext/census/placeholders.c",
+ "src/core/ext/census/tracing.c",
+ "src/core/ext/lb_policy/grpclb/load_balancer_api.c",
+ "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c",
+ "src/core/ext/lb_policy/pick_first/pick_first.c",
+ "src/core/ext/lb_policy/round_robin/round_robin.c",
+ "src/core/ext/resolver/dns/native/dns_resolver.c",
+ "src/core/ext/resolver/sockaddr/sockaddr_resolver.c",
+ "src/core/ext/transport/chttp2/client/insecure/channel_create.c",
+ "src/core/ext/transport/chttp2/client/secure/secure_channel_create.c",
+ "src/core/ext/transport/chttp2/server/insecure/server_chttp2.c",
+ "src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c",
+ "src/core/ext/transport/chttp2/transport/alpn.c",
+ "src/core/ext/transport/chttp2/transport/bin_encoder.c",
+ "src/core/ext/transport/chttp2/transport/chttp2_transport.c",
+ "src/core/ext/transport/chttp2/transport/frame_data.c",
+ "src/core/ext/transport/chttp2/transport/frame_goaway.c",
+ "src/core/ext/transport/chttp2/transport/frame_ping.c",
+ "src/core/ext/transport/chttp2/transport/frame_rst_stream.c",
+ "src/core/ext/transport/chttp2/transport/frame_settings.c",
+ "src/core/ext/transport/chttp2/transport/frame_window_update.c",
+ "src/core/ext/transport/chttp2/transport/hpack_encoder.c",
+ "src/core/ext/transport/chttp2/transport/hpack_parser.c",
+ "src/core/ext/transport/chttp2/transport/hpack_table.c",
+ "src/core/ext/transport/chttp2/transport/huffsyms.c",
+ "src/core/ext/transport/chttp2/transport/incoming_metadata.c",
+ "src/core/ext/transport/chttp2/transport/parsing.c",
+ "src/core/ext/transport/chttp2/transport/status_conversion.c",
+ "src/core/ext/transport/chttp2/transport/stream_lists.c",
+ "src/core/ext/transport/chttp2/transport/stream_map.c",
+ "src/core/ext/transport/chttp2/transport/timeout_encoding.c",
+ "src/core/ext/transport/chttp2/transport/varint.c",
+ "src/core/ext/transport/chttp2/transport/writing.c",
"src/core/lib/channel/channel_args.c",
"src/core/lib/channel/channel_stack.c",
"src/core/lib/channel/channel_stack_builder.c",
@@ -1377,17 +1397,12 @@ objc_library(
"src/core/lib/client_config/connector.c",
"src/core/lib/client_config/default_initial_connect_string.c",
"src/core/lib/client_config/initial_connect_string.c",
- "src/core/lib/client_config/lb_policies/load_balancer_api.c",
- "src/core/lib/client_config/lb_policies/pick_first.c",
- "src/core/lib/client_config/lb_policies/round_robin.c",
"src/core/lib/client_config/lb_policy.c",
"src/core/lib/client_config/lb_policy_factory.c",
"src/core/lib/client_config/lb_policy_registry.c",
"src/core/lib/client_config/resolver.c",
"src/core/lib/client_config/resolver_factory.c",
"src/core/lib/client_config/resolver_registry.c",
- "src/core/lib/client_config/resolvers/dns_resolver.c",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.c",
"src/core/lib/client_config/subchannel.c",
"src/core/lib/client_config/subchannel_factory.c",
"src/core/lib/client_config/subchannel_index.c",
@@ -1397,22 +1412,20 @@ objc_library(
"src/core/lib/debug/trace.c",
"src/core/lib/http/format_request.c",
"src/core/lib/http/httpcli.c",
+ "src/core/lib/http/httpcli_security_connector.c",
"src/core/lib/http/parser.c",
"src/core/lib/iomgr/closure.c",
"src/core/lib/iomgr/endpoint.c",
"src/core/lib/iomgr/endpoint_pair_posix.c",
"src/core/lib/iomgr/endpoint_pair_windows.c",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.c",
+ "src/core/lib/iomgr/ev_posix.c",
"src/core/lib/iomgr/exec_ctx.c",
"src/core/lib/iomgr/executor.c",
- "src/core/lib/iomgr/fd_posix.c",
"src/core/lib/iomgr/iocp_windows.c",
"src/core/lib/iomgr/iomgr.c",
"src/core/lib/iomgr/iomgr_posix.c",
"src/core/lib/iomgr/iomgr_windows.c",
- "src/core/lib/iomgr/pollset_multipoller_with_epoll.c",
- "src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c",
- "src/core/lib/iomgr/pollset_posix.c",
- "src/core/lib/iomgr/pollset_set_posix.c",
"src/core/lib/iomgr/pollset_set_windows.c",
"src/core/lib/iomgr/pollset_windows.c",
"src/core/lib/iomgr/resolve_address_posix.c",
@@ -1444,7 +1457,20 @@ objc_library(
"src/core/lib/json/json_reader.c",
"src/core/lib/json/json_string.c",
"src/core/lib/json/json_writer.c",
- "src/core/lib/proto/grpc/lb/v0/load_balancer.pb.c",
+ "src/core/lib/security/b64.c",
+ "src/core/lib/security/client_auth_filter.c",
+ "src/core/lib/security/credentials.c",
+ "src/core/lib/security/credentials_metadata.c",
+ "src/core/lib/security/credentials_posix.c",
+ "src/core/lib/security/credentials_win32.c",
+ "src/core/lib/security/google_default_credentials.c",
+ "src/core/lib/security/handshake.c",
+ "src/core/lib/security/json_token.c",
+ "src/core/lib/security/jwt_verifier.c",
+ "src/core/lib/security/secure_endpoint.c",
+ "src/core/lib/security/security_connector.c",
+ "src/core/lib/security/security_context.c",
+ "src/core/lib/security/server_auth_filter.c",
"src/core/lib/surface/alarm.c",
"src/core/lib/surface/api_trace.c",
"src/core/lib/surface/byte_buffer.c",
@@ -1454,94 +1480,73 @@ objc_library(
"src/core/lib/surface/call_log_batch.c",
"src/core/lib/surface/channel.c",
"src/core/lib/surface/channel_connectivity.c",
- "src/core/lib/surface/channel_create.c",
"src/core/lib/surface/channel_init.c",
"src/core/lib/surface/channel_ping.c",
"src/core/lib/surface/channel_stack_type.c",
"src/core/lib/surface/completion_queue.c",
"src/core/lib/surface/event_string.c",
"src/core/lib/surface/init.c",
+ "src/core/lib/surface/init_secure.c",
"src/core/lib/surface/lame_client.c",
"src/core/lib/surface/metadata_array.c",
"src/core/lib/surface/server.c",
- "src/core/lib/surface/server_chttp2.c",
"src/core/lib/surface/validate_metadata.c",
"src/core/lib/surface/version.c",
"src/core/lib/transport/byte_stream.c",
- "src/core/lib/transport/chttp2/alpn.c",
- "src/core/lib/transport/chttp2/bin_encoder.c",
- "src/core/lib/transport/chttp2/frame_data.c",
- "src/core/lib/transport/chttp2/frame_goaway.c",
- "src/core/lib/transport/chttp2/frame_ping.c",
- "src/core/lib/transport/chttp2/frame_rst_stream.c",
- "src/core/lib/transport/chttp2/frame_settings.c",
- "src/core/lib/transport/chttp2/frame_window_update.c",
- "src/core/lib/transport/chttp2/hpack_encoder.c",
- "src/core/lib/transport/chttp2/hpack_parser.c",
- "src/core/lib/transport/chttp2/hpack_table.c",
- "src/core/lib/transport/chttp2/huffsyms.c",
- "src/core/lib/transport/chttp2/incoming_metadata.c",
- "src/core/lib/transport/chttp2/parsing.c",
- "src/core/lib/transport/chttp2/status_conversion.c",
- "src/core/lib/transport/chttp2/stream_lists.c",
- "src/core/lib/transport/chttp2/stream_map.c",
- "src/core/lib/transport/chttp2/timeout_encoding.c",
- "src/core/lib/transport/chttp2/varint.c",
- "src/core/lib/transport/chttp2/writing.c",
- "src/core/lib/transport/chttp2_transport.c",
"src/core/lib/transport/connectivity_state.c",
"src/core/lib/transport/metadata.c",
"src/core/lib/transport/metadata_batch.c",
"src/core/lib/transport/static_metadata.c",
"src/core/lib/transport/transport.c",
"src/core/lib/transport/transport_op_string.c",
- "src/core/lib/http/httpcli_security_connector.c",
- "src/core/lib/security/b64.c",
- "src/core/lib/security/client_auth_filter.c",
- "src/core/lib/security/credentials.c",
- "src/core/lib/security/credentials_metadata.c",
- "src/core/lib/security/credentials_posix.c",
- "src/core/lib/security/credentials_win32.c",
- "src/core/lib/security/google_default_credentials.c",
- "src/core/lib/security/handshake.c",
- "src/core/lib/security/json_token.c",
- "src/core/lib/security/jwt_verifier.c",
- "src/core/lib/security/secure_endpoint.c",
- "src/core/lib/security/security_connector.c",
- "src/core/lib/security/security_context.c",
- "src/core/lib/security/server_auth_filter.c",
- "src/core/lib/security/server_secure_chttp2.c",
- "src/core/lib/surface/init_secure.c",
- "src/core/lib/surface/secure_channel_create.c",
"src/core/lib/tsi/fake_transport_security.c",
"src/core/lib/tsi/ssl_transport_security.c",
"src/core/lib/tsi/transport_security.c",
- "src/core/lib/census/context.c",
- "src/core/lib/census/initialize.c",
- "src/core/lib/census/mlog.c",
- "src/core/lib/census/operation.c",
- "src/core/lib/census/placeholders.c",
- "src/core/lib/census/tracing.c",
- "third_party/nanopb/pb_common.c",
- "third_party/nanopb/pb_decode.c",
- "third_party/nanopb/pb_encode.c",
+ "src/core/plugin_registry/grpc_plugin_registry.c",
],
hdrs = [
- "include/grpc/grpc_security.h",
"include/grpc/byte_buffer.h",
"include/grpc/byte_buffer_reader.h",
+ "include/grpc/census.h",
"include/grpc/compression.h",
"include/grpc/grpc.h",
- "include/grpc/status.h",
+ "include/grpc/grpc_security.h",
"include/grpc/impl/codegen/byte_buffer.h",
"include/grpc/impl/codegen/compression_types.h",
"include/grpc/impl/codegen/connectivity_state.h",
"include/grpc/impl/codegen/grpc_types.h",
"include/grpc/impl/codegen/propagation_bits.h",
"include/grpc/impl/codegen/status.h",
- "include/grpc/census.h",
- "src/core/lib/census/grpc_filter.h",
- "src/core/lib/census/grpc_plugin.h",
+ "include/grpc/status.h",
+ "src/core/ext/census/aggregation.h",
+ "src/core/ext/census/census_interface.h",
+ "src/core/ext/census/census_rpc_stats.h",
+ "src/core/ext/census/grpc_filter.h",
+ "src/core/ext/census/mlog.h",
+ "src/core/ext/census/rpc_metric_id.h",
+ "src/core/ext/lb_policy/grpclb/load_balancer_api.h",
+ "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h",
+ "src/core/ext/transport/chttp2/transport/alpn.h",
+ "src/core/ext/transport/chttp2/transport/bin_encoder.h",
+ "src/core/ext/transport/chttp2/transport/chttp2_transport.h",
+ "src/core/ext/transport/chttp2/transport/frame.h",
+ "src/core/ext/transport/chttp2/transport/frame_data.h",
+ "src/core/ext/transport/chttp2/transport/frame_goaway.h",
+ "src/core/ext/transport/chttp2/transport/frame_ping.h",
+ "src/core/ext/transport/chttp2/transport/frame_rst_stream.h",
+ "src/core/ext/transport/chttp2/transport/frame_settings.h",
+ "src/core/ext/transport/chttp2/transport/frame_window_update.h",
+ "src/core/ext/transport/chttp2/transport/hpack_encoder.h",
+ "src/core/ext/transport/chttp2/transport/hpack_parser.h",
+ "src/core/ext/transport/chttp2/transport/hpack_table.h",
+ "src/core/ext/transport/chttp2/transport/http2_errors.h",
+ "src/core/ext/transport/chttp2/transport/huffsyms.h",
+ "src/core/ext/transport/chttp2/transport/incoming_metadata.h",
+ "src/core/ext/transport/chttp2/transport/internal.h",
+ "src/core/ext/transport/chttp2/transport/status_conversion.h",
+ "src/core/ext/transport/chttp2/transport/stream_map.h",
+ "src/core/ext/transport/chttp2/transport/timeout_encoding.h",
+ "src/core/ext/transport/chttp2/transport/varint.h",
"src/core/lib/channel/channel_args.h",
"src/core/lib/channel/channel_stack.h",
"src/core/lib/channel/channel_stack_builder.h",
@@ -1555,17 +1560,12 @@ objc_library(
"src/core/lib/client_config/client_config.h",
"src/core/lib/client_config/connector.h",
"src/core/lib/client_config/initial_connect_string.h",
- "src/core/lib/client_config/lb_policies/load_balancer_api.h",
- "src/core/lib/client_config/lb_policies/pick_first.h",
- "src/core/lib/client_config/lb_policies/round_robin.h",
"src/core/lib/client_config/lb_policy.h",
"src/core/lib/client_config/lb_policy_factory.h",
"src/core/lib/client_config/lb_policy_registry.h",
"src/core/lib/client_config/resolver.h",
"src/core/lib/client_config/resolver_factory.h",
"src/core/lib/client_config/resolver_registry.h",
- "src/core/lib/client_config/resolvers/dns_resolver.h",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.h",
"src/core/lib/client_config/subchannel.h",
"src/core/lib/client_config/subchannel_factory.h",
"src/core/lib/client_config/subchannel_index.h",
@@ -1579,17 +1579,16 @@ objc_library(
"src/core/lib/iomgr/closure.h",
"src/core/lib/iomgr/endpoint.h",
"src/core/lib/iomgr/endpoint_pair.h",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.h",
+ "src/core/lib/iomgr/ev_posix.h",
"src/core/lib/iomgr/exec_ctx.h",
"src/core/lib/iomgr/executor.h",
- "src/core/lib/iomgr/fd_posix.h",
"src/core/lib/iomgr/iocp_windows.h",
"src/core/lib/iomgr/iomgr.h",
"src/core/lib/iomgr/iomgr_internal.h",
"src/core/lib/iomgr/iomgr_posix.h",
"src/core/lib/iomgr/pollset.h",
- "src/core/lib/iomgr/pollset_posix.h",
"src/core/lib/iomgr/pollset_set.h",
- "src/core/lib/iomgr/pollset_set_posix.h",
"src/core/lib/iomgr/pollset_set_windows.h",
"src/core/lib/iomgr/pollset_windows.h",
"src/core/lib/iomgr/resolve_address.h",
@@ -1617,9 +1616,15 @@ objc_library(
"src/core/lib/json/json_common.h",
"src/core/lib/json/json_reader.h",
"src/core/lib/json/json_writer.h",
- "src/core/lib/proto/grpc/lb/v0/load_balancer.pb.h",
- "src/core/lib/statistics/census_interface.h",
- "src/core/lib/statistics/census_rpc_stats.h",
+ "src/core/lib/security/auth_filters.h",
+ "src/core/lib/security/b64.h",
+ "src/core/lib/security/credentials.h",
+ "src/core/lib/security/handshake.h",
+ "src/core/lib/security/json_token.h",
+ "src/core/lib/security/jwt_verifier.h",
+ "src/core/lib/security/secure_endpoint.h",
+ "src/core/lib/security/security_connector.h",
+ "src/core/lib/security/security_context.h",
"src/core/lib/surface/api_trace.h",
"src/core/lib/surface/call.h",
"src/core/lib/surface/call_test_only.h",
@@ -1633,54 +1638,17 @@ objc_library(
"src/core/lib/surface/server.h",
"src/core/lib/surface/surface_trace.h",
"src/core/lib/transport/byte_stream.h",
- "src/core/lib/transport/chttp2/alpn.h",
- "src/core/lib/transport/chttp2/bin_encoder.h",
- "src/core/lib/transport/chttp2/frame.h",
- "src/core/lib/transport/chttp2/frame_data.h",
- "src/core/lib/transport/chttp2/frame_goaway.h",
- "src/core/lib/transport/chttp2/frame_ping.h",
- "src/core/lib/transport/chttp2/frame_rst_stream.h",
- "src/core/lib/transport/chttp2/frame_settings.h",
- "src/core/lib/transport/chttp2/frame_window_update.h",
- "src/core/lib/transport/chttp2/hpack_encoder.h",
- "src/core/lib/transport/chttp2/hpack_parser.h",
- "src/core/lib/transport/chttp2/hpack_table.h",
- "src/core/lib/transport/chttp2/http2_errors.h",
- "src/core/lib/transport/chttp2/huffsyms.h",
- "src/core/lib/transport/chttp2/incoming_metadata.h",
- "src/core/lib/transport/chttp2/internal.h",
- "src/core/lib/transport/chttp2/status_conversion.h",
- "src/core/lib/transport/chttp2/stream_map.h",
- "src/core/lib/transport/chttp2/timeout_encoding.h",
- "src/core/lib/transport/chttp2/varint.h",
- "src/core/lib/transport/chttp2_transport.h",
"src/core/lib/transport/connectivity_state.h",
"src/core/lib/transport/metadata.h",
"src/core/lib/transport/metadata_batch.h",
"src/core/lib/transport/static_metadata.h",
"src/core/lib/transport/transport.h",
"src/core/lib/transport/transport_impl.h",
- "src/core/lib/security/auth_filters.h",
- "src/core/lib/security/b64.h",
- "src/core/lib/security/credentials.h",
- "src/core/lib/security/handshake.h",
- "src/core/lib/security/json_token.h",
- "src/core/lib/security/jwt_verifier.h",
- "src/core/lib/security/secure_endpoint.h",
- "src/core/lib/security/security_connector.h",
- "src/core/lib/security/security_context.h",
"src/core/lib/tsi/fake_transport_security.h",
"src/core/lib/tsi/ssl_transport_security.h",
"src/core/lib/tsi/ssl_types.h",
"src/core/lib/tsi/transport_security.h",
"src/core/lib/tsi/transport_security_interface.h",
- "src/core/lib/census/aggregation.h",
- "src/core/lib/census/mlog.h",
- "src/core/lib/census/rpc_metric_id.h",
- "third_party/nanopb/pb.h",
- "third_party/nanopb/pb_common.h",
- "third_party/nanopb/pb_decode.h",
- "third_party/nanopb/pb_encode.h",
],
includes = [
"include",
@@ -1689,6 +1657,7 @@ objc_library(
deps = [
":gpr_objc",
"//external:libssl_objc",
+ "//external:nanopb",
],
sdk_dylibs = ["libz"],
)
diff --git a/LICENSE b/LICENSE
index ac4b207af7..0209b570e1 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright 2015-2016, Google Inc.
+Copyright 2015, Google Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
diff --git a/Makefile b/Makefile
index 112b7f8777..4bb7dc8a16 100644
--- a/Makefile
+++ b/Makefile
@@ -5,7 +5,7 @@
# This file can be regenerated from the template by running
# tools/buildgen/generate_projects.sh
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -95,6 +95,16 @@ LDXX_opt = $(DEFAULT_CXX)
CPPFLAGS_opt = -O2
DEFINES_opt = NDEBUG
+VALID_CONFIG_asan-trace-cmp = 1
+REQUIRE_CUSTOM_LIBRARIES_asan-trace-cmp = 1
+CC_asan-trace-cmp = clang
+CXX_asan-trace-cmp = clang++
+LD_asan-trace-cmp = clang
+LDXX_asan-trace-cmp = clang++
+CPPFLAGS_asan-trace-cmp = -O0 -fsanitize-coverage=edge -fsanitize-coverage=trace-cmp -fsanitize=address -fno-omit-frame-pointer -Wno-unused-command-line-argument -DGPR_NO_DIRECT_SYSCALLS
+LDFLAGS_asan-trace-cmp = -fsanitize=address
+DEFINES_asan-trace-cmp += GRPC_TEST_SLOWDOWN_BUILD_FACTOR=3
+
VALID_CONFIG_dbg = 1
CC_dbg = $(DEFAULT_CC)
CXX_dbg = $(DEFAULT_CXX)
@@ -109,7 +119,7 @@ CC_easan = clang
CXX_easan = clang++
LD_easan = clang
LDXX_easan = clang++
-CPPFLAGS_easan = -O0 -fsanitize=address -fno-omit-frame-pointer -Wno-unused-command-line-argument -DGPR_NO_DIRECT_SYSCALLS
+CPPFLAGS_easan = -O0 -fsanitize-coverage=edge -fsanitize=address -fno-omit-frame-pointer -Wno-unused-command-line-argument -DGPR_NO_DIRECT_SYSCALLS
LDFLAGS_easan = -fsanitize=address
DEFINES_easan = _DEBUG DEBUG GRPC_EXECUTION_CONTEXT_SANITIZER
DEFINES_easan += GRPC_TEST_SLOWDOWN_BUILD_FACTOR=3
@@ -120,7 +130,7 @@ CC_asan = clang
CXX_asan = clang++
LD_asan = clang
LDXX_asan = clang++
-CPPFLAGS_asan = -O0 -fsanitize=address -fno-omit-frame-pointer -Wno-unused-command-line-argument -DGPR_NO_DIRECT_SYSCALLS
+CPPFLAGS_asan = -O0 -fsanitize-coverage=edge -fsanitize=address -fno-omit-frame-pointer -Wno-unused-command-line-argument -DGPR_NO_DIRECT_SYSCALLS
LDFLAGS_asan = -fsanitize=address
DEFINES_asan += GRPC_TEST_SLOWDOWN_BUILD_FACTOR=3
@@ -130,7 +140,7 @@ CC_msan = clang
CXX_msan = clang++
LD_msan = clang
LDXX_msan = clang++
-CPPFLAGS_msan = -O0 -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -Wno-unused-command-line-argument -fPIE -pie -DGPR_NO_DIRECT_SYSCALLS
+CPPFLAGS_msan = -O0 -fsanitize-coverage=edge -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -Wno-unused-command-line-argument -fPIE -pie -DGPR_NO_DIRECT_SYSCALLS
LDFLAGS_msan = -fsanitize=memory -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -fPIE -pie $(if $(JENKINS_BUILD),-Wl$(comma)-Ttext-segment=0x7e0000000000,)
DEFINES_msan = NDEBUG
DEFINES_msan += GRPC_TEST_SLOWDOWN_BUILD_FACTOR=4
@@ -159,7 +169,7 @@ CC_asan-noleaks = clang
CXX_asan-noleaks = clang++
LD_asan-noleaks = clang
LDXX_asan-noleaks = clang++
-CPPFLAGS_asan-noleaks = -O0 -fsanitize=address -fno-omit-frame-pointer -Wno-unused-command-line-argument -DGPR_NO_DIRECT_SYSCALLS
+CPPFLAGS_asan-noleaks = -O0 -fsanitize-coverage=edge -fsanitize=address -fno-omit-frame-pointer -Wno-unused-command-line-argument -DGPR_NO_DIRECT_SYSCALLS
LDFLAGS_asan-noleaks = -fsanitize=address
DEFINES_asan-noleaks += GRPC_TEST_SLOWDOWN_BUILD_FACTOR=3
@@ -177,7 +187,7 @@ CC_ubsan = clang
CXX_ubsan = clang++
LD_ubsan = clang
LDXX_ubsan = clang++
-CPPFLAGS_ubsan = -O1 -fsanitize=undefined -fno-omit-frame-pointer -Wno-unused-command-line-argument
+CPPFLAGS_ubsan = -O1 -fsanitize-coverage=edge -fsanitize=undefined -fno-omit-frame-pointer -Wno-unused-command-line-argument
LDFLAGS_ubsan = -fsanitize=undefined
DEFINES_ubsan = NDEBUG
DEFINES_ubsan += GRPC_TEST_SLOWDOWN_BUILD_FACTOR=1.5
@@ -892,6 +902,7 @@ fling_stream_test: $(BINDIR)/$(CONFIG)/fling_stream_test
fling_test: $(BINDIR)/$(CONFIG)/fling_test
gen_hpack_tables: $(BINDIR)/$(CONFIG)/gen_hpack_tables
gen_legal_metadata_characters: $(BINDIR)/$(CONFIG)/gen_legal_metadata_characters
+goaway_server_test: $(BINDIR)/$(CONFIG)/goaway_server_test
gpr_avl_test: $(BINDIR)/$(CONFIG)/gpr_avl_test
gpr_backoff_test: $(BINDIR)/$(CONFIG)/gpr_backoff_test
gpr_cmdline_test: $(BINDIR)/$(CONFIG)/gpr_cmdline_test
@@ -925,14 +936,20 @@ grpc_jwt_verifier_test: $(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test
grpc_print_google_default_creds_token: $(BINDIR)/$(CONFIG)/grpc_print_google_default_creds_token
grpc_security_connector_test: $(BINDIR)/$(CONFIG)/grpc_security_connector_test
grpc_verify_jwt: $(BINDIR)/$(CONFIG)/grpc_verify_jwt
+hpack_parser_fuzzer_test: $(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test
hpack_parser_test: $(BINDIR)/$(CONFIG)/hpack_parser_test
hpack_table_test: $(BINDIR)/$(CONFIG)/hpack_table_test
+http_fuzzer_test: $(BINDIR)/$(CONFIG)/http_fuzzer_test
http_parser_test: $(BINDIR)/$(CONFIG)/http_parser_test
httpcli_format_request_test: $(BINDIR)/$(CONFIG)/httpcli_format_request_test
httpcli_test: $(BINDIR)/$(CONFIG)/httpcli_test
httpscli_test: $(BINDIR)/$(CONFIG)/httpscli_test
init_test: $(BINDIR)/$(CONFIG)/init_test
+internal_api_canary_iomgr_test: $(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test
+internal_api_canary_support_test: $(BINDIR)/$(CONFIG)/internal_api_canary_support_test
+internal_api_canary_transport_test: $(BINDIR)/$(CONFIG)/internal_api_canary_transport_test
invalid_call_argument_test: $(BINDIR)/$(CONFIG)/invalid_call_argument_test
+json_fuzzer_test: $(BINDIR)/$(CONFIG)/json_fuzzer_test
json_rewrite: $(BINDIR)/$(CONFIG)/json_rewrite
json_rewrite_test: $(BINDIR)/$(CONFIG)/json_rewrite_test
json_stream_error_test: $(BINDIR)/$(CONFIG)/json_stream_error_test
@@ -966,6 +983,7 @@ transport_connectivity_state_test: $(BINDIR)/$(CONFIG)/transport_connectivity_st
transport_metadata_test: $(BINDIR)/$(CONFIG)/transport_metadata_test
transport_security_test: $(BINDIR)/$(CONFIG)/transport_security_test
udp_server_test: $(BINDIR)/$(CONFIG)/udp_server_test
+uri_fuzzer_test: $(BINDIR)/$(CONFIG)/uri_fuzzer_test
uri_parser_test: $(BINDIR)/$(CONFIG)/uri_parser_test
workqueue_test: $(BINDIR)/$(CONFIG)/workqueue_test
alarm_cpp_test: $(BINDIR)/$(CONFIG)/alarm_cpp_test
@@ -1073,8 +1091,6 @@ h2_compress_test: $(BINDIR)/$(CONFIG)/h2_compress_test
h2_fakesec_test: $(BINDIR)/$(CONFIG)/h2_fakesec_test
h2_full_test: $(BINDIR)/$(CONFIG)/h2_full_test
h2_full+pipe_test: $(BINDIR)/$(CONFIG)/h2_full+pipe_test
-h2_full+poll_test: $(BINDIR)/$(CONFIG)/h2_full+poll_test
-h2_full+poll+pipe_test: $(BINDIR)/$(CONFIG)/h2_full+poll+pipe_test
h2_full+trace_test: $(BINDIR)/$(CONFIG)/h2_full+trace_test
h2_oauth2_test: $(BINDIR)/$(CONFIG)/h2_oauth2_test
h2_proxy_test: $(BINDIR)/$(CONFIG)/h2_proxy_test
@@ -1082,23 +1098,22 @@ h2_sockpair_test: $(BINDIR)/$(CONFIG)/h2_sockpair_test
h2_sockpair+trace_test: $(BINDIR)/$(CONFIG)/h2_sockpair+trace_test
h2_sockpair_1byte_test: $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_test
h2_ssl_test: $(BINDIR)/$(CONFIG)/h2_ssl_test
-h2_ssl+poll_test: $(BINDIR)/$(CONFIG)/h2_ssl+poll_test
h2_ssl_proxy_test: $(BINDIR)/$(CONFIG)/h2_ssl_proxy_test
h2_uds_test: $(BINDIR)/$(CONFIG)/h2_uds_test
-h2_uds+poll_test: $(BINDIR)/$(CONFIG)/h2_uds+poll_test
h2_census_nosec_test: $(BINDIR)/$(CONFIG)/h2_census_nosec_test
h2_compress_nosec_test: $(BINDIR)/$(CONFIG)/h2_compress_nosec_test
h2_full_nosec_test: $(BINDIR)/$(CONFIG)/h2_full_nosec_test
h2_full+pipe_nosec_test: $(BINDIR)/$(CONFIG)/h2_full+pipe_nosec_test
-h2_full+poll_nosec_test: $(BINDIR)/$(CONFIG)/h2_full+poll_nosec_test
-h2_full+poll+pipe_nosec_test: $(BINDIR)/$(CONFIG)/h2_full+poll+pipe_nosec_test
h2_full+trace_nosec_test: $(BINDIR)/$(CONFIG)/h2_full+trace_nosec_test
h2_proxy_nosec_test: $(BINDIR)/$(CONFIG)/h2_proxy_nosec_test
h2_sockpair_nosec_test: $(BINDIR)/$(CONFIG)/h2_sockpair_nosec_test
h2_sockpair+trace_nosec_test: $(BINDIR)/$(CONFIG)/h2_sockpair+trace_nosec_test
h2_sockpair_1byte_nosec_test: $(BINDIR)/$(CONFIG)/h2_sockpair_1byte_nosec_test
h2_uds_nosec_test: $(BINDIR)/$(CONFIG)/h2_uds_nosec_test
-h2_uds+poll_nosec_test: $(BINDIR)/$(CONFIG)/h2_uds+poll_nosec_test
+hpack_parser_fuzzer_test_one_entry: $(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test_one_entry
+http_fuzzer_test_one_entry: $(BINDIR)/$(CONFIG)/http_fuzzer_test_one_entry
+json_fuzzer_test_one_entry: $(BINDIR)/$(CONFIG)/json_fuzzer_test_one_entry
+uri_fuzzer_test_one_entry: $(BINDIR)/$(CONFIG)/uri_fuzzer_test_one_entry
run_dep_checks:
$(OPENSSL_ALPN_CHECK_CMD) || true
@@ -1155,7 +1170,7 @@ plugins: $(PROTOC_PLUGINS)
privatelibs: privatelibs_c privatelibs_cxx
-privatelibs_c: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libz.a $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a
+privatelibs_c: $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libreconnect_server.a $(LIBDIR)/$(CONFIG)/libtest_tcp_server.a $(LIBDIR)/$(CONFIG)/libz.a $(LIBDIR)/$(CONFIG)/libbad_client_test.a $(LIBDIR)/$(CONFIG)/libbad_ssl_test_server.a $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a
pc_c: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc.pc
pc_c_unsecure: $(LIBDIR)/$(CONFIG)/pkgconfig/grpc_unsecure.pc
@@ -1205,6 +1220,7 @@ buildtests_c: privatelibs_c \
$(BINDIR)/$(CONFIG)/fling_server \
$(BINDIR)/$(CONFIG)/fling_stream_test \
$(BINDIR)/$(CONFIG)/fling_test \
+ $(BINDIR)/$(CONFIG)/goaway_server_test \
$(BINDIR)/$(CONFIG)/gpr_avl_test \
$(BINDIR)/$(CONFIG)/gpr_backoff_test \
$(BINDIR)/$(CONFIG)/gpr_cmdline_test \
@@ -1241,6 +1257,9 @@ buildtests_c: privatelibs_c \
$(BINDIR)/$(CONFIG)/httpcli_test \
$(BINDIR)/$(CONFIG)/httpscli_test \
$(BINDIR)/$(CONFIG)/init_test \
+ $(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test \
+ $(BINDIR)/$(CONFIG)/internal_api_canary_support_test \
+ $(BINDIR)/$(CONFIG)/internal_api_canary_transport_test \
$(BINDIR)/$(CONFIG)/invalid_call_argument_test \
$(BINDIR)/$(CONFIG)/json_rewrite \
$(BINDIR)/$(CONFIG)/json_rewrite_test \
@@ -1294,8 +1313,6 @@ buildtests_c: privatelibs_c \
$(BINDIR)/$(CONFIG)/h2_fakesec_test \
$(BINDIR)/$(CONFIG)/h2_full_test \
$(BINDIR)/$(CONFIG)/h2_full+pipe_test \
- $(BINDIR)/$(CONFIG)/h2_full+poll_test \
- $(BINDIR)/$(CONFIG)/h2_full+poll+pipe_test \
$(BINDIR)/$(CONFIG)/h2_full+trace_test \
$(BINDIR)/$(CONFIG)/h2_oauth2_test \
$(BINDIR)/$(CONFIG)/h2_proxy_test \
@@ -1303,23 +1320,22 @@ buildtests_c: privatelibs_c \
$(BINDIR)/$(CONFIG)/h2_sockpair+trace_test \
$(BINDIR)/$(CONFIG)/h2_sockpair_1byte_test \
$(BINDIR)/$(CONFIG)/h2_ssl_test \
- $(BINDIR)/$(CONFIG)/h2_ssl+poll_test \
$(BINDIR)/$(CONFIG)/h2_ssl_proxy_test \
$(BINDIR)/$(CONFIG)/h2_uds_test \
- $(BINDIR)/$(CONFIG)/h2_uds+poll_test \
$(BINDIR)/$(CONFIG)/h2_census_nosec_test \
$(BINDIR)/$(CONFIG)/h2_compress_nosec_test \
$(BINDIR)/$(CONFIG)/h2_full_nosec_test \
$(BINDIR)/$(CONFIG)/h2_full+pipe_nosec_test \
- $(BINDIR)/$(CONFIG)/h2_full+poll_nosec_test \
- $(BINDIR)/$(CONFIG)/h2_full+poll+pipe_nosec_test \
$(BINDIR)/$(CONFIG)/h2_full+trace_nosec_test \
$(BINDIR)/$(CONFIG)/h2_proxy_nosec_test \
$(BINDIR)/$(CONFIG)/h2_sockpair_nosec_test \
$(BINDIR)/$(CONFIG)/h2_sockpair+trace_nosec_test \
$(BINDIR)/$(CONFIG)/h2_sockpair_1byte_nosec_test \
$(BINDIR)/$(CONFIG)/h2_uds_nosec_test \
- $(BINDIR)/$(CONFIG)/h2_uds+poll_nosec_test \
+ $(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test_one_entry \
+ $(BINDIR)/$(CONFIG)/http_fuzzer_test_one_entry \
+ $(BINDIR)/$(CONFIG)/json_fuzzer_test_one_entry \
+ $(BINDIR)/$(CONFIG)/uri_fuzzer_test_one_entry \
buildtests_cxx: buildtests_zookeeper privatelibs_cxx \
@@ -1460,6 +1476,8 @@ test_c: buildtests_c
$(Q) $(BINDIR)/$(CONFIG)/fling_stream_test || ( echo test fling_stream_test failed ; exit 1 )
$(E) "[RUN] Testing fling_test"
$(Q) $(BINDIR)/$(CONFIG)/fling_test || ( echo test fling_test failed ; exit 1 )
+ $(E) "[RUN] Testing goaway_server_test"
+ $(Q) $(BINDIR)/$(CONFIG)/goaway_server_test || ( echo test goaway_server_test failed ; exit 1 )
$(E) "[RUN] Testing gpr_avl_test"
$(Q) $(BINDIR)/$(CONFIG)/gpr_avl_test || ( echo test gpr_avl_test failed ; exit 1 )
$(E) "[RUN] Testing gpr_backoff_test"
@@ -2314,6 +2332,20 @@ LIBGPR_SRC = \
src/core/lib/support/wrap_memcpy.c \
PUBLIC_HEADERS_C += \
+ include/grpc/impl/codegen/alloc.h \
+ include/grpc/impl/codegen/atm.h \
+ include/grpc/impl/codegen/atm_gcc_atomic.h \
+ include/grpc/impl/codegen/atm_gcc_sync.h \
+ include/grpc/impl/codegen/atm_win32.h \
+ include/grpc/impl/codegen/log.h \
+ include/grpc/impl/codegen/port_platform.h \
+ include/grpc/impl/codegen/slice.h \
+ include/grpc/impl/codegen/slice_buffer.h \
+ include/grpc/impl/codegen/sync.h \
+ include/grpc/impl/codegen/sync_generic.h \
+ include/grpc/impl/codegen/sync_posix.h \
+ include/grpc/impl/codegen/sync_win32.h \
+ include/grpc/impl/codegen/time.h \
include/grpc/support/alloc.h \
include/grpc/support/atm.h \
include/grpc/support/atm_gcc_atomic.h \
@@ -2342,20 +2374,6 @@ PUBLIC_HEADERS_C += \
include/grpc/support/tls_msvc.h \
include/grpc/support/tls_pthread.h \
include/grpc/support/useful.h \
- include/grpc/impl/codegen/alloc.h \
- include/grpc/impl/codegen/atm.h \
- include/grpc/impl/codegen/atm_gcc_atomic.h \
- include/grpc/impl/codegen/atm_gcc_sync.h \
- include/grpc/impl/codegen/atm_win32.h \
- include/grpc/impl/codegen/log.h \
- include/grpc/impl/codegen/port_platform.h \
- include/grpc/impl/codegen/slice.h \
- include/grpc/impl/codegen/slice_buffer.h \
- include/grpc/impl/codegen/sync.h \
- include/grpc/impl/codegen/sync_generic.h \
- include/grpc/impl/codegen/sync_posix.h \
- include/grpc/impl/codegen/sync_win32.h \
- include/grpc/impl/codegen/time.h \
LIBGPR_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGPR_SRC))))
@@ -2397,6 +2415,7 @@ endif
LIBGPR_TEST_UTIL_SRC = \
test/core/util/test_config.c \
+PUBLIC_HEADERS_C += \
LIBGPR_TEST_UTIL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGPR_TEST_UTIL_SRC))))
@@ -2419,9 +2438,46 @@ endif
LIBGRPC_SRC = \
- src/core/lib/census/grpc_context.c \
- src/core/lib/census/grpc_filter.c \
- src/core/lib/census/grpc_plugin.c \
+ src/core/ext/census/context.c \
+ src/core/ext/census/grpc_context.c \
+ src/core/ext/census/grpc_filter.c \
+ src/core/ext/census/grpc_plugin.c \
+ src/core/ext/census/initialize.c \
+ src/core/ext/census/mlog.c \
+ src/core/ext/census/operation.c \
+ src/core/ext/census/placeholders.c \
+ src/core/ext/census/tracing.c \
+ src/core/ext/lb_policy/grpclb/load_balancer_api.c \
+ src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c \
+ src/core/ext/lb_policy/pick_first/pick_first.c \
+ src/core/ext/lb_policy/round_robin/round_robin.c \
+ src/core/ext/resolver/dns/native/dns_resolver.c \
+ src/core/ext/resolver/sockaddr/sockaddr_resolver.c \
+ src/core/ext/transport/chttp2/client/insecure/channel_create.c \
+ src/core/ext/transport/chttp2/client/secure/secure_channel_create.c \
+ src/core/ext/transport/chttp2/server/insecure/server_chttp2.c \
+ src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c \
+ src/core/ext/transport/chttp2/transport/alpn.c \
+ src/core/ext/transport/chttp2/transport/bin_encoder.c \
+ src/core/ext/transport/chttp2/transport/chttp2_transport.c \
+ src/core/ext/transport/chttp2/transport/frame_data.c \
+ src/core/ext/transport/chttp2/transport/frame_goaway.c \
+ src/core/ext/transport/chttp2/transport/frame_ping.c \
+ src/core/ext/transport/chttp2/transport/frame_rst_stream.c \
+ src/core/ext/transport/chttp2/transport/frame_settings.c \
+ src/core/ext/transport/chttp2/transport/frame_window_update.c \
+ src/core/ext/transport/chttp2/transport/hpack_encoder.c \
+ src/core/ext/transport/chttp2/transport/hpack_parser.c \
+ src/core/ext/transport/chttp2/transport/hpack_table.c \
+ src/core/ext/transport/chttp2/transport/huffsyms.c \
+ src/core/ext/transport/chttp2/transport/incoming_metadata.c \
+ src/core/ext/transport/chttp2/transport/parsing.c \
+ src/core/ext/transport/chttp2/transport/status_conversion.c \
+ src/core/ext/transport/chttp2/transport/stream_lists.c \
+ src/core/ext/transport/chttp2/transport/stream_map.c \
+ src/core/ext/transport/chttp2/transport/timeout_encoding.c \
+ src/core/ext/transport/chttp2/transport/varint.c \
+ src/core/ext/transport/chttp2/transport/writing.c \
src/core/lib/channel/channel_args.c \
src/core/lib/channel/channel_stack.c \
src/core/lib/channel/channel_stack_builder.c \
@@ -2435,17 +2491,12 @@ LIBGRPC_SRC = \
src/core/lib/client_config/connector.c \
src/core/lib/client_config/default_initial_connect_string.c \
src/core/lib/client_config/initial_connect_string.c \
- src/core/lib/client_config/lb_policies/load_balancer_api.c \
- src/core/lib/client_config/lb_policies/pick_first.c \
- src/core/lib/client_config/lb_policies/round_robin.c \
src/core/lib/client_config/lb_policy.c \
src/core/lib/client_config/lb_policy_factory.c \
src/core/lib/client_config/lb_policy_registry.c \
src/core/lib/client_config/resolver.c \
src/core/lib/client_config/resolver_factory.c \
src/core/lib/client_config/resolver_registry.c \
- src/core/lib/client_config/resolvers/dns_resolver.c \
- src/core/lib/client_config/resolvers/sockaddr_resolver.c \
src/core/lib/client_config/subchannel.c \
src/core/lib/client_config/subchannel_factory.c \
src/core/lib/client_config/subchannel_index.c \
@@ -2455,22 +2506,20 @@ LIBGRPC_SRC = \
src/core/lib/debug/trace.c \
src/core/lib/http/format_request.c \
src/core/lib/http/httpcli.c \
+ src/core/lib/http/httpcli_security_connector.c \
src/core/lib/http/parser.c \
src/core/lib/iomgr/closure.c \
src/core/lib/iomgr/endpoint.c \
src/core/lib/iomgr/endpoint_pair_posix.c \
src/core/lib/iomgr/endpoint_pair_windows.c \
+ src/core/lib/iomgr/ev_poll_and_epoll_posix.c \
+ src/core/lib/iomgr/ev_posix.c \
src/core/lib/iomgr/exec_ctx.c \
src/core/lib/iomgr/executor.c \
- src/core/lib/iomgr/fd_posix.c \
src/core/lib/iomgr/iocp_windows.c \
src/core/lib/iomgr/iomgr.c \
src/core/lib/iomgr/iomgr_posix.c \
src/core/lib/iomgr/iomgr_windows.c \
- src/core/lib/iomgr/pollset_multipoller_with_epoll.c \
- src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c \
- src/core/lib/iomgr/pollset_posix.c \
- src/core/lib/iomgr/pollset_set_posix.c \
src/core/lib/iomgr/pollset_set_windows.c \
src/core/lib/iomgr/pollset_windows.c \
src/core/lib/iomgr/resolve_address_posix.c \
@@ -2502,7 +2551,20 @@ LIBGRPC_SRC = \
src/core/lib/json/json_reader.c \
src/core/lib/json/json_string.c \
src/core/lib/json/json_writer.c \
- src/core/lib/proto/grpc/lb/v0/load_balancer.pb.c \
+ src/core/lib/security/b64.c \
+ src/core/lib/security/client_auth_filter.c \
+ src/core/lib/security/credentials.c \
+ src/core/lib/security/credentials_metadata.c \
+ src/core/lib/security/credentials_posix.c \
+ src/core/lib/security/credentials_win32.c \
+ src/core/lib/security/google_default_credentials.c \
+ src/core/lib/security/handshake.c \
+ src/core/lib/security/json_token.c \
+ src/core/lib/security/jwt_verifier.c \
+ src/core/lib/security/secure_endpoint.c \
+ src/core/lib/security/security_connector.c \
+ src/core/lib/security/security_context.c \
+ src/core/lib/security/server_auth_filter.c \
src/core/lib/surface/alarm.c \
src/core/lib/surface/api_trace.c \
src/core/lib/surface/byte_buffer.c \
@@ -2512,92 +2574,47 @@ LIBGRPC_SRC = \
src/core/lib/surface/call_log_batch.c \
src/core/lib/surface/channel.c \
src/core/lib/surface/channel_connectivity.c \
- src/core/lib/surface/channel_create.c \
src/core/lib/surface/channel_init.c \
src/core/lib/surface/channel_ping.c \
src/core/lib/surface/channel_stack_type.c \
src/core/lib/surface/completion_queue.c \
src/core/lib/surface/event_string.c \
src/core/lib/surface/init.c \
+ src/core/lib/surface/init_secure.c \
src/core/lib/surface/lame_client.c \
src/core/lib/surface/metadata_array.c \
src/core/lib/surface/server.c \
- src/core/lib/surface/server_chttp2.c \
src/core/lib/surface/validate_metadata.c \
src/core/lib/surface/version.c \
src/core/lib/transport/byte_stream.c \
- src/core/lib/transport/chttp2/alpn.c \
- src/core/lib/transport/chttp2/bin_encoder.c \
- src/core/lib/transport/chttp2/frame_data.c \
- src/core/lib/transport/chttp2/frame_goaway.c \
- src/core/lib/transport/chttp2/frame_ping.c \
- src/core/lib/transport/chttp2/frame_rst_stream.c \
- src/core/lib/transport/chttp2/frame_settings.c \
- src/core/lib/transport/chttp2/frame_window_update.c \
- src/core/lib/transport/chttp2/hpack_encoder.c \
- src/core/lib/transport/chttp2/hpack_parser.c \
- src/core/lib/transport/chttp2/hpack_table.c \
- src/core/lib/transport/chttp2/huffsyms.c \
- src/core/lib/transport/chttp2/incoming_metadata.c \
- src/core/lib/transport/chttp2/parsing.c \
- src/core/lib/transport/chttp2/status_conversion.c \
- src/core/lib/transport/chttp2/stream_lists.c \
- src/core/lib/transport/chttp2/stream_map.c \
- src/core/lib/transport/chttp2/timeout_encoding.c \
- src/core/lib/transport/chttp2/varint.c \
- src/core/lib/transport/chttp2/writing.c \
- src/core/lib/transport/chttp2_transport.c \
src/core/lib/transport/connectivity_state.c \
src/core/lib/transport/metadata.c \
src/core/lib/transport/metadata_batch.c \
src/core/lib/transport/static_metadata.c \
src/core/lib/transport/transport.c \
src/core/lib/transport/transport_op_string.c \
- src/core/lib/http/httpcli_security_connector.c \
- src/core/lib/security/b64.c \
- src/core/lib/security/client_auth_filter.c \
- src/core/lib/security/credentials.c \
- src/core/lib/security/credentials_metadata.c \
- src/core/lib/security/credentials_posix.c \
- src/core/lib/security/credentials_win32.c \
- src/core/lib/security/google_default_credentials.c \
- src/core/lib/security/handshake.c \
- src/core/lib/security/json_token.c \
- src/core/lib/security/jwt_verifier.c \
- src/core/lib/security/secure_endpoint.c \
- src/core/lib/security/security_connector.c \
- src/core/lib/security/security_context.c \
- src/core/lib/security/server_auth_filter.c \
- src/core/lib/security/server_secure_chttp2.c \
- src/core/lib/surface/init_secure.c \
- src/core/lib/surface/secure_channel_create.c \
src/core/lib/tsi/fake_transport_security.c \
src/core/lib/tsi/ssl_transport_security.c \
src/core/lib/tsi/transport_security.c \
- src/core/lib/census/context.c \
- src/core/lib/census/initialize.c \
- src/core/lib/census/mlog.c \
- src/core/lib/census/operation.c \
- src/core/lib/census/placeholders.c \
- src/core/lib/census/tracing.c \
+ src/core/plugin_registry/grpc_plugin_registry.c \
third_party/nanopb/pb_common.c \
third_party/nanopb/pb_decode.c \
third_party/nanopb/pb_encode.c \
PUBLIC_HEADERS_C += \
- include/grpc/grpc_security.h \
include/grpc/byte_buffer.h \
include/grpc/byte_buffer_reader.h \
+ include/grpc/census.h \
include/grpc/compression.h \
include/grpc/grpc.h \
- include/grpc/status.h \
+ include/grpc/grpc_security.h \
include/grpc/impl/codegen/byte_buffer.h \
include/grpc/impl/codegen/compression_types.h \
include/grpc/impl/codegen/connectivity_state.h \
include/grpc/impl/codegen/grpc_types.h \
include/grpc/impl/codegen/propagation_bits.h \
include/grpc/impl/codegen/status.h \
- include/grpc/census.h \
+ include/grpc/status.h \
LIBGRPC_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_SRC))))
@@ -2659,21 +2676,21 @@ PUBLIC_HEADERS_C += \
include/grpc/impl/codegen/atm_gcc_atomic.h \
include/grpc/impl/codegen/atm_gcc_sync.h \
include/grpc/impl/codegen/atm_win32.h \
+ include/grpc/impl/codegen/byte_buffer.h \
+ include/grpc/impl/codegen/compression_types.h \
+ include/grpc/impl/codegen/connectivity_state.h \
+ include/grpc/impl/codegen/grpc_types.h \
include/grpc/impl/codegen/log.h \
include/grpc/impl/codegen/port_platform.h \
+ include/grpc/impl/codegen/propagation_bits.h \
include/grpc/impl/codegen/slice.h \
include/grpc/impl/codegen/slice_buffer.h \
+ include/grpc/impl/codegen/status.h \
include/grpc/impl/codegen/sync.h \
include/grpc/impl/codegen/sync_generic.h \
include/grpc/impl/codegen/sync_posix.h \
include/grpc/impl/codegen/sync_win32.h \
include/grpc/impl/codegen/time.h \
- include/grpc/impl/codegen/byte_buffer.h \
- include/grpc/impl/codegen/compression_types.h \
- include/grpc/impl/codegen/connectivity_state.h \
- include/grpc/impl/codegen/grpc_types.h \
- include/grpc/impl/codegen/propagation_bits.h \
- include/grpc/impl/codegen/status.h \
LIBGRPC_CODEGEN_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_CODEGEN_LIB_SRC))))
@@ -2696,13 +2713,13 @@ endif
LIBGRPC_TEST_UTIL_SRC = \
+ test/core/end2end/cq_verifier.c \
test/core/end2end/data/server1_cert.c \
test/core/end2end/data/server1_key.c \
test/core/end2end/data/test_root_cert.c \
- test/core/security/oauth2_utils.c \
- test/core/end2end/cq_verifier.c \
test/core/end2end/fixtures/proxy.c \
test/core/iomgr/endpoint_tests.c \
+ test/core/security/oauth2_utils.c \
test/core/util/grpc_profiler.c \
test/core/util/parse_hexstring.c \
test/core/util/port_posix.c \
@@ -2780,10 +2797,44 @@ endif
LIBGRPC_UNSECURE_SRC = \
- src/core/lib/surface/init_unsecure.c \
- src/core/lib/census/grpc_context.c \
- src/core/lib/census/grpc_filter.c \
- src/core/lib/census/grpc_plugin.c \
+ src/core/ext/census/context.c \
+ src/core/ext/census/grpc_context.c \
+ src/core/ext/census/grpc_filter.c \
+ src/core/ext/census/grpc_plugin.c \
+ src/core/ext/census/initialize.c \
+ src/core/ext/census/mlog.c \
+ src/core/ext/census/operation.c \
+ src/core/ext/census/placeholders.c \
+ src/core/ext/census/tracing.c \
+ src/core/ext/lb_policy/grpclb/load_balancer_api.c \
+ src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c \
+ src/core/ext/lb_policy/pick_first/pick_first.c \
+ src/core/ext/lb_policy/round_robin/round_robin.c \
+ src/core/ext/resolver/dns/native/dns_resolver.c \
+ src/core/ext/resolver/sockaddr/sockaddr_resolver.c \
+ src/core/ext/transport/chttp2/client/insecure/channel_create.c \
+ src/core/ext/transport/chttp2/server/insecure/server_chttp2.c \
+ src/core/ext/transport/chttp2/transport/alpn.c \
+ src/core/ext/transport/chttp2/transport/bin_encoder.c \
+ src/core/ext/transport/chttp2/transport/chttp2_transport.c \
+ src/core/ext/transport/chttp2/transport/frame_data.c \
+ src/core/ext/transport/chttp2/transport/frame_goaway.c \
+ src/core/ext/transport/chttp2/transport/frame_ping.c \
+ src/core/ext/transport/chttp2/transport/frame_rst_stream.c \
+ src/core/ext/transport/chttp2/transport/frame_settings.c \
+ src/core/ext/transport/chttp2/transport/frame_window_update.c \
+ src/core/ext/transport/chttp2/transport/hpack_encoder.c \
+ src/core/ext/transport/chttp2/transport/hpack_parser.c \
+ src/core/ext/transport/chttp2/transport/hpack_table.c \
+ src/core/ext/transport/chttp2/transport/huffsyms.c \
+ src/core/ext/transport/chttp2/transport/incoming_metadata.c \
+ src/core/ext/transport/chttp2/transport/parsing.c \
+ src/core/ext/transport/chttp2/transport/status_conversion.c \
+ src/core/ext/transport/chttp2/transport/stream_lists.c \
+ src/core/ext/transport/chttp2/transport/stream_map.c \
+ src/core/ext/transport/chttp2/transport/timeout_encoding.c \
+ src/core/ext/transport/chttp2/transport/varint.c \
+ src/core/ext/transport/chttp2/transport/writing.c \
src/core/lib/channel/channel_args.c \
src/core/lib/channel/channel_stack.c \
src/core/lib/channel/channel_stack_builder.c \
@@ -2797,17 +2848,12 @@ LIBGRPC_UNSECURE_SRC = \
src/core/lib/client_config/connector.c \
src/core/lib/client_config/default_initial_connect_string.c \
src/core/lib/client_config/initial_connect_string.c \
- src/core/lib/client_config/lb_policies/load_balancer_api.c \
- src/core/lib/client_config/lb_policies/pick_first.c \
- src/core/lib/client_config/lb_policies/round_robin.c \
src/core/lib/client_config/lb_policy.c \
src/core/lib/client_config/lb_policy_factory.c \
src/core/lib/client_config/lb_policy_registry.c \
src/core/lib/client_config/resolver.c \
src/core/lib/client_config/resolver_factory.c \
src/core/lib/client_config/resolver_registry.c \
- src/core/lib/client_config/resolvers/dns_resolver.c \
- src/core/lib/client_config/resolvers/sockaddr_resolver.c \
src/core/lib/client_config/subchannel.c \
src/core/lib/client_config/subchannel_factory.c \
src/core/lib/client_config/subchannel_index.c \
@@ -2822,17 +2868,14 @@ LIBGRPC_UNSECURE_SRC = \
src/core/lib/iomgr/endpoint.c \
src/core/lib/iomgr/endpoint_pair_posix.c \
src/core/lib/iomgr/endpoint_pair_windows.c \
+ src/core/lib/iomgr/ev_poll_and_epoll_posix.c \
+ src/core/lib/iomgr/ev_posix.c \
src/core/lib/iomgr/exec_ctx.c \
src/core/lib/iomgr/executor.c \
- src/core/lib/iomgr/fd_posix.c \
src/core/lib/iomgr/iocp_windows.c \
src/core/lib/iomgr/iomgr.c \
src/core/lib/iomgr/iomgr_posix.c \
src/core/lib/iomgr/iomgr_windows.c \
- src/core/lib/iomgr/pollset_multipoller_with_epoll.c \
- src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c \
- src/core/lib/iomgr/pollset_posix.c \
- src/core/lib/iomgr/pollset_set_posix.c \
src/core/lib/iomgr/pollset_set_windows.c \
src/core/lib/iomgr/pollset_windows.c \
src/core/lib/iomgr/resolve_address_posix.c \
@@ -2864,7 +2907,6 @@ LIBGRPC_UNSECURE_SRC = \
src/core/lib/json/json_reader.c \
src/core/lib/json/json_string.c \
src/core/lib/json/json_writer.c \
- src/core/lib/proto/grpc/lb/v0/load_balancer.pb.c \
src/core/lib/surface/alarm.c \
src/core/lib/surface/api_trace.c \
src/core/lib/surface/byte_buffer.c \
@@ -2874,53 +2916,26 @@ LIBGRPC_UNSECURE_SRC = \
src/core/lib/surface/call_log_batch.c \
src/core/lib/surface/channel.c \
src/core/lib/surface/channel_connectivity.c \
- src/core/lib/surface/channel_create.c \
src/core/lib/surface/channel_init.c \
src/core/lib/surface/channel_ping.c \
src/core/lib/surface/channel_stack_type.c \
src/core/lib/surface/completion_queue.c \
src/core/lib/surface/event_string.c \
src/core/lib/surface/init.c \
+ src/core/lib/surface/init_unsecure.c \
src/core/lib/surface/lame_client.c \
src/core/lib/surface/metadata_array.c \
src/core/lib/surface/server.c \
- src/core/lib/surface/server_chttp2.c \
src/core/lib/surface/validate_metadata.c \
src/core/lib/surface/version.c \
src/core/lib/transport/byte_stream.c \
- src/core/lib/transport/chttp2/alpn.c \
- src/core/lib/transport/chttp2/bin_encoder.c \
- src/core/lib/transport/chttp2/frame_data.c \
- src/core/lib/transport/chttp2/frame_goaway.c \
- src/core/lib/transport/chttp2/frame_ping.c \
- src/core/lib/transport/chttp2/frame_rst_stream.c \
- src/core/lib/transport/chttp2/frame_settings.c \
- src/core/lib/transport/chttp2/frame_window_update.c \
- src/core/lib/transport/chttp2/hpack_encoder.c \
- src/core/lib/transport/chttp2/hpack_parser.c \
- src/core/lib/transport/chttp2/hpack_table.c \
- src/core/lib/transport/chttp2/huffsyms.c \
- src/core/lib/transport/chttp2/incoming_metadata.c \
- src/core/lib/transport/chttp2/parsing.c \
- src/core/lib/transport/chttp2/status_conversion.c \
- src/core/lib/transport/chttp2/stream_lists.c \
- src/core/lib/transport/chttp2/stream_map.c \
- src/core/lib/transport/chttp2/timeout_encoding.c \
- src/core/lib/transport/chttp2/varint.c \
- src/core/lib/transport/chttp2/writing.c \
- src/core/lib/transport/chttp2_transport.c \
src/core/lib/transport/connectivity_state.c \
src/core/lib/transport/metadata.c \
src/core/lib/transport/metadata_batch.c \
src/core/lib/transport/static_metadata.c \
src/core/lib/transport/transport.c \
src/core/lib/transport/transport_op_string.c \
- src/core/lib/census/context.c \
- src/core/lib/census/initialize.c \
- src/core/lib/census/mlog.c \
- src/core/lib/census/operation.c \
- src/core/lib/census/placeholders.c \
- src/core/lib/census/tracing.c \
+ src/core/plugin_registry/grpc_unsecure_plugin_registry.c \
third_party/nanopb/pb_common.c \
third_party/nanopb/pb_decode.c \
third_party/nanopb/pb_encode.c \
@@ -2928,16 +2943,16 @@ LIBGRPC_UNSECURE_SRC = \
PUBLIC_HEADERS_C += \
include/grpc/byte_buffer.h \
include/grpc/byte_buffer_reader.h \
+ include/grpc/census.h \
include/grpc/compression.h \
include/grpc/grpc.h \
- include/grpc/status.h \
include/grpc/impl/codegen/byte_buffer.h \
include/grpc/impl/codegen/compression_types.h \
include/grpc/impl/codegen/connectivity_state.h \
include/grpc/impl/codegen/grpc_types.h \
include/grpc/impl/codegen/propagation_bits.h \
include/grpc/impl/codegen/status.h \
- include/grpc/census.h \
+ include/grpc/status.h \
LIBGRPC_UNSECURE_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_UNSECURE_SRC))))
@@ -2977,7 +2992,7 @@ endif
LIBGRPC_ZOOKEEPER_SRC = \
- src/core/lib/client_config/resolvers/zookeeper_resolver.c \
+ src/core/ext/resolver/zookeeper/zookeeper_resolver.c \
PUBLIC_HEADERS_C += \
include/grpc/grpc_zookeeper.h \
@@ -3019,9 +3034,35 @@ ifneq ($(NO_DEPS),true)
endif
+LIBONE_INPUT_FUZZER_SRC = \
+ test/core/util/one_corpus_entry_fuzzer.c \
+
+PUBLIC_HEADERS_C += \
+
+LIBONE_INPUT_FUZZER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBONE_INPUT_FUZZER_SRC))))
+
+
+$(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a: $(ZLIB_DEP) $(LIBONE_INPUT_FUZZER_OBJS)
+ $(E) "[AR] Creating $@"
+ $(Q) mkdir -p `dirname $@`
+ $(Q) rm -f $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a
+ $(Q) $(AR) $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBONE_INPUT_FUZZER_OBJS)
+ifeq ($(SYSTEM),Darwin)
+ $(Q) ranlib -no_warning_for_no_symbols $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a
+endif
+
+
+
+
+ifneq ($(NO_DEPS),true)
+-include $(LIBONE_INPUT_FUZZER_OBJS:.o=.dep)
+endif
+
+
LIBRECONNECT_SERVER_SRC = \
test/core/util/reconnect_server.c \
+PUBLIC_HEADERS_C += \
LIBRECONNECT_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBRECONNECT_SERVER_SRC))))
@@ -3060,6 +3101,7 @@ endif
LIBTEST_TCP_SERVER_SRC = \
test/core/util/test_tcp_server.c \
+PUBLIC_HEADERS_C += \
LIBTEST_TCP_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBTEST_TCP_SERVER_SRC))))
@@ -3096,12 +3138,6 @@ endif
LIBGRPC++_SRC = \
- src/cpp/client/secure_credentials.cc \
- src/cpp/common/auth_property_iterator.cc \
- src/cpp/common/secure_auth_context.cc \
- src/cpp/common/secure_channel_arguments.cc \
- src/cpp/common/secure_create_auth_context.cc \
- src/cpp/server/secure_server_credentials.cc \
src/cpp/client/channel.cc \
src/cpp/client/client_context.cc \
src/cpp/client/create_channel.cc \
@@ -3109,14 +3145,21 @@ LIBGRPC++_SRC = \
src/cpp/client/credentials.cc \
src/cpp/client/generic_stub.cc \
src/cpp/client/insecure_credentials.cc \
+ src/cpp/client/secure_credentials.cc \
+ src/cpp/codegen/codegen_init.cc \
+ src/cpp/common/auth_property_iterator.cc \
src/cpp/common/channel_arguments.cc \
src/cpp/common/completion_queue.cc \
src/cpp/common/core_codegen.cc \
src/cpp/common/rpc_method.cc \
+ src/cpp/common/secure_auth_context.cc \
+ src/cpp/common/secure_channel_arguments.cc \
+ src/cpp/common/secure_create_auth_context.cc \
src/cpp/server/async_generic_service.cc \
src/cpp/server/create_default_thread_pool.cc \
src/cpp/server/dynamic_thread_pool.cc \
src/cpp/server/insecure_server_credentials.cc \
+ src/cpp/server/secure_server_credentials.cc \
src/cpp/server/server.cc \
src/cpp/server/server_builder.cc \
src/cpp/server/server_context.cc \
@@ -3126,7 +3169,6 @@ LIBGRPC++_SRC = \
src/cpp/util/status.cc \
src/cpp/util/string_ref.cc \
src/cpp/util/time.cc \
- src/cpp/codegen/codegen_init.cc \
PUBLIC_HEADERS_CXX += \
include/grpc++/alarm.h \
@@ -3139,6 +3181,37 @@ PUBLIC_HEADERS_CXX += \
include/grpc++/grpc++.h \
include/grpc++/impl/call.h \
include/grpc++/impl/client_unary_call.h \
+ include/grpc++/impl/codegen/async_stream.h \
+ include/grpc++/impl/codegen/async_unary_call.h \
+ include/grpc++/impl/codegen/call.h \
+ include/grpc++/impl/codegen/call_hook.h \
+ include/grpc++/impl/codegen/channel_interface.h \
+ include/grpc++/impl/codegen/client_context.h \
+ include/grpc++/impl/codegen/client_unary_call.h \
+ include/grpc++/impl/codegen/completion_queue.h \
+ include/grpc++/impl/codegen/completion_queue_tag.h \
+ include/grpc++/impl/codegen/config.h \
+ include/grpc++/impl/codegen/config_protobuf.h \
+ include/grpc++/impl/codegen/core_codegen_interface.h \
+ include/grpc++/impl/codegen/grpc_library.h \
+ include/grpc++/impl/codegen/method_handler_impl.h \
+ include/grpc++/impl/codegen/proto_utils.h \
+ include/grpc++/impl/codegen/rpc_method.h \
+ include/grpc++/impl/codegen/rpc_service_method.h \
+ include/grpc++/impl/codegen/security/auth_context.h \
+ include/grpc++/impl/codegen/serialization_traits.h \
+ include/grpc++/impl/codegen/server_context.h \
+ include/grpc++/impl/codegen/server_interface.h \
+ include/grpc++/impl/codegen/service_type.h \
+ include/grpc++/impl/codegen/status.h \
+ include/grpc++/impl/codegen/status_code_enum.h \
+ include/grpc++/impl/codegen/string_ref.h \
+ include/grpc++/impl/codegen/stub_options.h \
+ include/grpc++/impl/codegen/sync.h \
+ include/grpc++/impl/codegen/sync_cxx11.h \
+ include/grpc++/impl/codegen/sync_no_cxx11.h \
+ include/grpc++/impl/codegen/sync_stream.h \
+ include/grpc++/impl/codegen/time.h \
include/grpc++/impl/grpc_library.h \
include/grpc++/impl/method_handler_impl.h \
include/grpc++/impl/proto_utils.h \
@@ -3173,37 +3246,6 @@ PUBLIC_HEADERS_CXX += \
include/grpc++/support/stub_options.h \
include/grpc++/support/sync_stream.h \
include/grpc++/support/time.h \
- include/grpc++/impl/codegen/async_stream.h \
- include/grpc++/impl/codegen/async_unary_call.h \
- include/grpc++/impl/codegen/call.h \
- include/grpc++/impl/codegen/call_hook.h \
- include/grpc++/impl/codegen/channel_interface.h \
- include/grpc++/impl/codegen/client_context.h \
- include/grpc++/impl/codegen/client_unary_call.h \
- include/grpc++/impl/codegen/completion_queue.h \
- include/grpc++/impl/codegen/completion_queue_tag.h \
- include/grpc++/impl/codegen/config.h \
- include/grpc++/impl/codegen/config_protobuf.h \
- include/grpc++/impl/codegen/core_codegen_interface.h \
- include/grpc++/impl/codegen/grpc_library.h \
- include/grpc++/impl/codegen/method_handler_impl.h \
- include/grpc++/impl/codegen/proto_utils.h \
- include/grpc++/impl/codegen/rpc_method.h \
- include/grpc++/impl/codegen/rpc_service_method.h \
- include/grpc++/impl/codegen/security/auth_context.h \
- include/grpc++/impl/codegen/serialization_traits.h \
- include/grpc++/impl/codegen/server_context.h \
- include/grpc++/impl/codegen/server_interface.h \
- include/grpc++/impl/codegen/service_type.h \
- include/grpc++/impl/codegen/status.h \
- include/grpc++/impl/codegen/status_code_enum.h \
- include/grpc++/impl/codegen/string_ref.h \
- include/grpc++/impl/codegen/stub_options.h \
- include/grpc++/impl/codegen/sync.h \
- include/grpc++/impl/codegen/sync_cxx11.h \
- include/grpc++/impl/codegen/sync_no_cxx11.h \
- include/grpc++/impl/codegen/sync_stream.h \
- include/grpc++/impl/codegen/time.h \
LIBGRPC++_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC++_SRC))))
@@ -3272,26 +3314,6 @@ LIBGRPC++_CODEGEN_LIB_SRC = \
src/cpp/codegen/codegen_init.cc \
PUBLIC_HEADERS_CXX += \
- include/grpc/impl/codegen/alloc.h \
- include/grpc/impl/codegen/atm.h \
- include/grpc/impl/codegen/atm_gcc_atomic.h \
- include/grpc/impl/codegen/atm_gcc_sync.h \
- include/grpc/impl/codegen/atm_win32.h \
- include/grpc/impl/codegen/log.h \
- include/grpc/impl/codegen/port_platform.h \
- include/grpc/impl/codegen/slice.h \
- include/grpc/impl/codegen/slice_buffer.h \
- include/grpc/impl/codegen/sync.h \
- include/grpc/impl/codegen/sync_generic.h \
- include/grpc/impl/codegen/sync_posix.h \
- include/grpc/impl/codegen/sync_win32.h \
- include/grpc/impl/codegen/time.h \
- include/grpc/impl/codegen/byte_buffer.h \
- include/grpc/impl/codegen/compression_types.h \
- include/grpc/impl/codegen/connectivity_state.h \
- include/grpc/impl/codegen/grpc_types.h \
- include/grpc/impl/codegen/propagation_bits.h \
- include/grpc/impl/codegen/status.h \
include/grpc++/impl/codegen/async_stream.h \
include/grpc++/impl/codegen/async_unary_call.h \
include/grpc++/impl/codegen/call.h \
@@ -3323,6 +3345,26 @@ PUBLIC_HEADERS_CXX += \
include/grpc++/impl/codegen/sync_no_cxx11.h \
include/grpc++/impl/codegen/sync_stream.h \
include/grpc++/impl/codegen/time.h \
+ include/grpc/impl/codegen/alloc.h \
+ include/grpc/impl/codegen/atm.h \
+ include/grpc/impl/codegen/atm_gcc_atomic.h \
+ include/grpc/impl/codegen/atm_gcc_sync.h \
+ include/grpc/impl/codegen/atm_win32.h \
+ include/grpc/impl/codegen/byte_buffer.h \
+ include/grpc/impl/codegen/compression_types.h \
+ include/grpc/impl/codegen/connectivity_state.h \
+ include/grpc/impl/codegen/grpc_types.h \
+ include/grpc/impl/codegen/log.h \
+ include/grpc/impl/codegen/port_platform.h \
+ include/grpc/impl/codegen/propagation_bits.h \
+ include/grpc/impl/codegen/slice.h \
+ include/grpc/impl/codegen/slice_buffer.h \
+ include/grpc/impl/codegen/status.h \
+ include/grpc/impl/codegen/sync.h \
+ include/grpc/impl/codegen/sync_generic.h \
+ include/grpc/impl/codegen/sync_posix.h \
+ include/grpc/impl/codegen/sync_win32.h \
+ include/grpc/impl/codegen/time.h \
LIBGRPC++_CODEGEN_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC++_CODEGEN_LIB_SRC))))
@@ -3376,6 +3418,7 @@ endif
LIBGRPC++_TEST_CONFIG_SRC = \
test/cpp/util/test_config.cc \
+PUBLIC_HEADERS_CXX += \
LIBGRPC++_TEST_CONFIG_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC++_TEST_CONFIG_SRC))))
@@ -3422,9 +3465,9 @@ endif
LIBGRPC++_TEST_UTIL_SRC = \
- $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc \
- $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc \
$(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc \
+ $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc \
+ $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc \
test/cpp/end2end/test_service_impl.cc \
test/cpp/util/byte_buffer_proto_helper.cc \
test/cpp/util/cli_call.cc \
@@ -3433,6 +3476,7 @@ LIBGRPC++_TEST_UTIL_SRC = \
test/cpp/util/subprocess.cc \
test/cpp/util/test_credentials_provider.cc \
+PUBLIC_HEADERS_CXX += \
LIBGRPC++_TEST_UTIL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC++_TEST_UTIL_SRC))))
@@ -3476,17 +3520,16 @@ ifneq ($(NO_DEPS),true)
-include $(LIBGRPC++_TEST_UTIL_OBJS:.o=.dep)
endif
endif
-$(OBJDIR)/$(CONFIG)/test/cpp/end2end/test_service_impl.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
-$(OBJDIR)/$(CONFIG)/test/cpp/util/byte_buffer_proto_helper.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
-$(OBJDIR)/$(CONFIG)/test/cpp/util/cli_call.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
-$(OBJDIR)/$(CONFIG)/test/cpp/util/create_test_channel.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
-$(OBJDIR)/$(CONFIG)/test/cpp/util/string_ref_helper.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
-$(OBJDIR)/$(CONFIG)/test/cpp/util/subprocess.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
-$(OBJDIR)/$(CONFIG)/test/cpp/util/test_credentials_provider.o: $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc
+$(OBJDIR)/$(CONFIG)/test/cpp/end2end/test_service_impl.o: $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc
+$(OBJDIR)/$(CONFIG)/test/cpp/util/byte_buffer_proto_helper.o: $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc
+$(OBJDIR)/$(CONFIG)/test/cpp/util/cli_call.o: $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc
+$(OBJDIR)/$(CONFIG)/test/cpp/util/create_test_channel.o: $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc
+$(OBJDIR)/$(CONFIG)/test/cpp/util/string_ref_helper.o: $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc
+$(OBJDIR)/$(CONFIG)/test/cpp/util/subprocess.o: $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc
+$(OBJDIR)/$(CONFIG)/test/cpp/util/test_credentials_provider.o: $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc $(GENDIR)/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.pb.cc $(GENDIR)/src/proto/grpc/testing/echo.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.pb.cc $(GENDIR)/src/proto/grpc/testing/echo_messages.grpc.pb.cc
LIBGRPC++_UNSECURE_SRC = \
- src/cpp/common/insecure_create_auth_context.cc \
src/cpp/client/channel.cc \
src/cpp/client/client_context.cc \
src/cpp/client/create_channel.cc \
@@ -3494,9 +3537,11 @@ LIBGRPC++_UNSECURE_SRC = \
src/cpp/client/credentials.cc \
src/cpp/client/generic_stub.cc \
src/cpp/client/insecure_credentials.cc \
+ src/cpp/codegen/codegen_init.cc \
src/cpp/common/channel_arguments.cc \
src/cpp/common/completion_queue.cc \
src/cpp/common/core_codegen.cc \
+ src/cpp/common/insecure_create_auth_context.cc \
src/cpp/common/rpc_method.cc \
src/cpp/server/async_generic_service.cc \
src/cpp/server/create_default_thread_pool.cc \
@@ -3511,7 +3556,6 @@ LIBGRPC++_UNSECURE_SRC = \
src/cpp/util/status.cc \
src/cpp/util/string_ref.cc \
src/cpp/util/time.cc \
- src/cpp/codegen/codegen_init.cc \
PUBLIC_HEADERS_CXX += \
include/grpc++/alarm.h \
@@ -3524,6 +3568,37 @@ PUBLIC_HEADERS_CXX += \
include/grpc++/grpc++.h \
include/grpc++/impl/call.h \
include/grpc++/impl/client_unary_call.h \
+ include/grpc++/impl/codegen/async_stream.h \
+ include/grpc++/impl/codegen/async_unary_call.h \
+ include/grpc++/impl/codegen/call.h \
+ include/grpc++/impl/codegen/call_hook.h \
+ include/grpc++/impl/codegen/channel_interface.h \
+ include/grpc++/impl/codegen/client_context.h \
+ include/grpc++/impl/codegen/client_unary_call.h \
+ include/grpc++/impl/codegen/completion_queue.h \
+ include/grpc++/impl/codegen/completion_queue_tag.h \
+ include/grpc++/impl/codegen/config.h \
+ include/grpc++/impl/codegen/config_protobuf.h \
+ include/grpc++/impl/codegen/core_codegen_interface.h \
+ include/grpc++/impl/codegen/grpc_library.h \
+ include/grpc++/impl/codegen/method_handler_impl.h \
+ include/grpc++/impl/codegen/proto_utils.h \
+ include/grpc++/impl/codegen/rpc_method.h \
+ include/grpc++/impl/codegen/rpc_service_method.h \
+ include/grpc++/impl/codegen/security/auth_context.h \
+ include/grpc++/impl/codegen/serialization_traits.h \
+ include/grpc++/impl/codegen/server_context.h \
+ include/grpc++/impl/codegen/server_interface.h \
+ include/grpc++/impl/codegen/service_type.h \
+ include/grpc++/impl/codegen/status.h \
+ include/grpc++/impl/codegen/status_code_enum.h \
+ include/grpc++/impl/codegen/string_ref.h \
+ include/grpc++/impl/codegen/stub_options.h \
+ include/grpc++/impl/codegen/sync.h \
+ include/grpc++/impl/codegen/sync_cxx11.h \
+ include/grpc++/impl/codegen/sync_no_cxx11.h \
+ include/grpc++/impl/codegen/sync_stream.h \
+ include/grpc++/impl/codegen/time.h \
include/grpc++/impl/grpc_library.h \
include/grpc++/impl/method_handler_impl.h \
include/grpc++/impl/proto_utils.h \
@@ -3558,37 +3633,6 @@ PUBLIC_HEADERS_CXX += \
include/grpc++/support/stub_options.h \
include/grpc++/support/sync_stream.h \
include/grpc++/support/time.h \
- include/grpc++/impl/codegen/async_stream.h \
- include/grpc++/impl/codegen/async_unary_call.h \
- include/grpc++/impl/codegen/call.h \
- include/grpc++/impl/codegen/call_hook.h \
- include/grpc++/impl/codegen/channel_interface.h \
- include/grpc++/impl/codegen/client_context.h \
- include/grpc++/impl/codegen/client_unary_call.h \
- include/grpc++/impl/codegen/completion_queue.h \
- include/grpc++/impl/codegen/completion_queue_tag.h \
- include/grpc++/impl/codegen/config.h \
- include/grpc++/impl/codegen/config_protobuf.h \
- include/grpc++/impl/codegen/core_codegen_interface.h \
- include/grpc++/impl/codegen/grpc_library.h \
- include/grpc++/impl/codegen/method_handler_impl.h \
- include/grpc++/impl/codegen/proto_utils.h \
- include/grpc++/impl/codegen/rpc_method.h \
- include/grpc++/impl/codegen/rpc_service_method.h \
- include/grpc++/impl/codegen/security/auth_context.h \
- include/grpc++/impl/codegen/serialization_traits.h \
- include/grpc++/impl/codegen/server_context.h \
- include/grpc++/impl/codegen/server_interface.h \
- include/grpc++/impl/codegen/service_type.h \
- include/grpc++/impl/codegen/status.h \
- include/grpc++/impl/codegen/status_code_enum.h \
- include/grpc++/impl/codegen/string_ref.h \
- include/grpc++/impl/codegen/stub_options.h \
- include/grpc++/impl/codegen/sync.h \
- include/grpc++/impl/codegen/sync_cxx11.h \
- include/grpc++/impl/codegen/sync_no_cxx11.h \
- include/grpc++/impl/codegen/sync_stream.h \
- include/grpc++/impl/codegen/time.h \
LIBGRPC++_UNSECURE_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC++_UNSECURE_SRC))))
@@ -3697,6 +3741,7 @@ LIBINTEROP_CLIENT_HELPER_SRC = \
$(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \
test/cpp/interop/client_helper.cc \
+PUBLIC_HEADERS_CXX += \
LIBINTEROP_CLIENT_HELPER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBINTEROP_CLIENT_HELPER_SRC))))
@@ -3750,6 +3795,7 @@ LIBINTEROP_CLIENT_MAIN_SRC = \
test/cpp/interop/client.cc \
test/cpp/interop/interop_client.cc \
+PUBLIC_HEADERS_CXX += \
LIBINTEROP_CLIENT_MAIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBINTEROP_CLIENT_MAIN_SRC))))
@@ -3800,6 +3846,7 @@ $(OBJDIR)/$(CONFIG)/test/cpp/interop/interop_client.o: $(GENDIR)/src/proto/grpc/
LIBINTEROP_SERVER_HELPER_SRC = \
test/cpp/interop/server_helper.cc \
+PUBLIC_HEADERS_CXX += \
LIBINTEROP_SERVER_HELPER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBINTEROP_SERVER_HELPER_SRC))))
@@ -3851,6 +3898,7 @@ LIBINTEROP_SERVER_MAIN_SRC = \
$(GENDIR)/src/proto/grpc/testing/test.pb.cc $(GENDIR)/src/proto/grpc/testing/test.grpc.pb.cc \
test/cpp/interop/server_main.cc \
+PUBLIC_HEADERS_CXX += \
LIBINTEROP_SERVER_MAIN_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBINTEROP_SERVER_MAIN_SRC))))
@@ -3898,12 +3946,12 @@ $(OBJDIR)/$(CONFIG)/test/cpp/interop/server_main.o: $(GENDIR)/src/proto/grpc/tes
LIBQPS_SRC = \
+ $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc \
$(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc \
$(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc \
- $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc \
- $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc \
- $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc \
$(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc \
+ $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc \
+ $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc \
test/cpp/qps/client_async.cc \
test/cpp/qps/client_sync.cc \
test/cpp/qps/driver.cc \
@@ -3916,6 +3964,7 @@ LIBQPS_SRC = \
test/cpp/qps/usage_timer.cc \
test/cpp/util/benchmark_config.cc \
+PUBLIC_HEADERS_CXX += \
LIBQPS_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBQPS_SRC))))
@@ -3959,22 +4008,23 @@ ifneq ($(NO_DEPS),true)
-include $(LIBQPS_OBJS:.o=.dep)
endif
endif
-$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_async.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc
-$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_sync.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc
-$(OBJDIR)/$(CONFIG)/test/cpp/qps/driver.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc
-$(OBJDIR)/$(CONFIG)/test/cpp/qps/limit_cores.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc
-$(OBJDIR)/$(CONFIG)/test/cpp/qps/perf_db_client.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc
-$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_worker.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc
-$(OBJDIR)/$(CONFIG)/test/cpp/qps/report.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc
-$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_async.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc
-$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_sync.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc
-$(OBJDIR)/$(CONFIG)/test/cpp/qps/usage_timer.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc
-$(OBJDIR)/$(CONFIG)/test/cpp/util/benchmark_config.o: $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc
+$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_async.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc
+$(OBJDIR)/$(CONFIG)/test/cpp/qps/client_sync.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc
+$(OBJDIR)/$(CONFIG)/test/cpp/qps/driver.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc
+$(OBJDIR)/$(CONFIG)/test/cpp/qps/limit_cores.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc
+$(OBJDIR)/$(CONFIG)/test/cpp/qps/perf_db_client.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc
+$(OBJDIR)/$(CONFIG)/test/cpp/qps/qps_worker.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc
+$(OBJDIR)/$(CONFIG)/test/cpp/qps/report.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc
+$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_async.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc
+$(OBJDIR)/$(CONFIG)/test/cpp/qps/server_sync.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc
+$(OBJDIR)/$(CONFIG)/test/cpp/qps/usage_timer.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc
+$(OBJDIR)/$(CONFIG)/test/cpp/util/benchmark_config.o: $(GENDIR)/src/proto/grpc/testing/control.pb.cc $(GENDIR)/src/proto/grpc/testing/control.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.pb.cc $(GENDIR)/src/proto/grpc/testing/messages.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.pb.cc $(GENDIR)/src/proto/grpc/testing/payloads.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.pb.cc $(GENDIR)/src/proto/grpc/testing/perf_db.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/services.pb.cc $(GENDIR)/src/proto/grpc/testing/services.grpc.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.pb.cc $(GENDIR)/src/proto/grpc/testing/stats.grpc.pb.cc
LIBGRPC_CSHARP_EXT_SRC = \
src/csharp/ext/grpc_csharp_ext.c \
+PUBLIC_HEADERS_C += \
LIBGRPC_CSHARP_EXT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC_CSHARP_EXT_SRC))))
@@ -4324,6 +4374,7 @@ LIBBORINGSSL_SRC = \
third_party/boringssl/ssl/t1_lib.c \
third_party/boringssl/ssl/tls_record.c \
+PUBLIC_HEADERS_C += \
LIBBORINGSSL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_SRC))))
@@ -4352,6 +4403,7 @@ LIBBORINGSSL_TEST_UTIL_SRC = \
third_party/boringssl/crypto/test/malloc.cc \
third_party/boringssl/crypto/test/test_util.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_TEST_UTIL_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_TEST_UTIL_SRC))))
@@ -4389,6 +4441,7 @@ endif
LIBBORINGSSL_AES_TEST_LIB_SRC = \
third_party/boringssl/crypto/aes/aes_test.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_AES_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_AES_TEST_LIB_SRC))))
@@ -4426,6 +4479,7 @@ endif
LIBBORINGSSL_ASN1_TEST_LIB_SRC = \
third_party/boringssl/crypto/asn1/asn1_test.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_ASN1_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ASN1_TEST_LIB_SRC))))
@@ -4463,6 +4517,7 @@ endif
LIBBORINGSSL_BASE64_TEST_LIB_SRC = \
third_party/boringssl/crypto/base64/base64_test.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_BASE64_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_BASE64_TEST_LIB_SRC))))
@@ -4500,6 +4555,7 @@ endif
LIBBORINGSSL_BIO_TEST_LIB_SRC = \
third_party/boringssl/crypto/bio/bio_test.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_BIO_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_BIO_TEST_LIB_SRC))))
@@ -4537,6 +4593,7 @@ endif
LIBBORINGSSL_BN_TEST_LIB_SRC = \
third_party/boringssl/crypto/bn/bn_test.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_BN_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_BN_TEST_LIB_SRC))))
@@ -4574,6 +4631,7 @@ endif
LIBBORINGSSL_BYTESTRING_TEST_LIB_SRC = \
third_party/boringssl/crypto/bytestring/bytestring_test.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_BYTESTRING_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_BYTESTRING_TEST_LIB_SRC))))
@@ -4611,6 +4669,7 @@ endif
LIBBORINGSSL_AEAD_TEST_LIB_SRC = \
third_party/boringssl/crypto/cipher/aead_test.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_AEAD_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_AEAD_TEST_LIB_SRC))))
@@ -4648,6 +4707,7 @@ endif
LIBBORINGSSL_CIPHER_TEST_LIB_SRC = \
third_party/boringssl/crypto/cipher/cipher_test.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_CIPHER_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_CIPHER_TEST_LIB_SRC))))
@@ -4685,6 +4745,7 @@ endif
LIBBORINGSSL_CMAC_TEST_LIB_SRC = \
third_party/boringssl/crypto/cmac/cmac_test.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_CMAC_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_CMAC_TEST_LIB_SRC))))
@@ -4722,6 +4783,7 @@ endif
LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_SRC = \
third_party/boringssl/crypto/constant_time_test.c \
+PUBLIC_HEADERS_C += \
LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_CONSTANT_TIME_TEST_LIB_SRC))))
@@ -4748,6 +4810,7 @@ endif
LIBBORINGSSL_ED25519_TEST_LIB_SRC = \
third_party/boringssl/crypto/curve25519/ed25519_test.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_ED25519_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ED25519_TEST_LIB_SRC))))
@@ -4785,6 +4848,7 @@ endif
LIBBORINGSSL_X25519_TEST_LIB_SRC = \
third_party/boringssl/crypto/curve25519/x25519_test.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_X25519_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_X25519_TEST_LIB_SRC))))
@@ -4822,6 +4886,7 @@ endif
LIBBORINGSSL_DH_TEST_LIB_SRC = \
third_party/boringssl/crypto/dh/dh_test.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_DH_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_DH_TEST_LIB_SRC))))
@@ -4859,6 +4924,7 @@ endif
LIBBORINGSSL_DIGEST_TEST_LIB_SRC = \
third_party/boringssl/crypto/digest/digest_test.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_DIGEST_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_DIGEST_TEST_LIB_SRC))))
@@ -4896,6 +4962,7 @@ endif
LIBBORINGSSL_DSA_TEST_LIB_SRC = \
third_party/boringssl/crypto/dsa/dsa_test.c \
+PUBLIC_HEADERS_C += \
LIBBORINGSSL_DSA_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_DSA_TEST_LIB_SRC))))
@@ -4922,6 +4989,7 @@ endif
LIBBORINGSSL_EC_TEST_LIB_SRC = \
third_party/boringssl/crypto/ec/ec_test.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_EC_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_EC_TEST_LIB_SRC))))
@@ -4959,6 +5027,7 @@ endif
LIBBORINGSSL_EXAMPLE_MUL_LIB_SRC = \
third_party/boringssl/crypto/ec/example_mul.c \
+PUBLIC_HEADERS_C += \
LIBBORINGSSL_EXAMPLE_MUL_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_EXAMPLE_MUL_LIB_SRC))))
@@ -4985,6 +5054,7 @@ endif
LIBBORINGSSL_ECDSA_TEST_LIB_SRC = \
third_party/boringssl/crypto/ecdsa/ecdsa_test.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_ECDSA_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ECDSA_TEST_LIB_SRC))))
@@ -5022,6 +5092,7 @@ endif
LIBBORINGSSL_ERR_TEST_LIB_SRC = \
third_party/boringssl/crypto/err/err_test.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_ERR_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_ERR_TEST_LIB_SRC))))
@@ -5059,6 +5130,7 @@ endif
LIBBORINGSSL_EVP_EXTRA_TEST_LIB_SRC = \
third_party/boringssl/crypto/evp/evp_extra_test.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_EVP_EXTRA_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_EVP_EXTRA_TEST_LIB_SRC))))
@@ -5096,6 +5168,7 @@ endif
LIBBORINGSSL_EVP_TEST_LIB_SRC = \
third_party/boringssl/crypto/evp/evp_test.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_EVP_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_EVP_TEST_LIB_SRC))))
@@ -5133,6 +5206,7 @@ endif
LIBBORINGSSL_PBKDF_TEST_LIB_SRC = \
third_party/boringssl/crypto/evp/pbkdf_test.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_PBKDF_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PBKDF_TEST_LIB_SRC))))
@@ -5170,6 +5244,7 @@ endif
LIBBORINGSSL_HKDF_TEST_LIB_SRC = \
third_party/boringssl/crypto/hkdf/hkdf_test.c \
+PUBLIC_HEADERS_C += \
LIBBORINGSSL_HKDF_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_HKDF_TEST_LIB_SRC))))
@@ -5196,6 +5271,7 @@ endif
LIBBORINGSSL_HMAC_TEST_LIB_SRC = \
third_party/boringssl/crypto/hmac/hmac_test.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_HMAC_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_HMAC_TEST_LIB_SRC))))
@@ -5233,6 +5309,7 @@ endif
LIBBORINGSSL_LHASH_TEST_LIB_SRC = \
third_party/boringssl/crypto/lhash/lhash_test.c \
+PUBLIC_HEADERS_C += \
LIBBORINGSSL_LHASH_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_LHASH_TEST_LIB_SRC))))
@@ -5259,6 +5336,7 @@ endif
LIBBORINGSSL_GCM_TEST_LIB_SRC = \
third_party/boringssl/crypto/modes/gcm_test.c \
+PUBLIC_HEADERS_C += \
LIBBORINGSSL_GCM_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_GCM_TEST_LIB_SRC))))
@@ -5285,6 +5363,7 @@ endif
LIBBORINGSSL_PKCS12_TEST_LIB_SRC = \
third_party/boringssl/crypto/pkcs8/pkcs12_test.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_PKCS12_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PKCS12_TEST_LIB_SRC))))
@@ -5322,6 +5401,7 @@ endif
LIBBORINGSSL_PKCS8_TEST_LIB_SRC = \
third_party/boringssl/crypto/pkcs8/pkcs8_test.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_PKCS8_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PKCS8_TEST_LIB_SRC))))
@@ -5359,6 +5439,7 @@ endif
LIBBORINGSSL_POLY1305_TEST_LIB_SRC = \
third_party/boringssl/crypto/poly1305/poly1305_test.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_POLY1305_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_POLY1305_TEST_LIB_SRC))))
@@ -5396,6 +5477,7 @@ endif
LIBBORINGSSL_REFCOUNT_TEST_LIB_SRC = \
third_party/boringssl/crypto/refcount_test.c \
+PUBLIC_HEADERS_C += \
LIBBORINGSSL_REFCOUNT_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_REFCOUNT_TEST_LIB_SRC))))
@@ -5422,6 +5504,7 @@ endif
LIBBORINGSSL_RSA_TEST_LIB_SRC = \
third_party/boringssl/crypto/rsa/rsa_test.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_RSA_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_RSA_TEST_LIB_SRC))))
@@ -5459,6 +5542,7 @@ endif
LIBBORINGSSL_THREAD_TEST_LIB_SRC = \
third_party/boringssl/crypto/thread_test.c \
+PUBLIC_HEADERS_C += \
LIBBORINGSSL_THREAD_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_THREAD_TEST_LIB_SRC))))
@@ -5485,6 +5569,7 @@ endif
LIBBORINGSSL_PKCS7_TEST_LIB_SRC = \
third_party/boringssl/crypto/x509/pkcs7_test.c \
+PUBLIC_HEADERS_C += \
LIBBORINGSSL_PKCS7_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PKCS7_TEST_LIB_SRC))))
@@ -5511,6 +5596,7 @@ endif
LIBBORINGSSL_TAB_TEST_LIB_SRC = \
third_party/boringssl/crypto/x509v3/tab_test.c \
+PUBLIC_HEADERS_C += \
LIBBORINGSSL_TAB_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_TAB_TEST_LIB_SRC))))
@@ -5537,6 +5623,7 @@ endif
LIBBORINGSSL_V3NAME_TEST_LIB_SRC = \
third_party/boringssl/crypto/x509v3/v3name_test.c \
+PUBLIC_HEADERS_C += \
LIBBORINGSSL_V3NAME_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_V3NAME_TEST_LIB_SRC))))
@@ -5563,6 +5650,7 @@ endif
LIBBORINGSSL_PQUEUE_TEST_LIB_SRC = \
third_party/boringssl/ssl/pqueue/pqueue_test.c \
+PUBLIC_HEADERS_C += \
LIBBORINGSSL_PQUEUE_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_PQUEUE_TEST_LIB_SRC))))
@@ -5589,6 +5677,7 @@ endif
LIBBORINGSSL_SSL_TEST_LIB_SRC = \
third_party/boringssl/ssl/ssl_test.cc \
+PUBLIC_HEADERS_CXX += \
LIBBORINGSSL_SSL_TEST_LIB_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBORINGSSL_SSL_TEST_LIB_SRC))))
@@ -5640,6 +5729,7 @@ LIBZ_SRC = \
third_party/zlib/uncompr.c \
third_party/zlib/zutil.c \
+PUBLIC_HEADERS_C += \
LIBZ_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBZ_SRC))))
@@ -5665,6 +5755,7 @@ endif
LIBBAD_CLIENT_TEST_SRC = \
test/core/bad_client/bad_client.c \
+PUBLIC_HEADERS_C += \
LIBBAD_CLIENT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBAD_CLIENT_TEST_SRC))))
@@ -5703,6 +5794,7 @@ endif
LIBBAD_SSL_TEST_SERVER_SRC = \
test/core/bad_ssl/server_common.c \
+PUBLIC_HEADERS_C += \
LIBBAD_SSL_TEST_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBBAD_SSL_TEST_SERVER_SRC))))
@@ -5757,6 +5849,7 @@ LIBEND2END_TESTS_SRC = \
test/core/end2end/tests/graceful_server_shutdown.c \
test/core/end2end/tests/high_initial_seqno.c \
test/core/end2end/tests/hpack_size.c \
+ test/core/end2end/tests/idempotent_request.c \
test/core/end2end/tests/invoke_large_request.c \
test/core/end2end/tests/large_metadata.c \
test/core/end2end/tests/max_concurrent_streams.c \
@@ -5777,6 +5870,7 @@ LIBEND2END_TESTS_SRC = \
test/core/end2end/tests/simple_request.c \
test/core/end2end/tests/trailing_metadata.c \
+PUBLIC_HEADERS_C += \
LIBEND2END_TESTS_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBEND2END_TESTS_SRC))))
@@ -5830,6 +5924,7 @@ LIBEND2END_NOSEC_TESTS_SRC = \
test/core/end2end/tests/graceful_server_shutdown.c \
test/core/end2end/tests/high_initial_seqno.c \
test/core/end2end/tests/hpack_size.c \
+ test/core/end2end/tests/idempotent_request.c \
test/core/end2end/tests/invoke_large_request.c \
test/core/end2end/tests/large_metadata.c \
test/core/end2end/tests/max_concurrent_streams.c \
@@ -5850,6 +5945,7 @@ LIBEND2END_NOSEC_TESTS_SRC = \
test/core/end2end/tests/simple_request.c \
test/core/end2end/tests/trailing_metadata.c \
+PUBLIC_HEADERS_C += \
LIBEND2END_NOSEC_TESTS_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBEND2END_NOSEC_TESTS_SRC))))
@@ -6675,6 +6771,38 @@ endif
endif
+GOAWAY_SERVER_TEST_SRC = \
+ test/core/end2end/goaway_server_test.c \
+
+GOAWAY_SERVER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GOAWAY_SERVER_TEST_SRC))))
+ifeq ($(NO_SECURE),true)
+
+# You can't build secure targets if you don't have OpenSSL.
+
+$(BINDIR)/$(CONFIG)/goaway_server_test: openssl_dep_error
+
+else
+
+
+
+$(BINDIR)/$(CONFIG)/goaway_server_test: $(GOAWAY_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+ $(E) "[LD] Linking $@"
+ $(Q) mkdir -p `dirname $@`
+ $(Q) $(LD) $(LDFLAGS) $(GOAWAY_SERVER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/goaway_server_test
+
+endif
+
+$(OBJDIR)/$(CONFIG)/test/core/end2end/goaway_server_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+
+deps_goaway_server_test: $(GOAWAY_SERVER_TEST_OBJS:.o=.dep)
+
+ifneq ($(NO_SECURE),true)
+ifneq ($(NO_DEPS),true)
+-include $(GOAWAY_SERVER_TEST_OBJS:.o=.dep)
+endif
+endif
+
+
GPR_AVL_TEST_SRC = \
test/core/support/avl_test.c \
@@ -7731,6 +7859,38 @@ endif
endif
+HPACK_PARSER_FUZZER_TEST_SRC = \
+ test/core/transport/chttp2/hpack_parser_fuzzer_test.c \
+
+HPACK_PARSER_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HPACK_PARSER_FUZZER_TEST_SRC))))
+ifeq ($(NO_SECURE),true)
+
+# You can't build secure targets if you don't have OpenSSL.
+
+$(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test: openssl_dep_error
+
+else
+
+
+
+$(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test: $(HPACK_PARSER_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+ $(E) "[LD] Linking $@"
+ $(Q) mkdir -p `dirname $@`
+ $(Q) $(LDXX) $(LDFLAGS) $(HPACK_PARSER_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test
+
+endif
+
+$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_parser_fuzzer_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+
+deps_hpack_parser_fuzzer_test: $(HPACK_PARSER_FUZZER_TEST_OBJS:.o=.dep)
+
+ifneq ($(NO_SECURE),true)
+ifneq ($(NO_DEPS),true)
+-include $(HPACK_PARSER_FUZZER_TEST_OBJS:.o=.dep)
+endif
+endif
+
+
HPACK_PARSER_TEST_SRC = \
test/core/transport/chttp2/hpack_parser_test.c \
@@ -7795,6 +7955,38 @@ endif
endif
+HTTP_FUZZER_TEST_SRC = \
+ test/core/http/fuzzer.c \
+
+HTTP_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_FUZZER_TEST_SRC))))
+ifeq ($(NO_SECURE),true)
+
+# You can't build secure targets if you don't have OpenSSL.
+
+$(BINDIR)/$(CONFIG)/http_fuzzer_test: openssl_dep_error
+
+else
+
+
+
+$(BINDIR)/$(CONFIG)/http_fuzzer_test: $(HTTP_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+ $(E) "[LD] Linking $@"
+ $(Q) mkdir -p `dirname $@`
+ $(Q) $(LDXX) $(LDFLAGS) $(HTTP_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/http_fuzzer_test
+
+endif
+
+$(OBJDIR)/$(CONFIG)/test/core/http/fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+
+deps_http_fuzzer_test: $(HTTP_FUZZER_TEST_OBJS:.o=.dep)
+
+ifneq ($(NO_SECURE),true)
+ifneq ($(NO_DEPS),true)
+-include $(HTTP_FUZZER_TEST_OBJS:.o=.dep)
+endif
+endif
+
+
HTTP_PARSER_TEST_SRC = \
test/core/http/parser_test.c \
@@ -7955,6 +8147,102 @@ endif
endif
+INTERNAL_API_CANARY_IOMGR_TEST_SRC = \
+ test/core/internal_api_canaries/iomgr.c \
+
+INTERNAL_API_CANARY_IOMGR_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTERNAL_API_CANARY_IOMGR_TEST_SRC))))
+ifeq ($(NO_SECURE),true)
+
+# You can't build secure targets if you don't have OpenSSL.
+
+$(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test: openssl_dep_error
+
+else
+
+
+
+$(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test: $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+ $(E) "[LD] Linking $@"
+ $(Q) mkdir -p `dirname $@`
+ $(Q) $(LD) $(LDFLAGS) $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/internal_api_canary_iomgr_test
+
+endif
+
+$(OBJDIR)/$(CONFIG)/test/core/internal_api_canaries/iomgr.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+
+deps_internal_api_canary_iomgr_test: $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS:.o=.dep)
+
+ifneq ($(NO_SECURE),true)
+ifneq ($(NO_DEPS),true)
+-include $(INTERNAL_API_CANARY_IOMGR_TEST_OBJS:.o=.dep)
+endif
+endif
+
+
+INTERNAL_API_CANARY_SUPPORT_TEST_SRC = \
+ test/core/internal_api_canaries/iomgr.c \
+
+INTERNAL_API_CANARY_SUPPORT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTERNAL_API_CANARY_SUPPORT_TEST_SRC))))
+ifeq ($(NO_SECURE),true)
+
+# You can't build secure targets if you don't have OpenSSL.
+
+$(BINDIR)/$(CONFIG)/internal_api_canary_support_test: openssl_dep_error
+
+else
+
+
+
+$(BINDIR)/$(CONFIG)/internal_api_canary_support_test: $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+ $(E) "[LD] Linking $@"
+ $(Q) mkdir -p `dirname $@`
+ $(Q) $(LD) $(LDFLAGS) $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/internal_api_canary_support_test
+
+endif
+
+$(OBJDIR)/$(CONFIG)/test/core/internal_api_canaries/iomgr.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+
+deps_internal_api_canary_support_test: $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS:.o=.dep)
+
+ifneq ($(NO_SECURE),true)
+ifneq ($(NO_DEPS),true)
+-include $(INTERNAL_API_CANARY_SUPPORT_TEST_OBJS:.o=.dep)
+endif
+endif
+
+
+INTERNAL_API_CANARY_TRANSPORT_TEST_SRC = \
+ test/core/internal_api_canaries/iomgr.c \
+
+INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(INTERNAL_API_CANARY_TRANSPORT_TEST_SRC))))
+ifeq ($(NO_SECURE),true)
+
+# You can't build secure targets if you don't have OpenSSL.
+
+$(BINDIR)/$(CONFIG)/internal_api_canary_transport_test: openssl_dep_error
+
+else
+
+
+
+$(BINDIR)/$(CONFIG)/internal_api_canary_transport_test: $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+ $(E) "[LD] Linking $@"
+ $(Q) mkdir -p `dirname $@`
+ $(Q) $(LD) $(LDFLAGS) $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/internal_api_canary_transport_test
+
+endif
+
+$(OBJDIR)/$(CONFIG)/test/core/internal_api_canaries/iomgr.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+
+deps_internal_api_canary_transport_test: $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS:.o=.dep)
+
+ifneq ($(NO_SECURE),true)
+ifneq ($(NO_DEPS),true)
+-include $(INTERNAL_API_CANARY_TRANSPORT_TEST_OBJS:.o=.dep)
+endif
+endif
+
+
INVALID_CALL_ARGUMENT_TEST_SRC = \
test/core/end2end/invalid_call_argument_test.c \
@@ -7987,6 +8275,38 @@ endif
endif
+JSON_FUZZER_TEST_SRC = \
+ test/core/json/fuzzer.c \
+
+JSON_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_FUZZER_TEST_SRC))))
+ifeq ($(NO_SECURE),true)
+
+# You can't build secure targets if you don't have OpenSSL.
+
+$(BINDIR)/$(CONFIG)/json_fuzzer_test: openssl_dep_error
+
+else
+
+
+
+$(BINDIR)/$(CONFIG)/json_fuzzer_test: $(JSON_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+ $(E) "[LD] Linking $@"
+ $(Q) mkdir -p `dirname $@`
+ $(Q) $(LDXX) $(LDFLAGS) $(JSON_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/json_fuzzer_test
+
+endif
+
+$(OBJDIR)/$(CONFIG)/test/core/json/fuzzer.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+
+deps_json_fuzzer_test: $(JSON_FUZZER_TEST_OBJS:.o=.dep)
+
+ifneq ($(NO_SECURE),true)
+ifneq ($(NO_DEPS),true)
+-include $(JSON_FUZZER_TEST_OBJS:.o=.dep)
+endif
+endif
+
+
JSON_REWRITE_SRC = \
test/core/json/json_rewrite.c \
@@ -9043,6 +9363,38 @@ endif
endif
+URI_FUZZER_TEST_SRC = \
+ test/core/client_config/uri_fuzzer_test.c \
+
+URI_FUZZER_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(URI_FUZZER_TEST_SRC))))
+ifeq ($(NO_SECURE),true)
+
+# You can't build secure targets if you don't have OpenSSL.
+
+$(BINDIR)/$(CONFIG)/uri_fuzzer_test: openssl_dep_error
+
+else
+
+
+
+$(BINDIR)/$(CONFIG)/uri_fuzzer_test: $(URI_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+ $(E) "[LD] Linking $@"
+ $(Q) mkdir -p `dirname $@`
+ $(Q) $(LDXX) $(LDFLAGS) $(URI_FUZZER_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -lFuzzer -o $(BINDIR)/$(CONFIG)/uri_fuzzer_test
+
+endif
+
+$(OBJDIR)/$(CONFIG)/test/core/client_config/uri_fuzzer_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+
+deps_uri_fuzzer_test: $(URI_FUZZER_TEST_OBJS:.o=.dep)
+
+ifneq ($(NO_SECURE),true)
+ifneq ($(NO_DEPS),true)
+-include $(URI_FUZZER_TEST_OBJS:.o=.dep)
+endif
+endif
+
+
URI_PARSER_TEST_SRC = \
test/core/client_config/uri_parser_test.c \
@@ -12732,70 +13084,6 @@ endif
endif
-H2_FULL+POLL_TEST_SRC = \
- test/core/end2end/fixtures/h2_full+poll.c \
-
-H2_FULL+POLL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_FULL+POLL_TEST_SRC))))
-ifeq ($(NO_SECURE),true)
-
-# You can't build secure targets if you don't have OpenSSL.
-
-$(BINDIR)/$(CONFIG)/h2_full+poll_test: openssl_dep_error
-
-else
-
-
-
-$(BINDIR)/$(CONFIG)/h2_full+poll_test: $(H2_FULL+POLL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
- $(E) "[LD] Linking $@"
- $(Q) mkdir -p `dirname $@`
- $(Q) $(LD) $(LDFLAGS) $(H2_FULL+POLL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_full+poll_test
-
-endif
-
-$(OBJDIR)/$(CONFIG)/test/core/end2end/fixtures/h2_full+poll.o: $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
-
-deps_h2_full+poll_test: $(H2_FULL+POLL_TEST_OBJS:.o=.dep)
-
-ifneq ($(NO_SECURE),true)
-ifneq ($(NO_DEPS),true)
--include $(H2_FULL+POLL_TEST_OBJS:.o=.dep)
-endif
-endif
-
-
-H2_FULL+POLL+PIPE_TEST_SRC = \
- test/core/end2end/fixtures/h2_full+poll+pipe.c \
-
-H2_FULL+POLL+PIPE_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_FULL+POLL+PIPE_TEST_SRC))))
-ifeq ($(NO_SECURE),true)
-
-# You can't build secure targets if you don't have OpenSSL.
-
-$(BINDIR)/$(CONFIG)/h2_full+poll+pipe_test: openssl_dep_error
-
-else
-
-
-
-$(BINDIR)/$(CONFIG)/h2_full+poll+pipe_test: $(H2_FULL+POLL+PIPE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
- $(E) "[LD] Linking $@"
- $(Q) mkdir -p `dirname $@`
- $(Q) $(LD) $(LDFLAGS) $(H2_FULL+POLL+PIPE_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_full+poll+pipe_test
-
-endif
-
-$(OBJDIR)/$(CONFIG)/test/core/end2end/fixtures/h2_full+poll+pipe.o: $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
-
-deps_h2_full+poll+pipe_test: $(H2_FULL+POLL+PIPE_TEST_OBJS:.o=.dep)
-
-ifneq ($(NO_SECURE),true)
-ifneq ($(NO_DEPS),true)
--include $(H2_FULL+POLL+PIPE_TEST_OBJS:.o=.dep)
-endif
-endif
-
-
H2_FULL+TRACE_TEST_SRC = \
test/core/end2end/fixtures/h2_full+trace.c \
@@ -13020,38 +13308,6 @@ endif
endif
-H2_SSL+POLL_TEST_SRC = \
- test/core/end2end/fixtures/h2_ssl+poll.c \
-
-H2_SSL+POLL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_SSL+POLL_TEST_SRC))))
-ifeq ($(NO_SECURE),true)
-
-# You can't build secure targets if you don't have OpenSSL.
-
-$(BINDIR)/$(CONFIG)/h2_ssl+poll_test: openssl_dep_error
-
-else
-
-
-
-$(BINDIR)/$(CONFIG)/h2_ssl+poll_test: $(H2_SSL+POLL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
- $(E) "[LD] Linking $@"
- $(Q) mkdir -p `dirname $@`
- $(Q) $(LD) $(LDFLAGS) $(H2_SSL+POLL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_ssl+poll_test
-
-endif
-
-$(OBJDIR)/$(CONFIG)/test/core/end2end/fixtures/h2_ssl+poll.o: $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
-
-deps_h2_ssl+poll_test: $(H2_SSL+POLL_TEST_OBJS:.o=.dep)
-
-ifneq ($(NO_SECURE),true)
-ifneq ($(NO_DEPS),true)
--include $(H2_SSL+POLL_TEST_OBJS:.o=.dep)
-endif
-endif
-
-
H2_SSL_PROXY_TEST_SRC = \
test/core/end2end/fixtures/h2_ssl_proxy.c \
@@ -13116,38 +13372,6 @@ endif
endif
-H2_UDS+POLL_TEST_SRC = \
- test/core/end2end/fixtures/h2_uds+poll.c \
-
-H2_UDS+POLL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_UDS+POLL_TEST_SRC))))
-ifeq ($(NO_SECURE),true)
-
-# You can't build secure targets if you don't have OpenSSL.
-
-$(BINDIR)/$(CONFIG)/h2_uds+poll_test: openssl_dep_error
-
-else
-
-
-
-$(BINDIR)/$(CONFIG)/h2_uds+poll_test: $(H2_UDS+POLL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
- $(E) "[LD] Linking $@"
- $(Q) mkdir -p `dirname $@`
- $(Q) $(LD) $(LDFLAGS) $(H2_UDS+POLL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/h2_uds+poll_test
-
-endif
-
-$(OBJDIR)/$(CONFIG)/test/core/end2end/fixtures/h2_uds+poll.o: $(LIBDIR)/$(CONFIG)/libend2end_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
-
-deps_h2_uds+poll_test: $(H2_UDS+POLL_TEST_OBJS:.o=.dep)
-
-ifneq ($(NO_SECURE),true)
-ifneq ($(NO_DEPS),true)
--include $(H2_UDS+POLL_TEST_OBJS:.o=.dep)
-endif
-endif
-
-
H2_CENSUS_NOSEC_TEST_SRC = \
test/core/end2end/fixtures/h2_census.c \
@@ -13228,46 +13452,6 @@ ifneq ($(NO_DEPS),true)
endif
-H2_FULL+POLL_NOSEC_TEST_SRC = \
- test/core/end2end/fixtures/h2_full+poll.c \
-
-H2_FULL+POLL_NOSEC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_FULL+POLL_NOSEC_TEST_SRC))))
-
-
-$(BINDIR)/$(CONFIG)/h2_full+poll_nosec_test: $(H2_FULL+POLL_NOSEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
- $(E) "[LD] Linking $@"
- $(Q) mkdir -p `dirname $@`
- $(Q) $(LD) $(LDFLAGS) $(H2_FULL+POLL_NOSEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/h2_full+poll_nosec_test
-
-$(OBJDIR)/$(CONFIG)/test/core/end2end/fixtures/h2_full+poll.o: $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
-
-deps_h2_full+poll_nosec_test: $(H2_FULL+POLL_NOSEC_TEST_OBJS:.o=.dep)
-
-ifneq ($(NO_DEPS),true)
--include $(H2_FULL+POLL_NOSEC_TEST_OBJS:.o=.dep)
-endif
-
-
-H2_FULL+POLL+PIPE_NOSEC_TEST_SRC = \
- test/core/end2end/fixtures/h2_full+poll+pipe.c \
-
-H2_FULL+POLL+PIPE_NOSEC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_FULL+POLL+PIPE_NOSEC_TEST_SRC))))
-
-
-$(BINDIR)/$(CONFIG)/h2_full+poll+pipe_nosec_test: $(H2_FULL+POLL+PIPE_NOSEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
- $(E) "[LD] Linking $@"
- $(Q) mkdir -p `dirname $@`
- $(Q) $(LD) $(LDFLAGS) $(H2_FULL+POLL+PIPE_NOSEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/h2_full+poll+pipe_nosec_test
-
-$(OBJDIR)/$(CONFIG)/test/core/end2end/fixtures/h2_full+poll+pipe.o: $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
-
-deps_h2_full+poll+pipe_nosec_test: $(H2_FULL+POLL+PIPE_NOSEC_TEST_OBJS:.o=.dep)
-
-ifneq ($(NO_DEPS),true)
--include $(H2_FULL+POLL+PIPE_NOSEC_TEST_OBJS:.o=.dep)
-endif
-
-
H2_FULL+TRACE_NOSEC_TEST_SRC = \
test/core/end2end/fixtures/h2_full+trace.c \
@@ -13388,23 +13572,131 @@ ifneq ($(NO_DEPS),true)
endif
-H2_UDS+POLL_NOSEC_TEST_SRC = \
- test/core/end2end/fixtures/h2_uds+poll.c \
+HPACK_PARSER_FUZZER_TEST_ONE_ENTRY_SRC = \
+ test/core/transport/chttp2/hpack_parser_fuzzer_test.c \
+
+HPACK_PARSER_FUZZER_TEST_ONE_ENTRY_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HPACK_PARSER_FUZZER_TEST_ONE_ENTRY_SRC))))
+ifeq ($(NO_SECURE),true)
+
+# You can't build secure targets if you don't have OpenSSL.
+
+$(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test_one_entry: openssl_dep_error
+
+else
+
+
+
+$(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test_one_entry: $(HPACK_PARSER_FUZZER_TEST_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+ $(E) "[LD] Linking $@"
+ $(Q) mkdir -p `dirname $@`
+ $(Q) $(LD) $(LDFLAGS) $(HPACK_PARSER_FUZZER_TEST_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test_one_entry
+
+endif
+
+$(OBJDIR)/$(CONFIG)/test/core/transport/chttp2/hpack_parser_fuzzer_test.o: $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+
+deps_hpack_parser_fuzzer_test_one_entry: $(HPACK_PARSER_FUZZER_TEST_ONE_ENTRY_OBJS:.o=.dep)
+
+ifneq ($(NO_SECURE),true)
+ifneq ($(NO_DEPS),true)
+-include $(HPACK_PARSER_FUZZER_TEST_ONE_ENTRY_OBJS:.o=.dep)
+endif
+endif
+
-H2_UDS+POLL_NOSEC_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(H2_UDS+POLL_NOSEC_TEST_SRC))))
+HTTP_FUZZER_TEST_ONE_ENTRY_SRC = \
+ test/core/http/fuzzer.c \
+HTTP_FUZZER_TEST_ONE_ENTRY_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HTTP_FUZZER_TEST_ONE_ENTRY_SRC))))
+ifeq ($(NO_SECURE),true)
-$(BINDIR)/$(CONFIG)/h2_uds+poll_nosec_test: $(H2_UDS+POLL_NOSEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+# You can't build secure targets if you don't have OpenSSL.
+
+$(BINDIR)/$(CONFIG)/http_fuzzer_test_one_entry: openssl_dep_error
+
+else
+
+
+
+$(BINDIR)/$(CONFIG)/http_fuzzer_test_one_entry: $(HTTP_FUZZER_TEST_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
$(E) "[LD] Linking $@"
$(Q) mkdir -p `dirname $@`
- $(Q) $(LD) $(LDFLAGS) $(H2_UDS+POLL_NOSEC_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) -o $(BINDIR)/$(CONFIG)/h2_uds+poll_nosec_test
+ $(Q) $(LD) $(LDFLAGS) $(HTTP_FUZZER_TEST_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/http_fuzzer_test_one_entry
-$(OBJDIR)/$(CONFIG)/test/core/end2end/fixtures/h2_uds+poll.o: $(LIBDIR)/$(CONFIG)/libend2end_nosec_tests.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util_unsecure.a $(LIBDIR)/$(CONFIG)/libgrpc_unsecure.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+endif
+
+$(OBJDIR)/$(CONFIG)/test/core/http/fuzzer.o: $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
-deps_h2_uds+poll_nosec_test: $(H2_UDS+POLL_NOSEC_TEST_OBJS:.o=.dep)
+deps_http_fuzzer_test_one_entry: $(HTTP_FUZZER_TEST_ONE_ENTRY_OBJS:.o=.dep)
+ifneq ($(NO_SECURE),true)
ifneq ($(NO_DEPS),true)
--include $(H2_UDS+POLL_NOSEC_TEST_OBJS:.o=.dep)
+-include $(HTTP_FUZZER_TEST_ONE_ENTRY_OBJS:.o=.dep)
+endif
+endif
+
+
+JSON_FUZZER_TEST_ONE_ENTRY_SRC = \
+ test/core/json/fuzzer.c \
+
+JSON_FUZZER_TEST_ONE_ENTRY_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(JSON_FUZZER_TEST_ONE_ENTRY_SRC))))
+ifeq ($(NO_SECURE),true)
+
+# You can't build secure targets if you don't have OpenSSL.
+
+$(BINDIR)/$(CONFIG)/json_fuzzer_test_one_entry: openssl_dep_error
+
+else
+
+
+
+$(BINDIR)/$(CONFIG)/json_fuzzer_test_one_entry: $(JSON_FUZZER_TEST_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+ $(E) "[LD] Linking $@"
+ $(Q) mkdir -p `dirname $@`
+ $(Q) $(LD) $(LDFLAGS) $(JSON_FUZZER_TEST_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/json_fuzzer_test_one_entry
+
+endif
+
+$(OBJDIR)/$(CONFIG)/test/core/json/fuzzer.o: $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+
+deps_json_fuzzer_test_one_entry: $(JSON_FUZZER_TEST_ONE_ENTRY_OBJS:.o=.dep)
+
+ifneq ($(NO_SECURE),true)
+ifneq ($(NO_DEPS),true)
+-include $(JSON_FUZZER_TEST_ONE_ENTRY_OBJS:.o=.dep)
+endif
+endif
+
+
+URI_FUZZER_TEST_ONE_ENTRY_SRC = \
+ test/core/client_config/uri_fuzzer_test.c \
+
+URI_FUZZER_TEST_ONE_ENTRY_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(URI_FUZZER_TEST_ONE_ENTRY_SRC))))
+ifeq ($(NO_SECURE),true)
+
+# You can't build secure targets if you don't have OpenSSL.
+
+$(BINDIR)/$(CONFIG)/uri_fuzzer_test_one_entry: openssl_dep_error
+
+else
+
+
+
+$(BINDIR)/$(CONFIG)/uri_fuzzer_test_one_entry: $(URI_FUZZER_TEST_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+ $(E) "[LD] Linking $@"
+ $(Q) mkdir -p `dirname $@`
+ $(Q) $(LD) $(LDFLAGS) $(URI_FUZZER_TEST_ONE_ENTRY_OBJS) $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/uri_fuzzer_test_one_entry
+
+endif
+
+$(OBJDIR)/$(CONFIG)/test/core/client_config/uri_fuzzer_test.o: $(LIBDIR)/$(CONFIG)/libone_input_fuzzer.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+
+deps_uri_fuzzer_test_one_entry: $(URI_FUZZER_TEST_ONE_ENTRY_OBJS:.o=.dep)
+
+ifneq ($(NO_SECURE),true)
+ifneq ($(NO_DEPS),true)
+-include $(URI_FUZZER_TEST_ONE_ENTRY_OBJS:.o=.dep)
+endif
endif
@@ -13416,6 +13708,8 @@ ifneq ($(OPENSSL_DEP),)
# This is to ensure the embedded OpenSSL is built beforehand, properly
# installing headers to their final destination on the drive. We need this
# otherwise parallel compilation will fail if a source is compiled first.
+src/core/ext/transport/chttp2/client/secure/secure_channel_create.c: $(OPENSSL_DEP)
+src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c: $(OPENSSL_DEP)
src/core/lib/http/httpcli_security_connector.c: $(OPENSSL_DEP)
src/core/lib/security/b64.c: $(OPENSSL_DEP)
src/core/lib/security/client_auth_filter.c: $(OPENSSL_DEP)
@@ -13431,12 +13725,11 @@ src/core/lib/security/secure_endpoint.c: $(OPENSSL_DEP)
src/core/lib/security/security_connector.c: $(OPENSSL_DEP)
src/core/lib/security/security_context.c: $(OPENSSL_DEP)
src/core/lib/security/server_auth_filter.c: $(OPENSSL_DEP)
-src/core/lib/security/server_secure_chttp2.c: $(OPENSSL_DEP)
src/core/lib/surface/init_secure.c: $(OPENSSL_DEP)
-src/core/lib/surface/secure_channel_create.c: $(OPENSSL_DEP)
src/core/lib/tsi/fake_transport_security.c: $(OPENSSL_DEP)
src/core/lib/tsi/ssl_transport_security.c: $(OPENSSL_DEP)
src/core/lib/tsi/transport_security.c: $(OPENSSL_DEP)
+src/core/plugin_registry/grpc_plugin_registry.c: $(OPENSSL_DEP)
src/cpp/client/secure_credentials.cc: $(OPENSSL_DEP)
src/cpp/common/auth_property_iterator.cc: $(OPENSSL_DEP)
src/cpp/common/secure_auth_context.cc: $(OPENSSL_DEP)
diff --git a/PYTHON-MANIFEST.in b/PYTHON-MANIFEST.in
index 25aba87c18..534f4c1251 100644
--- a/PYTHON-MANIFEST.in
+++ b/PYTHON-MANIFEST.in
@@ -2,8 +2,10 @@ recursive-include src/python/grpcio/grpc *.c *.h *.py *.pyx *.pxd *.pxi *.python
recursive-exclude src/python/grpcio/grpc/_cython *.so *.pyd
graft src/python/grpcio/tests
graft src/core
+graft src/boringssl
graft include/grpc
graft third_party/boringssl
+graft third_party/nanopb
graft third_party/zlib
include src/python/grpcio/commands.py
include src/python/grpcio/grpc_version.py
diff --git a/binding.gyp b/binding.gyp
index 416ce20864..8b987fefa8 100644
--- a/binding.gyp
+++ b/binding.gyp
@@ -5,7 +5,7 @@
# This file can be regenerated from the template by running
# tools/buildgen/generate_projects.sh
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -558,9 +558,46 @@
'gpr',
],
'sources': [
- 'src/core/lib/census/grpc_context.c',
- 'src/core/lib/census/grpc_filter.c',
- 'src/core/lib/census/grpc_plugin.c',
+ 'src/core/ext/census/context.c',
+ 'src/core/ext/census/grpc_context.c',
+ 'src/core/ext/census/grpc_filter.c',
+ 'src/core/ext/census/grpc_plugin.c',
+ 'src/core/ext/census/initialize.c',
+ 'src/core/ext/census/mlog.c',
+ 'src/core/ext/census/operation.c',
+ 'src/core/ext/census/placeholders.c',
+ 'src/core/ext/census/tracing.c',
+ 'src/core/ext/lb_policy/grpclb/load_balancer_api.c',
+ 'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c',
+ 'src/core/ext/lb_policy/pick_first/pick_first.c',
+ 'src/core/ext/lb_policy/round_robin/round_robin.c',
+ 'src/core/ext/resolver/dns/native/dns_resolver.c',
+ 'src/core/ext/resolver/sockaddr/sockaddr_resolver.c',
+ 'src/core/ext/transport/chttp2/client/insecure/channel_create.c',
+ 'src/core/ext/transport/chttp2/client/secure/secure_channel_create.c',
+ 'src/core/ext/transport/chttp2/server/insecure/server_chttp2.c',
+ 'src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c',
+ 'src/core/ext/transport/chttp2/transport/alpn.c',
+ 'src/core/ext/transport/chttp2/transport/bin_encoder.c',
+ 'src/core/ext/transport/chttp2/transport/chttp2_transport.c',
+ 'src/core/ext/transport/chttp2/transport/frame_data.c',
+ 'src/core/ext/transport/chttp2/transport/frame_goaway.c',
+ 'src/core/ext/transport/chttp2/transport/frame_ping.c',
+ 'src/core/ext/transport/chttp2/transport/frame_rst_stream.c',
+ 'src/core/ext/transport/chttp2/transport/frame_settings.c',
+ 'src/core/ext/transport/chttp2/transport/frame_window_update.c',
+ 'src/core/ext/transport/chttp2/transport/hpack_encoder.c',
+ 'src/core/ext/transport/chttp2/transport/hpack_parser.c',
+ 'src/core/ext/transport/chttp2/transport/hpack_table.c',
+ 'src/core/ext/transport/chttp2/transport/huffsyms.c',
+ 'src/core/ext/transport/chttp2/transport/incoming_metadata.c',
+ 'src/core/ext/transport/chttp2/transport/parsing.c',
+ 'src/core/ext/transport/chttp2/transport/status_conversion.c',
+ 'src/core/ext/transport/chttp2/transport/stream_lists.c',
+ 'src/core/ext/transport/chttp2/transport/stream_map.c',
+ 'src/core/ext/transport/chttp2/transport/timeout_encoding.c',
+ 'src/core/ext/transport/chttp2/transport/varint.c',
+ 'src/core/ext/transport/chttp2/transport/writing.c',
'src/core/lib/channel/channel_args.c',
'src/core/lib/channel/channel_stack.c',
'src/core/lib/channel/channel_stack_builder.c',
@@ -574,17 +611,12 @@
'src/core/lib/client_config/connector.c',
'src/core/lib/client_config/default_initial_connect_string.c',
'src/core/lib/client_config/initial_connect_string.c',
- 'src/core/lib/client_config/lb_policies/load_balancer_api.c',
- 'src/core/lib/client_config/lb_policies/pick_first.c',
- 'src/core/lib/client_config/lb_policies/round_robin.c',
'src/core/lib/client_config/lb_policy.c',
'src/core/lib/client_config/lb_policy_factory.c',
'src/core/lib/client_config/lb_policy_registry.c',
'src/core/lib/client_config/resolver.c',
'src/core/lib/client_config/resolver_factory.c',
'src/core/lib/client_config/resolver_registry.c',
- 'src/core/lib/client_config/resolvers/dns_resolver.c',
- 'src/core/lib/client_config/resolvers/sockaddr_resolver.c',
'src/core/lib/client_config/subchannel.c',
'src/core/lib/client_config/subchannel_factory.c',
'src/core/lib/client_config/subchannel_index.c',
@@ -594,22 +626,20 @@
'src/core/lib/debug/trace.c',
'src/core/lib/http/format_request.c',
'src/core/lib/http/httpcli.c',
+ 'src/core/lib/http/httpcli_security_connector.c',
'src/core/lib/http/parser.c',
'src/core/lib/iomgr/closure.c',
'src/core/lib/iomgr/endpoint.c',
'src/core/lib/iomgr/endpoint_pair_posix.c',
'src/core/lib/iomgr/endpoint_pair_windows.c',
+ 'src/core/lib/iomgr/ev_poll_and_epoll_posix.c',
+ 'src/core/lib/iomgr/ev_posix.c',
'src/core/lib/iomgr/exec_ctx.c',
'src/core/lib/iomgr/executor.c',
- 'src/core/lib/iomgr/fd_posix.c',
'src/core/lib/iomgr/iocp_windows.c',
'src/core/lib/iomgr/iomgr.c',
'src/core/lib/iomgr/iomgr_posix.c',
'src/core/lib/iomgr/iomgr_windows.c',
- 'src/core/lib/iomgr/pollset_multipoller_with_epoll.c',
- 'src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c',
- 'src/core/lib/iomgr/pollset_posix.c',
- 'src/core/lib/iomgr/pollset_set_posix.c',
'src/core/lib/iomgr/pollset_set_windows.c',
'src/core/lib/iomgr/pollset_windows.c',
'src/core/lib/iomgr/resolve_address_posix.c',
@@ -641,7 +671,20 @@
'src/core/lib/json/json_reader.c',
'src/core/lib/json/json_string.c',
'src/core/lib/json/json_writer.c',
- 'src/core/lib/proto/grpc/lb/v0/load_balancer.pb.c',
+ 'src/core/lib/security/b64.c',
+ 'src/core/lib/security/client_auth_filter.c',
+ 'src/core/lib/security/credentials.c',
+ 'src/core/lib/security/credentials_metadata.c',
+ 'src/core/lib/security/credentials_posix.c',
+ 'src/core/lib/security/credentials_win32.c',
+ 'src/core/lib/security/google_default_credentials.c',
+ 'src/core/lib/security/handshake.c',
+ 'src/core/lib/security/json_token.c',
+ 'src/core/lib/security/jwt_verifier.c',
+ 'src/core/lib/security/secure_endpoint.c',
+ 'src/core/lib/security/security_connector.c',
+ 'src/core/lib/security/security_context.c',
+ 'src/core/lib/security/server_auth_filter.c',
'src/core/lib/surface/alarm.c',
'src/core/lib/surface/api_trace.c',
'src/core/lib/surface/byte_buffer.c',
@@ -651,74 +694,29 @@
'src/core/lib/surface/call_log_batch.c',
'src/core/lib/surface/channel.c',
'src/core/lib/surface/channel_connectivity.c',
- 'src/core/lib/surface/channel_create.c',
'src/core/lib/surface/channel_init.c',
'src/core/lib/surface/channel_ping.c',
'src/core/lib/surface/channel_stack_type.c',
'src/core/lib/surface/completion_queue.c',
'src/core/lib/surface/event_string.c',
'src/core/lib/surface/init.c',
+ 'src/core/lib/surface/init_secure.c',
'src/core/lib/surface/lame_client.c',
'src/core/lib/surface/metadata_array.c',
'src/core/lib/surface/server.c',
- 'src/core/lib/surface/server_chttp2.c',
'src/core/lib/surface/validate_metadata.c',
'src/core/lib/surface/version.c',
'src/core/lib/transport/byte_stream.c',
- 'src/core/lib/transport/chttp2/alpn.c',
- 'src/core/lib/transport/chttp2/bin_encoder.c',
- 'src/core/lib/transport/chttp2/frame_data.c',
- 'src/core/lib/transport/chttp2/frame_goaway.c',
- 'src/core/lib/transport/chttp2/frame_ping.c',
- 'src/core/lib/transport/chttp2/frame_rst_stream.c',
- 'src/core/lib/transport/chttp2/frame_settings.c',
- 'src/core/lib/transport/chttp2/frame_window_update.c',
- 'src/core/lib/transport/chttp2/hpack_encoder.c',
- 'src/core/lib/transport/chttp2/hpack_parser.c',
- 'src/core/lib/transport/chttp2/hpack_table.c',
- 'src/core/lib/transport/chttp2/huffsyms.c',
- 'src/core/lib/transport/chttp2/incoming_metadata.c',
- 'src/core/lib/transport/chttp2/parsing.c',
- 'src/core/lib/transport/chttp2/status_conversion.c',
- 'src/core/lib/transport/chttp2/stream_lists.c',
- 'src/core/lib/transport/chttp2/stream_map.c',
- 'src/core/lib/transport/chttp2/timeout_encoding.c',
- 'src/core/lib/transport/chttp2/varint.c',
- 'src/core/lib/transport/chttp2/writing.c',
- 'src/core/lib/transport/chttp2_transport.c',
'src/core/lib/transport/connectivity_state.c',
'src/core/lib/transport/metadata.c',
'src/core/lib/transport/metadata_batch.c',
'src/core/lib/transport/static_metadata.c',
'src/core/lib/transport/transport.c',
'src/core/lib/transport/transport_op_string.c',
- 'src/core/lib/http/httpcli_security_connector.c',
- 'src/core/lib/security/b64.c',
- 'src/core/lib/security/client_auth_filter.c',
- 'src/core/lib/security/credentials.c',
- 'src/core/lib/security/credentials_metadata.c',
- 'src/core/lib/security/credentials_posix.c',
- 'src/core/lib/security/credentials_win32.c',
- 'src/core/lib/security/google_default_credentials.c',
- 'src/core/lib/security/handshake.c',
- 'src/core/lib/security/json_token.c',
- 'src/core/lib/security/jwt_verifier.c',
- 'src/core/lib/security/secure_endpoint.c',
- 'src/core/lib/security/security_connector.c',
- 'src/core/lib/security/security_context.c',
- 'src/core/lib/security/server_auth_filter.c',
- 'src/core/lib/security/server_secure_chttp2.c',
- 'src/core/lib/surface/init_secure.c',
- 'src/core/lib/surface/secure_channel_create.c',
'src/core/lib/tsi/fake_transport_security.c',
'src/core/lib/tsi/ssl_transport_security.c',
'src/core/lib/tsi/transport_security.c',
- 'src/core/lib/census/context.c',
- 'src/core/lib/census/initialize.c',
- 'src/core/lib/census/mlog.c',
- 'src/core/lib/census/operation.c',
- 'src/core/lib/census/placeholders.c',
- 'src/core/lib/census/tracing.c',
+ 'src/core/plugin_registry/grpc_plugin_registry.c',
'third_party/nanopb/pb_common.c',
'third_party/nanopb/pb_decode.c',
'third_party/nanopb/pb_encode.c',
diff --git a/build.yaml b/build.yaml
index 0398bc23b8..0a71cf715d 100644
--- a/build.yaml
+++ b/build.yaml
@@ -13,16 +13,23 @@ filegroups:
public_headers:
- include/grpc/census.h
headers:
- - src/core/lib/census/aggregation.h
- - src/core/lib/census/mlog.h
- - src/core/lib/census/rpc_metric_id.h
- src:
- - src/core/lib/census/context.c
- - src/core/lib/census/initialize.c
- - src/core/lib/census/mlog.c
- - src/core/lib/census/operation.c
- - src/core/lib/census/placeholders.c
- - src/core/lib/census/tracing.c
+ - src/core/ext/census/aggregation.h
+ - src/core/ext/census/census_interface.h
+ - src/core/ext/census/census_rpc_stats.h
+ - src/core/ext/census/grpc_filter.h
+ - src/core/ext/census/mlog.h
+ - src/core/ext/census/rpc_metric_id.h
+ src:
+ - src/core/ext/census/context.c
+ - src/core/ext/census/grpc_context.c
+ - src/core/ext/census/grpc_filter.c
+ - src/core/ext/census/grpc_plugin.c
+ - src/core/ext/census/initialize.c
+ - src/core/ext/census/mlog.c
+ - src/core/ext/census/operation.c
+ - src/core/ext/census/placeholders.c
+ - src/core/ext/census/tracing.c
+ plugin: census_grpc_plugin
- name: gpr
public_headers:
- include/grpc/support/alloc.h
@@ -247,8 +254,6 @@ filegroups:
- include/grpc/grpc.h
- include/grpc/status.h
headers:
- - src/core/lib/census/grpc_filter.h
- - src/core/lib/census/grpc_plugin.h
- src/core/lib/channel/channel_args.h
- src/core/lib/channel/channel_stack.h
- src/core/lib/channel/channel_stack_builder.h
@@ -262,17 +267,12 @@ filegroups:
- src/core/lib/client_config/client_config.h
- src/core/lib/client_config/connector.h
- src/core/lib/client_config/initial_connect_string.h
- - src/core/lib/client_config/lb_policies/load_balancer_api.h
- - src/core/lib/client_config/lb_policies/pick_first.h
- - src/core/lib/client_config/lb_policies/round_robin.h
- src/core/lib/client_config/lb_policy.h
- src/core/lib/client_config/lb_policy_factory.h
- src/core/lib/client_config/lb_policy_registry.h
- src/core/lib/client_config/resolver.h
- src/core/lib/client_config/resolver_factory.h
- src/core/lib/client_config/resolver_registry.h
- - src/core/lib/client_config/resolvers/dns_resolver.h
- - src/core/lib/client_config/resolvers/sockaddr_resolver.h
- src/core/lib/client_config/subchannel.h
- src/core/lib/client_config/subchannel_factory.h
- src/core/lib/client_config/subchannel_index.h
@@ -286,17 +286,16 @@ filegroups:
- src/core/lib/iomgr/closure.h
- src/core/lib/iomgr/endpoint.h
- src/core/lib/iomgr/endpoint_pair.h
+ - src/core/lib/iomgr/ev_poll_and_epoll_posix.h
+ - src/core/lib/iomgr/ev_posix.h
- src/core/lib/iomgr/exec_ctx.h
- src/core/lib/iomgr/executor.h
- - src/core/lib/iomgr/fd_posix.h
- src/core/lib/iomgr/iocp_windows.h
- src/core/lib/iomgr/iomgr.h
- src/core/lib/iomgr/iomgr_internal.h
- src/core/lib/iomgr/iomgr_posix.h
- src/core/lib/iomgr/pollset.h
- - src/core/lib/iomgr/pollset_posix.h
- src/core/lib/iomgr/pollset_set.h
- - src/core/lib/iomgr/pollset_set_posix.h
- src/core/lib/iomgr/pollset_set_windows.h
- src/core/lib/iomgr/pollset_windows.h
- src/core/lib/iomgr/resolve_address.h
@@ -324,9 +323,6 @@ filegroups:
- src/core/lib/json/json_common.h
- src/core/lib/json/json_reader.h
- src/core/lib/json/json_writer.h
- - src/core/lib/proto/grpc/lb/v0/load_balancer.pb.h
- - src/core/lib/statistics/census_interface.h
- - src/core/lib/statistics/census_rpc_stats.h
- src/core/lib/surface/api_trace.h
- src/core/lib/surface/call.h
- src/core/lib/surface/call_test_only.h
@@ -340,27 +336,6 @@ filegroups:
- src/core/lib/surface/server.h
- src/core/lib/surface/surface_trace.h
- src/core/lib/transport/byte_stream.h
- - src/core/lib/transport/chttp2/alpn.h
- - src/core/lib/transport/chttp2/bin_encoder.h
- - src/core/lib/transport/chttp2/frame.h
- - src/core/lib/transport/chttp2/frame_data.h
- - src/core/lib/transport/chttp2/frame_goaway.h
- - src/core/lib/transport/chttp2/frame_ping.h
- - src/core/lib/transport/chttp2/frame_rst_stream.h
- - src/core/lib/transport/chttp2/frame_settings.h
- - src/core/lib/transport/chttp2/frame_window_update.h
- - src/core/lib/transport/chttp2/hpack_encoder.h
- - src/core/lib/transport/chttp2/hpack_parser.h
- - src/core/lib/transport/chttp2/hpack_table.h
- - src/core/lib/transport/chttp2/http2_errors.h
- - src/core/lib/transport/chttp2/huffsyms.h
- - src/core/lib/transport/chttp2/incoming_metadata.h
- - src/core/lib/transport/chttp2/internal.h
- - src/core/lib/transport/chttp2/status_conversion.h
- - src/core/lib/transport/chttp2/stream_map.h
- - src/core/lib/transport/chttp2/timeout_encoding.h
- - src/core/lib/transport/chttp2/varint.h
- - src/core/lib/transport/chttp2_transport.h
- src/core/lib/transport/connectivity_state.h
- src/core/lib/transport/metadata.h
- src/core/lib/transport/metadata_batch.h
@@ -368,9 +343,6 @@ filegroups:
- src/core/lib/transport/transport.h
- src/core/lib/transport/transport_impl.h
src:
- - src/core/lib/census/grpc_context.c
- - src/core/lib/census/grpc_filter.c
- - src/core/lib/census/grpc_plugin.c
- src/core/lib/channel/channel_args.c
- src/core/lib/channel/channel_stack.c
- src/core/lib/channel/channel_stack_builder.c
@@ -384,17 +356,12 @@ filegroups:
- src/core/lib/client_config/connector.c
- src/core/lib/client_config/default_initial_connect_string.c
- src/core/lib/client_config/initial_connect_string.c
- - src/core/lib/client_config/lb_policies/load_balancer_api.c
- - src/core/lib/client_config/lb_policies/pick_first.c
- - src/core/lib/client_config/lb_policies/round_robin.c
- src/core/lib/client_config/lb_policy.c
- src/core/lib/client_config/lb_policy_factory.c
- src/core/lib/client_config/lb_policy_registry.c
- src/core/lib/client_config/resolver.c
- src/core/lib/client_config/resolver_factory.c
- src/core/lib/client_config/resolver_registry.c
- - src/core/lib/client_config/resolvers/dns_resolver.c
- - src/core/lib/client_config/resolvers/sockaddr_resolver.c
- src/core/lib/client_config/subchannel.c
- src/core/lib/client_config/subchannel_factory.c
- src/core/lib/client_config/subchannel_index.c
@@ -409,17 +376,14 @@ filegroups:
- src/core/lib/iomgr/endpoint.c
- src/core/lib/iomgr/endpoint_pair_posix.c
- src/core/lib/iomgr/endpoint_pair_windows.c
+ - src/core/lib/iomgr/ev_poll_and_epoll_posix.c
+ - src/core/lib/iomgr/ev_posix.c
- src/core/lib/iomgr/exec_ctx.c
- src/core/lib/iomgr/executor.c
- - src/core/lib/iomgr/fd_posix.c
- src/core/lib/iomgr/iocp_windows.c
- src/core/lib/iomgr/iomgr.c
- src/core/lib/iomgr/iomgr_posix.c
- src/core/lib/iomgr/iomgr_windows.c
- - src/core/lib/iomgr/pollset_multipoller_with_epoll.c
- - src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c
- - src/core/lib/iomgr/pollset_posix.c
- - src/core/lib/iomgr/pollset_set_posix.c
- src/core/lib/iomgr/pollset_set_windows.c
- src/core/lib/iomgr/pollset_windows.c
- src/core/lib/iomgr/resolve_address_posix.c
@@ -451,7 +415,6 @@ filegroups:
- src/core/lib/json/json_reader.c
- src/core/lib/json/json_string.c
- src/core/lib/json/json_writer.c
- - src/core/lib/proto/grpc/lb/v0/load_balancer.pb.c
- src/core/lib/surface/alarm.c
- src/core/lib/surface/api_trace.c
- src/core/lib/surface/byte_buffer.c
@@ -461,7 +424,6 @@ filegroups:
- src/core/lib/surface/call_log_batch.c
- src/core/lib/surface/channel.c
- src/core/lib/surface/channel_connectivity.c
- - src/core/lib/surface/channel_create.c
- src/core/lib/surface/channel_init.c
- src/core/lib/surface/channel_ping.c
- src/core/lib/surface/channel_stack_type.c
@@ -471,31 +433,9 @@ filegroups:
- src/core/lib/surface/lame_client.c
- src/core/lib/surface/metadata_array.c
- src/core/lib/surface/server.c
- - src/core/lib/surface/server_chttp2.c
- src/core/lib/surface/validate_metadata.c
- src/core/lib/surface/version.c
- src/core/lib/transport/byte_stream.c
- - src/core/lib/transport/chttp2/alpn.c
- - src/core/lib/transport/chttp2/bin_encoder.c
- - src/core/lib/transport/chttp2/frame_data.c
- - src/core/lib/transport/chttp2/frame_goaway.c
- - src/core/lib/transport/chttp2/frame_ping.c
- - src/core/lib/transport/chttp2/frame_rst_stream.c
- - src/core/lib/transport/chttp2/frame_settings.c
- - src/core/lib/transport/chttp2/frame_window_update.c
- - src/core/lib/transport/chttp2/hpack_encoder.c
- - src/core/lib/transport/chttp2/hpack_parser.c
- - src/core/lib/transport/chttp2/hpack_table.c
- - src/core/lib/transport/chttp2/huffsyms.c
- - src/core/lib/transport/chttp2/incoming_metadata.c
- - src/core/lib/transport/chttp2/parsing.c
- - src/core/lib/transport/chttp2/status_conversion.c
- - src/core/lib/transport/chttp2/stream_lists.c
- - src/core/lib/transport/chttp2/stream_map.c
- - src/core/lib/transport/chttp2/timeout_encoding.c
- - src/core/lib/transport/chttp2/varint.c
- - src/core/lib/transport/chttp2/writing.c
- - src/core/lib/transport/chttp2_transport.c
- src/core/lib/transport/connectivity_state.c
- src/core/lib/transport/metadata.c
- src/core/lib/transport/metadata_batch.c
@@ -510,6 +450,39 @@ filegroups:
- include/grpc/impl/codegen/grpc_types.h
- include/grpc/impl/codegen/propagation_bits.h
- include/grpc/impl/codegen/status.h
+- name: grpc_lb_policy_grpclb
+ headers:
+ - src/core/ext/lb_policy/grpclb/load_balancer_api.h
+ - src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h
+ src:
+ - src/core/ext/lb_policy/grpclb/load_balancer_api.c
+ - src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c
+ uses:
+ - grpc_base
+- name: grpc_lb_policy_pick_first
+ src:
+ - src/core/ext/lb_policy/pick_first/pick_first.c
+ plugin: grpc_lb_policy_pick_first
+ uses:
+ - grpc_base
+- name: grpc_lb_policy_round_robin
+ src:
+ - src/core/ext/lb_policy/round_robin/round_robin.c
+ plugin: grpc_lb_policy_round_robin
+ uses:
+ - grpc_base
+- name: grpc_resolver_dns_native
+ src:
+ - src/core/ext/resolver/dns/native/dns_resolver.c
+ plugin: grpc_resolver_dns_native
+ uses:
+ - grpc_base
+- name: grpc_resolver_sockaddr
+ src:
+ - src/core/ext/resolver/sockaddr/sockaddr_resolver.c
+ plugin: grpc_resolver_sockaddr
+ uses:
+ - grpc_base
- name: grpc_secure
headers:
- src/core/lib/security/auth_filters.h
@@ -542,9 +515,7 @@ filegroups:
- src/core/lib/security/security_connector.c
- src/core/lib/security/security_context.c
- src/core/lib/security/server_auth_filter.c
- - src/core/lib/security/server_secure_chttp2.c
- src/core/lib/surface/init_secure.c
- - src/core/lib/surface/secure_channel_create.c
- src/core/lib/tsi/fake_transport_security.c
- src/core/lib/tsi/ssl_transport_security.c
- src/core/lib/tsi/transport_security.c
@@ -568,6 +539,77 @@ filegroups:
- test/core/util/port_server_client.c
- test/core/util/port_windows.c
- test/core/util/slice_splitter.c
+- name: grpc_transport_chttp2
+ headers:
+ - src/core/ext/transport/chttp2/transport/alpn.h
+ - src/core/ext/transport/chttp2/transport/bin_encoder.h
+ - src/core/ext/transport/chttp2/transport/chttp2_transport.h
+ - src/core/ext/transport/chttp2/transport/frame.h
+ - src/core/ext/transport/chttp2/transport/frame_data.h
+ - src/core/ext/transport/chttp2/transport/frame_goaway.h
+ - src/core/ext/transport/chttp2/transport/frame_ping.h
+ - src/core/ext/transport/chttp2/transport/frame_rst_stream.h
+ - src/core/ext/transport/chttp2/transport/frame_settings.h
+ - src/core/ext/transport/chttp2/transport/frame_window_update.h
+ - src/core/ext/transport/chttp2/transport/hpack_encoder.h
+ - src/core/ext/transport/chttp2/transport/hpack_parser.h
+ - src/core/ext/transport/chttp2/transport/hpack_table.h
+ - src/core/ext/transport/chttp2/transport/http2_errors.h
+ - src/core/ext/transport/chttp2/transport/huffsyms.h
+ - src/core/ext/transport/chttp2/transport/incoming_metadata.h
+ - src/core/ext/transport/chttp2/transport/internal.h
+ - src/core/ext/transport/chttp2/transport/status_conversion.h
+ - src/core/ext/transport/chttp2/transport/stream_map.h
+ - src/core/ext/transport/chttp2/transport/timeout_encoding.h
+ - src/core/ext/transport/chttp2/transport/varint.h
+ src:
+ - src/core/ext/transport/chttp2/transport/alpn.c
+ - src/core/ext/transport/chttp2/transport/bin_encoder.c
+ - src/core/ext/transport/chttp2/transport/chttp2_transport.c
+ - src/core/ext/transport/chttp2/transport/frame_data.c
+ - src/core/ext/transport/chttp2/transport/frame_goaway.c
+ - src/core/ext/transport/chttp2/transport/frame_ping.c
+ - src/core/ext/transport/chttp2/transport/frame_rst_stream.c
+ - src/core/ext/transport/chttp2/transport/frame_settings.c
+ - src/core/ext/transport/chttp2/transport/frame_window_update.c
+ - src/core/ext/transport/chttp2/transport/hpack_encoder.c
+ - src/core/ext/transport/chttp2/transport/hpack_parser.c
+ - src/core/ext/transport/chttp2/transport/hpack_table.c
+ - src/core/ext/transport/chttp2/transport/huffsyms.c
+ - src/core/ext/transport/chttp2/transport/incoming_metadata.c
+ - src/core/ext/transport/chttp2/transport/parsing.c
+ - src/core/ext/transport/chttp2/transport/status_conversion.c
+ - src/core/ext/transport/chttp2/transport/stream_lists.c
+ - src/core/ext/transport/chttp2/transport/stream_map.c
+ - src/core/ext/transport/chttp2/transport/timeout_encoding.c
+ - src/core/ext/transport/chttp2/transport/varint.c
+ - src/core/ext/transport/chttp2/transport/writing.c
+ uses:
+ - grpc_base
+- name: grpc_transport_chttp2_client_insecure
+ src:
+ - src/core/ext/transport/chttp2/client/insecure/channel_create.c
+ uses:
+ - grpc_transport_chttp2
+ - grpc_base
+- name: grpc_transport_chttp2_client_secure
+ src:
+ - src/core/ext/transport/chttp2/client/secure/secure_channel_create.c
+ uses:
+ - grpc_transport_chttp2
+ - grpc_base
+- name: grpc_transport_chttp2_server_insecure
+ src:
+ - src/core/ext/transport/chttp2/server/insecure/server_chttp2.c
+ uses:
+ - grpc_transport_chttp2
+ - grpc_base
+- name: grpc_transport_chttp2_server_secure
+ src:
+ - src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c
+ uses:
+ - grpc_transport_chttp2
+ - grpc_base
- name: nanopb
headers:
- third_party/nanopb/pb.h
@@ -610,10 +652,20 @@ libs:
dll: true
filegroups:
- grpc_base
+ - grpc_transport_chttp2_server_secure
+ - grpc_transport_chttp2_client_secure
+ - grpc_transport_chttp2_server_insecure
+ - grpc_transport_chttp2_client_insecure
+ - grpc_lb_policy_grpclb
+ - grpc_lb_policy_pick_first
+ - grpc_lb_policy_round_robin
+ - grpc_resolver_dns_native
+ - grpc_resolver_sockaddr
- grpc_secure
- grpc_codegen
- census
- nanopb
+ generate_plugin_registry: true
secure: true
vs_packages:
- grpc.dependencies.openssl
@@ -691,9 +743,17 @@ libs:
dll: true
filegroups:
- grpc_base
+ - grpc_transport_chttp2_server_insecure
+ - grpc_transport_chttp2_client_insecure
+ - grpc_resolver_dns_native
+ - grpc_resolver_sockaddr
+ - grpc_lb_policy_grpclb
+ - grpc_lb_policy_pick_first
+ - grpc_lb_policy_round_robin
- grpc_codegen
- census
- nanopb
+ generate_plugin_registry: true
secure: false
vs_project_guid: '{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}'
- name: grpc_zookeeper
@@ -701,10 +761,8 @@ libs:
language: c
public_headers:
- include/grpc/grpc_zookeeper.h
- headers:
- - src/core/lib/client_config/resolvers/zookeeper_resolver.h
src:
- - src/core/lib/client_config/resolvers/zookeeper_resolver.c
+ - src/core/ext/resolver/zookeeper/zookeeper_resolver.c
deps:
- gpr
- grpc
@@ -713,6 +771,14 @@ libs:
platforms:
- linux
secure: false
+- name: one_input_fuzzer
+ build: private
+ language: c
+ src:
+ - test/core/util/one_corpus_entry_fuzzer.c
+ deps:
+ - gpr
+ secure: false
- name: reconnect_server
build: private
language: c
@@ -1242,6 +1308,21 @@ targets:
src:
- tools/codegen/core/gen_legal_metadata_characters.c
deps: []
+- name: goaway_server_test
+ cpu_cost: 0.1
+ build: test
+ language: c
+ src:
+ - test/core/end2end/goaway_server_test.c
+ deps:
+ - grpc_test_util
+ - grpc
+ - gpr_test_util
+ - gpr
+ platforms:
+ - mac
+ - linux
+ - posix
- name: gpr_avl_test
build: test
language: c
@@ -1543,6 +1624,18 @@ targets:
- grpc
- gpr_test_util
- gpr
+- name: hpack_parser_fuzzer_test
+ build: fuzzer
+ language: c
+ src:
+ - test/core/transport/chttp2/hpack_parser_fuzzer_test.c
+ deps:
+ - grpc_test_util
+ - grpc
+ - gpr_test_util
+ - gpr
+ corpus_dirs:
+ - test/core/transport/chttp2/hpack_parser_corpus
- name: hpack_parser_test
build: test
language: c
@@ -1563,6 +1656,18 @@ targets:
- grpc
- gpr_test_util
- gpr
+- name: http_fuzzer_test
+ build: fuzzer
+ language: c
+ src:
+ - test/core/http/fuzzer.c
+ deps:
+ - grpc_test_util
+ - grpc
+ - gpr_test_util
+ - gpr
+ corpus_dirs:
+ - test/core/http/corpus
- name: http_parser_test
build: test
language: c
@@ -1621,6 +1726,39 @@ targets:
- grpc
- gpr_test_util
- gpr
+- name: internal_api_canary_iomgr_test
+ build: test
+ run: false
+ language: c
+ src:
+ - test/core/internal_api_canaries/iomgr.c
+ deps:
+ - grpc_test_util
+ - grpc
+ - gpr_test_util
+ - gpr
+- name: internal_api_canary_support_test
+ build: test
+ run: false
+ language: c
+ src:
+ - test/core/internal_api_canaries/iomgr.c
+ deps:
+ - grpc_test_util
+ - grpc
+ - gpr_test_util
+ - gpr
+- name: internal_api_canary_transport_test
+ build: test
+ run: false
+ language: c
+ src:
+ - test/core/internal_api_canaries/iomgr.c
+ deps:
+ - grpc_test_util
+ - grpc
+ - gpr_test_util
+ - gpr
- name: invalid_call_argument_test
build: test
language: c
@@ -1631,6 +1769,18 @@ targets:
- grpc
- gpr_test_util
- gpr
+- name: json_fuzzer_test
+ build: fuzzer
+ language: c
+ src:
+ - test/core/json/fuzzer.c
+ deps:
+ - grpc_test_util
+ - grpc
+ - gpr_test_util
+ - gpr
+ corpus_dirs:
+ - test/core/json/corpus
- name: json_rewrite
build: test
run: false
@@ -1994,6 +2144,18 @@ targets:
- mac
- linux
- posix
+- name: uri_fuzzer_test
+ build: fuzzer
+ language: c
+ src:
+ - test/core/client_config/uri_fuzzer_test.c
+ deps:
+ - grpc_test_util
+ - grpc
+ - gpr_test_util
+ - gpr
+ corpus_dirs:
+ - test/core/client_config/uri_corpus
- name: uri_parser_test
build: test
language: c
@@ -2775,8 +2937,8 @@ vspackages:
configs:
asan:
CC: clang
- CPPFLAGS: -O0 -fsanitize=address -fno-omit-frame-pointer -Wno-unused-command-line-argument
- -DGPR_NO_DIRECT_SYSCALLS
+ CPPFLAGS: -O0 -fsanitize-coverage=edge -fsanitize=address -fno-omit-frame-pointer
+ -Wno-unused-command-line-argument -DGPR_NO_DIRECT_SYSCALLS
CXX: clang++
LD: clang
LDFLAGS: -fsanitize=address
@@ -2788,8 +2950,8 @@ configs:
timeout_multiplier: 3
asan-noleaks:
CC: clang
- CPPFLAGS: -O0 -fsanitize=address -fno-omit-frame-pointer -Wno-unused-command-line-argument
- -DGPR_NO_DIRECT_SYSCALLS
+ CPPFLAGS: -O0 -fsanitize-coverage=edge -fsanitize=address -fno-omit-frame-pointer
+ -Wno-unused-command-line-argument -DGPR_NO_DIRECT_SYSCALLS
CXX: clang++
LD: clang
LDFLAGS: -fsanitize=address
@@ -2798,6 +2960,19 @@ configs:
test_environ:
ASAN_OPTIONS: detect_leaks=0:color=always
timeout_multiplier: 3
+ asan-trace-cmp:
+ CC: clang
+ CPPFLAGS: -O0 -fsanitize-coverage=edge -fsanitize-coverage=trace-cmp -fsanitize=address
+ -fno-omit-frame-pointer -Wno-unused-command-line-argument -DGPR_NO_DIRECT_SYSCALLS
+ CXX: clang++
+ LD: clang
+ LDFLAGS: -fsanitize=address
+ LDXX: clang++
+ compile_the_world: true
+ test_environ:
+ ASAN_OPTIONS: detect_leaks=1:color=always
+ LSAN_OPTIONS: suppressions=tools/lsan_suppressions.txt:report_objects=1
+ timeout_multiplier: 3
basicprof:
CPPFLAGS: -O2 -DGRPC_BASIC_PROFILER -DGRPC_TIMERS_RDTSC
DEFINES: NDEBUG
@@ -2806,8 +2981,8 @@ configs:
DEFINES: _DEBUG DEBUG
easan:
CC: clang
- CPPFLAGS: -O0 -fsanitize=address -fno-omit-frame-pointer -Wno-unused-command-line-argument
- -DGPR_NO_DIRECT_SYSCALLS
+ CPPFLAGS: -O0 -fsanitize-coverage=edge -fsanitize=address -fno-omit-frame-pointer
+ -Wno-unused-command-line-argument -DGPR_NO_DIRECT_SYSCALLS
CXX: clang++
DEFINES: _DEBUG DEBUG GRPC_EXECUTION_CONTEXT_SANITIZER
LD: clang
@@ -2856,9 +3031,9 @@ configs:
valgrind: --tool=memcheck --leak-check=full
msan:
CC: clang
- CPPFLAGS: -O0 -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer
- -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1 -Wno-unused-command-line-argument
- -fPIE -pie -DGPR_NO_DIRECT_SYSCALLS
+ CPPFLAGS: -O0 -fsanitize-coverage=edge -fsanitize=memory -fsanitize-memory-track-origins
+ -fno-omit-frame-pointer -DGTEST_HAS_TR1_TUPLE=0 -DGTEST_USE_OWN_TR1_TUPLE=1
+ -Wno-unused-command-line-argument -fPIE -pie -DGPR_NO_DIRECT_SYSCALLS
CXX: clang++
DEFINES: NDEBUG
LD: clang
@@ -2891,7 +3066,8 @@ configs:
timeout_multiplier: 5
ubsan:
CC: clang
- CPPFLAGS: -O1 -fsanitize=undefined -fno-omit-frame-pointer -Wno-unused-command-line-argument
+ CPPFLAGS: -O1 -fsanitize-coverage=edge -fsanitize=undefined -fno-omit-frame-pointer
+ -Wno-unused-command-line-argument
CXX: clang++
DEFINES: NDEBUG
LD: clang
diff --git a/config.m4 b/config.m4
index 549e632cee..9abd8cebb8 100644
--- a/config.m4
+++ b/config.m4
@@ -80,9 +80,46 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/support/tmpfile_posix.c \
src/core/lib/support/tmpfile_win32.c \
src/core/lib/support/wrap_memcpy.c \
- src/core/lib/census/grpc_context.c \
- src/core/lib/census/grpc_filter.c \
- src/core/lib/census/grpc_plugin.c \
+ src/core/ext/census/context.c \
+ src/core/ext/census/grpc_context.c \
+ src/core/ext/census/grpc_filter.c \
+ src/core/ext/census/grpc_plugin.c \
+ src/core/ext/census/initialize.c \
+ src/core/ext/census/mlog.c \
+ src/core/ext/census/operation.c \
+ src/core/ext/census/placeholders.c \
+ src/core/ext/census/tracing.c \
+ src/core/ext/lb_policy/grpclb/load_balancer_api.c \
+ src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c \
+ src/core/ext/lb_policy/pick_first/pick_first.c \
+ src/core/ext/lb_policy/round_robin/round_robin.c \
+ src/core/ext/resolver/dns/native/dns_resolver.c \
+ src/core/ext/resolver/sockaddr/sockaddr_resolver.c \
+ src/core/ext/transport/chttp2/client/insecure/channel_create.c \
+ src/core/ext/transport/chttp2/client/secure/secure_channel_create.c \
+ src/core/ext/transport/chttp2/server/insecure/server_chttp2.c \
+ src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c \
+ src/core/ext/transport/chttp2/transport/alpn.c \
+ src/core/ext/transport/chttp2/transport/bin_encoder.c \
+ src/core/ext/transport/chttp2/transport/chttp2_transport.c \
+ src/core/ext/transport/chttp2/transport/frame_data.c \
+ src/core/ext/transport/chttp2/transport/frame_goaway.c \
+ src/core/ext/transport/chttp2/transport/frame_ping.c \
+ src/core/ext/transport/chttp2/transport/frame_rst_stream.c \
+ src/core/ext/transport/chttp2/transport/frame_settings.c \
+ src/core/ext/transport/chttp2/transport/frame_window_update.c \
+ src/core/ext/transport/chttp2/transport/hpack_encoder.c \
+ src/core/ext/transport/chttp2/transport/hpack_parser.c \
+ src/core/ext/transport/chttp2/transport/hpack_table.c \
+ src/core/ext/transport/chttp2/transport/huffsyms.c \
+ src/core/ext/transport/chttp2/transport/incoming_metadata.c \
+ src/core/ext/transport/chttp2/transport/parsing.c \
+ src/core/ext/transport/chttp2/transport/status_conversion.c \
+ src/core/ext/transport/chttp2/transport/stream_lists.c \
+ src/core/ext/transport/chttp2/transport/stream_map.c \
+ src/core/ext/transport/chttp2/transport/timeout_encoding.c \
+ src/core/ext/transport/chttp2/transport/varint.c \
+ src/core/ext/transport/chttp2/transport/writing.c \
src/core/lib/channel/channel_args.c \
src/core/lib/channel/channel_stack.c \
src/core/lib/channel/channel_stack_builder.c \
@@ -96,17 +133,12 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/client_config/connector.c \
src/core/lib/client_config/default_initial_connect_string.c \
src/core/lib/client_config/initial_connect_string.c \
- src/core/lib/client_config/lb_policies/load_balancer_api.c \
- src/core/lib/client_config/lb_policies/pick_first.c \
- src/core/lib/client_config/lb_policies/round_robin.c \
src/core/lib/client_config/lb_policy.c \
src/core/lib/client_config/lb_policy_factory.c \
src/core/lib/client_config/lb_policy_registry.c \
src/core/lib/client_config/resolver.c \
src/core/lib/client_config/resolver_factory.c \
src/core/lib/client_config/resolver_registry.c \
- src/core/lib/client_config/resolvers/dns_resolver.c \
- src/core/lib/client_config/resolvers/sockaddr_resolver.c \
src/core/lib/client_config/subchannel.c \
src/core/lib/client_config/subchannel_factory.c \
src/core/lib/client_config/subchannel_index.c \
@@ -116,22 +148,20 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/debug/trace.c \
src/core/lib/http/format_request.c \
src/core/lib/http/httpcli.c \
+ src/core/lib/http/httpcli_security_connector.c \
src/core/lib/http/parser.c \
src/core/lib/iomgr/closure.c \
src/core/lib/iomgr/endpoint.c \
src/core/lib/iomgr/endpoint_pair_posix.c \
src/core/lib/iomgr/endpoint_pair_windows.c \
+ src/core/lib/iomgr/ev_poll_and_epoll_posix.c \
+ src/core/lib/iomgr/ev_posix.c \
src/core/lib/iomgr/exec_ctx.c \
src/core/lib/iomgr/executor.c \
- src/core/lib/iomgr/fd_posix.c \
src/core/lib/iomgr/iocp_windows.c \
src/core/lib/iomgr/iomgr.c \
src/core/lib/iomgr/iomgr_posix.c \
src/core/lib/iomgr/iomgr_windows.c \
- src/core/lib/iomgr/pollset_multipoller_with_epoll.c \
- src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c \
- src/core/lib/iomgr/pollset_posix.c \
- src/core/lib/iomgr/pollset_set_posix.c \
src/core/lib/iomgr/pollset_set_windows.c \
src/core/lib/iomgr/pollset_windows.c \
src/core/lib/iomgr/resolve_address_posix.c \
@@ -163,7 +193,20 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/json/json_reader.c \
src/core/lib/json/json_string.c \
src/core/lib/json/json_writer.c \
- src/core/lib/proto/grpc/lb/v0/load_balancer.pb.c \
+ src/core/lib/security/b64.c \
+ src/core/lib/security/client_auth_filter.c \
+ src/core/lib/security/credentials.c \
+ src/core/lib/security/credentials_metadata.c \
+ src/core/lib/security/credentials_posix.c \
+ src/core/lib/security/credentials_win32.c \
+ src/core/lib/security/google_default_credentials.c \
+ src/core/lib/security/handshake.c \
+ src/core/lib/security/json_token.c \
+ src/core/lib/security/jwt_verifier.c \
+ src/core/lib/security/secure_endpoint.c \
+ src/core/lib/security/security_connector.c \
+ src/core/lib/security/security_context.c \
+ src/core/lib/security/server_auth_filter.c \
src/core/lib/surface/alarm.c \
src/core/lib/surface/api_trace.c \
src/core/lib/surface/byte_buffer.c \
@@ -173,74 +216,29 @@ if test "$PHP_GRPC" != "no"; then
src/core/lib/surface/call_log_batch.c \
src/core/lib/surface/channel.c \
src/core/lib/surface/channel_connectivity.c \
- src/core/lib/surface/channel_create.c \
src/core/lib/surface/channel_init.c \
src/core/lib/surface/channel_ping.c \
src/core/lib/surface/channel_stack_type.c \
src/core/lib/surface/completion_queue.c \
src/core/lib/surface/event_string.c \
src/core/lib/surface/init.c \
+ src/core/lib/surface/init_secure.c \
src/core/lib/surface/lame_client.c \
src/core/lib/surface/metadata_array.c \
src/core/lib/surface/server.c \
- src/core/lib/surface/server_chttp2.c \
src/core/lib/surface/validate_metadata.c \
src/core/lib/surface/version.c \
src/core/lib/transport/byte_stream.c \
- src/core/lib/transport/chttp2/alpn.c \
- src/core/lib/transport/chttp2/bin_encoder.c \
- src/core/lib/transport/chttp2/frame_data.c \
- src/core/lib/transport/chttp2/frame_goaway.c \
- src/core/lib/transport/chttp2/frame_ping.c \
- src/core/lib/transport/chttp2/frame_rst_stream.c \
- src/core/lib/transport/chttp2/frame_settings.c \
- src/core/lib/transport/chttp2/frame_window_update.c \
- src/core/lib/transport/chttp2/hpack_encoder.c \
- src/core/lib/transport/chttp2/hpack_parser.c \
- src/core/lib/transport/chttp2/hpack_table.c \
- src/core/lib/transport/chttp2/huffsyms.c \
- src/core/lib/transport/chttp2/incoming_metadata.c \
- src/core/lib/transport/chttp2/parsing.c \
- src/core/lib/transport/chttp2/status_conversion.c \
- src/core/lib/transport/chttp2/stream_lists.c \
- src/core/lib/transport/chttp2/stream_map.c \
- src/core/lib/transport/chttp2/timeout_encoding.c \
- src/core/lib/transport/chttp2/varint.c \
- src/core/lib/transport/chttp2/writing.c \
- src/core/lib/transport/chttp2_transport.c \
src/core/lib/transport/connectivity_state.c \
src/core/lib/transport/metadata.c \
src/core/lib/transport/metadata_batch.c \
src/core/lib/transport/static_metadata.c \
src/core/lib/transport/transport.c \
src/core/lib/transport/transport_op_string.c \
- src/core/lib/http/httpcli_security_connector.c \
- src/core/lib/security/b64.c \
- src/core/lib/security/client_auth_filter.c \
- src/core/lib/security/credentials.c \
- src/core/lib/security/credentials_metadata.c \
- src/core/lib/security/credentials_posix.c \
- src/core/lib/security/credentials_win32.c \
- src/core/lib/security/google_default_credentials.c \
- src/core/lib/security/handshake.c \
- src/core/lib/security/json_token.c \
- src/core/lib/security/jwt_verifier.c \
- src/core/lib/security/secure_endpoint.c \
- src/core/lib/security/security_connector.c \
- src/core/lib/security/security_context.c \
- src/core/lib/security/server_auth_filter.c \
- src/core/lib/security/server_secure_chttp2.c \
- src/core/lib/surface/init_secure.c \
- src/core/lib/surface/secure_channel_create.c \
src/core/lib/tsi/fake_transport_security.c \
src/core/lib/tsi/ssl_transport_security.c \
src/core/lib/tsi/transport_security.c \
- src/core/lib/census/context.c \
- src/core/lib/census/initialize.c \
- src/core/lib/census/mlog.c \
- src/core/lib/census/operation.c \
- src/core/lib/census/placeholders.c \
- src/core/lib/census/tracing.c \
+ src/core/plugin_registry/grpc_plugin_registry.c \
third_party/nanopb/pb_common.c \
third_party/nanopb/pb_decode.c \
third_party/nanopb/pb_encode.c \
@@ -546,24 +544,32 @@ if test "$PHP_GRPC" != "no"; then
PHP_ADD_BUILD_DIR($ext_builddir/src/php/ext/grpc)
PHP_ADD_BUILD_DIR($ext_builddir/src/boringssl)
- PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/census)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/census)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/lb_policy/grpclb)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/lb_policy/pick_first)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/lb_policy/round_robin)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/resolver/dns/native)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/resolver/sockaddr)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/chttp2/client/insecure)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/chttp2/client/secure)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/chttp2/server/insecure)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/chttp2/server/secure)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/ext/transport/chttp2/transport)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/channel)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/client_config)
- PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/client_config/lb_policies)
- PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/client_config/resolvers)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/compression)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/debug)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/http)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/iomgr)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/json)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/profiling)
- PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/proto/grpc/lb/v0)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/security)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/support)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/surface)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/transport)
- PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/transport/chttp2)
PHP_ADD_BUILD_DIR($ext_builddir/src/core/lib/tsi)
+ PHP_ADD_BUILD_DIR($ext_builddir/src/core/plugin_registry)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl/crypto)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl/crypto/aes)
PHP_ADD_BUILD_DIR($ext_builddir/third_party/boringssl/crypto/asn1)
diff --git a/examples/cpp/helloworld/Makefile b/examples/cpp/helloworld/Makefile
index b785612935..4b1867e292 100644
--- a/examples/cpp/helloworld/Makefile
+++ b/examples/cpp/helloworld/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/examples/cpp/helloworld/greeter_async_server.cc b/examples/cpp/helloworld/greeter_async_server.cc
index c9b1a67e95..64e065b1e4 100644
--- a/examples/cpp/helloworld/greeter_async_server.cc
+++ b/examples/cpp/helloworld/greeter_async_server.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/examples/cpp/route_guide/Makefile b/examples/cpp/route_guide/Makefile
index 3f8a5982b4..0fbb0a8929 100644
--- a/examples/cpp/route_guide/Makefile
+++ b/examples/cpp/route_guide/Makefile
@@ -1,5 +1,5 @@
#
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/examples/csharp/helloworld/GreeterClient/Program.cs b/examples/csharp/helloworld/GreeterClient/Program.cs
index ffc7fabbf1..4393f2f3c2 100644
--- a/examples/csharp/helloworld/GreeterClient/Program.cs
+++ b/examples/csharp/helloworld/GreeterClient/Program.cs
@@ -1,4 +1,4 @@
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/examples/csharp/route_guide/RouteGuideClient/Program.cs b/examples/csharp/route_guide/RouteGuideClient/Program.cs
index 22395dd21d..c561a9f7aa 100644
--- a/examples/csharp/route_guide/RouteGuideClient/Program.cs
+++ b/examples/csharp/route_guide/RouteGuideClient/Program.cs
@@ -1,4 +1,4 @@
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/examples/node/greeter_client.js b/examples/node/greeter_client.js
index ca5781514d..2820acbbb7 100644
--- a/examples/node/greeter_client.js
+++ b/examples/node/greeter_client.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/examples/node/greeter_server.js b/examples/node/greeter_server.js
index 47d9892816..e7ad51f600 100644
--- a/examples/node/greeter_server.js
+++ b/examples/node/greeter_server.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/examples/node/route_guide/route_guide_client.js b/examples/node/route_guide/route_guide_client.js
index 6ff0279184..fd05a59b63 100644
--- a/examples/node/route_guide/route_guide_client.js
+++ b/examples/node/route_guide/route_guide_client.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/examples/node/route_guide/route_guide_server.js b/examples/node/route_guide/route_guide_server.js
index 9fa9827991..6c01fac246 100644
--- a/examples/node/route_guide/route_guide_server.js
+++ b/examples/node/route_guide/route_guide_server.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/examples/objective-c/auth_sample/MakeRPCViewController.m b/examples/objective-c/auth_sample/MakeRPCViewController.m
index 108eda45ba..6013186b99 100644
--- a/examples/objective-c/auth_sample/MakeRPCViewController.m
+++ b/examples/objective-c/auth_sample/MakeRPCViewController.m
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/examples/objective-c/helloworld/main.m b/examples/objective-c/helloworld/main.m
index bf357990a5..755dce33df 100644
--- a/examples/objective-c/helloworld/main.m
+++ b/examples/objective-c/helloworld/main.m
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/examples/php/greeter_client.php b/examples/php/greeter_client.php
index 3fab14f33e..718ef88c64 100644
--- a/examples/php/greeter_client.php
+++ b/examples/php/greeter_client.php
@@ -1,7 +1,7 @@
<?php
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/examples/php/route_guide/route_guide_client.php b/examples/php/route_guide/route_guide_client.php
index cc8640cf70..2f9533be4b 100644
--- a/examples/php/route_guide/route_guide_client.php
+++ b/examples/php/route_guide/route_guide_client.php
@@ -1,7 +1,7 @@
<?php
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/examples/protos/helloworld.proto b/examples/protos/helloworld.proto
index e670503b09..0bee1fcfcf 100644
--- a/examples/protos/helloworld.proto
+++ b/examples/protos/helloworld.proto
@@ -1,4 +1,4 @@
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/examples/protos/route_guide.proto b/examples/protos/route_guide.proto
index b3553ee536..12c4495ffa 100644
--- a/examples/protos/route_guide.proto
+++ b/examples/protos/route_guide.proto
@@ -1,4 +1,4 @@
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/examples/python/helloworld/greeter_client.py b/examples/python/helloworld/greeter_client.py
index 9c18b41d25..40d637fb7b 100644
--- a/examples/python/helloworld/greeter_client.py
+++ b/examples/python/helloworld/greeter_client.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/examples/python/route_guide/route_guide_client.py b/examples/python/route_guide/route_guide_client.py
index 9d6f865a33..ffcbd061d6 100644
--- a/examples/python/route_guide/route_guide_client.py
+++ b/examples/python/route_guide/route_guide_client.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/examples/python/route_guide/route_guide_server.py b/examples/python/route_guide/route_guide_server.py
index f95b36b073..24f948c42c 100644
--- a/examples/python/route_guide/route_guide_server.py
+++ b/examples/python/route_guide/route_guide_server.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/examples/ruby/greeter_client.rb b/examples/ruby/greeter_client.rb
index 2a24316870..cb4aa195e7 100755
--- a/examples/ruby/greeter_client.rb
+++ b/examples/ruby/greeter_client.rb
@@ -1,6 +1,6 @@
#!/usr/bin/env ruby
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/examples/ruby/route_guide/route_guide_client.rb b/examples/ruby/route_guide/route_guide_client.rb
index 86dd1fe6ca..e7f802c21e 100755
--- a/examples/ruby/route_guide/route_guide_client.rb
+++ b/examples/ruby/route_guide/route_guide_client.rb
@@ -1,6 +1,6 @@
#!/usr/bin/env ruby
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/gRPC.podspec b/gRPC.podspec
index 3d5e8af15f..7e0e44f3dd 100644
--- a/gRPC.podspec
+++ b/gRPC.podspec
@@ -75,6 +75,20 @@ Pod::Spec.new do |s|
'src/core/lib/support/thd_internal.h',
'src/core/lib/support/time_precise.h',
'src/core/lib/support/tmpfile.h',
+ 'include/grpc/impl/codegen/alloc.h',
+ 'include/grpc/impl/codegen/atm.h',
+ 'include/grpc/impl/codegen/atm_gcc_atomic.h',
+ 'include/grpc/impl/codegen/atm_gcc_sync.h',
+ 'include/grpc/impl/codegen/atm_win32.h',
+ 'include/grpc/impl/codegen/log.h',
+ 'include/grpc/impl/codegen/port_platform.h',
+ 'include/grpc/impl/codegen/slice.h',
+ 'include/grpc/impl/codegen/slice_buffer.h',
+ 'include/grpc/impl/codegen/sync.h',
+ 'include/grpc/impl/codegen/sync_generic.h',
+ 'include/grpc/impl/codegen/sync_posix.h',
+ 'include/grpc/impl/codegen/sync_win32.h',
+ 'include/grpc/impl/codegen/time.h',
'include/grpc/support/alloc.h',
'include/grpc/support/atm.h',
'include/grpc/support/atm_gcc_atomic.h',
@@ -103,20 +117,6 @@ Pod::Spec.new do |s|
'include/grpc/support/tls_msvc.h',
'include/grpc/support/tls_pthread.h',
'include/grpc/support/useful.h',
- 'include/grpc/impl/codegen/alloc.h',
- 'include/grpc/impl/codegen/atm.h',
- 'include/grpc/impl/codegen/atm_gcc_atomic.h',
- 'include/grpc/impl/codegen/atm_gcc_sync.h',
- 'include/grpc/impl/codegen/atm_win32.h',
- 'include/grpc/impl/codegen/log.h',
- 'include/grpc/impl/codegen/port_platform.h',
- 'include/grpc/impl/codegen/slice.h',
- 'include/grpc/impl/codegen/slice_buffer.h',
- 'include/grpc/impl/codegen/sync.h',
- 'include/grpc/impl/codegen/sync_generic.h',
- 'include/grpc/impl/codegen/sync_posix.h',
- 'include/grpc/impl/codegen/sync_win32.h',
- 'include/grpc/impl/codegen/time.h',
'src/core/lib/profiling/basic_timers.c',
'src/core/lib/profiling/stap_timers.c',
'src/core/lib/support/alloc.c',
@@ -161,8 +161,35 @@ Pod::Spec.new do |s|
'src/core/lib/support/tmpfile_posix.c',
'src/core/lib/support/tmpfile_win32.c',
'src/core/lib/support/wrap_memcpy.c',
- 'src/core/lib/census/grpc_filter.h',
- 'src/core/lib/census/grpc_plugin.h',
+ 'src/core/ext/census/aggregation.h',
+ 'src/core/ext/census/census_interface.h',
+ 'src/core/ext/census/census_rpc_stats.h',
+ 'src/core/ext/census/grpc_filter.h',
+ 'src/core/ext/census/mlog.h',
+ 'src/core/ext/census/rpc_metric_id.h',
+ 'src/core/ext/lb_policy/grpclb/load_balancer_api.h',
+ 'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h',
+ 'src/core/ext/transport/chttp2/transport/alpn.h',
+ 'src/core/ext/transport/chttp2/transport/bin_encoder.h',
+ 'src/core/ext/transport/chttp2/transport/chttp2_transport.h',
+ 'src/core/ext/transport/chttp2/transport/frame.h',
+ 'src/core/ext/transport/chttp2/transport/frame_data.h',
+ 'src/core/ext/transport/chttp2/transport/frame_goaway.h',
+ 'src/core/ext/transport/chttp2/transport/frame_ping.h',
+ 'src/core/ext/transport/chttp2/transport/frame_rst_stream.h',
+ 'src/core/ext/transport/chttp2/transport/frame_settings.h',
+ 'src/core/ext/transport/chttp2/transport/frame_window_update.h',
+ 'src/core/ext/transport/chttp2/transport/hpack_encoder.h',
+ 'src/core/ext/transport/chttp2/transport/hpack_parser.h',
+ 'src/core/ext/transport/chttp2/transport/hpack_table.h',
+ 'src/core/ext/transport/chttp2/transport/http2_errors.h',
+ 'src/core/ext/transport/chttp2/transport/huffsyms.h',
+ 'src/core/ext/transport/chttp2/transport/incoming_metadata.h',
+ 'src/core/ext/transport/chttp2/transport/internal.h',
+ 'src/core/ext/transport/chttp2/transport/status_conversion.h',
+ 'src/core/ext/transport/chttp2/transport/stream_map.h',
+ 'src/core/ext/transport/chttp2/transport/timeout_encoding.h',
+ 'src/core/ext/transport/chttp2/transport/varint.h',
'src/core/lib/channel/channel_args.h',
'src/core/lib/channel/channel_stack.h',
'src/core/lib/channel/channel_stack_builder.h',
@@ -176,17 +203,12 @@ Pod::Spec.new do |s|
'src/core/lib/client_config/client_config.h',
'src/core/lib/client_config/connector.h',
'src/core/lib/client_config/initial_connect_string.h',
- 'src/core/lib/client_config/lb_policies/load_balancer_api.h',
- 'src/core/lib/client_config/lb_policies/pick_first.h',
- 'src/core/lib/client_config/lb_policies/round_robin.h',
'src/core/lib/client_config/lb_policy.h',
'src/core/lib/client_config/lb_policy_factory.h',
'src/core/lib/client_config/lb_policy_registry.h',
'src/core/lib/client_config/resolver.h',
'src/core/lib/client_config/resolver_factory.h',
'src/core/lib/client_config/resolver_registry.h',
- 'src/core/lib/client_config/resolvers/dns_resolver.h',
- 'src/core/lib/client_config/resolvers/sockaddr_resolver.h',
'src/core/lib/client_config/subchannel.h',
'src/core/lib/client_config/subchannel_factory.h',
'src/core/lib/client_config/subchannel_index.h',
@@ -200,17 +222,16 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/closure.h',
'src/core/lib/iomgr/endpoint.h',
'src/core/lib/iomgr/endpoint_pair.h',
+ 'src/core/lib/iomgr/ev_poll_and_epoll_posix.h',
+ 'src/core/lib/iomgr/ev_posix.h',
'src/core/lib/iomgr/exec_ctx.h',
'src/core/lib/iomgr/executor.h',
- 'src/core/lib/iomgr/fd_posix.h',
'src/core/lib/iomgr/iocp_windows.h',
'src/core/lib/iomgr/iomgr.h',
'src/core/lib/iomgr/iomgr_internal.h',
'src/core/lib/iomgr/iomgr_posix.h',
'src/core/lib/iomgr/pollset.h',
- 'src/core/lib/iomgr/pollset_posix.h',
'src/core/lib/iomgr/pollset_set.h',
- 'src/core/lib/iomgr/pollset_set_posix.h',
'src/core/lib/iomgr/pollset_set_windows.h',
'src/core/lib/iomgr/pollset_windows.h',
'src/core/lib/iomgr/resolve_address.h',
@@ -238,9 +259,15 @@ Pod::Spec.new do |s|
'src/core/lib/json/json_common.h',
'src/core/lib/json/json_reader.h',
'src/core/lib/json/json_writer.h',
- 'src/core/lib/proto/grpc/lb/v0/load_balancer.pb.h',
- 'src/core/lib/statistics/census_interface.h',
- 'src/core/lib/statistics/census_rpc_stats.h',
+ 'src/core/lib/security/auth_filters.h',
+ 'src/core/lib/security/b64.h',
+ 'src/core/lib/security/credentials.h',
+ 'src/core/lib/security/handshake.h',
+ 'src/core/lib/security/json_token.h',
+ 'src/core/lib/security/jwt_verifier.h',
+ 'src/core/lib/security/secure_endpoint.h',
+ 'src/core/lib/security/security_connector.h',
+ 'src/core/lib/security/security_context.h',
'src/core/lib/surface/api_trace.h',
'src/core/lib/surface/call.h',
'src/core/lib/surface/call_test_only.h',
@@ -254,70 +281,74 @@ Pod::Spec.new do |s|
'src/core/lib/surface/server.h',
'src/core/lib/surface/surface_trace.h',
'src/core/lib/transport/byte_stream.h',
- 'src/core/lib/transport/chttp2/alpn.h',
- 'src/core/lib/transport/chttp2/bin_encoder.h',
- 'src/core/lib/transport/chttp2/frame.h',
- 'src/core/lib/transport/chttp2/frame_data.h',
- 'src/core/lib/transport/chttp2/frame_goaway.h',
- 'src/core/lib/transport/chttp2/frame_ping.h',
- 'src/core/lib/transport/chttp2/frame_rst_stream.h',
- 'src/core/lib/transport/chttp2/frame_settings.h',
- 'src/core/lib/transport/chttp2/frame_window_update.h',
- 'src/core/lib/transport/chttp2/hpack_encoder.h',
- 'src/core/lib/transport/chttp2/hpack_parser.h',
- 'src/core/lib/transport/chttp2/hpack_table.h',
- 'src/core/lib/transport/chttp2/http2_errors.h',
- 'src/core/lib/transport/chttp2/huffsyms.h',
- 'src/core/lib/transport/chttp2/incoming_metadata.h',
- 'src/core/lib/transport/chttp2/internal.h',
- 'src/core/lib/transport/chttp2/status_conversion.h',
- 'src/core/lib/transport/chttp2/stream_map.h',
- 'src/core/lib/transport/chttp2/timeout_encoding.h',
- 'src/core/lib/transport/chttp2/varint.h',
- 'src/core/lib/transport/chttp2_transport.h',
'src/core/lib/transport/connectivity_state.h',
'src/core/lib/transport/metadata.h',
'src/core/lib/transport/metadata_batch.h',
'src/core/lib/transport/static_metadata.h',
'src/core/lib/transport/transport.h',
'src/core/lib/transport/transport_impl.h',
- 'src/core/lib/security/auth_filters.h',
- 'src/core/lib/security/b64.h',
- 'src/core/lib/security/credentials.h',
- 'src/core/lib/security/handshake.h',
- 'src/core/lib/security/json_token.h',
- 'src/core/lib/security/jwt_verifier.h',
- 'src/core/lib/security/secure_endpoint.h',
- 'src/core/lib/security/security_connector.h',
- 'src/core/lib/security/security_context.h',
'src/core/lib/tsi/fake_transport_security.h',
'src/core/lib/tsi/ssl_transport_security.h',
'src/core/lib/tsi/ssl_types.h',
'src/core/lib/tsi/transport_security.h',
'src/core/lib/tsi/transport_security_interface.h',
- 'src/core/lib/census/aggregation.h',
- 'src/core/lib/census/mlog.h',
- 'src/core/lib/census/rpc_metric_id.h',
'third_party/nanopb/pb.h',
'third_party/nanopb/pb_common.h',
'third_party/nanopb/pb_decode.h',
'third_party/nanopb/pb_encode.h',
- 'include/grpc/grpc_security.h',
'include/grpc/byte_buffer.h',
'include/grpc/byte_buffer_reader.h',
+ 'include/grpc/census.h',
'include/grpc/compression.h',
'include/grpc/grpc.h',
- 'include/grpc/status.h',
+ 'include/grpc/grpc_security.h',
'include/grpc/impl/codegen/byte_buffer.h',
'include/grpc/impl/codegen/compression_types.h',
'include/grpc/impl/codegen/connectivity_state.h',
'include/grpc/impl/codegen/grpc_types.h',
'include/grpc/impl/codegen/propagation_bits.h',
'include/grpc/impl/codegen/status.h',
- 'include/grpc/census.h',
- 'src/core/lib/census/grpc_context.c',
- 'src/core/lib/census/grpc_filter.c',
- 'src/core/lib/census/grpc_plugin.c',
+ 'include/grpc/status.h',
+ 'src/core/ext/census/context.c',
+ 'src/core/ext/census/grpc_context.c',
+ 'src/core/ext/census/grpc_filter.c',
+ 'src/core/ext/census/grpc_plugin.c',
+ 'src/core/ext/census/initialize.c',
+ 'src/core/ext/census/mlog.c',
+ 'src/core/ext/census/operation.c',
+ 'src/core/ext/census/placeholders.c',
+ 'src/core/ext/census/tracing.c',
+ 'src/core/ext/lb_policy/grpclb/load_balancer_api.c',
+ 'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c',
+ 'src/core/ext/lb_policy/pick_first/pick_first.c',
+ 'src/core/ext/lb_policy/round_robin/round_robin.c',
+ 'src/core/ext/resolver/dns/native/dns_resolver.c',
+ 'src/core/ext/resolver/sockaddr/sockaddr_resolver.c',
+ 'src/core/ext/transport/chttp2/client/insecure/channel_create.c',
+ 'src/core/ext/transport/chttp2/client/secure/secure_channel_create.c',
+ 'src/core/ext/transport/chttp2/server/insecure/server_chttp2.c',
+ 'src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c',
+ 'src/core/ext/transport/chttp2/transport/alpn.c',
+ 'src/core/ext/transport/chttp2/transport/bin_encoder.c',
+ 'src/core/ext/transport/chttp2/transport/chttp2_transport.c',
+ 'src/core/ext/transport/chttp2/transport/frame_data.c',
+ 'src/core/ext/transport/chttp2/transport/frame_goaway.c',
+ 'src/core/ext/transport/chttp2/transport/frame_ping.c',
+ 'src/core/ext/transport/chttp2/transport/frame_rst_stream.c',
+ 'src/core/ext/transport/chttp2/transport/frame_settings.c',
+ 'src/core/ext/transport/chttp2/transport/frame_window_update.c',
+ 'src/core/ext/transport/chttp2/transport/hpack_encoder.c',
+ 'src/core/ext/transport/chttp2/transport/hpack_parser.c',
+ 'src/core/ext/transport/chttp2/transport/hpack_table.c',
+ 'src/core/ext/transport/chttp2/transport/huffsyms.c',
+ 'src/core/ext/transport/chttp2/transport/incoming_metadata.c',
+ 'src/core/ext/transport/chttp2/transport/parsing.c',
+ 'src/core/ext/transport/chttp2/transport/status_conversion.c',
+ 'src/core/ext/transport/chttp2/transport/stream_lists.c',
+ 'src/core/ext/transport/chttp2/transport/stream_map.c',
+ 'src/core/ext/transport/chttp2/transport/timeout_encoding.c',
+ 'src/core/ext/transport/chttp2/transport/varint.c',
+ 'src/core/ext/transport/chttp2/transport/writing.c',
'src/core/lib/channel/channel_args.c',
'src/core/lib/channel/channel_stack.c',
'src/core/lib/channel/channel_stack_builder.c',
@@ -331,17 +362,12 @@ Pod::Spec.new do |s|
'src/core/lib/client_config/connector.c',
'src/core/lib/client_config/default_initial_connect_string.c',
'src/core/lib/client_config/initial_connect_string.c',
- 'src/core/lib/client_config/lb_policies/load_balancer_api.c',
- 'src/core/lib/client_config/lb_policies/pick_first.c',
- 'src/core/lib/client_config/lb_policies/round_robin.c',
'src/core/lib/client_config/lb_policy.c',
'src/core/lib/client_config/lb_policy_factory.c',
'src/core/lib/client_config/lb_policy_registry.c',
'src/core/lib/client_config/resolver.c',
'src/core/lib/client_config/resolver_factory.c',
'src/core/lib/client_config/resolver_registry.c',
- 'src/core/lib/client_config/resolvers/dns_resolver.c',
- 'src/core/lib/client_config/resolvers/sockaddr_resolver.c',
'src/core/lib/client_config/subchannel.c',
'src/core/lib/client_config/subchannel_factory.c',
'src/core/lib/client_config/subchannel_index.c',
@@ -351,22 +377,20 @@ Pod::Spec.new do |s|
'src/core/lib/debug/trace.c',
'src/core/lib/http/format_request.c',
'src/core/lib/http/httpcli.c',
+ 'src/core/lib/http/httpcli_security_connector.c',
'src/core/lib/http/parser.c',
'src/core/lib/iomgr/closure.c',
'src/core/lib/iomgr/endpoint.c',
'src/core/lib/iomgr/endpoint_pair_posix.c',
'src/core/lib/iomgr/endpoint_pair_windows.c',
+ 'src/core/lib/iomgr/ev_poll_and_epoll_posix.c',
+ 'src/core/lib/iomgr/ev_posix.c',
'src/core/lib/iomgr/exec_ctx.c',
'src/core/lib/iomgr/executor.c',
- 'src/core/lib/iomgr/fd_posix.c',
'src/core/lib/iomgr/iocp_windows.c',
'src/core/lib/iomgr/iomgr.c',
'src/core/lib/iomgr/iomgr_posix.c',
'src/core/lib/iomgr/iomgr_windows.c',
- 'src/core/lib/iomgr/pollset_multipoller_with_epoll.c',
- 'src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c',
- 'src/core/lib/iomgr/pollset_posix.c',
- 'src/core/lib/iomgr/pollset_set_posix.c',
'src/core/lib/iomgr/pollset_set_windows.c',
'src/core/lib/iomgr/pollset_windows.c',
'src/core/lib/iomgr/resolve_address_posix.c',
@@ -398,7 +422,20 @@ Pod::Spec.new do |s|
'src/core/lib/json/json_reader.c',
'src/core/lib/json/json_string.c',
'src/core/lib/json/json_writer.c',
- 'src/core/lib/proto/grpc/lb/v0/load_balancer.pb.c',
+ 'src/core/lib/security/b64.c',
+ 'src/core/lib/security/client_auth_filter.c',
+ 'src/core/lib/security/credentials.c',
+ 'src/core/lib/security/credentials_metadata.c',
+ 'src/core/lib/security/credentials_posix.c',
+ 'src/core/lib/security/credentials_win32.c',
+ 'src/core/lib/security/google_default_credentials.c',
+ 'src/core/lib/security/handshake.c',
+ 'src/core/lib/security/json_token.c',
+ 'src/core/lib/security/jwt_verifier.c',
+ 'src/core/lib/security/secure_endpoint.c',
+ 'src/core/lib/security/security_connector.c',
+ 'src/core/lib/security/security_context.c',
+ 'src/core/lib/security/server_auth_filter.c',
'src/core/lib/surface/alarm.c',
'src/core/lib/surface/api_trace.c',
'src/core/lib/surface/byte_buffer.c',
@@ -408,74 +445,29 @@ Pod::Spec.new do |s|
'src/core/lib/surface/call_log_batch.c',
'src/core/lib/surface/channel.c',
'src/core/lib/surface/channel_connectivity.c',
- 'src/core/lib/surface/channel_create.c',
'src/core/lib/surface/channel_init.c',
'src/core/lib/surface/channel_ping.c',
'src/core/lib/surface/channel_stack_type.c',
'src/core/lib/surface/completion_queue.c',
'src/core/lib/surface/event_string.c',
'src/core/lib/surface/init.c',
+ 'src/core/lib/surface/init_secure.c',
'src/core/lib/surface/lame_client.c',
'src/core/lib/surface/metadata_array.c',
'src/core/lib/surface/server.c',
- 'src/core/lib/surface/server_chttp2.c',
'src/core/lib/surface/validate_metadata.c',
'src/core/lib/surface/version.c',
'src/core/lib/transport/byte_stream.c',
- 'src/core/lib/transport/chttp2/alpn.c',
- 'src/core/lib/transport/chttp2/bin_encoder.c',
- 'src/core/lib/transport/chttp2/frame_data.c',
- 'src/core/lib/transport/chttp2/frame_goaway.c',
- 'src/core/lib/transport/chttp2/frame_ping.c',
- 'src/core/lib/transport/chttp2/frame_rst_stream.c',
- 'src/core/lib/transport/chttp2/frame_settings.c',
- 'src/core/lib/transport/chttp2/frame_window_update.c',
- 'src/core/lib/transport/chttp2/hpack_encoder.c',
- 'src/core/lib/transport/chttp2/hpack_parser.c',
- 'src/core/lib/transport/chttp2/hpack_table.c',
- 'src/core/lib/transport/chttp2/huffsyms.c',
- 'src/core/lib/transport/chttp2/incoming_metadata.c',
- 'src/core/lib/transport/chttp2/parsing.c',
- 'src/core/lib/transport/chttp2/status_conversion.c',
- 'src/core/lib/transport/chttp2/stream_lists.c',
- 'src/core/lib/transport/chttp2/stream_map.c',
- 'src/core/lib/transport/chttp2/timeout_encoding.c',
- 'src/core/lib/transport/chttp2/varint.c',
- 'src/core/lib/transport/chttp2/writing.c',
- 'src/core/lib/transport/chttp2_transport.c',
'src/core/lib/transport/connectivity_state.c',
'src/core/lib/transport/metadata.c',
'src/core/lib/transport/metadata_batch.c',
'src/core/lib/transport/static_metadata.c',
'src/core/lib/transport/transport.c',
'src/core/lib/transport/transport_op_string.c',
- 'src/core/lib/http/httpcli_security_connector.c',
- 'src/core/lib/security/b64.c',
- 'src/core/lib/security/client_auth_filter.c',
- 'src/core/lib/security/credentials.c',
- 'src/core/lib/security/credentials_metadata.c',
- 'src/core/lib/security/credentials_posix.c',
- 'src/core/lib/security/credentials_win32.c',
- 'src/core/lib/security/google_default_credentials.c',
- 'src/core/lib/security/handshake.c',
- 'src/core/lib/security/json_token.c',
- 'src/core/lib/security/jwt_verifier.c',
- 'src/core/lib/security/secure_endpoint.c',
- 'src/core/lib/security/security_connector.c',
- 'src/core/lib/security/security_context.c',
- 'src/core/lib/security/server_auth_filter.c',
- 'src/core/lib/security/server_secure_chttp2.c',
- 'src/core/lib/surface/init_secure.c',
- 'src/core/lib/surface/secure_channel_create.c',
'src/core/lib/tsi/fake_transport_security.c',
'src/core/lib/tsi/ssl_transport_security.c',
'src/core/lib/tsi/transport_security.c',
- 'src/core/lib/census/context.c',
- 'src/core/lib/census/initialize.c',
- 'src/core/lib/census/mlog.c',
- 'src/core/lib/census/operation.c',
- 'src/core/lib/census/placeholders.c',
- 'src/core/lib/census/tracing.c',
+ 'src/core/plugin_registry/grpc_plugin_registry.c',
'third_party/nanopb/pb_common.c',
'third_party/nanopb/pb_decode.c',
'third_party/nanopb/pb_encode.c'
@@ -492,8 +484,35 @@ Pod::Spec.new do |s|
'src/core/lib/support/thd_internal.h',
'src/core/lib/support/time_precise.h',
'src/core/lib/support/tmpfile.h',
- 'src/core/lib/census/grpc_filter.h',
- 'src/core/lib/census/grpc_plugin.h',
+ 'src/core/ext/census/aggregation.h',
+ 'src/core/ext/census/census_interface.h',
+ 'src/core/ext/census/census_rpc_stats.h',
+ 'src/core/ext/census/grpc_filter.h',
+ 'src/core/ext/census/mlog.h',
+ 'src/core/ext/census/rpc_metric_id.h',
+ 'src/core/ext/lb_policy/grpclb/load_balancer_api.h',
+ 'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h',
+ 'src/core/ext/transport/chttp2/transport/alpn.h',
+ 'src/core/ext/transport/chttp2/transport/bin_encoder.h',
+ 'src/core/ext/transport/chttp2/transport/chttp2_transport.h',
+ 'src/core/ext/transport/chttp2/transport/frame.h',
+ 'src/core/ext/transport/chttp2/transport/frame_data.h',
+ 'src/core/ext/transport/chttp2/transport/frame_goaway.h',
+ 'src/core/ext/transport/chttp2/transport/frame_ping.h',
+ 'src/core/ext/transport/chttp2/transport/frame_rst_stream.h',
+ 'src/core/ext/transport/chttp2/transport/frame_settings.h',
+ 'src/core/ext/transport/chttp2/transport/frame_window_update.h',
+ 'src/core/ext/transport/chttp2/transport/hpack_encoder.h',
+ 'src/core/ext/transport/chttp2/transport/hpack_parser.h',
+ 'src/core/ext/transport/chttp2/transport/hpack_table.h',
+ 'src/core/ext/transport/chttp2/transport/http2_errors.h',
+ 'src/core/ext/transport/chttp2/transport/huffsyms.h',
+ 'src/core/ext/transport/chttp2/transport/incoming_metadata.h',
+ 'src/core/ext/transport/chttp2/transport/internal.h',
+ 'src/core/ext/transport/chttp2/transport/status_conversion.h',
+ 'src/core/ext/transport/chttp2/transport/stream_map.h',
+ 'src/core/ext/transport/chttp2/transport/timeout_encoding.h',
+ 'src/core/ext/transport/chttp2/transport/varint.h',
'src/core/lib/channel/channel_args.h',
'src/core/lib/channel/channel_stack.h',
'src/core/lib/channel/channel_stack_builder.h',
@@ -507,17 +526,12 @@ Pod::Spec.new do |s|
'src/core/lib/client_config/client_config.h',
'src/core/lib/client_config/connector.h',
'src/core/lib/client_config/initial_connect_string.h',
- 'src/core/lib/client_config/lb_policies/load_balancer_api.h',
- 'src/core/lib/client_config/lb_policies/pick_first.h',
- 'src/core/lib/client_config/lb_policies/round_robin.h',
'src/core/lib/client_config/lb_policy.h',
'src/core/lib/client_config/lb_policy_factory.h',
'src/core/lib/client_config/lb_policy_registry.h',
'src/core/lib/client_config/resolver.h',
'src/core/lib/client_config/resolver_factory.h',
'src/core/lib/client_config/resolver_registry.h',
- 'src/core/lib/client_config/resolvers/dns_resolver.h',
- 'src/core/lib/client_config/resolvers/sockaddr_resolver.h',
'src/core/lib/client_config/subchannel.h',
'src/core/lib/client_config/subchannel_factory.h',
'src/core/lib/client_config/subchannel_index.h',
@@ -531,17 +545,16 @@ Pod::Spec.new do |s|
'src/core/lib/iomgr/closure.h',
'src/core/lib/iomgr/endpoint.h',
'src/core/lib/iomgr/endpoint_pair.h',
+ 'src/core/lib/iomgr/ev_poll_and_epoll_posix.h',
+ 'src/core/lib/iomgr/ev_posix.h',
'src/core/lib/iomgr/exec_ctx.h',
'src/core/lib/iomgr/executor.h',
- 'src/core/lib/iomgr/fd_posix.h',
'src/core/lib/iomgr/iocp_windows.h',
'src/core/lib/iomgr/iomgr.h',
'src/core/lib/iomgr/iomgr_internal.h',
'src/core/lib/iomgr/iomgr_posix.h',
'src/core/lib/iomgr/pollset.h',
- 'src/core/lib/iomgr/pollset_posix.h',
'src/core/lib/iomgr/pollset_set.h',
- 'src/core/lib/iomgr/pollset_set_posix.h',
'src/core/lib/iomgr/pollset_set_windows.h',
'src/core/lib/iomgr/pollset_windows.h',
'src/core/lib/iomgr/resolve_address.h',
@@ -569,9 +582,15 @@ Pod::Spec.new do |s|
'src/core/lib/json/json_common.h',
'src/core/lib/json/json_reader.h',
'src/core/lib/json/json_writer.h',
- 'src/core/lib/proto/grpc/lb/v0/load_balancer.pb.h',
- 'src/core/lib/statistics/census_interface.h',
- 'src/core/lib/statistics/census_rpc_stats.h',
+ 'src/core/lib/security/auth_filters.h',
+ 'src/core/lib/security/b64.h',
+ 'src/core/lib/security/credentials.h',
+ 'src/core/lib/security/handshake.h',
+ 'src/core/lib/security/json_token.h',
+ 'src/core/lib/security/jwt_verifier.h',
+ 'src/core/lib/security/secure_endpoint.h',
+ 'src/core/lib/security/security_connector.h',
+ 'src/core/lib/security/security_context.h',
'src/core/lib/surface/api_trace.h',
'src/core/lib/surface/call.h',
'src/core/lib/surface/call_test_only.h',
@@ -585,50 +604,17 @@ Pod::Spec.new do |s|
'src/core/lib/surface/server.h',
'src/core/lib/surface/surface_trace.h',
'src/core/lib/transport/byte_stream.h',
- 'src/core/lib/transport/chttp2/alpn.h',
- 'src/core/lib/transport/chttp2/bin_encoder.h',
- 'src/core/lib/transport/chttp2/frame.h',
- 'src/core/lib/transport/chttp2/frame_data.h',
- 'src/core/lib/transport/chttp2/frame_goaway.h',
- 'src/core/lib/transport/chttp2/frame_ping.h',
- 'src/core/lib/transport/chttp2/frame_rst_stream.h',
- 'src/core/lib/transport/chttp2/frame_settings.h',
- 'src/core/lib/transport/chttp2/frame_window_update.h',
- 'src/core/lib/transport/chttp2/hpack_encoder.h',
- 'src/core/lib/transport/chttp2/hpack_parser.h',
- 'src/core/lib/transport/chttp2/hpack_table.h',
- 'src/core/lib/transport/chttp2/http2_errors.h',
- 'src/core/lib/transport/chttp2/huffsyms.h',
- 'src/core/lib/transport/chttp2/incoming_metadata.h',
- 'src/core/lib/transport/chttp2/internal.h',
- 'src/core/lib/transport/chttp2/status_conversion.h',
- 'src/core/lib/transport/chttp2/stream_map.h',
- 'src/core/lib/transport/chttp2/timeout_encoding.h',
- 'src/core/lib/transport/chttp2/varint.h',
- 'src/core/lib/transport/chttp2_transport.h',
'src/core/lib/transport/connectivity_state.h',
'src/core/lib/transport/metadata.h',
'src/core/lib/transport/metadata_batch.h',
'src/core/lib/transport/static_metadata.h',
'src/core/lib/transport/transport.h',
'src/core/lib/transport/transport_impl.h',
- 'src/core/lib/security/auth_filters.h',
- 'src/core/lib/security/b64.h',
- 'src/core/lib/security/credentials.h',
- 'src/core/lib/security/handshake.h',
- 'src/core/lib/security/json_token.h',
- 'src/core/lib/security/jwt_verifier.h',
- 'src/core/lib/security/secure_endpoint.h',
- 'src/core/lib/security/security_connector.h',
- 'src/core/lib/security/security_context.h',
'src/core/lib/tsi/fake_transport_security.h',
'src/core/lib/tsi/ssl_transport_security.h',
'src/core/lib/tsi/ssl_types.h',
'src/core/lib/tsi/transport_security.h',
'src/core/lib/tsi/transport_security_interface.h',
- 'src/core/lib/census/aggregation.h',
- 'src/core/lib/census/mlog.h',
- 'src/core/lib/census/rpc_metric_id.h',
'third_party/nanopb/pb.h',
'third_party/nanopb/pb_common.h',
'third_party/nanopb/pb_decode.h',
diff --git a/grpc.gemspec b/grpc.gemspec
index aa52890aeb..d1e7ad2b31 100755
--- a/grpc.gemspec
+++ b/grpc.gemspec
@@ -46,6 +46,20 @@ Gem::Specification.new do |s|
s.extensions = %w(src/ruby/ext/grpc/extconf.rb)
+ s.files += %w( include/grpc/impl/codegen/alloc.h )
+ s.files += %w( include/grpc/impl/codegen/atm.h )
+ s.files += %w( include/grpc/impl/codegen/atm_gcc_atomic.h )
+ s.files += %w( include/grpc/impl/codegen/atm_gcc_sync.h )
+ s.files += %w( include/grpc/impl/codegen/atm_win32.h )
+ s.files += %w( include/grpc/impl/codegen/log.h )
+ s.files += %w( include/grpc/impl/codegen/port_platform.h )
+ s.files += %w( include/grpc/impl/codegen/slice.h )
+ s.files += %w( include/grpc/impl/codegen/slice_buffer.h )
+ s.files += %w( include/grpc/impl/codegen/sync.h )
+ s.files += %w( include/grpc/impl/codegen/sync_generic.h )
+ s.files += %w( include/grpc/impl/codegen/sync_posix.h )
+ s.files += %w( include/grpc/impl/codegen/sync_win32.h )
+ s.files += %w( include/grpc/impl/codegen/time.h )
s.files += %w( include/grpc/support/alloc.h )
s.files += %w( include/grpc/support/atm.h )
s.files += %w( include/grpc/support/atm_gcc_atomic.h )
@@ -74,20 +88,6 @@ Gem::Specification.new do |s|
s.files += %w( include/grpc/support/tls_msvc.h )
s.files += %w( include/grpc/support/tls_pthread.h )
s.files += %w( include/grpc/support/useful.h )
- s.files += %w( include/grpc/impl/codegen/alloc.h )
- s.files += %w( include/grpc/impl/codegen/atm.h )
- s.files += %w( include/grpc/impl/codegen/atm_gcc_atomic.h )
- s.files += %w( include/grpc/impl/codegen/atm_gcc_sync.h )
- s.files += %w( include/grpc/impl/codegen/atm_win32.h )
- s.files += %w( include/grpc/impl/codegen/log.h )
- s.files += %w( include/grpc/impl/codegen/port_platform.h )
- s.files += %w( include/grpc/impl/codegen/slice.h )
- s.files += %w( include/grpc/impl/codegen/slice_buffer.h )
- s.files += %w( include/grpc/impl/codegen/sync.h )
- s.files += %w( include/grpc/impl/codegen/sync_generic.h )
- s.files += %w( include/grpc/impl/codegen/sync_posix.h )
- s.files += %w( include/grpc/impl/codegen/sync_win32.h )
- s.files += %w( include/grpc/impl/codegen/time.h )
s.files += %w( src/core/lib/profiling/timers.h )
s.files += %w( src/core/lib/support/backoff.h )
s.files += %w( src/core/lib/support/block_annotate.h )
@@ -144,21 +144,48 @@ Gem::Specification.new do |s|
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 )
- s.files += %w( include/grpc/grpc_security.h )
s.files += %w( include/grpc/byte_buffer.h )
s.files += %w( include/grpc/byte_buffer_reader.h )
+ s.files += %w( include/grpc/census.h )
s.files += %w( include/grpc/compression.h )
s.files += %w( include/grpc/grpc.h )
- s.files += %w( include/grpc/status.h )
+ s.files += %w( include/grpc/grpc_security.h )
s.files += %w( include/grpc/impl/codegen/byte_buffer.h )
s.files += %w( include/grpc/impl/codegen/compression_types.h )
s.files += %w( include/grpc/impl/codegen/connectivity_state.h )
s.files += %w( include/grpc/impl/codegen/grpc_types.h )
s.files += %w( include/grpc/impl/codegen/propagation_bits.h )
s.files += %w( include/grpc/impl/codegen/status.h )
- s.files += %w( include/grpc/census.h )
- s.files += %w( src/core/lib/census/grpc_filter.h )
- s.files += %w( src/core/lib/census/grpc_plugin.h )
+ s.files += %w( include/grpc/status.h )
+ s.files += %w( src/core/ext/census/aggregation.h )
+ s.files += %w( src/core/ext/census/census_interface.h )
+ s.files += %w( src/core/ext/census/census_rpc_stats.h )
+ s.files += %w( src/core/ext/census/grpc_filter.h )
+ s.files += %w( src/core/ext/census/mlog.h )
+ s.files += %w( src/core/ext/census/rpc_metric_id.h )
+ s.files += %w( src/core/ext/lb_policy/grpclb/load_balancer_api.h )
+ s.files += %w( src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h )
+ s.files += %w( src/core/ext/transport/chttp2/transport/alpn.h )
+ s.files += %w( src/core/ext/transport/chttp2/transport/bin_encoder.h )
+ s.files += %w( src/core/ext/transport/chttp2/transport/chttp2_transport.h )
+ s.files += %w( src/core/ext/transport/chttp2/transport/frame.h )
+ s.files += %w( src/core/ext/transport/chttp2/transport/frame_data.h )
+ s.files += %w( src/core/ext/transport/chttp2/transport/frame_goaway.h )
+ s.files += %w( src/core/ext/transport/chttp2/transport/frame_ping.h )
+ s.files += %w( src/core/ext/transport/chttp2/transport/frame_rst_stream.h )
+ s.files += %w( src/core/ext/transport/chttp2/transport/frame_settings.h )
+ s.files += %w( src/core/ext/transport/chttp2/transport/frame_window_update.h )
+ s.files += %w( src/core/ext/transport/chttp2/transport/hpack_encoder.h )
+ s.files += %w( src/core/ext/transport/chttp2/transport/hpack_parser.h )
+ s.files += %w( src/core/ext/transport/chttp2/transport/hpack_table.h )
+ s.files += %w( src/core/ext/transport/chttp2/transport/http2_errors.h )
+ s.files += %w( src/core/ext/transport/chttp2/transport/huffsyms.h )
+ s.files += %w( src/core/ext/transport/chttp2/transport/incoming_metadata.h )
+ s.files += %w( src/core/ext/transport/chttp2/transport/internal.h )
+ s.files += %w( src/core/ext/transport/chttp2/transport/status_conversion.h )
+ s.files += %w( src/core/ext/transport/chttp2/transport/stream_map.h )
+ s.files += %w( src/core/ext/transport/chttp2/transport/timeout_encoding.h )
+ s.files += %w( src/core/ext/transport/chttp2/transport/varint.h )
s.files += %w( src/core/lib/channel/channel_args.h )
s.files += %w( src/core/lib/channel/channel_stack.h )
s.files += %w( src/core/lib/channel/channel_stack_builder.h )
@@ -172,17 +199,12 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/client_config/client_config.h )
s.files += %w( src/core/lib/client_config/connector.h )
s.files += %w( src/core/lib/client_config/initial_connect_string.h )
- s.files += %w( src/core/lib/client_config/lb_policies/load_balancer_api.h )
- s.files += %w( src/core/lib/client_config/lb_policies/pick_first.h )
- s.files += %w( src/core/lib/client_config/lb_policies/round_robin.h )
s.files += %w( src/core/lib/client_config/lb_policy.h )
s.files += %w( src/core/lib/client_config/lb_policy_factory.h )
s.files += %w( src/core/lib/client_config/lb_policy_registry.h )
s.files += %w( src/core/lib/client_config/resolver.h )
s.files += %w( src/core/lib/client_config/resolver_factory.h )
s.files += %w( src/core/lib/client_config/resolver_registry.h )
- s.files += %w( src/core/lib/client_config/resolvers/dns_resolver.h )
- s.files += %w( src/core/lib/client_config/resolvers/sockaddr_resolver.h )
s.files += %w( src/core/lib/client_config/subchannel.h )
s.files += %w( src/core/lib/client_config/subchannel_factory.h )
s.files += %w( src/core/lib/client_config/subchannel_index.h )
@@ -196,17 +218,16 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/iomgr/closure.h )
s.files += %w( src/core/lib/iomgr/endpoint.h )
s.files += %w( src/core/lib/iomgr/endpoint_pair.h )
+ s.files += %w( src/core/lib/iomgr/ev_poll_and_epoll_posix.h )
+ s.files += %w( src/core/lib/iomgr/ev_posix.h )
s.files += %w( src/core/lib/iomgr/exec_ctx.h )
s.files += %w( src/core/lib/iomgr/executor.h )
- s.files += %w( src/core/lib/iomgr/fd_posix.h )
s.files += %w( src/core/lib/iomgr/iocp_windows.h )
s.files += %w( src/core/lib/iomgr/iomgr.h )
s.files += %w( src/core/lib/iomgr/iomgr_internal.h )
s.files += %w( src/core/lib/iomgr/iomgr_posix.h )
s.files += %w( src/core/lib/iomgr/pollset.h )
- s.files += %w( src/core/lib/iomgr/pollset_posix.h )
s.files += %w( src/core/lib/iomgr/pollset_set.h )
- s.files += %w( src/core/lib/iomgr/pollset_set_posix.h )
s.files += %w( src/core/lib/iomgr/pollset_set_windows.h )
s.files += %w( src/core/lib/iomgr/pollset_windows.h )
s.files += %w( src/core/lib/iomgr/resolve_address.h )
@@ -234,9 +255,15 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/json/json_common.h )
s.files += %w( src/core/lib/json/json_reader.h )
s.files += %w( src/core/lib/json/json_writer.h )
- s.files += %w( src/core/lib/proto/grpc/lb/v0/load_balancer.pb.h )
- s.files += %w( src/core/lib/statistics/census_interface.h )
- s.files += %w( src/core/lib/statistics/census_rpc_stats.h )
+ s.files += %w( src/core/lib/security/auth_filters.h )
+ s.files += %w( src/core/lib/security/b64.h )
+ s.files += %w( src/core/lib/security/credentials.h )
+ s.files += %w( src/core/lib/security/handshake.h )
+ s.files += %w( src/core/lib/security/json_token.h )
+ s.files += %w( src/core/lib/security/jwt_verifier.h )
+ s.files += %w( src/core/lib/security/secure_endpoint.h )
+ s.files += %w( src/core/lib/security/security_connector.h )
+ s.files += %w( src/core/lib/security/security_context.h )
s.files += %w( src/core/lib/surface/api_trace.h )
s.files += %w( src/core/lib/surface/call.h )
s.files += %w( src/core/lib/surface/call_test_only.h )
@@ -250,57 +277,61 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/surface/server.h )
s.files += %w( src/core/lib/surface/surface_trace.h )
s.files += %w( src/core/lib/transport/byte_stream.h )
- s.files += %w( src/core/lib/transport/chttp2/alpn.h )
- s.files += %w( src/core/lib/transport/chttp2/bin_encoder.h )
- s.files += %w( src/core/lib/transport/chttp2/frame.h )
- s.files += %w( src/core/lib/transport/chttp2/frame_data.h )
- s.files += %w( src/core/lib/transport/chttp2/frame_goaway.h )
- s.files += %w( src/core/lib/transport/chttp2/frame_ping.h )
- s.files += %w( src/core/lib/transport/chttp2/frame_rst_stream.h )
- s.files += %w( src/core/lib/transport/chttp2/frame_settings.h )
- s.files += %w( src/core/lib/transport/chttp2/frame_window_update.h )
- s.files += %w( src/core/lib/transport/chttp2/hpack_encoder.h )
- s.files += %w( src/core/lib/transport/chttp2/hpack_parser.h )
- s.files += %w( src/core/lib/transport/chttp2/hpack_table.h )
- s.files += %w( src/core/lib/transport/chttp2/http2_errors.h )
- s.files += %w( src/core/lib/transport/chttp2/huffsyms.h )
- s.files += %w( src/core/lib/transport/chttp2/incoming_metadata.h )
- s.files += %w( src/core/lib/transport/chttp2/internal.h )
- s.files += %w( src/core/lib/transport/chttp2/status_conversion.h )
- s.files += %w( src/core/lib/transport/chttp2/stream_map.h )
- s.files += %w( src/core/lib/transport/chttp2/timeout_encoding.h )
- s.files += %w( src/core/lib/transport/chttp2/varint.h )
- s.files += %w( src/core/lib/transport/chttp2_transport.h )
s.files += %w( src/core/lib/transport/connectivity_state.h )
s.files += %w( src/core/lib/transport/metadata.h )
s.files += %w( src/core/lib/transport/metadata_batch.h )
s.files += %w( src/core/lib/transport/static_metadata.h )
s.files += %w( src/core/lib/transport/transport.h )
s.files += %w( src/core/lib/transport/transport_impl.h )
- s.files += %w( src/core/lib/security/auth_filters.h )
- s.files += %w( src/core/lib/security/b64.h )
- s.files += %w( src/core/lib/security/credentials.h )
- s.files += %w( src/core/lib/security/handshake.h )
- s.files += %w( src/core/lib/security/json_token.h )
- s.files += %w( src/core/lib/security/jwt_verifier.h )
- s.files += %w( src/core/lib/security/secure_endpoint.h )
- s.files += %w( src/core/lib/security/security_connector.h )
- s.files += %w( src/core/lib/security/security_context.h )
s.files += %w( src/core/lib/tsi/fake_transport_security.h )
s.files += %w( src/core/lib/tsi/ssl_transport_security.h )
s.files += %w( src/core/lib/tsi/ssl_types.h )
s.files += %w( src/core/lib/tsi/transport_security.h )
s.files += %w( src/core/lib/tsi/transport_security_interface.h )
- s.files += %w( src/core/lib/census/aggregation.h )
- s.files += %w( src/core/lib/census/mlog.h )
- s.files += %w( src/core/lib/census/rpc_metric_id.h )
s.files += %w( third_party/nanopb/pb.h )
s.files += %w( third_party/nanopb/pb_common.h )
s.files += %w( third_party/nanopb/pb_decode.h )
s.files += %w( third_party/nanopb/pb_encode.h )
- s.files += %w( src/core/lib/census/grpc_context.c )
- s.files += %w( src/core/lib/census/grpc_filter.c )
- s.files += %w( src/core/lib/census/grpc_plugin.c )
+ s.files += %w( src/core/ext/census/context.c )
+ s.files += %w( src/core/ext/census/grpc_context.c )
+ s.files += %w( src/core/ext/census/grpc_filter.c )
+ s.files += %w( src/core/ext/census/grpc_plugin.c )
+ s.files += %w( src/core/ext/census/initialize.c )
+ s.files += %w( src/core/ext/census/mlog.c )
+ s.files += %w( src/core/ext/census/operation.c )
+ s.files += %w( src/core/ext/census/placeholders.c )
+ s.files += %w( src/core/ext/census/tracing.c )
+ s.files += %w( src/core/ext/lb_policy/grpclb/load_balancer_api.c )
+ s.files += %w( src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c )
+ s.files += %w( src/core/ext/lb_policy/pick_first/pick_first.c )
+ s.files += %w( src/core/ext/lb_policy/round_robin/round_robin.c )
+ s.files += %w( src/core/ext/resolver/dns/native/dns_resolver.c )
+ s.files += %w( src/core/ext/resolver/sockaddr/sockaddr_resolver.c )
+ s.files += %w( src/core/ext/transport/chttp2/client/insecure/channel_create.c )
+ s.files += %w( src/core/ext/transport/chttp2/client/secure/secure_channel_create.c )
+ s.files += %w( src/core/ext/transport/chttp2/server/insecure/server_chttp2.c )
+ s.files += %w( src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c )
+ s.files += %w( src/core/ext/transport/chttp2/transport/alpn.c )
+ s.files += %w( src/core/ext/transport/chttp2/transport/bin_encoder.c )
+ s.files += %w( src/core/ext/transport/chttp2/transport/chttp2_transport.c )
+ s.files += %w( src/core/ext/transport/chttp2/transport/frame_data.c )
+ s.files += %w( src/core/ext/transport/chttp2/transport/frame_goaway.c )
+ s.files += %w( src/core/ext/transport/chttp2/transport/frame_ping.c )
+ s.files += %w( src/core/ext/transport/chttp2/transport/frame_rst_stream.c )
+ s.files += %w( src/core/ext/transport/chttp2/transport/frame_settings.c )
+ s.files += %w( src/core/ext/transport/chttp2/transport/frame_window_update.c )
+ s.files += %w( src/core/ext/transport/chttp2/transport/hpack_encoder.c )
+ s.files += %w( src/core/ext/transport/chttp2/transport/hpack_parser.c )
+ s.files += %w( src/core/ext/transport/chttp2/transport/hpack_table.c )
+ s.files += %w( src/core/ext/transport/chttp2/transport/huffsyms.c )
+ s.files += %w( src/core/ext/transport/chttp2/transport/incoming_metadata.c )
+ s.files += %w( src/core/ext/transport/chttp2/transport/parsing.c )
+ s.files += %w( src/core/ext/transport/chttp2/transport/status_conversion.c )
+ s.files += %w( src/core/ext/transport/chttp2/transport/stream_lists.c )
+ s.files += %w( src/core/ext/transport/chttp2/transport/stream_map.c )
+ s.files += %w( src/core/ext/transport/chttp2/transport/timeout_encoding.c )
+ s.files += %w( src/core/ext/transport/chttp2/transport/varint.c )
+ s.files += %w( src/core/ext/transport/chttp2/transport/writing.c )
s.files += %w( src/core/lib/channel/channel_args.c )
s.files += %w( src/core/lib/channel/channel_stack.c )
s.files += %w( src/core/lib/channel/channel_stack_builder.c )
@@ -314,17 +345,12 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/client_config/connector.c )
s.files += %w( src/core/lib/client_config/default_initial_connect_string.c )
s.files += %w( src/core/lib/client_config/initial_connect_string.c )
- s.files += %w( src/core/lib/client_config/lb_policies/load_balancer_api.c )
- s.files += %w( src/core/lib/client_config/lb_policies/pick_first.c )
- s.files += %w( src/core/lib/client_config/lb_policies/round_robin.c )
s.files += %w( src/core/lib/client_config/lb_policy.c )
s.files += %w( src/core/lib/client_config/lb_policy_factory.c )
s.files += %w( src/core/lib/client_config/lb_policy_registry.c )
s.files += %w( src/core/lib/client_config/resolver.c )
s.files += %w( src/core/lib/client_config/resolver_factory.c )
s.files += %w( src/core/lib/client_config/resolver_registry.c )
- s.files += %w( src/core/lib/client_config/resolvers/dns_resolver.c )
- s.files += %w( src/core/lib/client_config/resolvers/sockaddr_resolver.c )
s.files += %w( src/core/lib/client_config/subchannel.c )
s.files += %w( src/core/lib/client_config/subchannel_factory.c )
s.files += %w( src/core/lib/client_config/subchannel_index.c )
@@ -334,22 +360,20 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/debug/trace.c )
s.files += %w( src/core/lib/http/format_request.c )
s.files += %w( src/core/lib/http/httpcli.c )
+ s.files += %w( src/core/lib/http/httpcli_security_connector.c )
s.files += %w( src/core/lib/http/parser.c )
s.files += %w( src/core/lib/iomgr/closure.c )
s.files += %w( src/core/lib/iomgr/endpoint.c )
s.files += %w( src/core/lib/iomgr/endpoint_pair_posix.c )
s.files += %w( src/core/lib/iomgr/endpoint_pair_windows.c )
+ s.files += %w( src/core/lib/iomgr/ev_poll_and_epoll_posix.c )
+ s.files += %w( src/core/lib/iomgr/ev_posix.c )
s.files += %w( src/core/lib/iomgr/exec_ctx.c )
s.files += %w( src/core/lib/iomgr/executor.c )
- s.files += %w( src/core/lib/iomgr/fd_posix.c )
s.files += %w( src/core/lib/iomgr/iocp_windows.c )
s.files += %w( src/core/lib/iomgr/iomgr.c )
s.files += %w( src/core/lib/iomgr/iomgr_posix.c )
s.files += %w( src/core/lib/iomgr/iomgr_windows.c )
- s.files += %w( src/core/lib/iomgr/pollset_multipoller_with_epoll.c )
- s.files += %w( src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c )
- s.files += %w( src/core/lib/iomgr/pollset_posix.c )
- s.files += %w( src/core/lib/iomgr/pollset_set_posix.c )
s.files += %w( src/core/lib/iomgr/pollset_set_windows.c )
s.files += %w( src/core/lib/iomgr/pollset_windows.c )
s.files += %w( src/core/lib/iomgr/resolve_address_posix.c )
@@ -381,7 +405,20 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/json/json_reader.c )
s.files += %w( src/core/lib/json/json_string.c )
s.files += %w( src/core/lib/json/json_writer.c )
- s.files += %w( src/core/lib/proto/grpc/lb/v0/load_balancer.pb.c )
+ s.files += %w( src/core/lib/security/b64.c )
+ s.files += %w( src/core/lib/security/client_auth_filter.c )
+ s.files += %w( src/core/lib/security/credentials.c )
+ s.files += %w( src/core/lib/security/credentials_metadata.c )
+ s.files += %w( src/core/lib/security/credentials_posix.c )
+ s.files += %w( src/core/lib/security/credentials_win32.c )
+ s.files += %w( src/core/lib/security/google_default_credentials.c )
+ s.files += %w( src/core/lib/security/handshake.c )
+ s.files += %w( src/core/lib/security/json_token.c )
+ s.files += %w( src/core/lib/security/jwt_verifier.c )
+ s.files += %w( src/core/lib/security/secure_endpoint.c )
+ s.files += %w( src/core/lib/security/security_connector.c )
+ s.files += %w( src/core/lib/security/security_context.c )
+ s.files += %w( src/core/lib/security/server_auth_filter.c )
s.files += %w( src/core/lib/surface/alarm.c )
s.files += %w( src/core/lib/surface/api_trace.c )
s.files += %w( src/core/lib/surface/byte_buffer.c )
@@ -391,74 +428,29 @@ Gem::Specification.new do |s|
s.files += %w( src/core/lib/surface/call_log_batch.c )
s.files += %w( src/core/lib/surface/channel.c )
s.files += %w( src/core/lib/surface/channel_connectivity.c )
- s.files += %w( src/core/lib/surface/channel_create.c )
s.files += %w( src/core/lib/surface/channel_init.c )
s.files += %w( src/core/lib/surface/channel_ping.c )
s.files += %w( src/core/lib/surface/channel_stack_type.c )
s.files += %w( src/core/lib/surface/completion_queue.c )
s.files += %w( src/core/lib/surface/event_string.c )
s.files += %w( src/core/lib/surface/init.c )
+ s.files += %w( src/core/lib/surface/init_secure.c )
s.files += %w( src/core/lib/surface/lame_client.c )
s.files += %w( src/core/lib/surface/metadata_array.c )
s.files += %w( src/core/lib/surface/server.c )
- s.files += %w( src/core/lib/surface/server_chttp2.c )
s.files += %w( src/core/lib/surface/validate_metadata.c )
s.files += %w( src/core/lib/surface/version.c )
s.files += %w( src/core/lib/transport/byte_stream.c )
- s.files += %w( src/core/lib/transport/chttp2/alpn.c )
- s.files += %w( src/core/lib/transport/chttp2/bin_encoder.c )
- s.files += %w( src/core/lib/transport/chttp2/frame_data.c )
- s.files += %w( src/core/lib/transport/chttp2/frame_goaway.c )
- s.files += %w( src/core/lib/transport/chttp2/frame_ping.c )
- s.files += %w( src/core/lib/transport/chttp2/frame_rst_stream.c )
- s.files += %w( src/core/lib/transport/chttp2/frame_settings.c )
- s.files += %w( src/core/lib/transport/chttp2/frame_window_update.c )
- s.files += %w( src/core/lib/transport/chttp2/hpack_encoder.c )
- s.files += %w( src/core/lib/transport/chttp2/hpack_parser.c )
- s.files += %w( src/core/lib/transport/chttp2/hpack_table.c )
- s.files += %w( src/core/lib/transport/chttp2/huffsyms.c )
- s.files += %w( src/core/lib/transport/chttp2/incoming_metadata.c )
- s.files += %w( src/core/lib/transport/chttp2/parsing.c )
- s.files += %w( src/core/lib/transport/chttp2/status_conversion.c )
- s.files += %w( src/core/lib/transport/chttp2/stream_lists.c )
- s.files += %w( src/core/lib/transport/chttp2/stream_map.c )
- s.files += %w( src/core/lib/transport/chttp2/timeout_encoding.c )
- s.files += %w( src/core/lib/transport/chttp2/varint.c )
- s.files += %w( src/core/lib/transport/chttp2/writing.c )
- s.files += %w( src/core/lib/transport/chttp2_transport.c )
s.files += %w( src/core/lib/transport/connectivity_state.c )
s.files += %w( src/core/lib/transport/metadata.c )
s.files += %w( src/core/lib/transport/metadata_batch.c )
s.files += %w( src/core/lib/transport/static_metadata.c )
s.files += %w( src/core/lib/transport/transport.c )
s.files += %w( src/core/lib/transport/transport_op_string.c )
- s.files += %w( src/core/lib/http/httpcli_security_connector.c )
- s.files += %w( src/core/lib/security/b64.c )
- s.files += %w( src/core/lib/security/client_auth_filter.c )
- s.files += %w( src/core/lib/security/credentials.c )
- s.files += %w( src/core/lib/security/credentials_metadata.c )
- s.files += %w( src/core/lib/security/credentials_posix.c )
- s.files += %w( src/core/lib/security/credentials_win32.c )
- s.files += %w( src/core/lib/security/google_default_credentials.c )
- s.files += %w( src/core/lib/security/handshake.c )
- s.files += %w( src/core/lib/security/json_token.c )
- s.files += %w( src/core/lib/security/jwt_verifier.c )
- s.files += %w( src/core/lib/security/secure_endpoint.c )
- s.files += %w( src/core/lib/security/security_connector.c )
- s.files += %w( src/core/lib/security/security_context.c )
- s.files += %w( src/core/lib/security/server_auth_filter.c )
- s.files += %w( src/core/lib/security/server_secure_chttp2.c )
- s.files += %w( src/core/lib/surface/init_secure.c )
- s.files += %w( src/core/lib/surface/secure_channel_create.c )
s.files += %w( src/core/lib/tsi/fake_transport_security.c )
s.files += %w( src/core/lib/tsi/ssl_transport_security.c )
s.files += %w( src/core/lib/tsi/transport_security.c )
- s.files += %w( src/core/lib/census/context.c )
- s.files += %w( src/core/lib/census/initialize.c )
- s.files += %w( src/core/lib/census/mlog.c )
- s.files += %w( src/core/lib/census/operation.c )
- s.files += %w( src/core/lib/census/placeholders.c )
- s.files += %w( src/core/lib/census/tracing.c )
+ s.files += %w( src/core/plugin_registry/grpc_plugin_registry.c )
s.files += %w( third_party/nanopb/pb_common.c )
s.files += %w( third_party/nanopb/pb_decode.c )
s.files += %w( third_party/nanopb/pb_encode.c )
diff --git a/include/grpc++/alarm.h b/include/grpc++/alarm.h
index 764837a958..1470fe8d97 100644
--- a/include/grpc++/alarm.h
+++ b/include/grpc++/alarm.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/channel.h b/include/grpc++/channel.h
index 679d473204..c535d57bff 100644
--- a/include/grpc++/channel.h
+++ b/include/grpc++/channel.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/client_context.h b/include/grpc++/client_context.h
index 3fbe6d1be8..38bee830e2 100644
--- a/include/grpc++/client_context.h
+++ b/include/grpc++/client_context.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/completion_queue.h b/include/grpc++/completion_queue.h
index f53f5ee56c..2a5a18bee0 100644
--- a/include/grpc++/completion_queue.h
+++ b/include/grpc++/completion_queue.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/create_channel.h b/include/grpc++/create_channel.h
index 80eed067b7..e9ccb51503 100644
--- a/include/grpc++/create_channel.h
+++ b/include/grpc++/create_channel.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/generic/async_generic_service.h b/include/grpc++/generic/async_generic_service.h
index b87b17ee0d..24bae52145 100644
--- a/include/grpc++/generic/async_generic_service.h
+++ b/include/grpc++/generic/async_generic_service.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/generic/generic_stub.h b/include/grpc++/generic/generic_stub.h
index 5ac0371efb..d27deae33a 100644
--- a/include/grpc++/generic/generic_stub.h
+++ b/include/grpc++/generic/generic_stub.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/call.h b/include/grpc++/impl/call.h
index 64b6563574..882710babb 100644
--- a/include/grpc++/impl/call.h
+++ b/include/grpc++/impl/call.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/client_unary_call.h b/include/grpc++/impl/client_unary_call.h
index abe321eacc..ea42674e55 100644
--- a/include/grpc++/impl/client_unary_call.h
+++ b/include/grpc++/impl/client_unary_call.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/async_stream.h b/include/grpc++/impl/codegen/async_stream.h
index cac345e0dc..78fb7274e2 100644
--- a/include/grpc++/impl/codegen/async_stream.h
+++ b/include/grpc++/impl/codegen/async_stream.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/async_unary_call.h b/include/grpc++/impl/codegen/async_unary_call.h
index 1526debf54..52b34770a8 100644
--- a/include/grpc++/impl/codegen/async_unary_call.h
+++ b/include/grpc++/impl/codegen/async_unary_call.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/call.h b/include/grpc++/impl/codegen/call.h
index 50f5a75191..f76d7c23ed 100644
--- a/include/grpc++/impl/codegen/call.h
+++ b/include/grpc++/impl/codegen/call.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/call_hook.h b/include/grpc++/impl/codegen/call_hook.h
index 0b6027293a..6a8258233d 100644
--- a/include/grpc++/impl/codegen/call_hook.h
+++ b/include/grpc++/impl/codegen/call_hook.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/client_context.h b/include/grpc++/impl/codegen/client_context.h
index 271d464583..5201808600 100644
--- a/include/grpc++/impl/codegen/client_context.h
+++ b/include/grpc++/impl/codegen/client_context.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/client_unary_call.h b/include/grpc++/impl/codegen/client_unary_call.h
index 6c35a95765..0ee5b198d2 100644
--- a/include/grpc++/impl/codegen/client_unary_call.h
+++ b/include/grpc++/impl/codegen/client_unary_call.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/completion_queue.h b/include/grpc++/impl/codegen/completion_queue.h
index 42ec287e65..56864d6d53 100644
--- a/include/grpc++/impl/codegen/completion_queue.h
+++ b/include/grpc++/impl/codegen/completion_queue.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/completion_queue_tag.h b/include/grpc++/impl/codegen/completion_queue_tag.h
index e904f73e96..19a08500cf 100644
--- a/include/grpc++/impl/codegen/completion_queue_tag.h
+++ b/include/grpc++/impl/codegen/completion_queue_tag.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/config_protobuf.h b/include/grpc++/impl/codegen/config_protobuf.h
index 3b9f05cdff..f1b6beaca7 100644
--- a/include/grpc++/impl/codegen/config_protobuf.h
+++ b/include/grpc++/impl/codegen/config_protobuf.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/core_codegen_interface.h b/include/grpc++/impl/codegen/core_codegen_interface.h
index a23031fe65..16424bab35 100644
--- a/include/grpc++/impl/codegen/core_codegen_interface.h
+++ b/include/grpc++/impl/codegen/core_codegen_interface.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/impl/async_stream.h b/include/grpc++/impl/codegen/impl/async_stream.h
index 95c844723a..8f99e7eea4 100644
--- a/include/grpc++/impl/codegen/impl/async_stream.h
+++ b/include/grpc++/impl/codegen/impl/async_stream.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/impl/sync.h b/include/grpc++/impl/codegen/impl/sync.h
index 68fd0c4f2d..88951de6d0 100644
--- a/include/grpc++/impl/codegen/impl/sync.h
+++ b/include/grpc++/impl/codegen/impl/sync.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/method_handler_impl.h b/include/grpc++/impl/codegen/method_handler_impl.h
index 0ab2ae466a..436b4d819b 100644
--- a/include/grpc++/impl/codegen/method_handler_impl.h
+++ b/include/grpc++/impl/codegen/method_handler_impl.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/proto_utils.h b/include/grpc++/impl/codegen/proto_utils.h
index f77f8eebb3..2aaa3c3b30 100644
--- a/include/grpc++/impl/codegen/proto_utils.h
+++ b/include/grpc++/impl/codegen/proto_utils.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/rpc_method.h b/include/grpc++/impl/codegen/rpc_method.h
index 85d5c1cfe2..39cb4f75df 100644
--- a/include/grpc++/impl/codegen/rpc_method.h
+++ b/include/grpc++/impl/codegen/rpc_method.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/security/auth_context.h b/include/grpc++/impl/codegen/security/auth_context.h
index 7544430811..75f2482346 100644
--- a/include/grpc++/impl/codegen/security/auth_context.h
+++ b/include/grpc++/impl/codegen/security/auth_context.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/serialization_traits.h b/include/grpc++/impl/codegen/serialization_traits.h
index 83c3b64eb3..fa99dbfa9c 100644
--- a/include/grpc++/impl/codegen/serialization_traits.h
+++ b/include/grpc++/impl/codegen/serialization_traits.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/server_context.h b/include/grpc++/impl/codegen/server_context.h
index f8326bc44b..44d340aa45 100644
--- a/include/grpc++/impl/codegen/server_context.h
+++ b/include/grpc++/impl/codegen/server_context.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/server_interface.h b/include/grpc++/impl/codegen/server_interface.h
index 908d124df1..7b7d5aa90b 100644
--- a/include/grpc++/impl/codegen/server_interface.h
+++ b/include/grpc++/impl/codegen/server_interface.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/service_type.h b/include/grpc++/impl/codegen/service_type.h
index faf189314c..c19dfc7d45 100644
--- a/include/grpc++/impl/codegen/service_type.h
+++ b/include/grpc++/impl/codegen/service_type.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/string_ref.h b/include/grpc++/impl/codegen/string_ref.h
index 4af2000ffd..003793823c 100644
--- a/include/grpc++/impl/codegen/string_ref.h
+++ b/include/grpc++/impl/codegen/string_ref.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/stub_options.h b/include/grpc++/impl/codegen/stub_options.h
index 3912ae2bf9..8e966a8dbf 100644
--- a/include/grpc++/impl/codegen/stub_options.h
+++ b/include/grpc++/impl/codegen/stub_options.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/sync.h b/include/grpc++/impl/codegen/sync.h
index 375af1543b..62194c7708 100644
--- a/include/grpc++/impl/codegen/sync.h
+++ b/include/grpc++/impl/codegen/sync.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/sync_cxx11.h b/include/grpc++/impl/codegen/sync_cxx11.h
index 4910547647..6626ca1f94 100644
--- a/include/grpc++/impl/codegen/sync_cxx11.h
+++ b/include/grpc++/impl/codegen/sync_cxx11.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/sync_no_cxx11.h b/include/grpc++/impl/codegen/sync_no_cxx11.h
index 8dea847367..55c059ede7 100644
--- a/include/grpc++/impl/codegen/sync_no_cxx11.h
+++ b/include/grpc++/impl/codegen/sync_no_cxx11.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/sync_stream.h b/include/grpc++/impl/codegen/sync_stream.h
index 0eabc5fc0f..d0ad05169f 100644
--- a/include/grpc++/impl/codegen/sync_stream.h
+++ b/include/grpc++/impl/codegen/sync_stream.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/codegen/time.h b/include/grpc++/impl/codegen/time.h
index bed7423341..d9b19bce64 100644
--- a/include/grpc++/impl/codegen/time.h
+++ b/include/grpc++/impl/codegen/time.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/grpc_library.h b/include/grpc++/impl/grpc_library.h
index ecb5a4d64d..175cf99a82 100644
--- a/include/grpc++/impl/grpc_library.h
+++ b/include/grpc++/impl/grpc_library.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/method_handler_impl.h b/include/grpc++/impl/method_handler_impl.h
index 305fd2865e..443978b82f 100644
--- a/include/grpc++/impl/method_handler_impl.h
+++ b/include/grpc++/impl/method_handler_impl.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/proto_utils.h b/include/grpc++/impl/proto_utils.h
index 36acabba79..a34cf9bd6c 100644
--- a/include/grpc++/impl/proto_utils.h
+++ b/include/grpc++/impl/proto_utils.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/rpc_method.h b/include/grpc++/impl/rpc_method.h
index 8b5d1a3282..27293e6791 100644
--- a/include/grpc++/impl/rpc_method.h
+++ b/include/grpc++/impl/rpc_method.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/serialization_traits.h b/include/grpc++/impl/serialization_traits.h
index fad4398174..53538299dd 100644
--- a/include/grpc++/impl/serialization_traits.h
+++ b/include/grpc++/impl/serialization_traits.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/service_type.h b/include/grpc++/impl/service_type.h
index b33fbec739..ffad7a3959 100644
--- a/include/grpc++/impl/service_type.h
+++ b/include/grpc++/impl/service_type.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/sync.h b/include/grpc++/impl/sync.h
index 824139043b..3339cddba4 100644
--- a/include/grpc++/impl/sync.h
+++ b/include/grpc++/impl/sync.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/sync_cxx11.h b/include/grpc++/impl/sync_cxx11.h
index 22997a19c2..78acec197e 100644
--- a/include/grpc++/impl/sync_cxx11.h
+++ b/include/grpc++/impl/sync_cxx11.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/impl/sync_no_cxx11.h b/include/grpc++/impl/sync_no_cxx11.h
index def800d6f4..e40269d1e5 100644
--- a/include/grpc++/impl/sync_no_cxx11.h
+++ b/include/grpc++/impl/sync_no_cxx11.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/security/auth_context.h b/include/grpc++/security/auth_context.h
index 548f9a236c..424418386a 100644
--- a/include/grpc++/security/auth_context.h
+++ b/include/grpc++/security/auth_context.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/security/auth_metadata_processor.h b/include/grpc++/security/auth_metadata_processor.h
index b39451f83e..1ae32d0f6c 100644
--- a/include/grpc++/security/auth_metadata_processor.h
+++ b/include/grpc++/security/auth_metadata_processor.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/security/credentials.h b/include/grpc++/security/credentials.h
index bedfc9c2a2..5439244b02 100644
--- a/include/grpc++/security/credentials.h
+++ b/include/grpc++/security/credentials.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/security/server_credentials.h b/include/grpc++/security/server_credentials.h
index addb11ccb4..5a9f8a42e2 100644
--- a/include/grpc++/security/server_credentials.h
+++ b/include/grpc++/security/server_credentials.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/server.h b/include/grpc++/server.h
index 9eb8c287e1..729a5143bf 100644
--- a/include/grpc++/server.h
+++ b/include/grpc++/server.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/server_builder.h b/include/grpc++/server_builder.h
index 73bcfb6038..86c7fecef5 100644
--- a/include/grpc++/server_builder.h
+++ b/include/grpc++/server_builder.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/server_context.h b/include/grpc++/server_context.h
index 214188a03a..0d68c7859c 100644
--- a/include/grpc++/server_context.h
+++ b/include/grpc++/server_context.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/support/async_stream.h b/include/grpc++/support/async_stream.h
index 88147ea9d6..106fd6cda2 100644
--- a/include/grpc++/support/async_stream.h
+++ b/include/grpc++/support/async_stream.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/support/async_unary_call.h b/include/grpc++/support/async_unary_call.h
index 6d74328be5..e1bd6db689 100644
--- a/include/grpc++/support/async_unary_call.h
+++ b/include/grpc++/support/async_unary_call.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/support/byte_buffer.h b/include/grpc++/support/byte_buffer.h
index 3825518de1..f6eb09638f 100644
--- a/include/grpc++/support/byte_buffer.h
+++ b/include/grpc++/support/byte_buffer.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/support/channel_arguments.h b/include/grpc++/support/channel_arguments.h
index 8c2f7c71eb..ae243939e9 100644
--- a/include/grpc++/support/channel_arguments.h
+++ b/include/grpc++/support/channel_arguments.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/support/config.h b/include/grpc++/support/config.h
index be8c89c462..10c65d97d1 100644
--- a/include/grpc++/support/config.h
+++ b/include/grpc++/support/config.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/support/config_protobuf.h b/include/grpc++/support/config_protobuf.h
index 0b466e8e44..3e7f169652 100644
--- a/include/grpc++/support/config_protobuf.h
+++ b/include/grpc++/support/config_protobuf.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/support/slice.h b/include/grpc++/support/slice.h
index 6251a8bcde..cec9062d4f 100644
--- a/include/grpc++/support/slice.h
+++ b/include/grpc++/support/slice.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/support/status.h b/include/grpc++/support/status.h
index a33fbedf12..bdb25b0724 100644
--- a/include/grpc++/support/status.h
+++ b/include/grpc++/support/status.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/support/status_code_enum.h b/include/grpc++/support/status_code_enum.h
index 21b9c40d7e..690a509c09 100644
--- a/include/grpc++/support/status_code_enum.h
+++ b/include/grpc++/support/status_code_enum.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/support/string_ref.h b/include/grpc++/support/string_ref.h
index 195e5c80c5..1f95e47fd3 100644
--- a/include/grpc++/support/string_ref.h
+++ b/include/grpc++/support/string_ref.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/support/stub_options.h b/include/grpc++/support/stub_options.h
index f8f4c87181..17a13c357e 100644
--- a/include/grpc++/support/stub_options.h
+++ b/include/grpc++/support/stub_options.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/support/sync_stream.h b/include/grpc++/support/sync_stream.h
index 2ea2ac5443..be742ef561 100644
--- a/include/grpc++/support/sync_stream.h
+++ b/include/grpc++/support/sync_stream.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc++/support/time.h b/include/grpc++/support/time.h
index f0b758f254..1b6fb463c4 100644
--- a/include/grpc++/support/time.h
+++ b/include/grpc++/support/time.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/byte_buffer.h b/include/grpc/byte_buffer.h
index fa1fd24df9..c3a394371d 100644
--- a/include/grpc/byte_buffer.h
+++ b/include/grpc/byte_buffer.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/byte_buffer_reader.h b/include/grpc/byte_buffer_reader.h
index 600bd3810a..9a1c6178ab 100644
--- a/include/grpc/byte_buffer_reader.h
+++ b/include/grpc/byte_buffer_reader.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/census.h b/include/grpc/census.h
index 4ccf4af5fe..39d87ba119 100644
--- a/include/grpc/census.h
+++ b/include/grpc/census.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/compression.h b/include/grpc/compression.h
index 39023ded34..8de4b133d4 100644
--- a/include/grpc/compression.h
+++ b/include/grpc/compression.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/grpc.h b/include/grpc/grpc.h
index fe0cf28b3b..8b460722e2 100644
--- a/include/grpc/grpc.h
+++ b/include/grpc/grpc.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -297,7 +297,8 @@ GRPCAPI grpc_call_error grpc_server_request_call(
Must be called before grpc_server_start.
Returns NULL on failure. */
GRPCAPI void *grpc_server_register_method(grpc_server *server,
- const char *method, const char *host);
+ const char *method, const char *host,
+ uint32_t flags);
/** Request notification of a new pre-registered call. 'cq_for_notification'
must have been registered to the server via
diff --git a/include/grpc/grpc_security.h b/include/grpc/grpc_security.h
index f2d04e551a..a36926b23e 100644
--- a/include/grpc/grpc_security.h
+++ b/include/grpc/grpc_security.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/grpc_zookeeper.h b/include/grpc/grpc_zookeeper.h
index b23bd88b43..2b195c18bf 100644
--- a/include/grpc/grpc_zookeeper.h
+++ b/include/grpc/grpc_zookeeper.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/impl/codegen/alloc.h b/include/grpc/impl/codegen/alloc.h
index 2351354433..683c755f2c 100644
--- a/include/grpc/impl/codegen/alloc.h
+++ b/include/grpc/impl/codegen/alloc.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/impl/codegen/atm.h b/include/grpc/impl/codegen/atm.h
index 35b97506ac..5376026dde 100644
--- a/include/grpc/impl/codegen/atm.h
+++ b/include/grpc/impl/codegen/atm.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/impl/codegen/atm_gcc_atomic.h b/include/grpc/impl/codegen/atm_gcc_atomic.h
index 196d2aeeb3..8caf7edbde 100644
--- a/include/grpc/impl/codegen/atm_gcc_atomic.h
+++ b/include/grpc/impl/codegen/atm_gcc_atomic.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/impl/codegen/atm_gcc_sync.h b/include/grpc/impl/codegen/atm_gcc_sync.h
index 56f755949d..915b09fb0c 100644
--- a/include/grpc/impl/codegen/atm_gcc_sync.h
+++ b/include/grpc/impl/codegen/atm_gcc_sync.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/impl/codegen/atm_win32.h b/include/grpc/impl/codegen/atm_win32.h
index 9d26462d84..7c1ccaf8e2 100644
--- a/include/grpc/impl/codegen/atm_win32.h
+++ b/include/grpc/impl/codegen/atm_win32.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/impl/codegen/byte_buffer.h b/include/grpc/impl/codegen/byte_buffer.h
index 9e96d4bdae..3ae8ac50ba 100644
--- a/include/grpc/impl/codegen/byte_buffer.h
+++ b/include/grpc/impl/codegen/byte_buffer.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/impl/codegen/grpc_types.h b/include/grpc/impl/codegen/grpc_types.h
index b11f6ffec4..b09b1cdf44 100644
--- a/include/grpc/impl/codegen/grpc_types.h
+++ b/include/grpc/impl/codegen/grpc_types.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -199,6 +199,12 @@ typedef enum grpc_call_error {
/** Mask of all valid flags. */
#define GRPC_WRITE_USED_MASK (GRPC_WRITE_BUFFER_HINT | GRPC_WRITE_NO_COMPRESS)
+/* Initial metadata flags */
+/** Signal that the call is idempotent */
+#define GRPC_INITIAL_METADATA_IDEMPOTENT_REQUEST (0x00000010u)
+/** Mask of all valid flags */
+#define GRPC_INITIAL_METADATA_USED_MASK GRPC_INITIAL_METADATA_IDEMPOTENT_REQUEST
+
/** A single metadata element */
typedef struct grpc_metadata {
const char *key;
@@ -250,6 +256,7 @@ typedef struct {
char *host;
size_t host_capacity;
gpr_timespec deadline;
+ uint32_t flags;
void *reserved;
} grpc_call_details;
diff --git a/include/grpc/impl/codegen/log.h b/include/grpc/impl/codegen/log.h
index afd8c5d4cf..0853350a26 100644
--- a/include/grpc/impl/codegen/log.h
+++ b/include/grpc/impl/codegen/log.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/impl/codegen/port_platform.h b/include/grpc/impl/codegen/port_platform.h
index ed48411817..3242f07599 100644
--- a/include/grpc/impl/codegen/port_platform.h
+++ b/include/grpc/impl/codegen/port_platform.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -134,6 +134,8 @@
#define GPR_GETPID_IN_UNISTD_H 1
#define GPR_HAVE_MSG_NOSIGNAL 1
#define GPR_HAVE_UNIX_SOCKET 1
+#define GPR_HAVE_IP_PKTINFO 1
+#define GPR_HAVE_IPV6_RECVPKTINFO 1
#elif defined(__linux__)
#define GPR_POSIX_CRASH_HANDLER 1
#define GPR_PLATFORM_STRING "linux"
@@ -156,6 +158,8 @@
#define GPR_POSIX_SOCKET 1
#define GPR_POSIX_SOCKETADDR 1
#define GPR_HAVE_UNIX_SOCKET 1
+#define GPR_HAVE_IP_PKTINFO 1
+#define GPR_HAVE_IPV6_RECVPKTINFO 1
#ifdef __GLIBC_PREREQ
#if __GLIBC_PREREQ(2, 9)
#define GPR_LINUX_EVENTFD 1
@@ -217,6 +221,7 @@
#define GPR_GETPID_IN_UNISTD_H 1
#define GPR_HAVE_SO_NOSIGPIPE 1
#define GPR_HAVE_UNIX_SOCKET 1
+#define GPR_HAVE_IP_PKTINFO 1
#ifdef _LP64
#define GPR_ARCH_64 1
#else /* _LP64 */
@@ -246,6 +251,8 @@
#define GPR_GETPID_IN_UNISTD_H 1
#define GPR_HAVE_SO_NOSIGPIPE 1
#define GPR_HAVE_UNIX_SOCKET 1
+#define GPR_HAVE_IP_PKTINFO 1
+#define GPR_HAVE_IPV6_RECVPKTINFO 1
#ifdef _LP64
#define GPR_ARCH_64 1
#else /* _LP64 */
diff --git a/include/grpc/impl/codegen/slice.h b/include/grpc/impl/codegen/slice.h
index 03c59e72a0..c684b7587d 100644
--- a/include/grpc/impl/codegen/slice.h
+++ b/include/grpc/impl/codegen/slice.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/impl/codegen/slice_buffer.h b/include/grpc/impl/codegen/slice_buffer.h
index 7191878496..8ca51baa47 100644
--- a/include/grpc/impl/codegen/slice_buffer.h
+++ b/include/grpc/impl/codegen/slice_buffer.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/impl/codegen/status.h b/include/grpc/impl/codegen/status.h
index 814bb4c92c..29e4570f7c 100644
--- a/include/grpc/impl/codegen/status.h
+++ b/include/grpc/impl/codegen/status.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/impl/codegen/sync_generic.h b/include/grpc/impl/codegen/sync_generic.h
index 71443b5794..75e85ae736 100644
--- a/include/grpc/impl/codegen/sync_generic.h
+++ b/include/grpc/impl/codegen/sync_generic.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/impl/codegen/sync_posix.h b/include/grpc/impl/codegen/sync_posix.h
index f6e0a91816..3d08cc35e8 100644
--- a/include/grpc/impl/codegen/sync_posix.h
+++ b/include/grpc/impl/codegen/sync_posix.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/impl/codegen/sync_win32.h b/include/grpc/impl/codegen/sync_win32.h
index 1a6596c571..bdc43dd99a 100644
--- a/include/grpc/impl/codegen/sync_win32.h
+++ b/include/grpc/impl/codegen/sync_win32.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/impl/codegen/time.h b/include/grpc/impl/codegen/time.h
index b4f45097c7..381e267259 100644
--- a/include/grpc/impl/codegen/time.h
+++ b/include/grpc/impl/codegen/time.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/status.h b/include/grpc/status.h
index 3889a16486..67719b5e2e 100644
--- a/include/grpc/status.h
+++ b/include/grpc/status.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/alloc.h b/include/grpc/support/alloc.h
index 649cb2ba7a..8d03af8424 100644
--- a/include/grpc/support/alloc.h
+++ b/include/grpc/support/alloc.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/atm.h b/include/grpc/support/atm.h
index 37975db8f4..a52e2fb4ef 100644
--- a/include/grpc/support/atm.h
+++ b/include/grpc/support/atm.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/atm_gcc_atomic.h b/include/grpc/support/atm_gcc_atomic.h
index 2fc8f609a5..ceda791dfc 100644
--- a/include/grpc/support/atm_gcc_atomic.h
+++ b/include/grpc/support/atm_gcc_atomic.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/atm_gcc_sync.h b/include/grpc/support/atm_gcc_sync.h
index 4a61dbd4a5..b996d4a737 100644
--- a/include/grpc/support/atm_gcc_sync.h
+++ b/include/grpc/support/atm_gcc_sync.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/atm_win32.h b/include/grpc/support/atm_win32.h
index ebb6a674a2..13526d9f3e 100644
--- a/include/grpc/support/atm_win32.h
+++ b/include/grpc/support/atm_win32.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/avl.h b/include/grpc/support/avl.h
index 2fe2d0b9d0..d71592dcbc 100644
--- a/include/grpc/support/avl.h
+++ b/include/grpc/support/avl.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/cmdline.h b/include/grpc/support/cmdline.h
index 55e2ffdffe..5b7bc82594 100644
--- a/include/grpc/support/cmdline.h
+++ b/include/grpc/support/cmdline.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/cpu.h b/include/grpc/support/cpu.h
index 3ca83b5a0d..6734feb391 100644
--- a/include/grpc/support/cpu.h
+++ b/include/grpc/support/cpu.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/histogram.h b/include/grpc/support/histogram.h
index c34c8c8407..c545038528 100644
--- a/include/grpc/support/histogram.h
+++ b/include/grpc/support/histogram.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/host_port.h b/include/grpc/support/host_port.h
index 53cc917acb..15819543a9 100644
--- a/include/grpc/support/host_port.h
+++ b/include/grpc/support/host_port.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/log.h b/include/grpc/support/log.h
index e6f6dd931c..3fdba04943 100644
--- a/include/grpc/support/log.h
+++ b/include/grpc/support/log.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/log_win32.h b/include/grpc/support/log_win32.h
index 49c9ab0f91..e5c25e06fc 100644
--- a/include/grpc/support/log_win32.h
+++ b/include/grpc/support/log_win32.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/port_platform.h b/include/grpc/support/port_platform.h
index 6b14f8b0b0..7465a0e450 100644
--- a/include/grpc/support/port_platform.h
+++ b/include/grpc/support/port_platform.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/slice.h b/include/grpc/support/slice.h
index b3a73b2c99..b45db03389 100644
--- a/include/grpc/support/slice.h
+++ b/include/grpc/support/slice.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/slice_buffer.h b/include/grpc/support/slice_buffer.h
index 7bee4dde34..cf7a89f8f1 100644
--- a/include/grpc/support/slice_buffer.h
+++ b/include/grpc/support/slice_buffer.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/string_util.h b/include/grpc/support/string_util.h
index 6fc38cb191..0abdb4a8c8 100644
--- a/include/grpc/support/string_util.h
+++ b/include/grpc/support/string_util.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/subprocess.h b/include/grpc/support/subprocess.h
index e013b706ec..2baa43ece2 100644
--- a/include/grpc/support/subprocess.h
+++ b/include/grpc/support/subprocess.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/sync.h b/include/grpc/support/sync.h
index 89cc76f784..a0145803c2 100644
--- a/include/grpc/support/sync.h
+++ b/include/grpc/support/sync.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/sync_generic.h b/include/grpc/support/sync_generic.h
index 28e3ab647b..d74b5d8e8b 100644
--- a/include/grpc/support/sync_generic.h
+++ b/include/grpc/support/sync_generic.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/sync_posix.h b/include/grpc/support/sync_posix.h
index fa0324fbfa..19aca03f06 100644
--- a/include/grpc/support/sync_posix.h
+++ b/include/grpc/support/sync_posix.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/sync_win32.h b/include/grpc/support/sync_win32.h
index bfbc99e971..5631c52974 100644
--- a/include/grpc/support/sync_win32.h
+++ b/include/grpc/support/sync_win32.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/thd.h b/include/grpc/support/thd.h
index abe57ebefb..0514288793 100644
--- a/include/grpc/support/thd.h
+++ b/include/grpc/support/thd.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/time.h b/include/grpc/support/time.h
index 2c7f8533a2..b3f2f8cd44 100644
--- a/include/grpc/support/time.h
+++ b/include/grpc/support/time.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/tls.h b/include/grpc/support/tls.h
index 0ff19bbadd..a45e1f0a4d 100644
--- a/include/grpc/support/tls.h
+++ b/include/grpc/support/tls.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/tls_gcc.h b/include/grpc/support/tls_gcc.h
index 21269e4b14..a47275f6f4 100644
--- a/include/grpc/support/tls_gcc.h
+++ b/include/grpc/support/tls_gcc.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/tls_msvc.h b/include/grpc/support/tls_msvc.h
index 751ec35f73..efc653b4e4 100644
--- a/include/grpc/support/tls_msvc.h
+++ b/include/grpc/support/tls_msvc.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/tls_pthread.h b/include/grpc/support/tls_pthread.h
index 93ba7822c3..e681da2ecd 100644
--- a/include/grpc/support/tls_pthread.h
+++ b/include/grpc/support/tls_pthread.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/include/grpc/support/useful.h b/include/grpc/support/useful.h
index a0e76da29e..003e096cf9 100644
--- a/include/grpc/support/useful.h
+++ b/include/grpc/support/useful.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/package.json b/package.json
index 37856d7cc7..24a5aa0cd5 100644
--- a/package.json
+++ b/package.json
@@ -27,6 +27,7 @@
},
"bundledDependencies": ["node-pre-gyp"],
"dependencies": {
+ "arguejs": "^0.2.3",
"lodash": "^3.9.3",
"nan": "^2.0.0",
"protobufjs": "^4.0.0"
@@ -86,21 +87,48 @@
"src/node/src/grpc_extension.js",
"src/node/src/metadata.js",
"src/node/src/server.js",
- "include/grpc/grpc_security.h",
"include/grpc/byte_buffer.h",
"include/grpc/byte_buffer_reader.h",
+ "include/grpc/census.h",
"include/grpc/compression.h",
"include/grpc/grpc.h",
- "include/grpc/status.h",
+ "include/grpc/grpc_security.h",
"include/grpc/impl/codegen/byte_buffer.h",
"include/grpc/impl/codegen/compression_types.h",
"include/grpc/impl/codegen/connectivity_state.h",
"include/grpc/impl/codegen/grpc_types.h",
"include/grpc/impl/codegen/propagation_bits.h",
"include/grpc/impl/codegen/status.h",
- "include/grpc/census.h",
- "src/core/lib/census/grpc_filter.h",
- "src/core/lib/census/grpc_plugin.h",
+ "include/grpc/status.h",
+ "src/core/ext/census/aggregation.h",
+ "src/core/ext/census/census_interface.h",
+ "src/core/ext/census/census_rpc_stats.h",
+ "src/core/ext/census/grpc_filter.h",
+ "src/core/ext/census/mlog.h",
+ "src/core/ext/census/rpc_metric_id.h",
+ "src/core/ext/lb_policy/grpclb/load_balancer_api.h",
+ "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h",
+ "src/core/ext/transport/chttp2/transport/alpn.h",
+ "src/core/ext/transport/chttp2/transport/bin_encoder.h",
+ "src/core/ext/transport/chttp2/transport/chttp2_transport.h",
+ "src/core/ext/transport/chttp2/transport/frame.h",
+ "src/core/ext/transport/chttp2/transport/frame_data.h",
+ "src/core/ext/transport/chttp2/transport/frame_goaway.h",
+ "src/core/ext/transport/chttp2/transport/frame_ping.h",
+ "src/core/ext/transport/chttp2/transport/frame_rst_stream.h",
+ "src/core/ext/transport/chttp2/transport/frame_settings.h",
+ "src/core/ext/transport/chttp2/transport/frame_window_update.h",
+ "src/core/ext/transport/chttp2/transport/hpack_encoder.h",
+ "src/core/ext/transport/chttp2/transport/hpack_parser.h",
+ "src/core/ext/transport/chttp2/transport/hpack_table.h",
+ "src/core/ext/transport/chttp2/transport/http2_errors.h",
+ "src/core/ext/transport/chttp2/transport/huffsyms.h",
+ "src/core/ext/transport/chttp2/transport/incoming_metadata.h",
+ "src/core/ext/transport/chttp2/transport/internal.h",
+ "src/core/ext/transport/chttp2/transport/status_conversion.h",
+ "src/core/ext/transport/chttp2/transport/stream_map.h",
+ "src/core/ext/transport/chttp2/transport/timeout_encoding.h",
+ "src/core/ext/transport/chttp2/transport/varint.h",
"src/core/lib/channel/channel_args.h",
"src/core/lib/channel/channel_stack.h",
"src/core/lib/channel/channel_stack_builder.h",
@@ -114,17 +142,12 @@
"src/core/lib/client_config/client_config.h",
"src/core/lib/client_config/connector.h",
"src/core/lib/client_config/initial_connect_string.h",
- "src/core/lib/client_config/lb_policies/load_balancer_api.h",
- "src/core/lib/client_config/lb_policies/pick_first.h",
- "src/core/lib/client_config/lb_policies/round_robin.h",
"src/core/lib/client_config/lb_policy.h",
"src/core/lib/client_config/lb_policy_factory.h",
"src/core/lib/client_config/lb_policy_registry.h",
"src/core/lib/client_config/resolver.h",
"src/core/lib/client_config/resolver_factory.h",
"src/core/lib/client_config/resolver_registry.h",
- "src/core/lib/client_config/resolvers/dns_resolver.h",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.h",
"src/core/lib/client_config/subchannel.h",
"src/core/lib/client_config/subchannel_factory.h",
"src/core/lib/client_config/subchannel_index.h",
@@ -138,17 +161,16 @@
"src/core/lib/iomgr/closure.h",
"src/core/lib/iomgr/endpoint.h",
"src/core/lib/iomgr/endpoint_pair.h",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.h",
+ "src/core/lib/iomgr/ev_posix.h",
"src/core/lib/iomgr/exec_ctx.h",
"src/core/lib/iomgr/executor.h",
- "src/core/lib/iomgr/fd_posix.h",
"src/core/lib/iomgr/iocp_windows.h",
"src/core/lib/iomgr/iomgr.h",
"src/core/lib/iomgr/iomgr_internal.h",
"src/core/lib/iomgr/iomgr_posix.h",
"src/core/lib/iomgr/pollset.h",
- "src/core/lib/iomgr/pollset_posix.h",
"src/core/lib/iomgr/pollset_set.h",
- "src/core/lib/iomgr/pollset_set_posix.h",
"src/core/lib/iomgr/pollset_set_windows.h",
"src/core/lib/iomgr/pollset_windows.h",
"src/core/lib/iomgr/resolve_address.h",
@@ -176,9 +198,15 @@
"src/core/lib/json/json_common.h",
"src/core/lib/json/json_reader.h",
"src/core/lib/json/json_writer.h",
- "src/core/lib/proto/grpc/lb/v0/load_balancer.pb.h",
- "src/core/lib/statistics/census_interface.h",
- "src/core/lib/statistics/census_rpc_stats.h",
+ "src/core/lib/security/auth_filters.h",
+ "src/core/lib/security/b64.h",
+ "src/core/lib/security/credentials.h",
+ "src/core/lib/security/handshake.h",
+ "src/core/lib/security/json_token.h",
+ "src/core/lib/security/jwt_verifier.h",
+ "src/core/lib/security/secure_endpoint.h",
+ "src/core/lib/security/security_connector.h",
+ "src/core/lib/security/security_context.h",
"src/core/lib/surface/api_trace.h",
"src/core/lib/surface/call.h",
"src/core/lib/surface/call_test_only.h",
@@ -192,57 +220,61 @@
"src/core/lib/surface/server.h",
"src/core/lib/surface/surface_trace.h",
"src/core/lib/transport/byte_stream.h",
- "src/core/lib/transport/chttp2/alpn.h",
- "src/core/lib/transport/chttp2/bin_encoder.h",
- "src/core/lib/transport/chttp2/frame.h",
- "src/core/lib/transport/chttp2/frame_data.h",
- "src/core/lib/transport/chttp2/frame_goaway.h",
- "src/core/lib/transport/chttp2/frame_ping.h",
- "src/core/lib/transport/chttp2/frame_rst_stream.h",
- "src/core/lib/transport/chttp2/frame_settings.h",
- "src/core/lib/transport/chttp2/frame_window_update.h",
- "src/core/lib/transport/chttp2/hpack_encoder.h",
- "src/core/lib/transport/chttp2/hpack_parser.h",
- "src/core/lib/transport/chttp2/hpack_table.h",
- "src/core/lib/transport/chttp2/http2_errors.h",
- "src/core/lib/transport/chttp2/huffsyms.h",
- "src/core/lib/transport/chttp2/incoming_metadata.h",
- "src/core/lib/transport/chttp2/internal.h",
- "src/core/lib/transport/chttp2/status_conversion.h",
- "src/core/lib/transport/chttp2/stream_map.h",
- "src/core/lib/transport/chttp2/timeout_encoding.h",
- "src/core/lib/transport/chttp2/varint.h",
- "src/core/lib/transport/chttp2_transport.h",
"src/core/lib/transport/connectivity_state.h",
"src/core/lib/transport/metadata.h",
"src/core/lib/transport/metadata_batch.h",
"src/core/lib/transport/static_metadata.h",
"src/core/lib/transport/transport.h",
"src/core/lib/transport/transport_impl.h",
- "src/core/lib/security/auth_filters.h",
- "src/core/lib/security/b64.h",
- "src/core/lib/security/credentials.h",
- "src/core/lib/security/handshake.h",
- "src/core/lib/security/json_token.h",
- "src/core/lib/security/jwt_verifier.h",
- "src/core/lib/security/secure_endpoint.h",
- "src/core/lib/security/security_connector.h",
- "src/core/lib/security/security_context.h",
"src/core/lib/tsi/fake_transport_security.h",
"src/core/lib/tsi/ssl_transport_security.h",
"src/core/lib/tsi/ssl_types.h",
"src/core/lib/tsi/transport_security.h",
"src/core/lib/tsi/transport_security_interface.h",
- "src/core/lib/census/aggregation.h",
- "src/core/lib/census/mlog.h",
- "src/core/lib/census/rpc_metric_id.h",
"third_party/nanopb/pb.h",
"third_party/nanopb/pb_common.h",
"third_party/nanopb/pb_decode.h",
"third_party/nanopb/pb_encode.h",
- "src/core/lib/census/grpc_context.c",
- "src/core/lib/census/grpc_filter.c",
- "src/core/lib/census/grpc_plugin.c",
+ "src/core/ext/census/context.c",
+ "src/core/ext/census/grpc_context.c",
+ "src/core/ext/census/grpc_filter.c",
+ "src/core/ext/census/grpc_plugin.c",
+ "src/core/ext/census/initialize.c",
+ "src/core/ext/census/mlog.c",
+ "src/core/ext/census/operation.c",
+ "src/core/ext/census/placeholders.c",
+ "src/core/ext/census/tracing.c",
+ "src/core/ext/lb_policy/grpclb/load_balancer_api.c",
+ "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c",
+ "src/core/ext/lb_policy/pick_first/pick_first.c",
+ "src/core/ext/lb_policy/round_robin/round_robin.c",
+ "src/core/ext/resolver/dns/native/dns_resolver.c",
+ "src/core/ext/resolver/sockaddr/sockaddr_resolver.c",
+ "src/core/ext/transport/chttp2/client/insecure/channel_create.c",
+ "src/core/ext/transport/chttp2/client/secure/secure_channel_create.c",
+ "src/core/ext/transport/chttp2/server/insecure/server_chttp2.c",
+ "src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c",
+ "src/core/ext/transport/chttp2/transport/alpn.c",
+ "src/core/ext/transport/chttp2/transport/bin_encoder.c",
+ "src/core/ext/transport/chttp2/transport/chttp2_transport.c",
+ "src/core/ext/transport/chttp2/transport/frame_data.c",
+ "src/core/ext/transport/chttp2/transport/frame_goaway.c",
+ "src/core/ext/transport/chttp2/transport/frame_ping.c",
+ "src/core/ext/transport/chttp2/transport/frame_rst_stream.c",
+ "src/core/ext/transport/chttp2/transport/frame_settings.c",
+ "src/core/ext/transport/chttp2/transport/frame_window_update.c",
+ "src/core/ext/transport/chttp2/transport/hpack_encoder.c",
+ "src/core/ext/transport/chttp2/transport/hpack_parser.c",
+ "src/core/ext/transport/chttp2/transport/hpack_table.c",
+ "src/core/ext/transport/chttp2/transport/huffsyms.c",
+ "src/core/ext/transport/chttp2/transport/incoming_metadata.c",
+ "src/core/ext/transport/chttp2/transport/parsing.c",
+ "src/core/ext/transport/chttp2/transport/status_conversion.c",
+ "src/core/ext/transport/chttp2/transport/stream_lists.c",
+ "src/core/ext/transport/chttp2/transport/stream_map.c",
+ "src/core/ext/transport/chttp2/transport/timeout_encoding.c",
+ "src/core/ext/transport/chttp2/transport/varint.c",
+ "src/core/ext/transport/chttp2/transport/writing.c",
"src/core/lib/channel/channel_args.c",
"src/core/lib/channel/channel_stack.c",
"src/core/lib/channel/channel_stack_builder.c",
@@ -256,17 +288,12 @@
"src/core/lib/client_config/connector.c",
"src/core/lib/client_config/default_initial_connect_string.c",
"src/core/lib/client_config/initial_connect_string.c",
- "src/core/lib/client_config/lb_policies/load_balancer_api.c",
- "src/core/lib/client_config/lb_policies/pick_first.c",
- "src/core/lib/client_config/lb_policies/round_robin.c",
"src/core/lib/client_config/lb_policy.c",
"src/core/lib/client_config/lb_policy_factory.c",
"src/core/lib/client_config/lb_policy_registry.c",
"src/core/lib/client_config/resolver.c",
"src/core/lib/client_config/resolver_factory.c",
"src/core/lib/client_config/resolver_registry.c",
- "src/core/lib/client_config/resolvers/dns_resolver.c",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.c",
"src/core/lib/client_config/subchannel.c",
"src/core/lib/client_config/subchannel_factory.c",
"src/core/lib/client_config/subchannel_index.c",
@@ -276,22 +303,20 @@
"src/core/lib/debug/trace.c",
"src/core/lib/http/format_request.c",
"src/core/lib/http/httpcli.c",
+ "src/core/lib/http/httpcli_security_connector.c",
"src/core/lib/http/parser.c",
"src/core/lib/iomgr/closure.c",
"src/core/lib/iomgr/endpoint.c",
"src/core/lib/iomgr/endpoint_pair_posix.c",
"src/core/lib/iomgr/endpoint_pair_windows.c",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.c",
+ "src/core/lib/iomgr/ev_posix.c",
"src/core/lib/iomgr/exec_ctx.c",
"src/core/lib/iomgr/executor.c",
- "src/core/lib/iomgr/fd_posix.c",
"src/core/lib/iomgr/iocp_windows.c",
"src/core/lib/iomgr/iomgr.c",
"src/core/lib/iomgr/iomgr_posix.c",
"src/core/lib/iomgr/iomgr_windows.c",
- "src/core/lib/iomgr/pollset_multipoller_with_epoll.c",
- "src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c",
- "src/core/lib/iomgr/pollset_posix.c",
- "src/core/lib/iomgr/pollset_set_posix.c",
"src/core/lib/iomgr/pollset_set_windows.c",
"src/core/lib/iomgr/pollset_windows.c",
"src/core/lib/iomgr/resolve_address_posix.c",
@@ -323,7 +348,20 @@
"src/core/lib/json/json_reader.c",
"src/core/lib/json/json_string.c",
"src/core/lib/json/json_writer.c",
- "src/core/lib/proto/grpc/lb/v0/load_balancer.pb.c",
+ "src/core/lib/security/b64.c",
+ "src/core/lib/security/client_auth_filter.c",
+ "src/core/lib/security/credentials.c",
+ "src/core/lib/security/credentials_metadata.c",
+ "src/core/lib/security/credentials_posix.c",
+ "src/core/lib/security/credentials_win32.c",
+ "src/core/lib/security/google_default_credentials.c",
+ "src/core/lib/security/handshake.c",
+ "src/core/lib/security/json_token.c",
+ "src/core/lib/security/jwt_verifier.c",
+ "src/core/lib/security/secure_endpoint.c",
+ "src/core/lib/security/security_connector.c",
+ "src/core/lib/security/security_context.c",
+ "src/core/lib/security/server_auth_filter.c",
"src/core/lib/surface/alarm.c",
"src/core/lib/surface/api_trace.c",
"src/core/lib/surface/byte_buffer.c",
@@ -333,74 +371,29 @@
"src/core/lib/surface/call_log_batch.c",
"src/core/lib/surface/channel.c",
"src/core/lib/surface/channel_connectivity.c",
- "src/core/lib/surface/channel_create.c",
"src/core/lib/surface/channel_init.c",
"src/core/lib/surface/channel_ping.c",
"src/core/lib/surface/channel_stack_type.c",
"src/core/lib/surface/completion_queue.c",
"src/core/lib/surface/event_string.c",
"src/core/lib/surface/init.c",
+ "src/core/lib/surface/init_secure.c",
"src/core/lib/surface/lame_client.c",
"src/core/lib/surface/metadata_array.c",
"src/core/lib/surface/server.c",
- "src/core/lib/surface/server_chttp2.c",
"src/core/lib/surface/validate_metadata.c",
"src/core/lib/surface/version.c",
"src/core/lib/transport/byte_stream.c",
- "src/core/lib/transport/chttp2/alpn.c",
- "src/core/lib/transport/chttp2/bin_encoder.c",
- "src/core/lib/transport/chttp2/frame_data.c",
- "src/core/lib/transport/chttp2/frame_goaway.c",
- "src/core/lib/transport/chttp2/frame_ping.c",
- "src/core/lib/transport/chttp2/frame_rst_stream.c",
- "src/core/lib/transport/chttp2/frame_settings.c",
- "src/core/lib/transport/chttp2/frame_window_update.c",
- "src/core/lib/transport/chttp2/hpack_encoder.c",
- "src/core/lib/transport/chttp2/hpack_parser.c",
- "src/core/lib/transport/chttp2/hpack_table.c",
- "src/core/lib/transport/chttp2/huffsyms.c",
- "src/core/lib/transport/chttp2/incoming_metadata.c",
- "src/core/lib/transport/chttp2/parsing.c",
- "src/core/lib/transport/chttp2/status_conversion.c",
- "src/core/lib/transport/chttp2/stream_lists.c",
- "src/core/lib/transport/chttp2/stream_map.c",
- "src/core/lib/transport/chttp2/timeout_encoding.c",
- "src/core/lib/transport/chttp2/varint.c",
- "src/core/lib/transport/chttp2/writing.c",
- "src/core/lib/transport/chttp2_transport.c",
"src/core/lib/transport/connectivity_state.c",
"src/core/lib/transport/metadata.c",
"src/core/lib/transport/metadata_batch.c",
"src/core/lib/transport/static_metadata.c",
"src/core/lib/transport/transport.c",
"src/core/lib/transport/transport_op_string.c",
- "src/core/lib/http/httpcli_security_connector.c",
- "src/core/lib/security/b64.c",
- "src/core/lib/security/client_auth_filter.c",
- "src/core/lib/security/credentials.c",
- "src/core/lib/security/credentials_metadata.c",
- "src/core/lib/security/credentials_posix.c",
- "src/core/lib/security/credentials_win32.c",
- "src/core/lib/security/google_default_credentials.c",
- "src/core/lib/security/handshake.c",
- "src/core/lib/security/json_token.c",
- "src/core/lib/security/jwt_verifier.c",
- "src/core/lib/security/secure_endpoint.c",
- "src/core/lib/security/security_connector.c",
- "src/core/lib/security/security_context.c",
- "src/core/lib/security/server_auth_filter.c",
- "src/core/lib/security/server_secure_chttp2.c",
- "src/core/lib/surface/init_secure.c",
- "src/core/lib/surface/secure_channel_create.c",
"src/core/lib/tsi/fake_transport_security.c",
"src/core/lib/tsi/ssl_transport_security.c",
"src/core/lib/tsi/transport_security.c",
- "src/core/lib/census/context.c",
- "src/core/lib/census/initialize.c",
- "src/core/lib/census/mlog.c",
- "src/core/lib/census/operation.c",
- "src/core/lib/census/placeholders.c",
- "src/core/lib/census/tracing.c",
+ "src/core/plugin_registry/grpc_plugin_registry.c",
"third_party/nanopb/pb_common.c",
"third_party/nanopb/pb_decode.c",
"third_party/nanopb/pb_encode.c",
@@ -831,6 +824,20 @@
"third_party/boringssl/ssl/t1_enc.c",
"third_party/boringssl/ssl/t1_lib.c",
"third_party/boringssl/ssl/tls_record.c",
+ "include/grpc/impl/codegen/alloc.h",
+ "include/grpc/impl/codegen/atm.h",
+ "include/grpc/impl/codegen/atm_gcc_atomic.h",
+ "include/grpc/impl/codegen/atm_gcc_sync.h",
+ "include/grpc/impl/codegen/atm_win32.h",
+ "include/grpc/impl/codegen/log.h",
+ "include/grpc/impl/codegen/port_platform.h",
+ "include/grpc/impl/codegen/slice.h",
+ "include/grpc/impl/codegen/slice_buffer.h",
+ "include/grpc/impl/codegen/sync.h",
+ "include/grpc/impl/codegen/sync_generic.h",
+ "include/grpc/impl/codegen/sync_posix.h",
+ "include/grpc/impl/codegen/sync_win32.h",
+ "include/grpc/impl/codegen/time.h",
"include/grpc/support/alloc.h",
"include/grpc/support/atm.h",
"include/grpc/support/atm_gcc_atomic.h",
@@ -859,20 +866,6 @@
"include/grpc/support/tls_msvc.h",
"include/grpc/support/tls_pthread.h",
"include/grpc/support/useful.h",
- "include/grpc/impl/codegen/alloc.h",
- "include/grpc/impl/codegen/atm.h",
- "include/grpc/impl/codegen/atm_gcc_atomic.h",
- "include/grpc/impl/codegen/atm_gcc_sync.h",
- "include/grpc/impl/codegen/atm_win32.h",
- "include/grpc/impl/codegen/log.h",
- "include/grpc/impl/codegen/port_platform.h",
- "include/grpc/impl/codegen/slice.h",
- "include/grpc/impl/codegen/slice_buffer.h",
- "include/grpc/impl/codegen/sync.h",
- "include/grpc/impl/codegen/sync_generic.h",
- "include/grpc/impl/codegen/sync_posix.h",
- "include/grpc/impl/codegen/sync_win32.h",
- "include/grpc/impl/codegen/time.h",
"src/core/lib/profiling/timers.h",
"src/core/lib/support/backoff.h",
"src/core/lib/support/block_annotate.h",
diff --git a/package.xml b/package.xml
index bb969d115c..0bb34d9487 100644
--- a/package.xml
+++ b/package.xml
@@ -50,6 +50,20 @@
<file baseinstalldir="/" name="src/php/ext/grpc/server.h" role="src" />
<file baseinstalldir="/" name="src/php/ext/grpc/server_credentials.h" role="src" />
<file baseinstalldir="/" name="src/php/ext/grpc/timeval.h" role="src" />
+ <file baseinstalldir="/" name="include/grpc/impl/codegen/alloc.h" role="src" />
+ <file baseinstalldir="/" name="include/grpc/impl/codegen/atm.h" role="src" />
+ <file baseinstalldir="/" name="include/grpc/impl/codegen/atm_gcc_atomic.h" role="src" />
+ <file baseinstalldir="/" name="include/grpc/impl/codegen/atm_gcc_sync.h" role="src" />
+ <file baseinstalldir="/" name="include/grpc/impl/codegen/atm_win32.h" role="src" />
+ <file baseinstalldir="/" name="include/grpc/impl/codegen/log.h" role="src" />
+ <file baseinstalldir="/" name="include/grpc/impl/codegen/port_platform.h" role="src" />
+ <file baseinstalldir="/" name="include/grpc/impl/codegen/slice.h" role="src" />
+ <file baseinstalldir="/" name="include/grpc/impl/codegen/slice_buffer.h" role="src" />
+ <file baseinstalldir="/" name="include/grpc/impl/codegen/sync.h" role="src" />
+ <file baseinstalldir="/" name="include/grpc/impl/codegen/sync_generic.h" role="src" />
+ <file baseinstalldir="/" name="include/grpc/impl/codegen/sync_posix.h" role="src" />
+ <file baseinstalldir="/" name="include/grpc/impl/codegen/sync_win32.h" role="src" />
+ <file baseinstalldir="/" name="include/grpc/impl/codegen/time.h" role="src" />
<file baseinstalldir="/" name="include/grpc/support/alloc.h" role="src" />
<file baseinstalldir="/" name="include/grpc/support/atm.h" role="src" />
<file baseinstalldir="/" name="include/grpc/support/atm_gcc_atomic.h" role="src" />
@@ -78,20 +92,6 @@
<file baseinstalldir="/" name="include/grpc/support/tls_msvc.h" role="src" />
<file baseinstalldir="/" name="include/grpc/support/tls_pthread.h" role="src" />
<file baseinstalldir="/" name="include/grpc/support/useful.h" role="src" />
- <file baseinstalldir="/" name="include/grpc/impl/codegen/alloc.h" role="src" />
- <file baseinstalldir="/" name="include/grpc/impl/codegen/atm.h" role="src" />
- <file baseinstalldir="/" name="include/grpc/impl/codegen/atm_gcc_atomic.h" role="src" />
- <file baseinstalldir="/" name="include/grpc/impl/codegen/atm_gcc_sync.h" role="src" />
- <file baseinstalldir="/" name="include/grpc/impl/codegen/atm_win32.h" role="src" />
- <file baseinstalldir="/" name="include/grpc/impl/codegen/log.h" role="src" />
- <file baseinstalldir="/" name="include/grpc/impl/codegen/port_platform.h" role="src" />
- <file baseinstalldir="/" name="include/grpc/impl/codegen/slice.h" role="src" />
- <file baseinstalldir="/" name="include/grpc/impl/codegen/slice_buffer.h" role="src" />
- <file baseinstalldir="/" name="include/grpc/impl/codegen/sync.h" role="src" />
- <file baseinstalldir="/" name="include/grpc/impl/codegen/sync_generic.h" role="src" />
- <file baseinstalldir="/" name="include/grpc/impl/codegen/sync_posix.h" role="src" />
- <file baseinstalldir="/" name="include/grpc/impl/codegen/sync_win32.h" role="src" />
- <file baseinstalldir="/" name="include/grpc/impl/codegen/time.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/profiling/timers.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/support/backoff.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/support/block_annotate.h" role="src" />
@@ -148,21 +148,48 @@
<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" />
- <file baseinstalldir="/" name="include/grpc/grpc_security.h" role="src" />
<file baseinstalldir="/" name="include/grpc/byte_buffer.h" role="src" />
<file baseinstalldir="/" name="include/grpc/byte_buffer_reader.h" role="src" />
+ <file baseinstalldir="/" name="include/grpc/census.h" role="src" />
<file baseinstalldir="/" name="include/grpc/compression.h" role="src" />
<file baseinstalldir="/" name="include/grpc/grpc.h" role="src" />
- <file baseinstalldir="/" name="include/grpc/status.h" role="src" />
+ <file baseinstalldir="/" name="include/grpc/grpc_security.h" role="src" />
<file baseinstalldir="/" name="include/grpc/impl/codegen/byte_buffer.h" role="src" />
<file baseinstalldir="/" name="include/grpc/impl/codegen/compression_types.h" role="src" />
<file baseinstalldir="/" name="include/grpc/impl/codegen/connectivity_state.h" role="src" />
<file baseinstalldir="/" name="include/grpc/impl/codegen/grpc_types.h" role="src" />
<file baseinstalldir="/" name="include/grpc/impl/codegen/propagation_bits.h" role="src" />
<file baseinstalldir="/" name="include/grpc/impl/codegen/status.h" role="src" />
- <file baseinstalldir="/" name="include/grpc/census.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/grpc_filter.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/grpc_plugin.h" role="src" />
+ <file baseinstalldir="/" name="include/grpc/status.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/aggregation.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/census_interface.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/census_rpc_stats.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/grpc_filter.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/mlog.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/rpc_metric_id.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/lb_policy/grpclb/load_balancer_api.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/alpn.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/bin_encoder.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/chttp2_transport.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/frame.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/frame_data.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/frame_goaway.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/frame_ping.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/frame_rst_stream.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/frame_settings.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/frame_window_update.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/hpack_encoder.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/hpack_parser.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/hpack_table.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/http2_errors.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/huffsyms.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/incoming_metadata.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/internal.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/status_conversion.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/stream_map.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/timeout_encoding.h" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/varint.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/channel/channel_args.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/channel/channel_stack.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/channel/channel_stack_builder.h" role="src" />
@@ -176,17 +203,12 @@
<file baseinstalldir="/" name="src/core/lib/client_config/client_config.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/connector.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/initial_connect_string.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/client_config/lb_policies/load_balancer_api.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/client_config/lb_policies/pick_first.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/client_config/lb_policies/round_robin.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/lb_policy.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/lb_policy_factory.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/lb_policy_registry.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/resolver.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/resolver_factory.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/resolver_registry.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/client_config/resolvers/dns_resolver.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/client_config/resolvers/sockaddr_resolver.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/subchannel.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/subchannel_factory.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/subchannel_index.h" role="src" />
@@ -200,17 +222,16 @@
<file baseinstalldir="/" name="src/core/lib/iomgr/closure.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/endpoint.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/endpoint_pair.h" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/iomgr/ev_poll_and_epoll_posix.h" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/iomgr/ev_posix.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/exec_ctx.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/executor.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/iomgr/fd_posix.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/iocp_windows.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/iomgr.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/iomgr_internal.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/iomgr_posix.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/pollset.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/iomgr/pollset_posix.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/pollset_set.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/iomgr/pollset_set_posix.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/pollset_set_windows.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/pollset_windows.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/resolve_address.h" role="src" />
@@ -238,9 +259,15 @@
<file baseinstalldir="/" name="src/core/lib/json/json_common.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/json/json_reader.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/json/json_writer.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/proto/grpc/lb/v0/load_balancer.pb.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/statistics/census_interface.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/statistics/census_rpc_stats.h" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/security/auth_filters.h" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/security/b64.h" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/security/credentials.h" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/security/handshake.h" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/security/json_token.h" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/security/jwt_verifier.h" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/security/secure_endpoint.h" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/security/security_connector.h" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/security/security_context.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/surface/api_trace.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/surface/call.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/surface/call_test_only.h" role="src" />
@@ -254,57 +281,61 @@
<file baseinstalldir="/" name="src/core/lib/surface/server.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/surface/surface_trace.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/transport/byte_stream.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/alpn.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/bin_encoder.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/frame.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/frame_data.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/frame_goaway.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/frame_ping.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/frame_rst_stream.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/frame_settings.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/frame_window_update.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/hpack_encoder.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/hpack_parser.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/hpack_table.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/http2_errors.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/huffsyms.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/incoming_metadata.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/internal.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/status_conversion.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/stream_map.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/timeout_encoding.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/varint.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2_transport.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/transport/connectivity_state.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/transport/metadata.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/transport/metadata_batch.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/transport/static_metadata.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/transport/transport.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/transport/transport_impl.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/security/auth_filters.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/security/b64.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/security/credentials.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/security/handshake.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/security/json_token.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/security/jwt_verifier.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/security/secure_endpoint.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/security/security_connector.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/security/security_context.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/tsi/fake_transport_security.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/tsi/ssl_transport_security.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/tsi/ssl_types.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/tsi/transport_security.h" role="src" />
<file baseinstalldir="/" name="src/core/lib/tsi/transport_security_interface.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/aggregation.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/mlog.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/rpc_metric_id.h" role="src" />
<file baseinstalldir="/" name="third_party/nanopb/pb.h" role="src" />
<file baseinstalldir="/" name="third_party/nanopb/pb_common.h" role="src" />
<file baseinstalldir="/" name="third_party/nanopb/pb_decode.h" role="src" />
<file baseinstalldir="/" name="third_party/nanopb/pb_encode.h" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/grpc_context.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/grpc_filter.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/grpc_plugin.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/context.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/grpc_context.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/grpc_filter.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/grpc_plugin.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/initialize.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/mlog.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/operation.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/placeholders.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/census/tracing.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/lb_policy/grpclb/load_balancer_api.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/lb_policy/pick_first/pick_first.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/lb_policy/round_robin/round_robin.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/resolver/dns/native/dns_resolver.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/resolver/sockaddr/sockaddr_resolver.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/client/insecure/channel_create.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/client/secure/secure_channel_create.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/server/insecure/server_chttp2.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/alpn.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/bin_encoder.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/chttp2_transport.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/frame_data.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/frame_goaway.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/frame_ping.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/frame_rst_stream.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/frame_settings.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/frame_window_update.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/hpack_encoder.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/hpack_parser.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/hpack_table.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/huffsyms.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/incoming_metadata.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/parsing.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/status_conversion.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/stream_lists.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/stream_map.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/timeout_encoding.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/varint.c" role="src" />
+ <file baseinstalldir="/" name="src/core/ext/transport/chttp2/transport/writing.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/channel/channel_args.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/channel/channel_stack.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/channel/channel_stack_builder.c" role="src" />
@@ -318,17 +349,12 @@
<file baseinstalldir="/" name="src/core/lib/client_config/connector.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/default_initial_connect_string.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/initial_connect_string.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/client_config/lb_policies/load_balancer_api.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/client_config/lb_policies/pick_first.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/client_config/lb_policies/round_robin.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/lb_policy.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/lb_policy_factory.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/lb_policy_registry.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/resolver.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/resolver_factory.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/resolver_registry.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/client_config/resolvers/dns_resolver.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/client_config/resolvers/sockaddr_resolver.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/subchannel.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/subchannel_factory.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/client_config/subchannel_index.c" role="src" />
@@ -338,22 +364,20 @@
<file baseinstalldir="/" name="src/core/lib/debug/trace.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/http/format_request.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/http/httpcli.c" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/http/httpcli_security_connector.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/http/parser.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/closure.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/endpoint.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/endpoint_pair_posix.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/endpoint_pair_windows.c" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/iomgr/ev_poll_and_epoll_posix.c" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/iomgr/ev_posix.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/exec_ctx.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/executor.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/iomgr/fd_posix.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/iocp_windows.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/iomgr.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/iomgr_posix.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/iomgr_windows.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/iomgr/pollset_multipoller_with_epoll.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/iomgr/pollset_posix.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/iomgr/pollset_set_posix.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/pollset_set_windows.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/pollset_windows.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/iomgr/resolve_address_posix.c" role="src" />
@@ -385,7 +409,20 @@
<file baseinstalldir="/" name="src/core/lib/json/json_reader.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/json/json_string.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/json/json_writer.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/proto/grpc/lb/v0/load_balancer.pb.c" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/security/b64.c" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/security/client_auth_filter.c" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/security/credentials.c" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/security/credentials_metadata.c" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/security/credentials_posix.c" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/security/credentials_win32.c" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/security/google_default_credentials.c" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/security/handshake.c" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/security/json_token.c" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/security/jwt_verifier.c" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/security/secure_endpoint.c" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/security/security_connector.c" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/security/security_context.c" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/security/server_auth_filter.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/surface/alarm.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/surface/api_trace.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/surface/byte_buffer.c" role="src" />
@@ -395,74 +432,29 @@
<file baseinstalldir="/" name="src/core/lib/surface/call_log_batch.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/surface/channel.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/surface/channel_connectivity.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/surface/channel_create.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/surface/channel_init.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/surface/channel_ping.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/surface/channel_stack_type.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/surface/completion_queue.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/surface/event_string.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/surface/init.c" role="src" />
+ <file baseinstalldir="/" name="src/core/lib/surface/init_secure.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/surface/lame_client.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/surface/metadata_array.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/surface/server.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/surface/server_chttp2.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/surface/validate_metadata.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/surface/version.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/transport/byte_stream.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/alpn.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/bin_encoder.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/frame_data.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/frame_goaway.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/frame_ping.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/frame_rst_stream.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/frame_settings.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/frame_window_update.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/hpack_encoder.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/hpack_parser.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/hpack_table.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/huffsyms.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/incoming_metadata.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/parsing.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/status_conversion.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/stream_lists.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/stream_map.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/timeout_encoding.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/varint.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2/writing.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/transport/chttp2_transport.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/transport/connectivity_state.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/transport/metadata.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/transport/metadata_batch.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/transport/static_metadata.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/transport/transport.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/transport/transport_op_string.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/http/httpcli_security_connector.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/security/b64.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/security/client_auth_filter.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/security/credentials.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/security/credentials_metadata.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/security/credentials_posix.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/security/credentials_win32.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/security/google_default_credentials.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/security/handshake.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/security/json_token.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/security/jwt_verifier.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/security/secure_endpoint.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/security/security_connector.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/security/security_context.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/security/server_auth_filter.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/security/server_secure_chttp2.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/surface/init_secure.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/surface/secure_channel_create.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/tsi/fake_transport_security.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/tsi/ssl_transport_security.c" role="src" />
<file baseinstalldir="/" name="src/core/lib/tsi/transport_security.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/context.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/initialize.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/mlog.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/operation.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/placeholders.c" role="src" />
- <file baseinstalldir="/" name="src/core/lib/census/tracing.c" role="src" />
+ <file baseinstalldir="/" name="src/core/plugin_registry/grpc_plugin_registry.c" role="src" />
<file baseinstalldir="/" name="third_party/nanopb/pb_common.c" role="src" />
<file baseinstalldir="/" name="third_party/nanopb/pb_decode.c" role="src" />
<file baseinstalldir="/" name="third_party/nanopb/pb_encode.c" role="src" />
diff --git a/setup.py b/setup.py
index 9634de0f83..cd0d3a1a51 100644
--- a/setup.py
+++ b/setup.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/boringssl/gen_build_yaml.py b/src/boringssl/gen_build_yaml.py
index 3a7116b181..20f6413adf 100755
--- a/src/boringssl/gen_build_yaml.py
+++ b/src/boringssl/gen_build_yaml.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python2.7
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/compiler/cpp_generator.cc b/src/compiler/cpp_generator.cc
index 206a6e1fe5..08b1123a51 100644
--- a/src/compiler/cpp_generator.cc
+++ b/src/compiler/cpp_generator.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/compiler/cpp_generator.h b/src/compiler/cpp_generator.h
index 4f9de9d11a..03621c8794 100644
--- a/src/compiler/cpp_generator.h
+++ b/src/compiler/cpp_generator.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/compiler/cpp_plugin.cc b/src/compiler/cpp_plugin.cc
index d8ada4835c..92a9ba7549 100644
--- a/src/compiler/cpp_plugin.cc
+++ b/src/compiler/cpp_plugin.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/compiler/csharp_generator.cc b/src/compiler/csharp_generator.cc
index f6079bdc05..5a8746df8d 100644
--- a/src/compiler/csharp_generator.cc
+++ b/src/compiler/csharp_generator.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/compiler/python_generator.cc b/src/compiler/python_generator.cc
index 5a2ecce1d4..02c032800b 100644
--- a/src/compiler/python_generator.cc
+++ b/src/compiler/python_generator.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/compiler/python_generator.h b/src/compiler/python_generator.h
index 68da18f9ba..e56b6790ef 100644
--- a/src/compiler/python_generator.h
+++ b/src/compiler/python_generator.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/compiler/python_plugin.cc b/src/compiler/python_plugin.cc
index d781ddbee5..92a07b2f80 100644
--- a/src/compiler/python_plugin.cc
+++ b/src/compiler/python_plugin.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/census/README.md b/src/core/ext/census/README.md
index fb615a2194..fb615a2194 100644
--- a/src/core/lib/census/README.md
+++ b/src/core/ext/census/README.md
diff --git a/src/core/lib/census/aggregation.h b/src/core/ext/census/aggregation.h
index f353368b97..45f789c772 100644
--- a/src/core/lib/census/aggregation.h
+++ b/src/core/ext/census/aggregation.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -33,8 +33,8 @@
#include <stddef.h>
-#ifndef GRPC_CORE_LIB_CENSUS_AGGREGATION_H
-#define GRPC_CORE_LIB_CENSUS_AGGREGATION_H
+#ifndef GRPC_CORE_EXT_CENSUS_AGGREGATION_H
+#define GRPC_CORE_EXT_CENSUS_AGGREGATION_H
/** Structure used to describe an aggregation type. */
struct census_aggregation_ops {
@@ -63,4 +63,4 @@ struct census_aggregation_ops {
size_t (*print)(const void *aggregation, char *buffer, size_t n);
};
-#endif /* GRPC_CORE_LIB_CENSUS_AGGREGATION_H */
+#endif /* GRPC_CORE_EXT_CENSUS_AGGREGATION_H */
diff --git a/src/core/lib/statistics/census_init.c b/src/core/ext/census/census_init.c
index bbecd62764..690b09e789 100644
--- a/src/core/lib/statistics/census_init.c
+++ b/src/core/ext/census/census_init.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,11 +31,11 @@
*
*/
-#include "src/core/lib/statistics/census_interface.h"
+#include "src/core/ext/census/census_interface.h"
#include <grpc/support/log.h>
-#include "src/core/lib/statistics/census_rpc_stats.h"
-#include "src/core/lib/statistics/census_tracing.h"
+#include "src/core/ext/census/census_rpc_stats.h"
+#include "src/core/ext/census/census_tracing.h"
void census_init(void) {
census_tracing_init();
diff --git a/src/core/lib/statistics/census_interface.h b/src/core/ext/census/census_interface.h
index b3b3439072..57e75f56ee 100644
--- a/src/core/lib/statistics/census_interface.h
+++ b/src/core/ext/census/census_interface.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,8 +31,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_STATISTICS_CENSUS_INTERFACE_H
-#define GRPC_CORE_LIB_STATISTICS_CENSUS_INTERFACE_H
+#ifndef GRPC_CORE_EXT_CENSUS_CENSUS_INTERFACE_H
+#define GRPC_CORE_EXT_CENSUS_CENSUS_INTERFACE_H
#include <grpc/support/port_platform.h>
@@ -73,4 +73,4 @@ census_op_id census_tracing_start_op(void);
/* Ends tracing. Calling this function will invalidate the input op_id. */
void census_tracing_end_op(census_op_id op_id);
-#endif /* GRPC_CORE_LIB_STATISTICS_CENSUS_INTERFACE_H */
+#endif /* GRPC_CORE_EXT_CENSUS_CENSUS_INTERFACE_H */
diff --git a/src/core/lib/statistics/census_log.c b/src/core/ext/census/census_log.c
index 1fb942a78a..9a7331adc2 100644
--- a/src/core/lib/statistics/census_log.c
+++ b/src/core/ext/census/census_log.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -89,7 +89,7 @@
include the name of the structure, which will be passed as the first
argument. E.g. cl_block_initialize() will initialize a cl_block.
*/
-#include "src/core/lib/statistics/census_log.h"
+#include "src/core/ext/census/census_log.h"
#include <grpc/support/alloc.h>
#include <grpc/support/atm.h>
#include <grpc/support/cpu.h>
diff --git a/src/core/lib/statistics/census_log.h b/src/core/ext/census/census_log.h
index c3fbd555ba..534ecc5705 100644
--- a/src/core/lib/statistics/census_log.h
+++ b/src/core/ext/census/census_log.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,8 +31,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_STATISTICS_CENSUS_LOG_H
-#define GRPC_CORE_LIB_STATISTICS_CENSUS_LOG_H
+#ifndef GRPC_CORE_EXT_CENSUS_CENSUS_LOG_H
+#define GRPC_CORE_EXT_CENSUS_CENSUS_LOG_H
#include <stddef.h>
@@ -88,4 +88,4 @@ size_t census_log_remaining_space(void);
out-of-space. */
int census_log_out_of_space_count(void);
-#endif /* GRPC_CORE_LIB_STATISTICS_CENSUS_LOG_H */
+#endif /* GRPC_CORE_EXT_CENSUS_CENSUS_LOG_H */
diff --git a/src/core/lib/statistics/census_rpc_stats.c b/src/core/ext/census/census_rpc_stats.c
index 2182561668..09ee12d54b 100644
--- a/src/core/lib/statistics/census_rpc_stats.c
+++ b/src/core/ext/census/census_rpc_stats.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -36,11 +36,11 @@
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/sync.h>
-#include "src/core/lib/statistics/census_interface.h"
-#include "src/core/lib/statistics/census_rpc_stats.h"
-#include "src/core/lib/statistics/census_tracing.h"
-#include "src/core/lib/statistics/hash_table.h"
-#include "src/core/lib/statistics/window_stats.h"
+#include "src/core/ext/census/census_interface.h"
+#include "src/core/ext/census/census_rpc_stats.h"
+#include "src/core/ext/census/census_tracing.h"
+#include "src/core/ext/census/hash_table.h"
+#include "src/core/ext/census/window_stats.h"
#include "src/core/lib/support/murmur_hash.h"
#include "src/core/lib/support/string.h"
diff --git a/src/core/lib/statistics/census_rpc_stats.h b/src/core/ext/census/census_rpc_stats.h
index 00bb48205e..7e4d8d1640 100644
--- a/src/core/lib/statistics/census_rpc_stats.h
+++ b/src/core/ext/census/census_rpc_stats.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,11 +31,11 @@
*
*/
-#ifndef GRPC_CORE_LIB_STATISTICS_CENSUS_RPC_STATS_H
-#define GRPC_CORE_LIB_STATISTICS_CENSUS_RPC_STATS_H
+#ifndef GRPC_CORE_EXT_CENSUS_CENSUS_RPC_STATS_H
+#define GRPC_CORE_EXT_CENSUS_CENSUS_RPC_STATS_H
#include <grpc/support/port_platform.h>
-#include "src/core/lib/statistics/census_interface.h"
+#include "src/core/ext/census/census_interface.h"
#ifdef __cplusplus
extern "C" {
@@ -98,4 +98,4 @@ void census_stats_store_shutdown(void);
}
#endif
-#endif /* GRPC_CORE_LIB_STATISTICS_CENSUS_RPC_STATS_H */
+#endif /* GRPC_CORE_EXT_CENSUS_CENSUS_RPC_STATS_H */
diff --git a/src/core/lib/statistics/census_tracing.c b/src/core/ext/census/census_tracing.c
index b58ae733fc..f893dc9864 100644
--- a/src/core/lib/statistics/census_tracing.c
+++ b/src/core/ext/census/census_tracing.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,8 +31,8 @@
*
*/
-#include "src/core/lib/statistics/census_tracing.h"
-#include "src/core/lib/statistics/census_interface.h"
+#include "src/core/ext/census/census_tracing.h"
+#include "src/core/ext/census/census_interface.h"
#include <stdio.h>
#include <string.h>
@@ -41,7 +41,7 @@
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
#include <grpc/support/sync.h>
-#include "src/core/lib/statistics/hash_table.h"
+#include "src/core/ext/census/hash_table.h"
#include "src/core/lib/support/string.h"
void census_trace_obj_destroy(census_trace_obj *obj) {
diff --git a/src/core/lib/statistics/census_tracing.h b/src/core/ext/census/census_tracing.h
index a101abf3cb..42a0d7403e 100644
--- a/src/core/lib/statistics/census_tracing.h
+++ b/src/core/ext/census/census_tracing.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,11 +31,11 @@
*
*/
-#ifndef GRPC_CORE_LIB_STATISTICS_CENSUS_TRACING_H
-#define GRPC_CORE_LIB_STATISTICS_CENSUS_TRACING_H
+#ifndef GRPC_CORE_EXT_CENSUS_CENSUS_TRACING_H
+#define GRPC_CORE_EXT_CENSUS_CENSUS_TRACING_H
#include <grpc/support/time.h>
-#include "src/core/lib/statistics/census_rpc_stats.h"
+#include "src/core/ext/census/census_rpc_stats.h"
/* WARNING: The data structures and APIs provided by this file are for GRPC
library's internal use ONLY. They might be changed in backward-incompatible
@@ -93,4 +93,4 @@ census_trace_obj **census_get_active_ops(int *num_active_ops);
}
#endif
-#endif /* GRPC_CORE_LIB_STATISTICS_CENSUS_TRACING_H */
+#endif /* GRPC_CORE_EXT_CENSUS_CENSUS_TRACING_H */
diff --git a/src/core/lib/census/context.c b/src/core/ext/census/context.c
index 5a118f46a9..0dfc4ecbf1 100644
--- a/src/core/lib/census/context.c
+++ b/src/core/ext/census/context.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/census/grpc_context.c b/src/core/ext/census/grpc_context.c
index 457c176355..98285ab2d5 100644
--- a/src/core/lib/census/grpc_context.c
+++ b/src/core/ext/census/grpc_context.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/census/grpc_filter.c b/src/core/ext/census/grpc_filter.c
index d27d789aa1..abfb3bb5f0 100644
--- a/src/core/lib/census/grpc_filter.c
+++ b/src/core/ext/census/grpc_filter.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/census/grpc_filter.h"
+#include "src/core/ext/census/grpc_filter.h"
#include <stdio.h>
#include <string.h>
@@ -42,9 +42,9 @@
#include <grpc/support/slice.h>
#include <grpc/support/time.h>
+#include "src/core/ext/census/census_interface.h"
+#include "src/core/ext/census/census_rpc_stats.h"
#include "src/core/lib/channel/channel_stack.h"
-#include "src/core/lib/statistics/census_interface.h"
-#include "src/core/lib/statistics/census_rpc_stats.h"
#include "src/core/lib/transport/static_metadata.h"
typedef struct call_data {
diff --git a/src/core/lib/census/grpc_filter.h b/src/core/ext/census/grpc_filter.h
index 7ceafe56e4..a39bd82224 100644
--- a/src/core/lib/census/grpc_filter.h
+++ b/src/core/ext/census/grpc_filter.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,8 +31,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_CENSUS_GRPC_FILTER_H
-#define GRPC_CORE_LIB_CENSUS_GRPC_FILTER_H
+#ifndef GRPC_CORE_EXT_CENSUS_GRPC_FILTER_H
+#define GRPC_CORE_EXT_CENSUS_GRPC_FILTER_H
#include "src/core/lib/channel/channel_stack.h"
@@ -41,4 +41,4 @@
extern const grpc_channel_filter grpc_client_census_filter;
extern const grpc_channel_filter grpc_server_census_filter;
-#endif /* GRPC_CORE_LIB_CENSUS_GRPC_FILTER_H */
+#endif /* GRPC_CORE_EXT_CENSUS_GRPC_FILTER_H */
diff --git a/src/core/lib/census/grpc_plugin.c b/src/core/ext/census/grpc_plugin.c
index 12aca76745..0f15ecb2c2 100644
--- a/src/core/lib/census/grpc_plugin.c
+++ b/src/core/ext/census/grpc_plugin.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,13 +31,11 @@
*
*/
-#include "src/core/lib/census/grpc_plugin.h"
-
#include <limits.h>
#include <grpc/census.h>
-#include "src/core/lib/census/grpc_filter.h"
+#include "src/core/ext/census/grpc_filter.h"
#include "src/core/lib/channel/channel_stack_builder.h"
#include "src/core/lib/surface/channel_init.h"
@@ -67,4 +65,4 @@ void census_grpc_plugin_init(void) {
maybe_add_census_filter, NULL);
}
-void census_grpc_plugin_destroy(void) { census_shutdown(); }
+void census_grpc_plugin_shutdown(void) { census_shutdown(); }
diff --git a/src/core/lib/statistics/hash_table.c b/src/core/ext/census/hash_table.c
index 18b7442a0c..ee6fdfc6e8 100644
--- a/src/core/lib/statistics/hash_table.c
+++ b/src/core/ext/census/hash_table.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/statistics/hash_table.h"
+#include "src/core/ext/census/hash_table.h"
#include <stddef.h>
#include <stdio.h>
diff --git a/src/core/lib/statistics/hash_table.h b/src/core/ext/census/hash_table.h
index 8f74ec82aa..30ea4264a2 100644
--- a/src/core/lib/statistics/hash_table.h
+++ b/src/core/ext/census/hash_table.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,8 +31,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_STATISTICS_HASH_TABLE_H
-#define GRPC_CORE_LIB_STATISTICS_HASH_TABLE_H
+#ifndef GRPC_CORE_EXT_CENSUS_HASH_TABLE_H
+#define GRPC_CORE_EXT_CENSUS_HASH_TABLE_H
#include <stddef.h>
@@ -128,4 +128,4 @@ typedef void (*census_ht_itr_cb)(census_ht_key key, const void *val_ptr,
should not invalidate data entries. */
uint64_t census_ht_for_all(const census_ht *ht, census_ht_itr_cb);
-#endif /* GRPC_CORE_LIB_STATISTICS_HASH_TABLE_H */
+#endif /* GRPC_CORE_EXT_CENSUS_HASH_TABLE_H */
diff --git a/src/core/lib/census/initialize.c b/src/core/ext/census/initialize.c
index ce7ec09b89..896276e44a 100644
--- a/src/core/lib/census/initialize.c
+++ b/src/core/ext/census/initialize.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/census/mlog.c b/src/core/ext/census/mlog.c
index 9d47e80297..698b7096ab 100644
--- a/src/core/lib/census/mlog.c
+++ b/src/core/ext/census/mlog.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -88,7 +88,7 @@
// include the name of the structure, which will be passed as the first
// argument. E.g. cl_block_initialize() will initialize a cl_block.
-#include "src/core/lib/census/mlog.h"
+#include "src/core/ext/census/mlog.h"
#include <grpc/support/alloc.h>
#include <grpc/support/atm.h>
#include <grpc/support/cpu.h>
diff --git a/src/core/lib/census/mlog.h b/src/core/ext/census/mlog.h
index 7fbdeda986..a256426f91 100644
--- a/src/core/lib/census/mlog.h
+++ b/src/core/ext/census/mlog.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -33,8 +33,8 @@
/* A very fast in-memory log, optimized for multiple writers. */
-#ifndef GRPC_CORE_LIB_CENSUS_MLOG_H
-#define GRPC_CORE_LIB_CENSUS_MLOG_H
+#ifndef GRPC_CORE_EXT_CENSUS_MLOG_H
+#define GRPC_CORE_EXT_CENSUS_MLOG_H
#include <grpc/support/port_platform.h>
#include <stddef.h>
@@ -92,4 +92,4 @@ size_t census_log_remaining_space(void);
out-of-space. */
int64_t census_log_out_of_space_count(void);
-#endif /* GRPC_CORE_LIB_CENSUS_MLOG_H */
+#endif /* GRPC_CORE_EXT_CENSUS_MLOG_H */
diff --git a/src/core/lib/census/operation.c b/src/core/ext/census/operation.c
index 315f9c3534..5c58704372 100644
--- a/src/core/lib/census/operation.c
+++ b/src/core/ext/census/operation.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/census/placeholders.c b/src/core/ext/census/placeholders.c
index fe23d13971..fe23d13971 100644
--- a/src/core/lib/census/placeholders.c
+++ b/src/core/ext/census/placeholders.c
diff --git a/src/core/lib/census/rpc_metric_id.h b/src/core/ext/census/rpc_metric_id.h
index aad0588fb3..888ec500a7 100644
--- a/src/core/lib/census/rpc_metric_id.h
+++ b/src/core/ext/census/rpc_metric_id.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,8 +31,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_CENSUS_RPC_METRIC_ID_H
-#define GRPC_CORE_LIB_CENSUS_RPC_METRIC_ID_H
+#ifndef GRPC_CORE_EXT_CENSUS_RPC_METRIC_ID_H
+#define GRPC_CORE_EXT_CENSUS_RPC_METRIC_ID_H
/* Metric ID's used for RPC measurements. */
/* Count of client requests sent. */
@@ -48,4 +48,4 @@
/* Server side request latency. */
#define CENSUS_METRIC_RPC_SERVER_LATENCY ((uint32_t)5)
-#endif /* GRPC_CORE_LIB_CENSUS_RPC_METRIC_ID_H */
+#endif /* GRPC_CORE_EXT_CENSUS_RPC_METRIC_ID_H */
diff --git a/src/core/lib/census/tracing.c b/src/core/ext/census/tracing.c
index e508996af3..3b5d6dab2b 100644
--- a/src/core/lib/census/tracing.c
+++ b/src/core/ext/census/tracing.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/statistics/window_stats.c b/src/core/ext/census/window_stats.c
index 53427a24bc..5f7bd9952e 100644
--- a/src/core/lib/statistics/window_stats.c
+++ b/src/core/ext/census/window_stats.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/statistics/window_stats.h"
+#include "src/core/ext/census/window_stats.h"
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/time.h>
diff --git a/src/core/lib/statistics/window_stats.h b/src/core/ext/census/window_stats.h
index 8dec50d620..25658c9ce0 100644
--- a/src/core/lib/statistics/window_stats.h
+++ b/src/core/ext/census/window_stats.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,8 +31,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_STATISTICS_WINDOW_STATS_H
-#define GRPC_CORE_LIB_STATISTICS_WINDOW_STATS_H
+#ifndef GRPC_CORE_EXT_CENSUS_WINDOW_STATS_H
+#define GRPC_CORE_EXT_CENSUS_WINDOW_STATS_H
#include <grpc/support/time.h>
@@ -170,4 +170,4 @@ void census_window_stats_get_sums(const struct census_window_stats *wstats,
assertion failure). This function is thread-compatible. */
void census_window_stats_destroy(struct census_window_stats *wstats);
-#endif /* GRPC_CORE_LIB_STATISTICS_WINDOW_STATS_H */
+#endif /* GRPC_CORE_EXT_CENSUS_WINDOW_STATS_H */
diff --git a/src/core/lib/client_config/lb_policies/load_balancer_api.c b/src/core/ext/lb_policy/grpclb/load_balancer_api.c
index 4cbed200df..d8af644870 100644
--- a/src/core/lib/client_config/lb_policies/load_balancer_api.c
+++ b/src/core/ext/lb_policy/grpclb/load_balancer_api.c
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/client_config/lb_policies/load_balancer_api.h"
+#include "src/core/ext/lb_policy/grpclb/load_balancer_api.h"
#include "third_party/nanopb/pb_decode.h"
#include "third_party/nanopb/pb_encode.h"
diff --git a/src/core/lib/client_config/lb_policies/load_balancer_api.h b/src/core/ext/lb_policy/grpclb/load_balancer_api.h
index 83299adfa9..d329a2ffe8 100644
--- a/src/core/lib/client_config/lb_policies/load_balancer_api.h
+++ b/src/core/ext/lb_policy/grpclb/load_balancer_api.h
@@ -31,13 +31,13 @@
*
*/
-#ifndef GRPC_CORE_LIB_CLIENT_CONFIG_LB_POLICIES_LOAD_BALANCER_API_H
-#define GRPC_CORE_LIB_CLIENT_CONFIG_LB_POLICIES_LOAD_BALANCER_API_H
+#ifndef GRPC_CORE_EXT_LB_POLICY_GRPCLB_LOAD_BALANCER_API_H
+#define GRPC_CORE_EXT_LB_POLICY_GRPCLB_LOAD_BALANCER_API_H
#include <grpc/support/slice_buffer.h>
+#include "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h"
#include "src/core/lib/client_config/lb_policy_factory.h"
-#include "src/core/lib/proto/grpc/lb/v0/load_balancer.pb.h"
#ifdef __cplusplus
extern "C" {
@@ -82,4 +82,4 @@ void grpc_grpclb_response_destroy(grpc_grpclb_response *response);
}
#endif
-#endif /* GRPC_CORE_LIB_CLIENT_CONFIG_LB_POLICIES_LOAD_BALANCER_API_H */
+#endif /* GRPC_CORE_EXT_LB_POLICY_GRPCLB_LOAD_BALANCER_API_H */
diff --git a/src/core/lib/proto/grpc/lb/v0/load_balancer.pb.c b/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c
index 8f82141f96..9719673181 100644
--- a/src/core/lib/proto/grpc/lb/v0/load_balancer.pb.c
+++ b/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c
@@ -33,7 +33,7 @@
/* Automatically generated nanopb constant definitions */
/* Generated by nanopb-0.3.5-dev */
-#include "src/core/lib/proto/grpc/lb/v0/load_balancer.pb.h"
+#include "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h"
#if PB_PROTO_HEADER_VERSION != 30
#error Regenerate this file with the current version of nanopb generator.
diff --git a/src/core/lib/proto/grpc/lb/v0/load_balancer.pb.h b/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h
index 3599f881bb..3599f881bb 100644
--- a/src/core/lib/proto/grpc/lb/v0/load_balancer.pb.h
+++ b/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h
diff --git a/src/core/lib/client_config/lb_policies/pick_first.c b/src/core/ext/lb_policy/pick_first/pick_first.c
index 2e399b73f9..cb5c40501e 100644
--- a/src/core/lib/client_config/lb_policies/pick_first.c
+++ b/src/core/ext/lb_policy/pick_first/pick_first.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,12 +31,10 @@
*
*/
-#include "src/core/lib/client_config/lb_policies/pick_first.h"
-#include "src/core/lib/client_config/lb_policy_factory.h"
-
#include <string.h>
#include <grpc/support/alloc.h>
+#include "src/core/lib/client_config/lb_policy_registry.h"
#include "src/core/lib/transport/connectivity_state.h"
typedef struct pending_pick {
@@ -78,7 +76,7 @@ typedef struct {
#define GET_SELECTED(p) \
((grpc_connected_subchannel *)gpr_atm_acq_load(&(p)->selected))
-void pf_destroy(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) {
+static void pf_destroy(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) {
pick_first_lb_policy *p = (pick_first_lb_policy *)pol;
grpc_connected_subchannel *selected = GET_SELECTED(p);
size_t i;
@@ -95,7 +93,7 @@ void pf_destroy(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) {
gpr_free(p);
}
-void pf_shutdown(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) {
+static void pf_shutdown(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) {
pick_first_lb_policy *p = (pick_first_lb_policy *)pol;
pending_pick *pp;
grpc_connected_subchannel *selected;
@@ -162,7 +160,7 @@ static void start_picking(grpc_exec_ctx *exec_ctx, pick_first_lb_policy *p) {
&p->connectivity_changed);
}
-void pf_exit_idle(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) {
+static void pf_exit_idle(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) {
pick_first_lb_policy *p = (pick_first_lb_policy *)pol;
gpr_mu_lock(&p->mu);
if (!p->started_picking) {
@@ -171,9 +169,10 @@ void pf_exit_idle(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) {
gpr_mu_unlock(&p->mu);
}
-int pf_pick(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol, grpc_pollset *pollset,
- grpc_metadata_batch *initial_metadata,
- grpc_connected_subchannel **target, grpc_closure *on_complete) {
+static int pf_pick(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol,
+ grpc_pollset *pollset, grpc_metadata_batch *initial_metadata,
+ grpc_connected_subchannel **target,
+ grpc_closure *on_complete) {
pick_first_lb_policy *p = (pick_first_lb_policy *)pol;
pending_pick *pp;
@@ -356,9 +355,10 @@ static grpc_connectivity_state pf_check_connectivity(grpc_exec_ctx *exec_ctx,
return st;
}
-void pf_notify_on_state_change(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol,
- grpc_connectivity_state *current,
- grpc_closure *notify) {
+static void pf_notify_on_state_change(grpc_exec_ctx *exec_ctx,
+ grpc_lb_policy *pol,
+ grpc_connectivity_state *current,
+ grpc_closure *notify) {
pick_first_lb_policy *p = (pick_first_lb_policy *)pol;
gpr_mu_lock(&p->mu);
grpc_connectivity_state_notify_on_state_change(exec_ctx, &p->state_tracker,
@@ -366,8 +366,8 @@ void pf_notify_on_state_change(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol,
gpr_mu_unlock(&p->mu);
}
-void pf_ping_one(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol,
- grpc_closure *closure) {
+static void pf_ping_one(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol,
+ grpc_closure *closure) {
pick_first_lb_policy *p = (pick_first_lb_policy *)pol;
grpc_connected_subchannel *selected = GET_SELECTED(p);
if (selected) {
@@ -391,19 +391,42 @@ static void pick_first_factory_ref(grpc_lb_policy_factory *factory) {}
static void pick_first_factory_unref(grpc_lb_policy_factory *factory) {}
-static grpc_lb_policy *create_pick_first(grpc_lb_policy_factory *factory,
+static grpc_lb_policy *create_pick_first(grpc_exec_ctx *exec_ctx,
+ grpc_lb_policy_factory *factory,
grpc_lb_policy_args *args) {
- if (args->num_subchannels == 0) return NULL;
+ GPR_ASSERT(args->addresses != NULL);
+ GPR_ASSERT(args->subchannel_factory != NULL);
+
+ if (args->addresses->naddrs == 0) return NULL;
+
pick_first_lb_policy *p = gpr_malloc(sizeof(*p));
memset(p, 0, sizeof(*p));
- grpc_lb_policy_init(&p->base, &pick_first_lb_policy_vtable);
+
p->subchannels =
- gpr_malloc(sizeof(grpc_subchannel *) * args->num_subchannels);
- p->num_subchannels = args->num_subchannels;
- grpc_connectivity_state_init(&p->state_tracker, GRPC_CHANNEL_IDLE,
- "pick_first");
- memcpy(p->subchannels, args->subchannels,
- sizeof(grpc_subchannel *) * args->num_subchannels);
+ gpr_malloc(sizeof(grpc_subchannel *) * args->addresses->naddrs);
+ memset(p->subchannels, 0, sizeof(*p->subchannels) * args->addresses->naddrs);
+ grpc_subchannel_args sc_args;
+ size_t subchannel_idx = 0;
+ for (size_t i = 0; i < args->addresses->naddrs; i++) {
+ memset(&sc_args, 0, sizeof(grpc_subchannel_args));
+ sc_args.addr = (struct sockaddr *)(args->addresses->addrs[i].addr);
+ sc_args.addr_len = (size_t)args->addresses->addrs[i].len;
+
+ grpc_subchannel *subchannel = grpc_subchannel_factory_create_subchannel(
+ exec_ctx, args->subchannel_factory, &sc_args);
+
+ if (subchannel != NULL) {
+ p->subchannels[subchannel_idx++] = subchannel;
+ }
+ }
+ if (subchannel_idx == 0) {
+ gpr_free(p->subchannels);
+ gpr_free(p);
+ return NULL;
+ }
+ p->num_subchannels = subchannel_idx;
+
+ grpc_lb_policy_init(&p->base, &pick_first_lb_policy_vtable);
grpc_closure_init(&p->connectivity_changed, pf_connectivity_changed, p);
gpr_mu_init(&p->mu);
return &p->base;
@@ -416,6 +439,14 @@ static const grpc_lb_policy_factory_vtable pick_first_factory_vtable = {
static grpc_lb_policy_factory pick_first_lb_policy_factory = {
&pick_first_factory_vtable};
-grpc_lb_policy_factory *grpc_pick_first_lb_factory_create() {
+static grpc_lb_policy_factory *pick_first_lb_factory_create() {
return &pick_first_lb_policy_factory;
}
+
+/* Plugin registration */
+
+void grpc_lb_policy_pick_first_init() {
+ grpc_register_lb_policy(pick_first_lb_factory_create());
+}
+
+void grpc_lb_policy_pick_first_shutdown() {}
diff --git a/src/core/lib/client_config/lb_policies/round_robin.c b/src/core/ext/lb_policy/round_robin/round_robin.c
index c904c5f921..d94c081494 100644
--- a/src/core/lib/client_config/lb_policies/round_robin.c
+++ b/src/core/ext/lb_policy/round_robin/round_robin.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,11 +31,12 @@
*
*/
-#include "src/core/lib/client_config/lb_policies/round_robin.h"
-
#include <string.h>
#include <grpc/support/alloc.h>
+
+#include "src/core/lib/client_config/lb_policy_registry.h"
+#include "src/core/lib/debug/trace.h"
#include "src/core/lib/transport/connectivity_state.h"
typedef struct round_robin_lb_policy round_robin_lb_policy;
@@ -199,7 +200,7 @@ static void remove_disconnected_sc_locked(round_robin_lb_policy *p,
gpr_free(node);
}
-void rr_destroy(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) {
+static void rr_destroy(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) {
round_robin_lb_policy *p = (round_robin_lb_policy *)pol;
size_t i;
ready_list *elem;
@@ -226,7 +227,7 @@ void rr_destroy(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) {
gpr_free(p);
}
-void rr_shutdown(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) {
+static void rr_shutdown(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) {
round_robin_lb_policy *p = (round_robin_lb_policy *)pol;
pending_pick *pp;
size_t i;
@@ -291,7 +292,7 @@ static void start_picking(grpc_exec_ctx *exec_ctx, round_robin_lb_policy *p) {
}
}
-void rr_exit_idle(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) {
+static void rr_exit_idle(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) {
round_robin_lb_policy *p = (round_robin_lb_policy *)pol;
gpr_mu_lock(&p->mu);
if (!p->started_picking) {
@@ -300,9 +301,10 @@ void rr_exit_idle(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) {
gpr_mu_unlock(&p->mu);
}
-int rr_pick(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol, grpc_pollset *pollset,
- grpc_metadata_batch *initial_metadata,
- grpc_connected_subchannel **target, grpc_closure *on_complete) {
+static int rr_pick(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol,
+ grpc_pollset *pollset, grpc_metadata_batch *initial_metadata,
+ grpc_connected_subchannel **target,
+ grpc_closure *on_complete) {
round_robin_lb_policy *p = (round_robin_lb_policy *)pol;
pending_pick *pp;
ready_list *selected;
@@ -496,30 +498,47 @@ static void round_robin_factory_ref(grpc_lb_policy_factory *factory) {}
static void round_robin_factory_unref(grpc_lb_policy_factory *factory) {}
-static grpc_lb_policy *create_round_robin(grpc_lb_policy_factory *factory,
+static grpc_lb_policy *create_round_robin(grpc_exec_ctx *exec_ctx,
+ grpc_lb_policy_factory *factory,
grpc_lb_policy_args *args) {
- size_t i;
+ GPR_ASSERT(args->addresses != NULL);
+ GPR_ASSERT(args->subchannel_factory != NULL);
+
round_robin_lb_policy *p = gpr_malloc(sizeof(*p));
- GPR_ASSERT(args->num_subchannels > 0);
memset(p, 0, sizeof(*p));
- grpc_lb_policy_init(&p->base, &round_robin_lb_policy_vtable);
- p->num_subchannels = args->num_subchannels;
- p->subchannels = gpr_malloc(sizeof(*p->subchannels) * p->num_subchannels);
- memset(p->subchannels, 0, sizeof(*p->subchannels) * p->num_subchannels);
- grpc_connectivity_state_init(&p->state_tracker, GRPC_CHANNEL_IDLE,
- "round_robin");
- gpr_mu_init(&p->mu);
- for (i = 0; i < args->num_subchannels; i++) {
- subchannel_data *sd = gpr_malloc(sizeof(*sd));
- memset(sd, 0, sizeof(*sd));
- p->subchannels[i] = sd;
- sd->policy = p;
- sd->index = i;
- sd->subchannel = args->subchannels[i];
- grpc_closure_init(&sd->connectivity_changed_closure,
- rr_connectivity_changed, sd);
+ p->subchannels =
+ gpr_malloc(sizeof(*p->subchannels) * args->addresses->naddrs);
+ memset(p->subchannels, 0, sizeof(*p->subchannels) * args->addresses->naddrs);
+
+ grpc_subchannel_args sc_args;
+ size_t subchannel_idx = 0;
+ for (size_t i = 0; i < args->addresses->naddrs; i++) {
+ memset(&sc_args, 0, sizeof(grpc_subchannel_args));
+ sc_args.addr = (struct sockaddr *)(args->addresses->addrs[i].addr);
+ sc_args.addr_len = (size_t)args->addresses->addrs[i].len;
+
+ grpc_subchannel *subchannel = grpc_subchannel_factory_create_subchannel(
+ exec_ctx, args->subchannel_factory, &sc_args);
+
+ if (subchannel != NULL) {
+ subchannel_data *sd = gpr_malloc(sizeof(*sd));
+ memset(sd, 0, sizeof(*sd));
+ p->subchannels[subchannel_idx] = sd;
+ sd->policy = p;
+ sd->index = subchannel_idx;
+ sd->subchannel = subchannel;
+ ++subchannel_idx;
+ grpc_closure_init(&sd->connectivity_changed_closure,
+ rr_connectivity_changed, sd);
+ }
}
+ if (subchannel_idx == 0) {
+ gpr_free(p->subchannels);
+ gpr_free(p);
+ return NULL;
+ }
+ p->num_subchannels = subchannel_idx;
/* The (dummy node) root of the ready list */
p->ready_list.subchannel = NULL;
@@ -527,6 +546,10 @@ static grpc_lb_policy *create_round_robin(grpc_lb_policy_factory *factory,
p->ready_list.next = NULL;
p->ready_list_last_pick = &p->ready_list;
+ grpc_lb_policy_init(&p->base, &round_robin_lb_policy_vtable);
+ grpc_connectivity_state_init(&p->state_tracker, GRPC_CHANNEL_IDLE,
+ "round_robin");
+ gpr_mu_init(&p->mu);
return &p->base;
}
@@ -537,6 +560,15 @@ static const grpc_lb_policy_factory_vtable round_robin_factory_vtable = {
static grpc_lb_policy_factory round_robin_lb_policy_factory = {
&round_robin_factory_vtable};
-grpc_lb_policy_factory *grpc_round_robin_lb_factory_create() {
+static grpc_lb_policy_factory *round_robin_lb_factory_create() {
return &round_robin_lb_policy_factory;
}
+
+/* Plugin registration */
+
+void grpc_lb_policy_round_robin_init() {
+ grpc_register_lb_policy(round_robin_lb_factory_create());
+ grpc_register_tracer("round_robin", &grpc_lb_round_robin_trace);
+}
+
+void grpc_lb_policy_round_robin_shutdown() {}
diff --git a/src/core/ext/resolver/dns/native/README.md b/src/core/ext/resolver/dns/native/README.md
new file mode 100644
index 0000000000..695de47b9f
--- /dev/null
+++ b/src/core/ext/resolver/dns/native/README.md
@@ -0,0 +1,2 @@
+dns: scheme name resolution, using getaddrbyname
+(or other OS specific implementation)
diff --git a/src/core/lib/client_config/resolvers/dns_resolver.c b/src/core/ext/resolver/dns/native/dns_resolver.c
index ab445730ad..70d8a3fe2d 100644
--- a/src/core/lib/client_config/resolvers/dns_resolver.c
+++ b/src/core/ext/resolver/dns/native/dns_resolver.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,8 +31,6 @@
*
*/
-#include "src/core/lib/client_config/resolvers/dns_resolver.h"
-
#include <string.h>
#include <grpc/support/alloc.h>
@@ -40,6 +38,7 @@
#include <grpc/support/string_util.h>
#include "src/core/lib/client_config/lb_policy_registry.h"
+#include "src/core/lib/client_config/resolver_registry.h"
#include "src/core/lib/iomgr/resolve_address.h"
#include "src/core/lib/iomgr/timer.h"
#include "src/core/lib/support/backoff.h"
@@ -162,38 +161,23 @@ static void dns_on_resolved(grpc_exec_ctx *exec_ctx, void *arg,
grpc_resolved_addresses *addresses) {
dns_resolver *r = arg;
grpc_client_config *config = NULL;
- grpc_subchannel **subchannels;
- grpc_subchannel_args args;
grpc_lb_policy *lb_policy;
- size_t i;
gpr_mu_lock(&r->mu);
GPR_ASSERT(r->resolving);
r->resolving = 0;
if (addresses != NULL) {
grpc_lb_policy_args lb_policy_args;
config = grpc_client_config_create();
- subchannels = gpr_malloc(sizeof(grpc_subchannel *) * addresses->naddrs);
- size_t naddrs = 0;
- for (i = 0; i < addresses->naddrs; i++) {
- memset(&args, 0, sizeof(args));
- args.addr = (struct sockaddr *)(addresses->addrs[i].addr);
- args.addr_len = (size_t)addresses->addrs[i].len;
- grpc_subchannel *subchannel = grpc_subchannel_factory_create_subchannel(
- exec_ctx, r->subchannel_factory, &args);
- if (subchannel != NULL) {
- subchannels[naddrs++] = subchannel;
- }
- }
memset(&lb_policy_args, 0, sizeof(lb_policy_args));
- lb_policy_args.subchannels = subchannels;
- lb_policy_args.num_subchannels = naddrs;
- lb_policy = grpc_lb_policy_create(r->lb_policy_name, &lb_policy_args);
+ lb_policy_args.addresses = addresses;
+ lb_policy_args.subchannel_factory = r->subchannel_factory;
+ lb_policy =
+ grpc_lb_policy_create(exec_ctx, r->lb_policy_name, &lb_policy_args);
if (lb_policy != NULL) {
grpc_client_config_set_lb_policy(config, lb_policy);
GRPC_LB_POLICY_UNREF(exec_ctx, lb_policy, "construction");
}
grpc_resolved_addresses_destroy(addresses);
- gpr_free(subchannels);
} else {
gpr_timespec now = gpr_now(GPR_CLOCK_MONOTONIC);
gpr_timespec next_try = gpr_backoff_step(&r->backoff_state, now);
@@ -292,8 +276,8 @@ static grpc_resolver *dns_factory_create_resolver(
return dns_create(args, "https", "pick_first");
}
-char *dns_factory_get_default_host_name(grpc_resolver_factory *factory,
- grpc_uri *uri) {
+static char *dns_factory_get_default_host_name(grpc_resolver_factory *factory,
+ grpc_uri *uri) {
const char *path = uri->path;
if (path[0] == '/') ++path;
return gpr_strdup(path);
@@ -304,6 +288,12 @@ static const grpc_resolver_factory_vtable dns_factory_vtable = {
dns_factory_get_default_host_name, "dns"};
static grpc_resolver_factory dns_resolver_factory = {&dns_factory_vtable};
-grpc_resolver_factory *grpc_dns_resolver_factory_create() {
+static grpc_resolver_factory *dns_resolver_factory_create() {
return &dns_resolver_factory;
}
+
+void grpc_resolver_dns_native_init(void) {
+ grpc_register_resolver_type(dns_resolver_factory_create());
+}
+
+void grpc_resolver_dns_native_shutdown(void) {}
diff --git a/src/core/ext/resolver/sockaddr/README.md b/src/core/ext/resolver/sockaddr/README.md
new file mode 100644
index 0000000000..e307ba88f5
--- /dev/null
+++ b/src/core/ext/resolver/sockaddr/README.md
@@ -0,0 +1 @@
+Support for resolving ipv4:, ipv6:, unix: schemes
diff --git a/src/core/lib/client_config/resolvers/sockaddr_resolver.c b/src/core/ext/resolver/sockaddr/sockaddr_resolver.c
index 66cddc3ed9..69595ca3db 100644
--- a/src/core/lib/client_config/resolvers/sockaddr_resolver.c
+++ b/src/core/ext/resolver/sockaddr/sockaddr_resolver.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -33,8 +33,6 @@
#include <grpc/support/port_platform.h>
-#include "src/core/lib/client_config/resolvers/sockaddr_resolver.h"
-
#include <stdio.h>
#include <string.h>
@@ -43,6 +41,7 @@
#include <grpc/support/string_util.h>
#include "src/core/lib/client_config/lb_policy_registry.h"
+#include "src/core/lib/client_config/resolver_registry.h"
#include "src/core/lib/iomgr/resolve_address.h"
#include "src/core/lib/iomgr/unix_sockets_posix.h"
#include "src/core/lib/support/string.h"
@@ -58,11 +57,7 @@ typedef struct {
char *lb_policy_name;
/** the addresses that we've 'resolved' */
- struct sockaddr_storage *addrs;
- /** the corresponding length of the addresses */
- size_t *addrs_len;
- /** how many elements in \a addrs */
- size_t num_addrs;
+ grpc_resolved_addresses *addresses;
/** mutex guarding the rest of the state */
gpr_mu mu;
@@ -125,28 +120,14 @@ static void sockaddr_next(grpc_exec_ctx *exec_ctx, grpc_resolver *resolver,
static void sockaddr_maybe_finish_next_locked(grpc_exec_ctx *exec_ctx,
sockaddr_resolver *r) {
- grpc_client_config *cfg;
- grpc_lb_policy *lb_policy;
- grpc_lb_policy_args lb_policy_args;
- grpc_subchannel **subchannels;
- grpc_subchannel_args args;
-
if (r->next_completion != NULL && !r->published) {
- size_t i;
- cfg = grpc_client_config_create();
- subchannels = gpr_malloc(sizeof(grpc_subchannel *) * r->num_addrs);
- for (i = 0; i < r->num_addrs; i++) {
- memset(&args, 0, sizeof(args));
- args.addr = (struct sockaddr *)&r->addrs[i];
- args.addr_len = r->addrs_len[i];
- subchannels[i] = grpc_subchannel_factory_create_subchannel(
- exec_ctx, r->subchannel_factory, &args);
- }
+ grpc_client_config *cfg = grpc_client_config_create();
+ grpc_lb_policy_args lb_policy_args;
memset(&lb_policy_args, 0, sizeof(lb_policy_args));
- lb_policy_args.subchannels = subchannels;
- lb_policy_args.num_subchannels = r->num_addrs;
- lb_policy = grpc_lb_policy_create(r->lb_policy_name, &lb_policy_args);
- gpr_free(subchannels);
+ lb_policy_args.addresses = r->addresses;
+ lb_policy_args.subchannel_factory = r->subchannel_factory;
+ grpc_lb_policy *lb_policy =
+ grpc_lb_policy_create(exec_ctx, r->lb_policy_name, &lb_policy_args);
grpc_client_config_set_lb_policy(cfg, lb_policy);
GRPC_LB_POLICY_UNREF(exec_ctx, lb_policy, "sockaddr");
r->published = 1;
@@ -160,8 +141,7 @@ static void sockaddr_destroy(grpc_exec_ctx *exec_ctx, grpc_resolver *gr) {
sockaddr_resolver *r = (sockaddr_resolver *)gr;
gpr_mu_destroy(&r->mu);
grpc_subchannel_factory_unref(exec_ctx, r->subchannel_factory);
- gpr_free(r->addrs);
- gpr_free(r->addrs_len);
+ grpc_resolved_addresses_destroy(r->addresses);
gpr_free(r->lb_policy_name);
gpr_free(r);
}
@@ -269,7 +249,6 @@ static void do_nothing(void *ignored) {}
static grpc_resolver *sockaddr_create(
grpc_resolver_args *args, const char *default_lb_policy_name,
int parse(grpc_uri *uri, struct sockaddr_storage *dst, size_t *len)) {
- size_t i;
int errors_found = 0; /* GPR_FALSE */
sockaddr_resolver *r;
gpr_slice path_slice;
@@ -309,15 +288,18 @@ static grpc_resolver *sockaddr_create(
gpr_slice_buffer_init(&path_parts);
gpr_slice_split(path_slice, ",", &path_parts);
- r->num_addrs = path_parts.count;
- r->addrs = gpr_malloc(sizeof(struct sockaddr_storage) * r->num_addrs);
- r->addrs_len = gpr_malloc(sizeof(*r->addrs_len) * r->num_addrs);
+ r->addresses = gpr_malloc(sizeof(grpc_resolved_addresses));
+ r->addresses->naddrs = path_parts.count;
+ r->addresses->addrs =
+ gpr_malloc(sizeof(grpc_resolved_address) * r->addresses->naddrs);
- for (i = 0; i < r->num_addrs; i++) {
+ for (size_t i = 0; i < r->addresses->naddrs; i++) {
grpc_uri ith_uri = *args->uri;
char *part_str = gpr_dump_slice(path_parts.slices[i], GPR_DUMP_ASCII);
ith_uri.path = part_str;
- if (!parse(&ith_uri, &r->addrs[i], &r->addrs_len[i])) {
+ if (!parse(&ith_uri,
+ (struct sockaddr_storage *)(&r->addresses->addrs[i].addr),
+ &r->addresses->addrs[i].len)) {
errors_found = 1; /* GPR_TRUE */
}
gpr_free(part_str);
@@ -328,8 +310,7 @@ static grpc_resolver *sockaddr_create(
gpr_slice_unref(path_slice);
if (errors_found) {
gpr_free(r->lb_policy_name);
- gpr_free(r->addrs);
- gpr_free(r->addrs_len);
+ grpc_resolved_addresses_destroy(r->addresses);
gpr_free(r);
return NULL;
}
@@ -361,12 +342,20 @@ static void sockaddr_factory_unref(grpc_resolver_factory *factory) {}
name##_factory_create_resolver, prefix##name##_get_default_authority, \
#name}; \
static grpc_resolver_factory name##_resolver_factory = { \
- &name##_factory_vtable}; \
- grpc_resolver_factory *grpc_##name##_resolver_factory_create() { \
- return &name##_resolver_factory; \
- }
+ &name##_factory_vtable}
#ifdef GPR_HAVE_UNIX_SOCKET
-DECL_FACTORY(unix, grpc_)
+DECL_FACTORY(unix, grpc_);
#endif
-DECL_FACTORY(ipv4, ) DECL_FACTORY(ipv6, )
+DECL_FACTORY(ipv4, );
+DECL_FACTORY(ipv6, );
+
+void grpc_resolver_sockaddr_init(void) {
+ grpc_register_resolver_type(&ipv4_resolver_factory);
+ grpc_register_resolver_type(&ipv6_resolver_factory);
+#ifdef GPR_HAVE_UNIX_SOCKET
+ grpc_register_resolver_type(&unix_resolver_factory);
+#endif
+}
+
+void grpc_resolver_sockaddr_shutdown(void) {}
diff --git a/src/core/ext/resolver/zookeeper/README.md b/src/core/ext/resolver/zookeeper/README.md
new file mode 100644
index 0000000000..ce6f39683b
--- /dev/null
+++ b/src/core/ext/resolver/zookeeper/README.md
@@ -0,0 +1 @@
+Zookeeper based name resolver: WIP
diff --git a/src/core/lib/client_config/resolvers/zookeeper_resolver.c b/src/core/ext/resolver/zookeeper/zookeeper_resolver.c
index 3bb0bbdf5c..5acb0940c6 100644
--- a/src/core/lib/client_config/resolvers/zookeeper_resolver.c
+++ b/src/core/ext/resolver/zookeeper/zookeeper_resolver.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,8 +31,6 @@
*
*/
-#include "src/core/lib/client_config/resolvers/zookeeper_resolver.h"
-
#include <string.h>
#include <grpc/support/alloc.h>
@@ -184,28 +182,22 @@ static void zookeeper_on_resolved(grpc_exec_ctx *exec_ctx, void *arg,
grpc_resolved_addresses *addresses) {
zookeeper_resolver *r = arg;
grpc_client_config *config = NULL;
- grpc_subchannel **subchannels;
- grpc_subchannel_args args;
grpc_lb_policy *lb_policy;
- size_t i;
+
if (addresses != NULL) {
grpc_lb_policy_args lb_policy_args;
config = grpc_client_config_create();
- subchannels = gpr_malloc(sizeof(grpc_subchannel *) * addresses->naddrs);
- for (i = 0; i < addresses->naddrs; i++) {
- memset(&args, 0, sizeof(args));
- args.addr = (struct sockaddr *)(addresses->addrs[i].addr);
- args.addr_len = addresses->addrs[i].len;
- subchannels[i] = grpc_subchannel_factory_create_subchannel(
- exec_ctx, r->subchannel_factory, &args);
+
+ lb_policy_args.addresses = addresses;
+ lb_policy_args.subchannel_factory = r->subchannel_factory;
+ lb_policy =
+ grpc_lb_policy_create(exec_ctx, r->lb_policy_name, &lb_policy_args);
+
+ if (lb_policy != NULL) {
+ grpc_client_config_set_lb_policy(config, lb_policy);
+ GRPC_LB_POLICY_UNREF(exec_ctx, lb_policy, "construction");
}
- lb_policy_args.subchannels = subchannels;
- lb_policy_args.num_subchannels = addresses->naddrs;
- lb_policy = grpc_lb_policy_create(r->lb_policy_name, &lb_policy_args);
- grpc_client_config_set_lb_policy(config, lb_policy);
- GRPC_LB_POLICY_UNREF(exec_ctx, lb_policy, "construction");
grpc_resolved_addresses_destroy(addresses);
- gpr_free(subchannels);
}
gpr_mu_lock(&r->mu);
GPR_ASSERT(r->resolving == 1);
@@ -480,15 +472,6 @@ static grpc_resolver *zookeeper_create(grpc_resolver_args *args,
return &r->base;
}
-static void zookeeper_plugin_init() {
- grpc_register_resolver_type(grpc_zookeeper_resolver_factory_create());
-}
-
-void grpc_zookeeper_register() {
- GRPC_API_TRACE("grpc_zookeeper_register(void)", 0, ());
- grpc_register_plugin(zookeeper_plugin_init, NULL);
-}
-
/*
* FACTORY
*/
@@ -515,6 +498,15 @@ static const grpc_resolver_factory_vtable zookeeper_factory_vtable = {
static grpc_resolver_factory zookeeper_resolver_factory = {
&zookeeper_factory_vtable};
-grpc_resolver_factory *grpc_zookeeper_resolver_factory_create() {
+static grpc_resolver_factory *zookeeper_resolver_factory_create() {
return &zookeeper_resolver_factory;
}
+
+static void zookeeper_plugin_init() {
+ grpc_register_resolver_type(zookeeper_resolver_factory_create());
+}
+
+void grpc_zookeeper_register() {
+ GRPC_API_TRACE("grpc_zookeeper_register(void)", 0, ());
+ grpc_register_plugin(zookeeper_plugin_init, NULL);
+}
diff --git a/src/core/ext/transport/chttp2/client/insecure/README.md b/src/core/ext/transport/chttp2/client/insecure/README.md
new file mode 100644
index 0000000000..fa11463388
--- /dev/null
+++ b/src/core/ext/transport/chttp2/client/insecure/README.md
@@ -0,0 +1 @@
+Plugin for creating insecure channels using chttp2
diff --git a/src/core/lib/surface/channel_create.c b/src/core/ext/transport/chttp2/client/insecure/channel_create.c
index e8777ce816..606fff5fb4 100644
--- a/src/core/lib/surface/channel_create.c
+++ b/src/core/ext/transport/chttp2/client/insecure/channel_create.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -40,7 +40,8 @@
#include <grpc/support/slice.h>
#include <grpc/support/slice_buffer.h>
-#include "src/core/lib/census/grpc_filter.h"
+#include "src/core/ext/census/grpc_filter.h"
+#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/client_channel.h"
#include "src/core/lib/channel/compress_filter.h"
@@ -49,7 +50,6 @@
#include "src/core/lib/iomgr/tcp_client.h"
#include "src/core/lib/surface/api_trace.h"
#include "src/core/lib/surface/channel.h"
-#include "src/core/lib/transport/chttp2_transport.h"
typedef struct {
grpc_connector base;
diff --git a/src/core/ext/transport/chttp2/client/secure/README.md b/src/core/ext/transport/chttp2/client/secure/README.md
new file mode 100644
index 0000000000..405a86e5db
--- /dev/null
+++ b/src/core/ext/transport/chttp2/client/secure/README.md
@@ -0,0 +1 @@
+Plugin for creating secure channels using chttp2
diff --git a/src/core/lib/surface/secure_channel_create.c b/src/core/ext/transport/chttp2/client/secure/secure_channel_create.c
index dcb367023e..3465d2b6c4 100644
--- a/src/core/lib/surface/secure_channel_create.c
+++ b/src/core/ext/transport/chttp2/client/secure/secure_channel_create.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -40,6 +40,7 @@
#include <grpc/support/slice.h>
#include <grpc/support/slice_buffer.h>
+#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/client_channel.h"
#include "src/core/lib/client_config/resolver_registry.h"
@@ -49,7 +50,6 @@
#include "src/core/lib/security/security_context.h"
#include "src/core/lib/surface/api_trace.h"
#include "src/core/lib/surface/channel.h"
-#include "src/core/lib/transport/chttp2_transport.h"
#include "src/core/lib/tsi/transport_security_interface.h"
typedef struct {
@@ -267,7 +267,7 @@ grpc_channel *grpc_secure_channel_create(grpc_channel_credentials *creds,
gpr_log(GPR_ERROR, "Cannot set security context in channel args.");
grpc_exec_ctx_finish(&exec_ctx);
return grpc_lame_client_channel_create(
- target, GRPC_STATUS_INVALID_ARGUMENT,
+ target, GRPC_STATUS_INTERNAL,
"Security connector exists in channel args.");
}
@@ -276,8 +276,7 @@ grpc_channel *grpc_secure_channel_create(grpc_channel_credentials *creds,
GRPC_SECURITY_OK) {
grpc_exec_ctx_finish(&exec_ctx);
return grpc_lame_client_channel_create(
- target, GRPC_STATUS_INVALID_ARGUMENT,
- "Failed to create security connector.");
+ target, GRPC_STATUS_INTERNAL, "Failed to create security connector.");
}
connector_arg = grpc_security_connector_to_arg(&security_connector->base);
diff --git a/src/core/ext/transport/chttp2/server/insecure/README.md b/src/core/ext/transport/chttp2/server/insecure/README.md
new file mode 100644
index 0000000000..fc0bc14ed7
--- /dev/null
+++ b/src/core/ext/transport/chttp2/server/insecure/README.md
@@ -0,0 +1 @@
+Plugin for creating insecure servers using chttp2
diff --git a/src/core/lib/surface/server_chttp2.c b/src/core/ext/transport/chttp2/server/insecure/server_chttp2.c
index f0c2ee5153..e21fa2a072 100644
--- a/src/core/lib/surface/server_chttp2.c
+++ b/src/core/ext/transport/chttp2/server/insecure/server_chttp2.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -36,12 +36,12 @@
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/useful.h>
+#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
#include "src/core/lib/channel/http_server_filter.h"
#include "src/core/lib/iomgr/resolve_address.h"
#include "src/core/lib/iomgr/tcp_server.h"
#include "src/core/lib/surface/api_trace.h"
#include "src/core/lib/surface/server.h"
-#include "src/core/lib/transport/chttp2_transport.h"
static void setup_transport(grpc_exec_ctx *exec_ctx, void *server,
grpc_transport *transport) {
diff --git a/src/core/ext/transport/chttp2/server/secure/README.md b/src/core/ext/transport/chttp2/server/secure/README.md
new file mode 100644
index 0000000000..6bda696a9a
--- /dev/null
+++ b/src/core/ext/transport/chttp2/server/secure/README.md
@@ -0,0 +1 @@
+Plugin for creating secure servers using chttp2
diff --git a/src/core/lib/security/server_secure_chttp2.c b/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c
index 7c9dd221ed..698b2bef61 100644
--- a/src/core/lib/security/server_secure_chttp2.c
+++ b/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -39,6 +39,7 @@
#include <grpc/support/log.h>
#include <grpc/support/sync.h>
#include <grpc/support/useful.h>
+#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/http_server_filter.h"
#include "src/core/lib/iomgr/endpoint.h"
@@ -50,7 +51,6 @@
#include "src/core/lib/security/security_context.h"
#include "src/core/lib/surface/api_trace.h"
#include "src/core/lib/surface/server.h"
-#include "src/core/lib/transport/chttp2_transport.h"
typedef struct grpc_server_secure_state {
grpc_server *server;
diff --git a/src/core/ext/transport/chttp2/transport/README.md b/src/core/ext/transport/chttp2/transport/README.md
new file mode 100644
index 0000000000..4684e58759
--- /dev/null
+++ b/src/core/ext/transport/chttp2/transport/README.md
@@ -0,0 +1,4 @@
+chttp2 transport plugin - implements grpc over http2
+
+Used by chttp2/{client,server}/{insecure,secure} plugins to implement most of
+their functionality
diff --git a/src/core/lib/transport/chttp2/alpn.c b/src/core/ext/transport/chttp2/transport/alpn.c
index befe319180..4271d08ded 100644
--- a/src/core/lib/transport/chttp2/alpn.c
+++ b/src/core/ext/transport/chttp2/transport/alpn.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/transport/chttp2/alpn.h"
+#include "src/core/ext/transport/chttp2/transport/alpn.h"
#include <grpc/support/log.h>
#include <grpc/support/useful.h>
diff --git a/src/core/lib/transport/chttp2/alpn.h b/src/core/ext/transport/chttp2/transport/alpn.h
index a9184e63a4..08a6f039f4 100644
--- a/src/core/lib/transport/chttp2/alpn.h
+++ b/src/core/ext/transport/chttp2/transport/alpn.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,8 +31,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_TRANSPORT_CHTTP2_ALPN_H
-#define GRPC_CORE_LIB_TRANSPORT_CHTTP2_ALPN_H
+#ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_ALPN_H
+#define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_ALPN_H
#include <string.h>
@@ -46,4 +46,4 @@ size_t grpc_chttp2_num_alpn_versions(void);
* grpc_chttp2_num_alpn_versions()) */
const char *grpc_chttp2_get_alpn_version_index(size_t i);
-#endif /* GRPC_CORE_LIB_TRANSPORT_CHTTP2_ALPN_H */
+#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_ALPN_H */
diff --git a/src/core/lib/transport/chttp2/bin_encoder.c b/src/core/ext/transport/chttp2/transport/bin_encoder.c
index 79d0aa3d6f..71c634e39b 100644
--- a/src/core/lib/transport/chttp2/bin_encoder.c
+++ b/src/core/ext/transport/chttp2/transport/bin_encoder.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,12 +31,12 @@
*
*/
-#include "src/core/lib/transport/chttp2/bin_encoder.h"
+#include "src/core/ext/transport/chttp2/transport/bin_encoder.h"
#include <string.h>
#include <grpc/support/log.h>
-#include "src/core/lib/transport/chttp2/huffsyms.h"
+#include "src/core/ext/transport/chttp2/transport/huffsyms.h"
static const char alphabet[] =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
diff --git a/src/core/lib/transport/chttp2/bin_encoder.h b/src/core/ext/transport/chttp2/transport/bin_encoder.h
index 1c5cd1e1c6..660f114ebc 100644
--- a/src/core/lib/transport/chttp2/bin_encoder.h
+++ b/src/core/ext/transport/chttp2/transport/bin_encoder.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,8 +31,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_TRANSPORT_CHTTP2_BIN_ENCODER_H
-#define GRPC_CORE_LIB_TRANSPORT_CHTTP2_BIN_ENCODER_H
+#ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_BIN_ENCODER_H
+#define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_BIN_ENCODER_H
#include <grpc/support/slice.h>
@@ -51,4 +51,4 @@ gpr_slice grpc_chttp2_huffman_compress(gpr_slice input);
return y; */
gpr_slice grpc_chttp2_base64_encode_and_huffman_compress(gpr_slice input);
-#endif /* GRPC_CORE_LIB_TRANSPORT_CHTTP2_BIN_ENCODER_H */
+#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_BIN_ENCODER_H */
diff --git a/src/core/lib/transport/chttp2_transport.c b/src/core/ext/transport/chttp2/transport/chttp2_transport.c
index 7fed3d8b47..62f0c53e0d 100644
--- a/src/core/lib/transport/chttp2_transport.c
+++ b/src/core/ext/transport/chttp2/transport/chttp2_transport.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/transport/chttp2_transport.h"
+#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
#include <math.h>
#include <stdio.h>
@@ -43,12 +43,12 @@
#include <grpc/support/string_util.h>
#include <grpc/support/useful.h>
+#include "src/core/ext/transport/chttp2/transport/http2_errors.h"
+#include "src/core/ext/transport/chttp2/transport/internal.h"
+#include "src/core/ext/transport/chttp2/transport/status_conversion.h"
+#include "src/core/ext/transport/chttp2/transport/timeout_encoding.h"
#include "src/core/lib/profiling/timers.h"
#include "src/core/lib/support/string.h"
-#include "src/core/lib/transport/chttp2/http2_errors.h"
-#include "src/core/lib/transport/chttp2/internal.h"
-#include "src/core/lib/transport/chttp2/status_conversion.h"
-#include "src/core/lib/transport/chttp2/timeout_encoding.h"
#include "src/core/lib/transport/static_metadata.h"
#include "src/core/lib/transport/transport_impl.h"
@@ -758,23 +758,35 @@ static void maybe_start_some_streams(
}
}
+#define CLOSURE_BARRIER_STATS_BIT (1 << 0)
+#define CLOSURE_BARRIER_FAILURE_BIT (1 << 1)
+#define CLOSURE_BARRIER_FIRST_REF_BIT (1 << 16)
+
static grpc_closure *add_closure_barrier(grpc_closure *closure) {
- closure->final_data += 2;
+ closure->final_data += CLOSURE_BARRIER_FIRST_REF_BIT;
return closure;
}
void grpc_chttp2_complete_closure_step(grpc_exec_ctx *exec_ctx,
+ grpc_chttp2_stream_global *stream_global,
grpc_closure **pclosure, int success) {
grpc_closure *closure = *pclosure;
if (closure == NULL) {
return;
}
- closure->final_data -= 2;
+ closure->final_data -= CLOSURE_BARRIER_FIRST_REF_BIT;
if (!success) {
- closure->final_data |= 1;
+ closure->final_data |= CLOSURE_BARRIER_FAILURE_BIT;
}
- if (closure->final_data < 2) {
- grpc_exec_ctx_enqueue(exec_ctx, closure, closure->final_data == 0, NULL);
+ if (closure->final_data < CLOSURE_BARRIER_FIRST_REF_BIT) {
+ if (closure->final_data & CLOSURE_BARRIER_STATS_BIT) {
+ grpc_transport_move_stats(&stream_global->stats,
+ stream_global->collecting_stats);
+ stream_global->collecting_stats = NULL;
+ }
+ grpc_exec_ctx_enqueue(
+ exec_ctx, closure,
+ (closure->final_data & CLOSURE_BARRIER_FAILURE_BIT) == 0, NULL);
}
*pclosure = NULL;
}
@@ -807,7 +819,13 @@ static void perform_stream_op_locked(
}
/* use final_data as a barrier until enqueue time; the inital counter is
dropped at the end of this function */
- on_complete->final_data = 2;
+ on_complete->final_data = CLOSURE_BARRIER_FIRST_REF_BIT;
+
+ if (op->collect_stats != NULL) {
+ GPR_ASSERT(stream_global->collecting_stats == NULL);
+ stream_global->collecting_stats = op->collect_stats;
+ on_complete->final_data |= CLOSURE_BARRIER_STATS_BIT;
+ }
if (op->cancel_with_status != GRPC_STATUS_OK) {
cancel_from_api(exec_ctx, transport_global, stream_global,
@@ -840,7 +858,8 @@ static void perform_stream_op_locked(
}
} else {
grpc_chttp2_complete_closure_step(
- exec_ctx, &stream_global->send_initial_metadata_finished, 0);
+ exec_ctx, stream_global,
+ &stream_global->send_initial_metadata_finished, 0);
}
}
@@ -850,7 +869,7 @@ static void perform_stream_op_locked(
stream_global->send_message_finished = add_closure_barrier(on_complete);
if (stream_global->write_closed) {
grpc_chttp2_complete_closure_step(
- exec_ctx, &stream_global->send_message_finished, 0);
+ exec_ctx, stream_global, &stream_global->send_message_finished, 0);
} else {
stream_global->send_message = op->send_message;
if (stream_global->id != 0) {
@@ -870,7 +889,8 @@ static void perform_stream_op_locked(
}
if (stream_global->write_closed) {
grpc_chttp2_complete_closure_step(
- exec_ctx, &stream_global->send_trailing_metadata_finished,
+ exec_ctx, stream_global,
+ &stream_global->send_trailing_metadata_finished,
grpc_metadata_batch_is_empty(op->send_trailing_metadata));
} else if (stream_global->id != 0) {
/* TODO(ctiller): check if there's flow control for any outstanding
@@ -909,7 +929,7 @@ static void perform_stream_op_locked(
grpc_chttp2_list_add_check_read_ops(transport_global, stream_global);
}
- grpc_chttp2_complete_closure_step(exec_ctx, &on_complete, 1);
+ grpc_chttp2_complete_closure_step(exec_ctx, stream_global, &on_complete, 1);
GPR_TIMER_END("perform_stream_op_locked", 0);
}
@@ -1080,7 +1100,8 @@ static void check_read_ops(grpc_exec_ctx *exec_ctx,
&stream_global->received_trailing_metadata,
stream_global->recv_trailing_metadata);
grpc_chttp2_complete_closure_step(
- exec_ctx, &stream_global->recv_trailing_metadata_finished, 1);
+ exec_ctx, stream_global,
+ &stream_global->recv_trailing_metadata_finished, 1);
}
}
}
@@ -1131,7 +1152,8 @@ static void cancel_from_api(grpc_exec_ctx *exec_ctx,
&transport_global->qbuf,
grpc_chttp2_rst_stream_create(
stream_global->id,
- (uint32_t)grpc_chttp2_grpc_status_to_http2_error(status)));
+ (uint32_t)grpc_chttp2_grpc_status_to_http2_error(status),
+ &stream_global->stats.outgoing));
}
grpc_chttp2_fake_status(exec_ctx, transport_global, stream_global, status,
NULL);
@@ -1179,10 +1201,12 @@ void grpc_chttp2_fake_status(grpc_exec_ctx *exec_ctx,
static void fail_pending_writes(grpc_exec_ctx *exec_ctx,
grpc_chttp2_stream_global *stream_global) {
grpc_chttp2_complete_closure_step(
- exec_ctx, &stream_global->send_initial_metadata_finished, 0);
+ exec_ctx, stream_global, &stream_global->send_initial_metadata_finished,
+ 0);
grpc_chttp2_complete_closure_step(
- exec_ctx, &stream_global->send_trailing_metadata_finished, 0);
- grpc_chttp2_complete_closure_step(exec_ctx,
+ exec_ctx, stream_global, &stream_global->send_trailing_metadata_finished,
+ 0);
+ grpc_chttp2_complete_closure_step(exec_ctx, stream_global,
&stream_global->send_message_finished, 0);
}
@@ -1319,7 +1343,8 @@ static void close_from_api(grpc_exec_ctx *exec_ctx,
gpr_slice_buffer_add(
&transport_global->qbuf,
- grpc_chttp2_rst_stream_create(stream_global->id, GRPC_CHTTP2_NO_ERROR));
+ grpc_chttp2_rst_stream_create(stream_global->id, GRPC_CHTTP2_NO_ERROR,
+ &stream_global->stats.outgoing));
if (optional_message) {
gpr_slice_ref(*optional_message);
diff --git a/src/core/lib/transport/chttp2_transport.h b/src/core/ext/transport/chttp2/transport/chttp2_transport.h
index 5008cab7f8..5da4276f82 100644
--- a/src/core/lib/transport/chttp2_transport.h
+++ b/src/core/ext/transport/chttp2/transport/chttp2_transport.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,8 +31,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_TRANSPORT_CHTTP2_TRANSPORT_H
-#define GRPC_CORE_LIB_TRANSPORT_CHTTP2_TRANSPORT_H
+#ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_CHTTP2_TRANSPORT_H
+#define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_CHTTP2_TRANSPORT_H
#include "src/core/lib/iomgr/endpoint.h"
#include "src/core/lib/transport/transport.h"
@@ -48,4 +48,4 @@ void grpc_chttp2_transport_start_reading(grpc_exec_ctx *exec_ctx,
grpc_transport *transport,
gpr_slice *slices, size_t nslices);
-#endif /* GRPC_CORE_LIB_TRANSPORT_CHTTP2_TRANSPORT_H */
+#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_CHTTP2_TRANSPORT_H */
diff --git a/src/core/lib/transport/chttp2/frame.h b/src/core/ext/transport/chttp2/transport/frame.h
index 4674bc9703..5c72d91c2a 100644
--- a/src/core/lib/transport/chttp2/frame.h
+++ b/src/core/ext/transport/chttp2/transport/frame.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,8 +31,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_TRANSPORT_CHTTP2_FRAME_H
-#define GRPC_CORE_LIB_TRANSPORT_CHTTP2_FRAME_H
+#ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_H
+#define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_H
#include <grpc/support/port_platform.h>
#include <grpc/support/slice.h>
@@ -66,4 +66,4 @@ typedef struct grpc_chttp2_transport_parsing grpc_chttp2_transport_parsing;
#define GRPC_CHTTP2_DATA_FLAG_PADDED 8
#define GRPC_CHTTP2_FLAG_HAS_PRIORITY 0x20
-#endif /* GRPC_CORE_LIB_TRANSPORT_CHTTP2_FRAME_H */
+#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_H */
diff --git a/src/core/lib/transport/chttp2/frame_data.c b/src/core/ext/transport/chttp2/transport/frame_data.c
index cf25c3ccc1..9c301d1608 100644
--- a/src/core/lib/transport/chttp2/frame_data.c
+++ b/src/core/ext/transport/chttp2/transport/frame_data.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,15 +31,15 @@
*
*/
-#include "src/core/lib/transport/chttp2/frame_data.h"
+#include "src/core/ext/transport/chttp2/transport/frame_data.h"
#include <string.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/useful.h>
+#include "src/core/ext/transport/chttp2/transport/internal.h"
#include "src/core/lib/support/string.h"
-#include "src/core/lib/transport/chttp2/internal.h"
#include "src/core/lib/transport/transport.h"
grpc_chttp2_parse_error grpc_chttp2_data_parser_init(
@@ -113,11 +113,13 @@ grpc_byte_stream *grpc_chttp2_incoming_frame_queue_pop(
void grpc_chttp2_encode_data(uint32_t id, gpr_slice_buffer *inbuf,
uint32_t write_bytes, int is_eof,
+ grpc_transport_one_way_stats *stats,
gpr_slice_buffer *outbuf) {
gpr_slice hdr;
uint8_t *p;
+ static const size_t header_size = 9;
- hdr = gpr_slice_malloc(9);
+ hdr = gpr_slice_malloc(header_size);
p = GPR_SLICE_START_PTR(hdr);
GPR_ASSERT(write_bytes < (1 << 24));
*p++ = (uint8_t)(write_bytes >> 16);
@@ -132,6 +134,9 @@ void grpc_chttp2_encode_data(uint32_t id, gpr_slice_buffer *inbuf,
gpr_slice_buffer_add(outbuf, hdr);
gpr_slice_buffer_move_first(inbuf, write_bytes, outbuf);
+
+ stats->framing_bytes += header_size;
+ stats->data_bytes += write_bytes;
}
grpc_chttp2_parse_error grpc_chttp2_data_parser_parse(
@@ -156,6 +161,7 @@ grpc_chttp2_parse_error grpc_chttp2_data_parser_parse(
switch (p->state) {
fh_0:
case GRPC_CHTTP2_DATA_FH_0:
+ stream_parsing->stats.incoming.framing_bytes++;
p->frame_type = *cur;
switch (p->frame_type) {
case 0:
@@ -174,6 +180,7 @@ grpc_chttp2_parse_error grpc_chttp2_data_parser_parse(
}
/* fallthrough */
case GRPC_CHTTP2_DATA_FH_1:
+ stream_parsing->stats.incoming.framing_bytes++;
p->frame_size = ((uint32_t)*cur) << 24;
if (++cur == end) {
p->state = GRPC_CHTTP2_DATA_FH_2;
@@ -181,6 +188,7 @@ grpc_chttp2_parse_error grpc_chttp2_data_parser_parse(
}
/* fallthrough */
case GRPC_CHTTP2_DATA_FH_2:
+ stream_parsing->stats.incoming.framing_bytes++;
p->frame_size |= ((uint32_t)*cur) << 16;
if (++cur == end) {
p->state = GRPC_CHTTP2_DATA_FH_3;
@@ -188,6 +196,7 @@ grpc_chttp2_parse_error grpc_chttp2_data_parser_parse(
}
/* fallthrough */
case GRPC_CHTTP2_DATA_FH_3:
+ stream_parsing->stats.incoming.framing_bytes++;
p->frame_size |= ((uint32_t)*cur) << 8;
if (++cur == end) {
p->state = GRPC_CHTTP2_DATA_FH_4;
@@ -195,6 +204,7 @@ grpc_chttp2_parse_error grpc_chttp2_data_parser_parse(
}
/* fallthrough */
case GRPC_CHTTP2_DATA_FH_4:
+ stream_parsing->stats.incoming.framing_bytes++;
p->frame_size |= ((uint32_t)*cur);
p->state = GRPC_CHTTP2_DATA_FRAME;
++cur;
@@ -215,7 +225,9 @@ grpc_chttp2_parse_error grpc_chttp2_data_parser_parse(
}
grpc_chttp2_list_add_parsing_seen_stream(transport_parsing,
stream_parsing);
- if ((uint32_t)(end - cur) == p->frame_size) {
+ uint32_t remaining = (uint32_t)(end - cur);
+ if (remaining == p->frame_size) {
+ stream_parsing->stats.incoming.data_bytes += p->frame_size;
grpc_chttp2_incoming_byte_stream_push(
exec_ctx, p->parsing_frame,
gpr_slice_sub(slice, (size_t)(cur - beg), (size_t)(end - beg)));
@@ -224,7 +236,8 @@ grpc_chttp2_parse_error grpc_chttp2_data_parser_parse(
p->parsing_frame = NULL;
p->state = GRPC_CHTTP2_DATA_FH_0;
return GRPC_CHTTP2_PARSE_OK;
- } else if ((uint32_t)(end - cur) > p->frame_size) {
+ } else if (remaining > p->frame_size) {
+ stream_parsing->stats.incoming.data_bytes += p->frame_size;
grpc_chttp2_incoming_byte_stream_push(
exec_ctx, p->parsing_frame,
gpr_slice_sub(slice, (size_t)(cur - beg),
@@ -235,11 +248,12 @@ grpc_chttp2_parse_error grpc_chttp2_data_parser_parse(
cur += p->frame_size;
goto fh_0; /* loop */
} else {
+ GPR_ASSERT(remaining <= p->frame_size);
grpc_chttp2_incoming_byte_stream_push(
exec_ctx, p->parsing_frame,
gpr_slice_sub(slice, (size_t)(cur - beg), (size_t)(end - beg)));
- GPR_ASSERT((size_t)(end - cur) <= p->frame_size);
- p->frame_size -= (uint32_t)(end - cur);
+ p->frame_size -= remaining;
+ stream_parsing->stats.incoming.data_bytes += remaining;
return GRPC_CHTTP2_PARSE_OK;
}
}
diff --git a/src/core/lib/transport/chttp2/frame_data.h b/src/core/ext/transport/chttp2/transport/frame_data.h
index da404a42c6..2ff32963d6 100644
--- a/src/core/lib/transport/chttp2/frame_data.h
+++ b/src/core/ext/transport/chttp2/transport/frame_data.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,16 +31,17 @@
*
*/
-#ifndef GRPC_CORE_LIB_TRANSPORT_CHTTP2_FRAME_DATA_H
-#define GRPC_CORE_LIB_TRANSPORT_CHTTP2_FRAME_DATA_H
+#ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_DATA_H
+#define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_DATA_H
/* Parser for GRPC streams embedded in DATA frames */
#include <grpc/support/slice.h>
#include <grpc/support/slice_buffer.h>
+#include "src/core/ext/transport/chttp2/transport/frame.h"
#include "src/core/lib/iomgr/exec_ctx.h"
#include "src/core/lib/transport/byte_stream.h"
-#include "src/core/lib/transport/chttp2/frame.h"
+#include "src/core/lib/transport/transport.h"
typedef enum {
GRPC_CHTTP2_DATA_FH_0,
@@ -96,6 +97,7 @@ grpc_chttp2_parse_error grpc_chttp2_data_parser_parse(
void grpc_chttp2_encode_data(uint32_t id, gpr_slice_buffer *inbuf,
uint32_t write_bytes, int is_eof,
+ grpc_transport_one_way_stats *stats,
gpr_slice_buffer *outbuf);
-#endif /* GRPC_CORE_LIB_TRANSPORT_CHTTP2_FRAME_DATA_H */
+#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_DATA_H */
diff --git a/src/core/lib/transport/chttp2/frame_goaway.c b/src/core/ext/transport/chttp2/transport/frame_goaway.c
index bb8c28df90..69accb7696 100644
--- a/src/core/lib/transport/chttp2/frame_goaway.c
+++ b/src/core/ext/transport/chttp2/transport/frame_goaway.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,8 +31,8 @@
*
*/
-#include "src/core/lib/transport/chttp2/frame_goaway.h"
-#include "src/core/lib/transport/chttp2/internal.h"
+#include "src/core/ext/transport/chttp2/transport/frame_goaway.h"
+#include "src/core/ext/transport/chttp2/transport/internal.h"
#include <string.h>
diff --git a/src/core/lib/transport/chttp2/frame_goaway.h b/src/core/ext/transport/chttp2/transport/frame_goaway.h
index f64c44f3d9..7c38b26a39 100644
--- a/src/core/lib/transport/chttp2/frame_goaway.h
+++ b/src/core/ext/transport/chttp2/transport/frame_goaway.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,14 +31,14 @@
*
*/
-#ifndef GRPC_CORE_LIB_TRANSPORT_CHTTP2_FRAME_GOAWAY_H
-#define GRPC_CORE_LIB_TRANSPORT_CHTTP2_FRAME_GOAWAY_H
+#ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_GOAWAY_H
+#define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_GOAWAY_H
#include <grpc/support/port_platform.h>
#include <grpc/support/slice.h>
#include <grpc/support/slice_buffer.h>
+#include "src/core/ext/transport/chttp2/transport/frame.h"
#include "src/core/lib/iomgr/exec_ctx.h"
-#include "src/core/lib/transport/chttp2/frame.h"
typedef enum {
GRPC_CHTTP2_GOAWAY_LSI0,
@@ -74,4 +74,4 @@ void grpc_chttp2_goaway_append(uint32_t last_stream_id, uint32_t error_code,
gpr_slice debug_data,
gpr_slice_buffer *slice_buffer);
-#endif /* GRPC_CORE_LIB_TRANSPORT_CHTTP2_FRAME_GOAWAY_H */
+#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_GOAWAY_H */
diff --git a/src/core/lib/transport/chttp2/frame_ping.c b/src/core/ext/transport/chttp2/transport/frame_ping.c
index 14ca394264..7e1815f0fe 100644
--- a/src/core/lib/transport/chttp2/frame_ping.c
+++ b/src/core/ext/transport/chttp2/transport/frame_ping.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,8 +31,8 @@
*
*/
-#include "src/core/lib/transport/chttp2/frame_ping.h"
-#include "src/core/lib/transport/chttp2/internal.h"
+#include "src/core/ext/transport/chttp2/transport/frame_ping.h"
+#include "src/core/ext/transport/chttp2/transport/internal.h"
#include <string.h>
diff --git a/src/core/lib/transport/chttp2/frame_ping.h b/src/core/ext/transport/chttp2/transport/frame_ping.h
index 7640fc4773..4f7fcc1305 100644
--- a/src/core/lib/transport/chttp2/frame_ping.h
+++ b/src/core/ext/transport/chttp2/transport/frame_ping.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,12 +31,12 @@
*
*/
-#ifndef GRPC_CORE_LIB_TRANSPORT_CHTTP2_FRAME_PING_H
-#define GRPC_CORE_LIB_TRANSPORT_CHTTP2_FRAME_PING_H
+#ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_PING_H
+#define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_PING_H
#include <grpc/support/slice.h>
+#include "src/core/ext/transport/chttp2/transport/frame.h"
#include "src/core/lib/iomgr/exec_ctx.h"
-#include "src/core/lib/transport/chttp2/frame.h"
typedef struct {
uint8_t byte;
@@ -53,4 +53,4 @@ grpc_chttp2_parse_error grpc_chttp2_ping_parser_parse(
grpc_chttp2_transport_parsing *transport_parsing,
grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last);
-#endif /* GRPC_CORE_LIB_TRANSPORT_CHTTP2_FRAME_PING_H */
+#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_PING_H */
diff --git a/src/core/lib/transport/chttp2/frame_rst_stream.c b/src/core/ext/transport/chttp2/transport/frame_rst_stream.c
index 060912afc4..22467e9ddd 100644
--- a/src/core/lib/transport/chttp2/frame_rst_stream.c
+++ b/src/core/ext/transport/chttp2/transport/frame_rst_stream.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,15 +31,18 @@
*
*/
-#include "src/core/lib/transport/chttp2/frame_rst_stream.h"
-#include "src/core/lib/transport/chttp2/internal.h"
+#include "src/core/ext/transport/chttp2/transport/frame_rst_stream.h"
+#include "src/core/ext/transport/chttp2/transport/internal.h"
#include <grpc/support/log.h>
-#include "src/core/lib/transport/chttp2/frame.h"
+#include "src/core/ext/transport/chttp2/transport/frame.h"
-gpr_slice grpc_chttp2_rst_stream_create(uint32_t id, uint32_t code) {
- gpr_slice slice = gpr_slice_malloc(13);
+gpr_slice grpc_chttp2_rst_stream_create(uint32_t id, uint32_t code,
+ grpc_transport_one_way_stats *stats) {
+ static const size_t frame_size = 13;
+ gpr_slice slice = gpr_slice_malloc(frame_size);
+ stats->framing_bytes += frame_size;
uint8_t *p = GPR_SLICE_START_PTR(slice);
*p++ = 0;
@@ -84,6 +87,7 @@ grpc_chttp2_parse_error grpc_chttp2_rst_stream_parser_parse(
cur++;
p->byte++;
}
+ stream_parsing->stats.incoming.framing_bytes += (uint64_t)(end - cur);
if (p->byte == 4) {
GPR_ASSERT(is_last);
diff --git a/src/core/lib/transport/chttp2/frame_rst_stream.h b/src/core/ext/transport/chttp2/transport/frame_rst_stream.h
index 93155fde9d..9c1e756a94 100644
--- a/src/core/lib/transport/chttp2/frame_rst_stream.h
+++ b/src/core/ext/transport/chttp2/transport/frame_rst_stream.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,19 +31,21 @@
*
*/
-#ifndef GRPC_CORE_LIB_TRANSPORT_CHTTP2_FRAME_RST_STREAM_H
-#define GRPC_CORE_LIB_TRANSPORT_CHTTP2_FRAME_RST_STREAM_H
+#ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_RST_STREAM_H
+#define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_RST_STREAM_H
#include <grpc/support/slice.h>
+#include "src/core/ext/transport/chttp2/transport/frame.h"
#include "src/core/lib/iomgr/exec_ctx.h"
-#include "src/core/lib/transport/chttp2/frame.h"
+#include "src/core/lib/transport/transport.h"
typedef struct {
uint8_t byte;
uint8_t reason_bytes[4];
} grpc_chttp2_rst_stream_parser;
-gpr_slice grpc_chttp2_rst_stream_create(uint32_t stream_id, uint32_t code);
+gpr_slice grpc_chttp2_rst_stream_create(uint32_t stream_id, uint32_t code,
+ grpc_transport_one_way_stats *stats);
grpc_chttp2_parse_error grpc_chttp2_rst_stream_parser_begin_frame(
grpc_chttp2_rst_stream_parser *parser, uint32_t length, uint8_t flags);
@@ -52,4 +54,4 @@ grpc_chttp2_parse_error grpc_chttp2_rst_stream_parser_parse(
grpc_chttp2_transport_parsing *transport_parsing,
grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last);
-#endif /* GRPC_CORE_LIB_TRANSPORT_CHTTP2_FRAME_RST_STREAM_H */
+#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_RST_STREAM_H */
diff --git a/src/core/lib/transport/chttp2/frame_settings.c b/src/core/ext/transport/chttp2/transport/frame_settings.c
index 48429c2a78..a3c1e15f35 100644
--- a/src/core/lib/transport/chttp2/frame_settings.c
+++ b/src/core/ext/transport/chttp2/transport/frame_settings.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,18 +31,18 @@
*
*/
-#include "src/core/lib/transport/chttp2/frame_settings.h"
-#include "src/core/lib/transport/chttp2/internal.h"
+#include "src/core/ext/transport/chttp2/transport/frame_settings.h"
+#include "src/core/ext/transport/chttp2/transport/internal.h"
#include <string.h>
#include <grpc/support/log.h>
#include <grpc/support/useful.h>
+#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
+#include "src/core/ext/transport/chttp2/transport/frame.h"
+#include "src/core/ext/transport/chttp2/transport/http2_errors.h"
#include "src/core/lib/debug/trace.h"
-#include "src/core/lib/transport/chttp2/frame.h"
-#include "src/core/lib/transport/chttp2/http2_errors.h"
-#include "src/core/lib/transport/chttp2_transport.h"
#define MAX_MAX_HEADER_LIST_SIZE (1024 * 1024 * 1024)
diff --git a/src/core/lib/transport/chttp2/frame_settings.h b/src/core/ext/transport/chttp2/transport/frame_settings.h
index 8b294de021..d9e30f1ed0 100644
--- a/src/core/lib/transport/chttp2/frame_settings.h
+++ b/src/core/ext/transport/chttp2/transport/frame_settings.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,13 +31,13 @@
*
*/
-#ifndef GRPC_CORE_LIB_TRANSPORT_CHTTP2_FRAME_SETTINGS_H
-#define GRPC_CORE_LIB_TRANSPORT_CHTTP2_FRAME_SETTINGS_H
+#ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_SETTINGS_H
+#define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_SETTINGS_H
#include <grpc/support/port_platform.h>
#include <grpc/support/slice.h>
+#include "src/core/ext/transport/chttp2/transport/frame.h"
#include "src/core/lib/iomgr/exec_ctx.h"
-#include "src/core/lib/transport/chttp2/frame.h"
typedef enum {
GRPC_CHTTP2_SPS_ID0,
@@ -100,4 +100,4 @@ grpc_chttp2_parse_error grpc_chttp2_settings_parser_parse(
grpc_chttp2_transport_parsing *transport_parsing,
grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last);
-#endif /* GRPC_CORE_LIB_TRANSPORT_CHTTP2_FRAME_SETTINGS_H */
+#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_SETTINGS_H */
diff --git a/src/core/lib/transport/chttp2/frame_window_update.c b/src/core/ext/transport/chttp2/transport/frame_window_update.c
index 2ab5003316..90243418bd 100644
--- a/src/core/lib/transport/chttp2/frame_window_update.c
+++ b/src/core/ext/transport/chttp2/transport/frame_window_update.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,14 +31,16 @@
*
*/
-#include "src/core/lib/transport/chttp2/frame_window_update.h"
-#include "src/core/lib/transport/chttp2/internal.h"
+#include "src/core/ext/transport/chttp2/transport/frame_window_update.h"
+#include "src/core/ext/transport/chttp2/transport/internal.h"
#include <grpc/support/log.h>
-gpr_slice grpc_chttp2_window_update_create(uint32_t id,
- uint32_t window_update) {
- gpr_slice slice = gpr_slice_malloc(13);
+gpr_slice grpc_chttp2_window_update_create(
+ uint32_t id, uint32_t window_update, grpc_transport_one_way_stats *stats) {
+ static const size_t frame_size = 13;
+ gpr_slice slice = gpr_slice_malloc(frame_size);
+ stats->header_bytes += frame_size;
uint8_t *p = GPR_SLICE_START_PTR(slice);
GPR_ASSERT(window_update);
@@ -87,6 +89,10 @@ grpc_chttp2_parse_error grpc_chttp2_window_update_parser_parse(
p->byte++;
}
+ if (stream_parsing != NULL) {
+ stream_parsing->stats.incoming.framing_bytes += (uint32_t)(end - cur);
+ }
+
if (p->byte == 4) {
uint32_t received_update = p->amount;
if (received_update == 0 || (received_update & 0x80000000u)) {
diff --git a/src/core/lib/transport/chttp2/frame_window_update.h b/src/core/ext/transport/chttp2/transport/frame_window_update.h
index 4b1aea294d..d6e87b9329 100644
--- a/src/core/lib/transport/chttp2/frame_window_update.h
+++ b/src/core/ext/transport/chttp2/transport/frame_window_update.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,12 +31,13 @@
*
*/
-#ifndef GRPC_CORE_LIB_TRANSPORT_CHTTP2_FRAME_WINDOW_UPDATE_H
-#define GRPC_CORE_LIB_TRANSPORT_CHTTP2_FRAME_WINDOW_UPDATE_H
+#ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_WINDOW_UPDATE_H
+#define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_WINDOW_UPDATE_H
#include <grpc/support/slice.h>
+#include "src/core/ext/transport/chttp2/transport/frame.h"
#include "src/core/lib/iomgr/exec_ctx.h"
-#include "src/core/lib/transport/chttp2/frame.h"
+#include "src/core/lib/transport/transport.h"
typedef struct {
uint8_t byte;
@@ -44,7 +45,8 @@ typedef struct {
uint32_t amount;
} grpc_chttp2_window_update_parser;
-gpr_slice grpc_chttp2_window_update_create(uint32_t id, uint32_t window_delta);
+gpr_slice grpc_chttp2_window_update_create(uint32_t id, uint32_t window_delta,
+ grpc_transport_one_way_stats *stats);
grpc_chttp2_parse_error grpc_chttp2_window_update_parser_begin_frame(
grpc_chttp2_window_update_parser *parser, uint32_t length, uint8_t flags);
@@ -53,4 +55,4 @@ grpc_chttp2_parse_error grpc_chttp2_window_update_parser_parse(
grpc_chttp2_transport_parsing *transport_parsing,
grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last);
-#endif /* GRPC_CORE_LIB_TRANSPORT_CHTTP2_FRAME_WINDOW_UPDATE_H */
+#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_FRAME_WINDOW_UPDATE_H */
diff --git a/src/core/lib/transport/chttp2/hpack_encoder.c b/src/core/ext/transport/chttp2/transport/hpack_encoder.c
index 6b45929b04..807cb5c8f4 100644
--- a/src/core/lib/transport/chttp2/hpack_encoder.c
+++ b/src/core/ext/transport/chttp2/transport/hpack_encoder.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/transport/chttp2/hpack_encoder.h"
+#include "src/core/ext/transport/chttp2/transport/hpack_encoder.h"
#include <assert.h>
#include <string.h>
@@ -45,10 +45,10 @@
#include <grpc/support/log.h>
#include <grpc/support/useful.h>
-#include "src/core/lib/transport/chttp2/bin_encoder.h"
-#include "src/core/lib/transport/chttp2/hpack_table.h"
-#include "src/core/lib/transport/chttp2/timeout_encoding.h"
-#include "src/core/lib/transport/chttp2/varint.h"
+#include "src/core/ext/transport/chttp2/transport/bin_encoder.h"
+#include "src/core/ext/transport/chttp2/transport/hpack_table.h"
+#include "src/core/ext/transport/chttp2/transport/timeout_encoding.h"
+#include "src/core/ext/transport/chttp2/transport/varint.h"
#include "src/core/lib/transport/static_metadata.h"
#define HASH_FRAGMENT_1(x) ((x)&255)
@@ -74,6 +74,7 @@ typedef struct {
/* output stream id */
uint32_t stream_id;
gpr_slice_buffer *output;
+ grpc_transport_one_way_stats *stats;
} framer_state;
/* fills p (which is expected to be 9 bytes long) with a data frame header */
@@ -102,6 +103,7 @@ static void finish_frame(framer_state *st, int is_header_boundary,
st->stream_id, st->output->length - st->output_length_at_start_of_frame,
(uint8_t)((is_last_in_stream ? GRPC_CHTTP2_DATA_FLAG_END_STREAM : 0) |
(is_header_boundary ? GRPC_CHTTP2_DATA_FLAG_END_HEADERS : 0)));
+ st->stats->framing_bytes += 9;
st->is_first_frame = 0;
}
@@ -147,8 +149,10 @@ static void add_header_data(framer_state *st, gpr_slice slice) {
remaining = GRPC_CHTTP2_MAX_PAYLOAD_LENGTH +
st->output_length_at_start_of_frame - st->output->length;
if (len <= remaining) {
+ st->stats->header_bytes += len;
gpr_slice_buffer_add(st->output, slice);
} else {
+ st->stats->header_bytes += remaining;
gpr_slice_buffer_add(st->output, gpr_slice_split_head(&slice, remaining));
finish_frame(st, 0, 0);
begin_frame(st);
@@ -535,6 +539,7 @@ void grpc_chttp2_hpack_compressor_set_max_table_size(
void grpc_chttp2_encode_header(grpc_chttp2_hpack_compressor *c,
uint32_t stream_id,
grpc_metadata_batch *metadata, int is_eof,
+ grpc_transport_one_way_stats *stats,
gpr_slice_buffer *outbuf) {
framer_state st;
grpc_linked_mdelem *l;
@@ -546,6 +551,7 @@ void grpc_chttp2_encode_header(grpc_chttp2_hpack_compressor *c,
st.stream_id = stream_id;
st.output = outbuf;
st.is_first_frame = 1;
+ st.stats = stats;
/* Encode a metadata batch; store the returned values, representing
a metadata element that needs to be unreffed back into the metadata
diff --git a/src/core/lib/transport/chttp2/hpack_encoder.h b/src/core/ext/transport/chttp2/transport/hpack_encoder.h
index de46a8f146..0f7b0b063a 100644
--- a/src/core/lib/transport/chttp2/hpack_encoder.h
+++ b/src/core/ext/transport/chttp2/transport/hpack_encoder.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,15 +31,16 @@
*
*/
-#ifndef GRPC_CORE_LIB_TRANSPORT_CHTTP2_HPACK_ENCODER_H
-#define GRPC_CORE_LIB_TRANSPORT_CHTTP2_HPACK_ENCODER_H
+#ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_ENCODER_H
+#define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_ENCODER_H
#include <grpc/support/port_platform.h>
#include <grpc/support/slice.h>
#include <grpc/support/slice_buffer.h>
-#include "src/core/lib/transport/chttp2/frame.h"
+#include "src/core/ext/transport/chttp2/transport/frame.h"
#include "src/core/lib/transport/metadata.h"
#include "src/core/lib/transport/metadata_batch.h"
+#include "src/core/lib/transport/transport.h"
#define GRPC_CHTTP2_HPACKC_NUM_FILTERS 256
#define GRPC_CHTTP2_HPACKC_NUM_VALUES 256
@@ -90,6 +91,7 @@ void grpc_chttp2_hpack_compressor_set_max_usable_size(
void grpc_chttp2_encode_header(grpc_chttp2_hpack_compressor *c, uint32_t id,
grpc_metadata_batch *metadata, int is_eof,
+ grpc_transport_one_way_stats *stats,
gpr_slice_buffer *outbuf);
-#endif /* GRPC_CORE_LIB_TRANSPORT_CHTTP2_HPACK_ENCODER_H */
+#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_ENCODER_H */
diff --git a/src/core/lib/transport/chttp2/hpack_parser.c b/src/core/ext/transport/chttp2/transport/hpack_parser.c
index d41ebab147..a36d2fc382 100644
--- a/src/core/lib/transport/chttp2/hpack_parser.c
+++ b/src/core/ext/transport/chttp2/transport/hpack_parser.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,8 +31,8 @@
*
*/
-#include "src/core/lib/transport/chttp2/hpack_parser.h"
-#include "src/core/lib/transport/chttp2/internal.h"
+#include "src/core/ext/transport/chttp2/transport/hpack_parser.h"
+#include "src/core/ext/transport/chttp2/transport/internal.h"
#include <assert.h>
#include <stddef.h>
@@ -48,9 +48,11 @@
#include <grpc/support/port_platform.h>
#include <grpc/support/useful.h>
+#include "src/core/ext/transport/chttp2/transport/bin_encoder.h"
#include "src/core/lib/profiling/timers.h"
#include "src/core/lib/support/string.h"
-#include "src/core/lib/transport/chttp2/bin_encoder.h"
+
+extern int grpc_http_trace;
typedef enum {
NOT_BINARY,
@@ -723,7 +725,9 @@ static int finish_indexed_field(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
const uint8_t *end) {
grpc_mdelem *md = grpc_chttp2_hptbl_lookup(&p->table, p->index);
if (md == NULL) {
- gpr_log(GPR_ERROR, "Invalid HPACK index received: %d", p->index);
+ if (grpc_http_trace) {
+ gpr_log(GPR_ERROR, "Invalid HPACK index received: %d", p->index);
+ }
return 0;
}
GRPC_MDELEM_REF(md);
@@ -919,7 +923,9 @@ static int parse_lithdr_nvridx_v(grpc_chttp2_hpack_parser *p,
/* finish parsing a max table size change */
static int finish_max_tbl_size(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
const uint8_t *end) {
- gpr_log(GPR_INFO, "MAX TABLE SIZE: %d", p->index);
+ if (grpc_http_trace) {
+ gpr_log(GPR_INFO, "MAX TABLE SIZE: %d", p->index);
+ }
return grpc_chttp2_hptbl_set_current_table_size(&p->table, p->index) &&
parse_begin(p, cur, end);
}
@@ -960,7 +966,9 @@ static int parse_error(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
static int parse_illegal_op(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
const uint8_t *end) {
GPR_ASSERT(cur != end);
- gpr_log(GPR_DEBUG, "Illegal hpack op code %d", *cur);
+ if (grpc_http_trace) {
+ gpr_log(GPR_DEBUG, "Illegal hpack op code %d", *cur);
+ }
return parse_error(p, cur, end);
}
@@ -1069,10 +1077,12 @@ static int parse_value4(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
}
error:
- gpr_log(GPR_ERROR,
- "integer overflow in hpack integer decoding: have 0x%08x, "
- "got byte 0x%02x on byte 5",
- *p->parsing.value, *cur);
+ if (grpc_http_trace) {
+ gpr_log(GPR_ERROR,
+ "integer overflow in hpack integer decoding: have 0x%08x, "
+ "got byte 0x%02x on byte 5",
+ *p->parsing.value, *cur);
+ }
return parse_error(p, cur, end);
}
@@ -1094,10 +1104,12 @@ static int parse_value5up(grpc_chttp2_hpack_parser *p, const uint8_t *cur,
return parse_next(p, cur + 1, end);
}
- gpr_log(GPR_ERROR,
- "integer overflow in hpack integer decoding: have 0x%08x, "
- "got byte 0x%02x sometime after byte 5",
- *p->parsing.value, *cur);
+ if (grpc_http_trace) {
+ gpr_log(GPR_ERROR,
+ "integer overflow in hpack integer decoding: have 0x%08x, "
+ "got byte 0x%02x sometime after byte 5",
+ *p->parsing.value, *cur);
+ }
return parse_error(p, cur, end);
}
@@ -1329,7 +1341,9 @@ static is_binary_header is_binary_literal_header(grpc_chttp2_hpack_parser *p) {
static is_binary_header is_binary_indexed_header(grpc_chttp2_hpack_parser *p) {
grpc_mdelem *elem = grpc_chttp2_hptbl_lookup(&p->table, p->index);
if (!elem) {
- gpr_log(GPR_ERROR, "Invalid HPACK index received: %d", p->index);
+ if (grpc_http_trace) {
+ gpr_log(GPR_ERROR, "Invalid HPACK index received: %d", p->index);
+ }
return ERROR_HEADER;
}
return grpc_is_binary_header(
@@ -1412,6 +1426,9 @@ grpc_chttp2_parse_error grpc_chttp2_header_parser_parse(
grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last) {
grpc_chttp2_hpack_parser *parser = hpack_parser;
GPR_TIMER_BEGIN("grpc_chttp2_hpack_parser_parse", 0);
+ if (stream_parsing != NULL) {
+ stream_parsing->stats.incoming.header_bytes += GPR_SLICE_LENGTH(slice);
+ }
if (!grpc_chttp2_hpack_parser_parse(parser, GPR_SLICE_START_PTR(slice),
GPR_SLICE_END_PTR(slice))) {
GPR_TIMER_END("grpc_chttp2_hpack_parser_parse", 0);
diff --git a/src/core/lib/transport/chttp2/hpack_parser.h b/src/core/ext/transport/chttp2/transport/hpack_parser.h
index a534fd5cf4..855d6c5d52 100644
--- a/src/core/lib/transport/chttp2/hpack_parser.h
+++ b/src/core/ext/transport/chttp2/transport/hpack_parser.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,15 +31,15 @@
*
*/
-#ifndef GRPC_CORE_LIB_TRANSPORT_CHTTP2_HPACK_PARSER_H
-#define GRPC_CORE_LIB_TRANSPORT_CHTTP2_HPACK_PARSER_H
+#ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_PARSER_H
+#define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_PARSER_H
#include <stddef.h>
#include <grpc/support/port_platform.h>
+#include "src/core/ext/transport/chttp2/transport/frame.h"
+#include "src/core/ext/transport/chttp2/transport/hpack_table.h"
#include "src/core/lib/iomgr/exec_ctx.h"
-#include "src/core/lib/transport/chttp2/frame.h"
-#include "src/core/lib/transport/chttp2/hpack_table.h"
#include "src/core/lib/transport/metadata.h"
typedef struct grpc_chttp2_hpack_parser grpc_chttp2_hpack_parser;
@@ -113,4 +113,4 @@ grpc_chttp2_parse_error grpc_chttp2_header_parser_parse(
grpc_chttp2_transport_parsing *transport_parsing,
grpc_chttp2_stream_parsing *stream_parsing, gpr_slice slice, int is_last);
-#endif /* GRPC_CORE_LIB_TRANSPORT_CHTTP2_HPACK_PARSER_H */
+#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_PARSER_H */
diff --git a/src/core/lib/transport/chttp2/hpack_table.c b/src/core/ext/transport/chttp2/transport/hpack_table.c
index f92bc26585..4d64506de2 100644
--- a/src/core/lib/transport/chttp2/hpack_table.c
+++ b/src/core/ext/transport/chttp2/transport/hpack_table.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/transport/chttp2/hpack_table.h"
+#include "src/core/ext/transport/chttp2/transport/hpack_table.h"
#include <assert.h>
#include <string.h>
@@ -41,6 +41,8 @@
#include "src/core/lib/support/murmur_hash.h"
+extern int grpc_http_trace;
+
static struct {
const char *key;
const char *value;
@@ -264,12 +266,16 @@ int grpc_chttp2_hptbl_set_current_table_size(grpc_chttp2_hptbl *tbl,
return 1;
}
if (bytes > tbl->max_bytes) {
- gpr_log(GPR_ERROR,
- "Attempt to make hpack table %d bytes when max is %d bytes", bytes,
- tbl->max_bytes);
+ if (grpc_http_trace) {
+ gpr_log(GPR_ERROR,
+ "Attempt to make hpack table %d bytes when max is %d bytes",
+ bytes, tbl->max_bytes);
+ }
return 0;
}
- gpr_log(GPR_DEBUG, "Update hpack parser table size to %d", bytes);
+ if (grpc_http_trace) {
+ gpr_log(GPR_DEBUG, "Update hpack parser table size to %d", bytes);
+ }
while (tbl->mem_used > bytes) {
evict1(tbl);
}
@@ -293,10 +299,12 @@ int grpc_chttp2_hptbl_add(grpc_chttp2_hptbl *tbl, grpc_mdelem *md) {
GRPC_CHTTP2_HPACK_ENTRY_OVERHEAD;
if (tbl->current_table_bytes > tbl->max_bytes) {
- gpr_log(GPR_ERROR,
- "HPACK max table size reduced to %d but not reflected by hpack "
- "stream (still at %d)",
- tbl->max_bytes, tbl->current_table_bytes);
+ if (grpc_http_trace) {
+ gpr_log(GPR_ERROR,
+ "HPACK max table size reduced to %d but not reflected by hpack "
+ "stream (still at %d)",
+ tbl->max_bytes, tbl->current_table_bytes);
+ }
return 0;
}
diff --git a/src/core/lib/transport/chttp2/hpack_table.h b/src/core/ext/transport/chttp2/transport/hpack_table.h
index 2cbc02dd9c..074fea36d8 100644
--- a/src/core/lib/transport/chttp2/hpack_table.h
+++ b/src/core/ext/transport/chttp2/transport/hpack_table.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,8 +31,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_TRANSPORT_CHTTP2_HPACK_TABLE_H
-#define GRPC_CORE_LIB_TRANSPORT_CHTTP2_HPACK_TABLE_H
+#ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_TABLE_H
+#define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_TABLE_H
#include <grpc/support/port_platform.h>
#include <grpc/support/slice.h>
@@ -105,4 +105,4 @@ typedef struct {
grpc_chttp2_hptbl_find_result grpc_chttp2_hptbl_find(
const grpc_chttp2_hptbl *tbl, grpc_mdelem *md);
-#endif /* GRPC_CORE_LIB_TRANSPORT_CHTTP2_HPACK_TABLE_H */
+#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HPACK_TABLE_H */
diff --git a/src/core/lib/transport/chttp2/hpack_tables.txt b/src/core/ext/transport/chttp2/transport/hpack_tables.txt
index 08842a0267..08842a0267 100644
--- a/src/core/lib/transport/chttp2/hpack_tables.txt
+++ b/src/core/ext/transport/chttp2/transport/hpack_tables.txt
diff --git a/src/core/lib/transport/chttp2/http2_errors.h b/src/core/ext/transport/chttp2/transport/http2_errors.h
index 0238f9d80b..deab2b7e3e 100644
--- a/src/core/lib/transport/chttp2/http2_errors.h
+++ b/src/core/ext/transport/chttp2/transport/http2_errors.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,8 +31,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_TRANSPORT_CHTTP2_HTTP2_ERRORS_H
-#define GRPC_CORE_LIB_TRANSPORT_CHTTP2_HTTP2_ERRORS_H
+#ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HTTP2_ERRORS_H
+#define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HTTP2_ERRORS_H
/* error codes for RST_STREAM from http2 draft 14 section 7 */
typedef enum {
@@ -53,4 +53,4 @@ typedef enum {
GRPC_CHTTP2__ERROR_DO_NOT_USE = -1
} grpc_chttp2_error_code;
-#endif /* GRPC_CORE_LIB_TRANSPORT_CHTTP2_HTTP2_ERRORS_H */
+#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HTTP2_ERRORS_H */
diff --git a/src/core/lib/transport/chttp2/huffsyms.c b/src/core/ext/transport/chttp2/transport/huffsyms.c
index 27497e6ae0..68b34e4e2d 100644
--- a/src/core/lib/transport/chttp2/huffsyms.c
+++ b/src/core/ext/transport/chttp2/transport/huffsyms.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/transport/chttp2/huffsyms.h"
+#include "src/core/ext/transport/chttp2/transport/huffsyms.h"
/* Constants pulled from the HPACK spec, and converted to C using the vim
command:
diff --git a/src/core/lib/transport/chttp2/huffsyms.h b/src/core/ext/transport/chttp2/transport/huffsyms.h
index 1ca77b9207..fee00954a0 100644
--- a/src/core/lib/transport/chttp2/huffsyms.h
+++ b/src/core/ext/transport/chttp2/transport/huffsyms.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,8 +31,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_TRANSPORT_CHTTP2_HUFFSYMS_H
-#define GRPC_CORE_LIB_TRANSPORT_CHTTP2_HUFFSYMS_H
+#ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HUFFSYMS_H
+#define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HUFFSYMS_H
/* HPACK static huffman table */
@@ -45,4 +45,4 @@ typedef struct {
extern const grpc_chttp2_huffsym grpc_chttp2_huffsyms[GRPC_CHTTP2_NUM_HUFFSYMS];
-#endif /* GRPC_CORE_LIB_TRANSPORT_CHTTP2_HUFFSYMS_H */
+#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_HUFFSYMS_H */
diff --git a/src/core/lib/transport/chttp2/incoming_metadata.c b/src/core/ext/transport/chttp2/transport/incoming_metadata.c
index a1a8d37562..db21744f0c 100644
--- a/src/core/lib/transport/chttp2/incoming_metadata.c
+++ b/src/core/ext/transport/chttp2/transport/incoming_metadata.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,11 +31,11 @@
*
*/
-#include "src/core/lib/transport/chttp2/incoming_metadata.h"
+#include "src/core/ext/transport/chttp2/transport/incoming_metadata.h"
#include <string.h>
-#include "src/core/lib/transport/chttp2/internal.h"
+#include "src/core/ext/transport/chttp2/transport/internal.h"
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
diff --git a/src/core/lib/transport/chttp2/incoming_metadata.h b/src/core/ext/transport/chttp2/transport/incoming_metadata.h
index edfa0adf9d..17ecf8e181 100644
--- a/src/core/lib/transport/chttp2/incoming_metadata.h
+++ b/src/core/ext/transport/chttp2/transport/incoming_metadata.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,8 +31,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_TRANSPORT_CHTTP2_INCOMING_METADATA_H
-#define GRPC_CORE_LIB_TRANSPORT_CHTTP2_INCOMING_METADATA_H
+#ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_INCOMING_METADATA_H
+#define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_INCOMING_METADATA_H
#include "src/core/lib/transport/transport.h"
@@ -57,4 +57,4 @@ void grpc_chttp2_incoming_metadata_buffer_add(
void grpc_chttp2_incoming_metadata_buffer_set_deadline(
grpc_chttp2_incoming_metadata_buffer *buffer, gpr_timespec deadline);
-#endif /* GRPC_CORE_LIB_TRANSPORT_CHTTP2_INCOMING_METADATA_H */
+#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_INCOMING_METADATA_H */
diff --git a/src/core/lib/transport/chttp2/internal.h b/src/core/ext/transport/chttp2/transport/internal.h
index 346e404204..98cd38abd4 100644
--- a/src/core/lib/transport/chttp2/internal.h
+++ b/src/core/ext/transport/chttp2/transport/internal.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,24 +31,24 @@
*
*/
-#ifndef GRPC_CORE_LIB_TRANSPORT_CHTTP2_INTERNAL_H
-#define GRPC_CORE_LIB_TRANSPORT_CHTTP2_INTERNAL_H
+#ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_INTERNAL_H
+#define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_INTERNAL_H
#include <assert.h>
#include <stdbool.h>
+#include "src/core/ext/transport/chttp2/transport/frame.h"
+#include "src/core/ext/transport/chttp2/transport/frame_data.h"
+#include "src/core/ext/transport/chttp2/transport/frame_goaway.h"
+#include "src/core/ext/transport/chttp2/transport/frame_ping.h"
+#include "src/core/ext/transport/chttp2/transport/frame_rst_stream.h"
+#include "src/core/ext/transport/chttp2/transport/frame_settings.h"
+#include "src/core/ext/transport/chttp2/transport/frame_window_update.h"
+#include "src/core/ext/transport/chttp2/transport/hpack_encoder.h"
+#include "src/core/ext/transport/chttp2/transport/hpack_parser.h"
+#include "src/core/ext/transport/chttp2/transport/incoming_metadata.h"
+#include "src/core/ext/transport/chttp2/transport/stream_map.h"
#include "src/core/lib/iomgr/endpoint.h"
-#include "src/core/lib/transport/chttp2/frame.h"
-#include "src/core/lib/transport/chttp2/frame_data.h"
-#include "src/core/lib/transport/chttp2/frame_goaway.h"
-#include "src/core/lib/transport/chttp2/frame_ping.h"
-#include "src/core/lib/transport/chttp2/frame_rst_stream.h"
-#include "src/core/lib/transport/chttp2/frame_settings.h"
-#include "src/core/lib/transport/chttp2/frame_window_update.h"
-#include "src/core/lib/transport/chttp2/hpack_encoder.h"
-#include "src/core/lib/transport/chttp2/hpack_parser.h"
-#include "src/core/lib/transport/chttp2/incoming_metadata.h"
-#include "src/core/lib/transport/chttp2/stream_map.h"
#include "src/core/lib/transport/connectivity_state.h"
#include "src/core/lib/transport/transport_impl.h"
@@ -394,6 +394,9 @@ typedef struct {
grpc_metadata_batch *recv_trailing_metadata;
grpc_closure *recv_trailing_metadata_finished;
+ grpc_transport_stream_stats *collecting_stats;
+ grpc_transport_stream_stats stats;
+
/** 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' */
@@ -435,6 +438,8 @@ typedef struct {
gpr_slice fetching_slice;
size_t stream_fetched;
grpc_closure finished_fetch;
+ /** stats gathered during the write */
+ grpc_transport_one_way_stats stats;
} grpc_chttp2_stream_writing;
struct grpc_chttp2_stream_parsing {
@@ -460,6 +465,8 @@ struct grpc_chttp2_stream_parsing {
int64_t outgoing_window;
/** number of bytes received - reset at end of parse thread execution */
int64_t received_bytes;
+ /** stats gathered during the parse */
+ grpc_transport_stream_stats stats;
/** incoming metadata */
grpc_chttp2_incoming_metadata_buffer metadata_buffer[2];
@@ -635,6 +642,7 @@ void grpc_chttp2_parsing_become_skip_parser(
grpc_exec_ctx *exec_ctx, grpc_chttp2_transport_parsing *transport_parsing);
void grpc_chttp2_complete_closure_step(grpc_exec_ctx *exec_ctx,
+ grpc_chttp2_stream_global *stream_global,
grpc_closure **pclosure, int success);
#define GRPC_CHTTP2_CLIENT_CONNECT_STRING "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n"
@@ -777,4 +785,4 @@ void grpc_chttp2_ack_ping(grpc_exec_ctx *exec_ctx,
void grpc_chttp2_become_writable(grpc_chttp2_transport_global *transport_global,
grpc_chttp2_stream_global *stream_global);
-#endif /* GRPC_CORE_LIB_TRANSPORT_CHTTP2_INTERNAL_H */
+#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_INTERNAL_H */
diff --git a/src/core/lib/transport/chttp2/parsing.c b/src/core/ext/transport/chttp2/transport/parsing.c
index 9ee52f63f2..c754c6005e 100644
--- a/src/core/lib/transport/chttp2/parsing.c
+++ b/src/core/ext/transport/chttp2/transport/parsing.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/transport/chttp2/internal.h"
+#include "src/core/ext/transport/chttp2/transport/internal.h"
#include <string.h>
@@ -39,10 +39,10 @@
#include <grpc/support/log.h>
#include <grpc/support/string_util.h>
+#include "src/core/ext/transport/chttp2/transport/http2_errors.h"
+#include "src/core/ext/transport/chttp2/transport/status_conversion.h"
+#include "src/core/ext/transport/chttp2/transport/timeout_encoding.h"
#include "src/core/lib/profiling/timers.h"
-#include "src/core/lib/transport/chttp2/http2_errors.h"
-#include "src/core/lib/transport/chttp2/status_conversion.h"
-#include "src/core/lib/transport/chttp2/timeout_encoding.h"
#include "src/core/lib/transport/static_metadata.h"
static int init_frame_parser(grpc_exec_ctx *exec_ctx,
@@ -171,6 +171,9 @@ void grpc_chttp2_publish_reads(
grpc_chttp2_list_add_check_read_ops(transport_global, stream_global);
}
+ /* flush stats to global stream state */
+ grpc_transport_move_stats(&stream_parsing->stats, &stream_global->stats);
+
/* update outgoing flow control window */
was_zero = stream_global->outgoing_window <= 0;
GRPC_CHTTP2_FLOW_MOVE_STREAM("parsed", transport_global, stream_global,
@@ -544,8 +547,13 @@ static int init_data_frame_parser(
grpc_chttp2_parsing_lookup_stream(transport_parsing,
transport_parsing->incoming_stream_id);
grpc_chttp2_parse_error err = GRPC_CHTTP2_PARSE_OK;
- if (!stream_parsing || stream_parsing->received_close)
+ if (stream_parsing == NULL) {
+ return init_skip_frame_parser(exec_ctx, transport_parsing, 0);
+ }
+ stream_parsing->stats.incoming.framing_bytes += 9;
+ if (stream_parsing->received_close) {
return init_skip_frame_parser(exec_ctx, transport_parsing, 0);
+ }
if (err == GRPC_CHTTP2_PARSE_OK) {
err = update_incoming_window(exec_ctx, transport_parsing, stream_parsing);
}
@@ -566,7 +574,8 @@ static int init_data_frame_parser(
gpr_slice_buffer_add(
&transport_parsing->qbuf,
grpc_chttp2_rst_stream_create(transport_parsing->incoming_stream_id,
- GRPC_CHTTP2_PROTOCOL_ERROR));
+ GRPC_CHTTP2_PROTOCOL_ERROR,
+ &stream_parsing->stats.outgoing));
return init_skip_frame_parser(exec_ctx, transport_parsing, 0);
case GRPC_CHTTP2_CONNECTION_ERROR:
return 0;
@@ -717,6 +726,7 @@ static int init_header_frame_parser(
transport_parsing->incoming_stream = stream_parsing;
}
GPR_ASSERT(stream_parsing != NULL && (via_accept == 0 || via_accept == 1));
+ stream_parsing->stats.incoming.framing_bytes += 9;
if (stream_parsing->received_close) {
gpr_log(GPR_ERROR, "skipping already closed grpc_chttp2_stream header");
transport_parsing->incoming_stream = NULL;
@@ -752,9 +762,14 @@ static int init_window_update_frame_parser(
&transport_parsing->simple.window_update,
transport_parsing->incoming_frame_size,
transport_parsing->incoming_frame_flags);
- if (transport_parsing->incoming_stream_id) {
- transport_parsing->incoming_stream = grpc_chttp2_parsing_lookup_stream(
- transport_parsing, transport_parsing->incoming_stream_id);
+ if (transport_parsing->incoming_stream_id != 0) {
+ grpc_chttp2_stream_parsing *stream_parsing =
+ transport_parsing->incoming_stream = grpc_chttp2_parsing_lookup_stream(
+ transport_parsing, transport_parsing->incoming_stream_id);
+ if (stream_parsing == NULL) {
+ return init_skip_frame_parser(exec_ctx, transport_parsing, 0);
+ }
+ stream_parsing->stats.incoming.framing_bytes += 9;
}
transport_parsing->parser = grpc_chttp2_window_update_parser_parse;
transport_parsing->parser_data = &transport_parsing->simple.window_update;
@@ -778,11 +793,13 @@ static int init_rst_stream_parser(
&transport_parsing->simple.rst_stream,
transport_parsing->incoming_frame_size,
transport_parsing->incoming_frame_flags);
- transport_parsing->incoming_stream = grpc_chttp2_parsing_lookup_stream(
- transport_parsing, transport_parsing->incoming_stream_id);
+ grpc_chttp2_stream_parsing *stream_parsing =
+ transport_parsing->incoming_stream = grpc_chttp2_parsing_lookup_stream(
+ transport_parsing, transport_parsing->incoming_stream_id);
if (!transport_parsing->incoming_stream) {
return init_skip_frame_parser(exec_ctx, transport_parsing, 0);
}
+ stream_parsing->stats.incoming.framing_bytes += 9;
transport_parsing->parser = grpc_chttp2_rst_stream_parser_parse;
transport_parsing->parser_data = &transport_parsing->simple.rst_stream;
return ok;
@@ -856,7 +873,8 @@ static int parse_frame_slice(grpc_exec_ctx *exec_ctx,
gpr_slice_buffer_add(
&transport_parsing->qbuf,
grpc_chttp2_rst_stream_create(transport_parsing->incoming_stream_id,
- GRPC_CHTTP2_PROTOCOL_ERROR));
+ GRPC_CHTTP2_PROTOCOL_ERROR,
+ &stream_parsing->stats.outgoing));
}
return 1;
case GRPC_CHTTP2_CONNECTION_ERROR:
diff --git a/src/core/lib/transport/chttp2/status_conversion.c b/src/core/ext/transport/chttp2/transport/status_conversion.c
index 73dd63e720..c42fb9b3a1 100644
--- a/src/core/lib/transport/chttp2/status_conversion.c
+++ b/src/core/ext/transport/chttp2/transport/status_conversion.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/transport/chttp2/status_conversion.h"
+#include "src/core/ext/transport/chttp2/transport/status_conversion.h"
int grpc_chttp2_grpc_status_to_http2_error(grpc_status_code status) {
switch (status) {
diff --git a/src/core/lib/transport/chttp2/status_conversion.h b/src/core/ext/transport/chttp2/transport/status_conversion.h
index 241417d32e..e7285e6fd5 100644
--- a/src/core/lib/transport/chttp2/status_conversion.h
+++ b/src/core/ext/transport/chttp2/transport/status_conversion.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,11 +31,11 @@
*
*/
-#ifndef GRPC_CORE_LIB_TRANSPORT_CHTTP2_STATUS_CONVERSION_H
-#define GRPC_CORE_LIB_TRANSPORT_CHTTP2_STATUS_CONVERSION_H
+#ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_STATUS_CONVERSION_H
+#define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_STATUS_CONVERSION_H
#include <grpc/grpc.h>
-#include "src/core/lib/transport/chttp2/http2_errors.h"
+#include "src/core/ext/transport/chttp2/transport/http2_errors.h"
/* Conversion of grpc status codes to http2 error codes (for RST_STREAM) */
grpc_chttp2_error_code grpc_chttp2_grpc_status_to_http2_error(
@@ -47,4 +47,4 @@ grpc_status_code grpc_chttp2_http2_error_to_grpc_status(
grpc_status_code grpc_chttp2_http2_status_to_grpc_status(int status);
int grpc_chttp2_grpc_status_to_http2_status(grpc_status_code status);
-#endif /* GRPC_CORE_LIB_TRANSPORT_CHTTP2_STATUS_CONVERSION_H */
+#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_STATUS_CONVERSION_H */
diff --git a/src/core/lib/transport/chttp2/stream_lists.c b/src/core/ext/transport/chttp2/transport/stream_lists.c
index b51a041dc7..e5b35aadca 100644
--- a/src/core/lib/transport/chttp2/stream_lists.c
+++ b/src/core/ext/transport/chttp2/transport/stream_lists.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/transport/chttp2/internal.h"
+#include "src/core/ext/transport/chttp2/transport/internal.h"
#include <grpc/support/log.h>
diff --git a/src/core/lib/transport/chttp2/stream_map.c b/src/core/ext/transport/chttp2/transport/stream_map.c
index dbbbe783bf..f70791c422 100644
--- a/src/core/lib/transport/chttp2/stream_map.c
+++ b/src/core/ext/transport/chttp2/transport/stream_map.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/transport/chttp2/stream_map.h"
+#include "src/core/ext/transport/chttp2/transport/stream_map.h"
#include <string.h>
diff --git a/src/core/lib/transport/chttp2/stream_map.h b/src/core/ext/transport/chttp2/transport/stream_map.h
index 1c56b18e54..b1d59ca6a3 100644
--- a/src/core/lib/transport/chttp2/stream_map.h
+++ b/src/core/ext/transport/chttp2/transport/stream_map.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,8 +31,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_TRANSPORT_CHTTP2_STREAM_MAP_H
-#define GRPC_CORE_LIB_TRANSPORT_CHTTP2_STREAM_MAP_H
+#ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_STREAM_MAP_H
+#define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_STREAM_MAP_H
#include <grpc/support/port_platform.h>
@@ -81,4 +81,4 @@ void grpc_chttp2_stream_map_for_each(grpc_chttp2_stream_map *map,
void *value),
void *user_data);
-#endif /* GRPC_CORE_LIB_TRANSPORT_CHTTP2_STREAM_MAP_H */
+#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_STREAM_MAP_H */
diff --git a/src/core/lib/transport/chttp2/timeout_encoding.c b/src/core/ext/transport/chttp2/transport/timeout_encoding.c
index 0edacaafd3..b7f7912493 100644
--- a/src/core/lib/transport/chttp2/timeout_encoding.c
+++ b/src/core/ext/transport/chttp2/transport/timeout_encoding.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/transport/chttp2/timeout_encoding.h"
+#include "src/core/ext/transport/chttp2/transport/timeout_encoding.h"
#include <stdio.h>
#include <string.h>
diff --git a/src/core/lib/transport/chttp2/timeout_encoding.h b/src/core/ext/transport/chttp2/transport/timeout_encoding.h
index 731beb5a37..df2324c791 100644
--- a/src/core/lib/transport/chttp2/timeout_encoding.h
+++ b/src/core/ext/transport/chttp2/transport/timeout_encoding.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,8 +31,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_TRANSPORT_CHTTP2_TIMEOUT_ENCODING_H
-#define GRPC_CORE_LIB_TRANSPORT_CHTTP2_TIMEOUT_ENCODING_H
+#ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_TIMEOUT_ENCODING_H
+#define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_TIMEOUT_ENCODING_H
#include <grpc/support/time.h>
#include "src/core/lib/support/string.h"
@@ -44,4 +44,4 @@
void grpc_chttp2_encode_timeout(gpr_timespec timeout, char *buffer);
int grpc_chttp2_decode_timeout(const char *buffer, gpr_timespec *timeout);
-#endif /* GRPC_CORE_LIB_TRANSPORT_CHTTP2_TIMEOUT_ENCODING_H */
+#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_TIMEOUT_ENCODING_H */
diff --git a/src/core/lib/transport/chttp2/varint.c b/src/core/ext/transport/chttp2/transport/varint.c
index 6dfef45362..e434ad3c07 100644
--- a/src/core/lib/transport/chttp2/varint.c
+++ b/src/core/ext/transport/chttp2/transport/varint.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/transport/chttp2/varint.h"
+#include "src/core/ext/transport/chttp2/transport/varint.h"
uint32_t grpc_chttp2_hpack_varint_length(uint32_t tail_value) {
if (tail_value < (1 << 7)) {
diff --git a/src/core/lib/transport/chttp2/varint.h b/src/core/ext/transport/chttp2/transport/varint.h
index e4a0ae3c22..450e5fd119 100644
--- a/src/core/lib/transport/chttp2/varint.h
+++ b/src/core/ext/transport/chttp2/transport/varint.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,8 +31,8 @@
*
*/
-#ifndef GRPC_CORE_LIB_TRANSPORT_CHTTP2_VARINT_H
-#define GRPC_CORE_LIB_TRANSPORT_CHTTP2_VARINT_H
+#ifndef GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_VARINT_H
+#define GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_VARINT_H
#include <grpc/support/port_platform.h>
@@ -72,4 +72,4 @@ void grpc_chttp2_hpack_write_varint_tail(uint32_t tail_value, uint8_t* target,
} \
} while (0)
-#endif /* GRPC_CORE_LIB_TRANSPORT_CHTTP2_VARINT_H */
+#endif /* GRPC_CORE_EXT_TRANSPORT_CHTTP2_TRANSPORT_VARINT_H */
diff --git a/src/core/lib/transport/chttp2/writing.c b/src/core/ext/transport/chttp2/transport/writing.c
index daea331d31..a8fb463939 100644
--- a/src/core/lib/transport/chttp2/writing.c
+++ b/src/core/ext/transport/chttp2/transport/writing.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,14 +31,14 @@
*
*/
-#include "src/core/lib/transport/chttp2/internal.h"
+#include "src/core/ext/transport/chttp2/transport/internal.h"
#include <limits.h>
#include <grpc/support/log.h>
+#include "src/core/ext/transport/chttp2/transport/http2_errors.h"
#include "src/core/lib/profiling/timers.h"
-#include "src/core/lib/transport/chttp2/http2_errors.h"
static void finalize_outbuf(grpc_exec_ctx *exec_ctx,
grpc_chttp2_transport_writing *transport_writing);
@@ -161,8 +161,10 @@ int grpc_chttp2_unlocking_check_writes(
transport_global->announce_incoming_window, UINT32_MAX);
GRPC_CHTTP2_FLOW_DEBIT_TRANSPORT("write", transport_global,
announce_incoming_window, announced);
- gpr_slice_buffer_add(&transport_writing->outbuf,
- grpc_chttp2_window_update_create(0, announced));
+ grpc_transport_one_way_stats throwaway_stats;
+ gpr_slice_buffer_add(
+ &transport_writing->outbuf,
+ grpc_chttp2_window_update_create(0, announced, &throwaway_stats));
}
GPR_TIMER_END("grpc_chttp2_unlocking_check_writes", 0);
@@ -205,7 +207,8 @@ static void finalize_outbuf(grpc_exec_ctx *exec_ctx,
if (stream_writing->send_initial_metadata != NULL) {
grpc_chttp2_encode_header(
&transport_writing->hpack_compressor, stream_writing->id,
- stream_writing->send_initial_metadata, 0, &transport_writing->outbuf);
+ stream_writing->send_initial_metadata, 0, &stream_writing->stats,
+ &transport_writing->outbuf);
stream_writing->send_initial_metadata = NULL;
stream_writing->sent_initial_metadata = 1;
}
@@ -216,7 +219,8 @@ static void finalize_outbuf(grpc_exec_ctx *exec_ctx,
gpr_slice_buffer_add(
&transport_writing->outbuf,
grpc_chttp2_window_update_create(stream_writing->id,
- stream_writing->announce_window));
+ stream_writing->announce_window,
+ &stream_writing->stats));
GRPC_CHTTP2_FLOW_DEBIT_STREAM("write", transport_writing, stream_writing,
announce_window, announce);
stream_writing->announce_window = 0;
@@ -255,7 +259,8 @@ static void finalize_outbuf(grpc_exec_ctx *exec_ctx,
stream_writing->send_trailing_metadata);
grpc_chttp2_encode_data(
stream_writing->id, &stream_writing->flow_controlled_buffer,
- send_bytes, is_last_frame, &transport_writing->outbuf);
+ send_bytes, is_last_frame, &stream_writing->stats,
+ &transport_writing->outbuf);
GRPC_CHTTP2_FLOW_DEBIT_STREAM("write", transport_writing,
stream_writing, outgoing_window,
send_bytes);
@@ -281,19 +286,20 @@ static void finalize_outbuf(grpc_exec_ctx *exec_ctx,
stream_writing->send_trailing_metadata != NULL) {
if (grpc_metadata_batch_is_empty(
stream_writing->send_trailing_metadata)) {
- grpc_chttp2_encode_data(stream_writing->id,
- &stream_writing->flow_controlled_buffer, 0, 1,
- &transport_writing->outbuf);
+ grpc_chttp2_encode_data(
+ stream_writing->id, &stream_writing->flow_controlled_buffer, 0, 1,
+ &stream_writing->stats, &transport_writing->outbuf);
} else {
- grpc_chttp2_encode_header(&transport_writing->hpack_compressor,
- stream_writing->id,
- stream_writing->send_trailing_metadata, 1,
- &transport_writing->outbuf);
+ grpc_chttp2_encode_header(
+ &transport_writing->hpack_compressor, stream_writing->id,
+ stream_writing->send_trailing_metadata, 1, &stream_writing->stats,
+ &transport_writing->outbuf);
}
if (!transport_writing->is_client && !stream_writing->read_closed) {
gpr_slice_buffer_add(&transport_writing->outbuf,
grpc_chttp2_rst_stream_create(
- stream_writing->id, GRPC_CHTTP2_NO_ERROR));
+ stream_writing->id, GRPC_CHTTP2_NO_ERROR,
+ &stream_writing->stats));
}
stream_writing->send_trailing_metadata = NULL;
stream_writing->sent_trailing_metadata = 1;
@@ -328,17 +334,21 @@ void grpc_chttp2_cleanup_writing(
transport_global, transport_writing, &stream_global, &stream_writing)) {
if (stream_writing->sent_initial_metadata) {
grpc_chttp2_complete_closure_step(
- exec_ctx, &stream_global->send_initial_metadata_finished, 1);
+ exec_ctx, stream_global,
+ &stream_global->send_initial_metadata_finished, 1);
}
+ grpc_transport_move_one_way_stats(&stream_writing->stats,
+ &stream_global->stats.outgoing);
if (stream_writing->sent_message) {
GPR_ASSERT(stream_writing->send_message == NULL);
grpc_chttp2_complete_closure_step(
- exec_ctx, &stream_global->send_message_finished, 1);
+ exec_ctx, stream_global, &stream_global->send_message_finished, 1);
stream_writing->sent_message = 0;
}
if (stream_writing->sent_trailing_metadata) {
grpc_chttp2_complete_closure_step(
- exec_ctx, &stream_global->send_trailing_metadata_finished, 1);
+ exec_ctx, stream_global,
+ &stream_global->send_trailing_metadata_finished, 1);
}
if (stream_writing->sent_trailing_metadata) {
grpc_chttp2_mark_stream_closed(exec_ctx, transport_global, stream_global,
diff --git a/src/core/lib/channel/channel_args.c b/src/core/lib/channel/channel_args.c
index 1a02f1f4aa..b7393b988d 100644
--- a/src/core/lib/channel/channel_args.c
+++ b/src/core/lib/channel/channel_args.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/channel/channel_args.h b/src/core/lib/channel/channel_args.h
index 67d287ec6b..0a51780a14 100644
--- a/src/core/lib/channel/channel_args.h
+++ b/src/core/lib/channel/channel_args.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -37,23 +37,23 @@
#include <grpc/compression.h>
#include <grpc/grpc.h>
-/* Copy some arguments */
+/** Copy the arguments in \a src into a new instance */
grpc_channel_args *grpc_channel_args_copy(const grpc_channel_args *src);
-/* Copy some arguments, stably sorting keys */
-grpc_channel_args *grpc_channel_args_normalize(const grpc_channel_args *a);
+/** Copy the arguments in \a src into a new instance, stably sorting keys */
+grpc_channel_args *grpc_channel_args_normalize(const grpc_channel_args *src);
-/** Copy some arguments and add the to_add parameter in the end.
- If to_add is NULL, it is equivalent to call grpc_channel_args_copy. */
+/** Copy the arguments in \a src and append \a to_add. If \a to_add is NULL, it
+ * is equivalent to calling \a grpc_channel_args_copy. */
grpc_channel_args *grpc_channel_args_copy_and_add(const grpc_channel_args *src,
const grpc_arg *to_add,
size_t num_to_add);
-/** Copy args from a then args from b into a new channel args */
+/** Concatenate args from \a a and \a b into a new instance */
grpc_channel_args *grpc_channel_args_merge(const grpc_channel_args *a,
const grpc_channel_args *b);
-/** Destroy arguments created by grpc_channel_args_copy */
+/** Destroy arguments created by \a grpc_channel_args_copy */
void grpc_channel_args_destroy(grpc_channel_args *a);
/** Reads census_enabled settings from channel args. Returns 1 if census_enabled
diff --git a/src/core/lib/channel/channel_stack.c b/src/core/lib/channel/channel_stack.c
index 52283e35fa..e36066d863 100644
--- a/src/core/lib/channel/channel_stack.c
+++ b/src/core/lib/channel/channel_stack.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/channel/channel_stack.h b/src/core/lib/channel/channel_stack.h
index b29bee411d..9e3a25a152 100644
--- a/src/core/lib/channel/channel_stack.h
+++ b/src/core/lib/channel/channel_stack.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/channel/client_channel.c b/src/core/lib/channel/client_channel.c
index 9fdf803ecf..3f7cf1cf97 100644
--- a/src/core/lib/channel/client_channel.c
+++ b/src/core/lib/channel/client_channel.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/channel/client_channel.h b/src/core/lib/channel/client_channel.h
index 8777796fb6..ac418c8c51 100644
--- a/src/core/lib/channel/client_channel.h
+++ b/src/core/lib/channel/client_channel.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/channel/compress_filter.c b/src/core/lib/channel/compress_filter.c
index 04bb7cc76f..229fdb5ef6 100644
--- a/src/core/lib/channel/compress_filter.c
+++ b/src/core/lib/channel/compress_filter.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/channel/compress_filter.h b/src/core/lib/channel/compress_filter.h
index 9010074335..0d973329c4 100644
--- a/src/core/lib/channel/compress_filter.h
+++ b/src/core/lib/channel/compress_filter.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/channel/connected_channel.c b/src/core/lib/channel/connected_channel.c
index 5e3a8974ce..c1debab4c6 100644
--- a/src/core/lib/channel/connected_channel.c
+++ b/src/core/lib/channel/connected_channel.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/channel/connected_channel.h b/src/core/lib/channel/connected_channel.h
index 4f20b751cc..3142d647b7 100644
--- a/src/core/lib/channel/connected_channel.h
+++ b/src/core/lib/channel/connected_channel.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/channel/context.h b/src/core/lib/channel/context.h
index bca102da9a..c50e84279d 100644
--- a/src/core/lib/channel/context.h
+++ b/src/core/lib/channel/context.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/channel/http_client_filter.c b/src/core/lib/channel/http_client_filter.c
index 7dbac38414..deba23e21f 100644
--- a/src/core/lib/channel/http_client_filter.c
+++ b/src/core/lib/channel/http_client_filter.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -112,7 +112,9 @@ static void hc_mutate_op(grpc_call_element *elem,
/* Send : prefixed headers, which have to be before any application
layer headers. */
grpc_metadata_batch_add_head(op->send_initial_metadata, &calld->method,
- GRPC_MDELEM_METHOD_POST);
+ op->send_idempotent_request
+ ? GRPC_MDELEM_METHOD_PUT
+ : GRPC_MDELEM_METHOD_POST);
grpc_metadata_batch_add_head(op->send_initial_metadata, &calld->scheme,
channeld->static_scheme);
grpc_metadata_batch_add_tail(op->send_initial_metadata, &calld->te_trailers,
diff --git a/src/core/lib/channel/http_client_filter.h b/src/core/lib/channel/http_client_filter.h
index 418426e9cc..a884b36318 100644
--- a/src/core/lib/channel/http_client_filter.h
+++ b/src/core/lib/channel/http_client_filter.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/channel/http_server_filter.c b/src/core/lib/channel/http_server_filter.c
index df99b77ab3..c140c61b8f 100644
--- a/src/core/lib/channel/http_server_filter.c
+++ b/src/core/lib/channel/http_server_filter.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -41,7 +41,7 @@
typedef struct call_data {
uint8_t seen_path;
- uint8_t seen_post;
+ uint8_t seen_method;
uint8_t sent_status;
uint8_t seen_scheme;
uint8_t seen_te_trailers;
@@ -50,6 +50,7 @@ typedef struct call_data {
grpc_linked_mdelem content_type;
grpc_metadata_batch *recv_initial_metadata;
+ bool *recv_idempotent_request;
/** Closure to call when finished with the hs_on_recv hook */
grpc_closure *on_done_recv;
/** Receive closures are chained: we inject this closure as the on_done_recv
@@ -72,11 +73,16 @@ static grpc_mdelem *server_filter(void *user_data, grpc_mdelem *md) {
/* Check if it is one of the headers we care about. */
if (md == GRPC_MDELEM_TE_TRAILERS || md == GRPC_MDELEM_METHOD_POST ||
- md == GRPC_MDELEM_SCHEME_HTTP || md == GRPC_MDELEM_SCHEME_HTTPS ||
+ md == GRPC_MDELEM_METHOD_PUT || md == GRPC_MDELEM_SCHEME_HTTP ||
+ md == GRPC_MDELEM_SCHEME_HTTPS ||
md == GRPC_MDELEM_CONTENT_TYPE_APPLICATION_SLASH_GRPC) {
/* swallow it */
if (md == GRPC_MDELEM_METHOD_POST) {
- calld->seen_post = 1;
+ calld->seen_method = 1;
+ *calld->recv_idempotent_request = false;
+ } else if (md == GRPC_MDELEM_METHOD_PUT) {
+ calld->seen_method = 1;
+ *calld->recv_idempotent_request = true;
} else if (md->key == GRPC_MDSTR_SCHEME) {
calld->seen_scheme = 1;
} else if (md == GRPC_MDELEM_TE_TRAILERS) {
@@ -142,7 +148,7 @@ static void hs_on_recv(grpc_exec_ctx *exec_ctx, void *user_data, bool success) {
/* Have we seen the required http2 transport headers?
(:method, :scheme, content-type, with :path and :authority covered
at the channel level right now) */
- if (calld->seen_post && calld->seen_scheme && calld->seen_te_trailers &&
+ if (calld->seen_method && calld->seen_scheme && calld->seen_te_trailers &&
calld->seen_path && calld->seen_authority) {
/* do nothing */
} else {
@@ -152,7 +158,7 @@ static void hs_on_recv(grpc_exec_ctx *exec_ctx, void *user_data, bool success) {
if (!calld->seen_authority) {
gpr_log(GPR_ERROR, "Missing :authority header");
}
- if (!calld->seen_post) {
+ if (!calld->seen_method) {
gpr_log(GPR_ERROR, "Missing :method header");
}
if (!calld->seen_scheme) {
@@ -185,7 +191,9 @@ static void hs_mutate_op(grpc_call_element *elem,
if (op->recv_initial_metadata) {
/* substitute our callback for the higher callback */
+ GPR_ASSERT(op->recv_idempotent_request != NULL);
calld->recv_initial_metadata = op->recv_initial_metadata;
+ calld->recv_idempotent_request = op->recv_idempotent_request;
calld->on_done_recv = op->recv_initial_metadata_ready;
op->recv_initial_metadata_ready = &calld->hs_on_recv;
}
diff --git a/src/core/lib/channel/http_server_filter.h b/src/core/lib/channel/http_server_filter.h
index c8cf920ded..77ba2d263d 100644
--- a/src/core/lib/channel/http_server_filter.h
+++ b/src/core/lib/channel/http_server_filter.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/channel/subchannel_call_holder.c b/src/core/lib/channel/subchannel_call_holder.c
index 6c6d42dd73..22f3679bf5 100644
--- a/src/core/lib/channel/subchannel_call_holder.c
+++ b/src/core/lib/channel/subchannel_call_holder.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/channel/subchannel_call_holder.h b/src/core/lib/channel/subchannel_call_holder.h
index 882f366792..5cf291a266 100644
--- a/src/core/lib/channel/subchannel_call_holder.h
+++ b/src/core/lib/channel/subchannel_call_holder.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/client_config/client_config.c b/src/core/lib/client_config/client_config.c
index 82c8d68099..2521023364 100644
--- a/src/core/lib/client_config/client_config.c
+++ b/src/core/lib/client_config/client_config.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/client_config/client_config.h b/src/core/lib/client_config/client_config.h
index 404ec0d3a5..8dc2f6b299 100644
--- a/src/core/lib/client_config/client_config.h
+++ b/src/core/lib/client_config/client_config.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/client_config/connector.c b/src/core/lib/client_config/connector.c
index f51d862c6d..4c7b823dac 100644
--- a/src/core/lib/client_config/connector.c
+++ b/src/core/lib/client_config/connector.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/client_config/connector.h b/src/core/lib/client_config/connector.h
index 21b925aade..39870a261c 100644
--- a/src/core/lib/client_config/connector.h
+++ b/src/core/lib/client_config/connector.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/client_config/default_initial_connect_string.c b/src/core/lib/client_config/default_initial_connect_string.c
index 86eb37de77..a70da4a84a 100644
--- a/src/core/lib/client_config/default_initial_connect_string.c
+++ b/src/core/lib/client_config/default_initial_connect_string.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/client_config/initial_connect_string.c b/src/core/lib/client_config/initial_connect_string.c
index 95ae728316..4034ea2e87 100644
--- a/src/core/lib/client_config/initial_connect_string.c
+++ b/src/core/lib/client_config/initial_connect_string.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/client_config/initial_connect_string.h b/src/core/lib/client_config/initial_connect_string.h
index eec42fa240..51302768c6 100644
--- a/src/core/lib/client_config/initial_connect_string.h
+++ b/src/core/lib/client_config/initial_connect_string.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/client_config/lb_policy.c b/src/core/lib/client_config/lb_policy.c
index ee20ccd76a..3d23669ec2 100644
--- a/src/core/lib/client_config/lb_policy.c
+++ b/src/core/lib/client_config/lb_policy.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/client_config/lb_policy.h b/src/core/lib/client_config/lb_policy.h
index 58a0a04d85..a63e8e68df 100644
--- a/src/core/lib/client_config/lb_policy.h
+++ b/src/core/lib/client_config/lb_policy.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/client_config/lb_policy_factory.c b/src/core/lib/client_config/lb_policy_factory.c
index 2ca6f42f89..92e1f5f08b 100644
--- a/src/core/lib/client_config/lb_policy_factory.c
+++ b/src/core/lib/client_config/lb_policy_factory.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -42,7 +42,8 @@ void grpc_lb_policy_factory_unref(grpc_lb_policy_factory* factory) {
}
grpc_lb_policy* grpc_lb_policy_factory_create_lb_policy(
- grpc_lb_policy_factory* factory, grpc_lb_policy_args* args) {
+ grpc_exec_ctx* exec_ctx, grpc_lb_policy_factory* factory,
+ grpc_lb_policy_args* args) {
if (factory == NULL) return NULL;
- return factory->vtable->create_lb_policy(factory, args);
+ return factory->vtable->create_lb_policy(exec_ctx, factory, args);
}
diff --git a/src/core/lib/client_config/lb_policy_factory.h b/src/core/lib/client_config/lb_policy_factory.h
index 36eaf178d9..6f21912821 100644
--- a/src/core/lib/client_config/lb_policy_factory.h
+++ b/src/core/lib/client_config/lb_policy_factory.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -35,7 +35,10 @@
#define GRPC_CORE_LIB_CLIENT_CONFIG_LB_POLICY_FACTORY_H
#include "src/core/lib/client_config/lb_policy.h"
-#include "src/core/lib/client_config/subchannel.h"
+#include "src/core/lib/client_config/subchannel_factory.h"
+#include "src/core/lib/iomgr/resolve_address.h"
+
+#include "src/core/lib/iomgr/exec_ctx.h"
typedef struct grpc_lb_policy_factory grpc_lb_policy_factory;
typedef struct grpc_lb_policy_factory_vtable grpc_lb_policy_factory_vtable;
@@ -47,8 +50,8 @@ struct grpc_lb_policy_factory {
};
typedef struct grpc_lb_policy_args {
- grpc_subchannel **subchannels;
- size_t num_subchannels;
+ grpc_resolved_addresses *addresses;
+ grpc_subchannel_factory *subchannel_factory;
} grpc_lb_policy_args;
struct grpc_lb_policy_factory_vtable {
@@ -56,7 +59,8 @@ struct grpc_lb_policy_factory_vtable {
void (*unref)(grpc_lb_policy_factory *factory);
/** Implementation of grpc_lb_policy_factory_create_lb_policy */
- grpc_lb_policy *(*create_lb_policy)(grpc_lb_policy_factory *factory,
+ grpc_lb_policy *(*create_lb_policy)(grpc_exec_ctx *exec_ctx,
+ grpc_lb_policy_factory *factory,
grpc_lb_policy_args *args);
/** Name for the LB policy this factory implements */
@@ -68,6 +72,7 @@ void grpc_lb_policy_factory_unref(grpc_lb_policy_factory *factory);
/** Create a lb_policy instance. */
grpc_lb_policy *grpc_lb_policy_factory_create_lb_policy(
- grpc_lb_policy_factory *factory, grpc_lb_policy_args *args);
+ grpc_exec_ctx *exec_ctx, grpc_lb_policy_factory *factory,
+ grpc_lb_policy_args *args);
#endif /* GRPC_CORE_LIB_CLIENT_CONFIG_LB_POLICY_FACTORY_H */
diff --git a/src/core/lib/client_config/lb_policy_registry.c b/src/core/lib/client_config/lb_policy_registry.c
index 13acfe78cd..af396362a1 100644
--- a/src/core/lib/client_config/lb_policy_registry.c
+++ b/src/core/lib/client_config/lb_policy_registry.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -40,12 +40,7 @@
static grpc_lb_policy_factory *g_all_of_the_lb_policies[MAX_POLICIES];
static int g_number_of_lb_policies = 0;
-static grpc_lb_policy_factory *g_default_lb_policy_factory;
-
-void grpc_lb_policy_registry_init(grpc_lb_policy_factory *default_factory) {
- g_number_of_lb_policies = 0;
- g_default_lb_policy_factory = default_factory;
-}
+void grpc_lb_policy_registry_init(void) { g_number_of_lb_policies = 0; }
void grpc_lb_policy_registry_shutdown(void) {
int i;
@@ -79,10 +74,10 @@ static grpc_lb_policy_factory *lookup_factory(const char *name) {
return NULL;
}
-grpc_lb_policy *grpc_lb_policy_create(const char *name,
+grpc_lb_policy *grpc_lb_policy_create(grpc_exec_ctx *exec_ctx, const char *name,
grpc_lb_policy_args *args) {
grpc_lb_policy_factory *factory = lookup_factory(name);
grpc_lb_policy *lb_policy =
- grpc_lb_policy_factory_create_lb_policy(factory, args);
+ grpc_lb_policy_factory_create_lb_policy(exec_ctx, factory, args);
return lb_policy;
}
diff --git a/src/core/lib/client_config/lb_policy_registry.h b/src/core/lib/client_config/lb_policy_registry.h
index c251fd9f08..4b8495d8a1 100644
--- a/src/core/lib/client_config/lb_policy_registry.h
+++ b/src/core/lib/client_config/lb_policy_registry.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -35,10 +35,11 @@
#define GRPC_CORE_LIB_CLIENT_CONFIG_LB_POLICY_REGISTRY_H
#include "src/core/lib/client_config/lb_policy_factory.h"
+#include "src/core/lib/iomgr/exec_ctx.h"
/** Initialize the registry and set \a default_factory as the factory to be
* returned when no name is provided in a lookup */
-void grpc_lb_policy_registry_init(grpc_lb_policy_factory *default_factory);
+void grpc_lb_policy_registry_init(void);
void grpc_lb_policy_registry_shutdown(void);
/** Register a LB policy factory. */
@@ -48,7 +49,7 @@ void grpc_register_lb_policy(grpc_lb_policy_factory *factory);
*
* If \a name is NULL, the default factory from \a grpc_lb_policy_registry_init
* will be returned. */
-grpc_lb_policy *grpc_lb_policy_create(const char *name,
+grpc_lb_policy *grpc_lb_policy_create(grpc_exec_ctx *exec_ctx, const char *name,
grpc_lb_policy_args *args);
#endif /* GRPC_CORE_LIB_CLIENT_CONFIG_LB_POLICY_REGISTRY_H */
diff --git a/src/core/lib/client_config/resolver.c b/src/core/lib/client_config/resolver.c
index 32f0643adb..b9eef5575f 100644
--- a/src/core/lib/client_config/resolver.c
+++ b/src/core/lib/client_config/resolver.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/client_config/resolver.h b/src/core/lib/client_config/resolver.h
index 1ee879293a..cf0bb2bc7a 100644
--- a/src/core/lib/client_config/resolver.h
+++ b/src/core/lib/client_config/resolver.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/client_config/resolver_factory.c b/src/core/lib/client_config/resolver_factory.c
index 0f76c664fa..001fa28536 100644
--- a/src/core/lib/client_config/resolver_factory.c
+++ b/src/core/lib/client_config/resolver_factory.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/client_config/resolver_factory.h b/src/core/lib/client_config/resolver_factory.h
index 7765c3c844..a5bca06475 100644
--- a/src/core/lib/client_config/resolver_factory.h
+++ b/src/core/lib/client_config/resolver_factory.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/client_config/resolver_registry.c b/src/core/lib/client_config/resolver_registry.c
index 29bd00c284..5f3db273b5 100644
--- a/src/core/lib/client_config/resolver_registry.c
+++ b/src/core/lib/client_config/resolver_registry.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -70,14 +70,11 @@ void grpc_register_resolver_type(grpc_resolver_factory *factory) {
g_all_of_the_resolvers[g_number_of_resolvers++] = factory;
}
-static grpc_resolver_factory *lookup_factory(grpc_uri *uri) {
+static grpc_resolver_factory *lookup_factory(const char *name) {
int i;
- /* handling NULL uri's here simplifies grpc_resolver_create */
- if (!uri) return NULL;
-
for (i = 0; i < g_number_of_resolvers; i++) {
- if (0 == strcmp(uri->scheme, g_all_of_the_resolvers[i]->vtable->scheme)) {
+ if (0 == strcmp(name, g_all_of_the_resolvers[i]->vtable->scheme)) {
return g_all_of_the_resolvers[i];
}
}
@@ -85,6 +82,17 @@ static grpc_resolver_factory *lookup_factory(grpc_uri *uri) {
return NULL;
}
+grpc_resolver_factory *grpc_resolver_factory_lookup(const char *name) {
+ grpc_resolver_factory *f = lookup_factory(name);
+ if (f) grpc_resolver_factory_ref(f);
+ return f;
+}
+
+static grpc_resolver_factory *lookup_factory_by_uri(grpc_uri *uri) {
+ if (!uri) return NULL;
+ return lookup_factory(uri->scheme);
+}
+
static grpc_resolver_factory *resolve_factory(const char *target,
grpc_uri **uri) {
char *tmp;
@@ -92,13 +100,13 @@ static grpc_resolver_factory *resolve_factory(const char *target,
GPR_ASSERT(uri != NULL);
*uri = grpc_uri_parse(target, 1);
- factory = lookup_factory(*uri);
+ factory = lookup_factory_by_uri(*uri);
if (factory == NULL) {
if (g_default_resolver_prefix != NULL) {
grpc_uri_destroy(*uri);
gpr_asprintf(&tmp, "%s%s", g_default_resolver_prefix, target);
*uri = grpc_uri_parse(tmp, 1);
- factory = lookup_factory(*uri);
+ factory = lookup_factory_by_uri(*uri);
if (factory == NULL) {
grpc_uri_destroy(grpc_uri_parse(target, 0));
grpc_uri_destroy(grpc_uri_parse(tmp, 0));
diff --git a/src/core/lib/client_config/resolver_registry.h b/src/core/lib/client_config/resolver_registry.h
index 22289ca6bd..36c4f2fe03 100644
--- a/src/core/lib/client_config/resolver_registry.h
+++ b/src/core/lib/client_config/resolver_registry.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -58,6 +58,10 @@ void grpc_register_resolver_type(grpc_resolver_factory *factory);
grpc_resolver *grpc_resolver_create(
const char *target, grpc_subchannel_factory *subchannel_factory);
+/** Find a resolver factory given a name and return an (owned-by-the-caller)
+ * reference to it */
+grpc_resolver_factory *grpc_resolver_factory_lookup(const char *name);
+
/** Given a target, return a (freshly allocated with gpr_malloc) string
representing the default authority to pass from a client. */
char *grpc_get_default_authority(const char *target);
diff --git a/src/core/lib/client_config/subchannel.c b/src/core/lib/client_config/subchannel.c
index 41242f0dd7..47c53a16ba 100644
--- a/src/core/lib/client_config/subchannel.c
+++ b/src/core/lib/client_config/subchannel.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/client_config/subchannel.h b/src/core/lib/client_config/subchannel.h
index b4f545be52..68aeff39a1 100644
--- a/src/core/lib/client_config/subchannel.h
+++ b/src/core/lib/client_config/subchannel.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/client_config/subchannel_factory.c b/src/core/lib/client_config/subchannel_factory.c
index 727a48a6c8..541368ec96 100644
--- a/src/core/lib/client_config/subchannel_factory.c
+++ b/src/core/lib/client_config/subchannel_factory.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/client_config/subchannel_factory.h b/src/core/lib/client_config/subchannel_factory.h
index 3ba2f860fe..96d68a2079 100644
--- a/src/core/lib/client_config/subchannel_factory.h
+++ b/src/core/lib/client_config/subchannel_factory.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/client_config/uri_parser.c b/src/core/lib/client_config/uri_parser.c
index d3228dec5f..6bec70da2d 100644
--- a/src/core/lib/client_config/uri_parser.c
+++ b/src/core/lib/client_config/uri_parser.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -38,8 +38,12 @@
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
+#include <grpc/support/slice.h>
+#include <grpc/support/slice_buffer.h>
#include <grpc/support/string_util.h>
+#include "src/core/lib/support/string.h"
+
/** a size_t default value... maps to all 1's */
#define NOT_SET (~(size_t)0)
@@ -133,6 +137,51 @@ static int parse_fragment_or_query(const char *uri_text, size_t *i) {
return 1;
}
+static void do_nothing(void *ignored) {}
+static void parse_query_parts(grpc_uri *uri) {
+ static const char *QUERY_PARTS_SEPARATOR = "&";
+ static const char *QUERY_PARTS_VALUE_SEPARATOR = "=";
+ GPR_ASSERT(uri->query != NULL);
+ if (uri->query[0] == '\0') {
+ uri->query_parts = NULL;
+ uri->query_parts_values = NULL;
+ uri->num_query_parts = 0;
+ return;
+ }
+ gpr_slice query_slice =
+ gpr_slice_new(uri->query, strlen(uri->query), do_nothing);
+ gpr_slice_buffer query_parts; /* the &-separated elements of the query */
+ gpr_slice_buffer query_param_parts; /* the =-separated subelements */
+
+ gpr_slice_buffer_init(&query_parts);
+ gpr_slice_buffer_init(&query_param_parts);
+
+ gpr_slice_split(query_slice, QUERY_PARTS_SEPARATOR, &query_parts);
+ uri->query_parts = gpr_malloc(query_parts.count * sizeof(char *));
+ uri->query_parts_values = gpr_malloc(query_parts.count * sizeof(char *));
+ uri->num_query_parts = query_parts.count;
+ for (size_t i = 0; i < query_parts.count; i++) {
+ gpr_slice_split(query_parts.slices[i], QUERY_PARTS_VALUE_SEPARATOR,
+ &query_param_parts);
+ GPR_ASSERT(query_param_parts.count > 0);
+ uri->query_parts[i] =
+ gpr_dump_slice(query_param_parts.slices[0], GPR_DUMP_ASCII);
+ if (query_param_parts.count > 1) {
+ /* TODO(dgq): only the first value after the separator is considered.
+ * Perhaps all chars after the first separator for the query part should
+ * be included, even if they include the separator. */
+ uri->query_parts_values[i] =
+ gpr_dump_slice(query_param_parts.slices[1], GPR_DUMP_ASCII);
+ } else {
+ uri->query_parts_values[i] = NULL;
+ }
+ gpr_slice_buffer_reset_and_unref(&query_param_parts);
+ }
+ gpr_slice_buffer_destroy(&query_parts);
+ gpr_slice_buffer_destroy(&query_param_parts);
+ gpr_slice_unref(query_slice);
+}
+
grpc_uri *grpc_uri_parse(const char *uri_text, int suppress_errors) {
grpc_uri *uri;
size_t scheme_begin = 0;
@@ -227,16 +276,35 @@ grpc_uri *grpc_uri_parse(const char *uri_text, int suppress_errors) {
uri->path = copy_component(uri_text, path_begin, path_end);
uri->query = copy_component(uri_text, query_begin, query_end);
uri->fragment = copy_component(uri_text, fragment_begin, fragment_end);
+ parse_query_parts(uri);
return uri;
}
+const char *grpc_uri_get_query_arg(const grpc_uri *uri, const char *key) {
+ GPR_ASSERT(key != NULL);
+ if (key[0] == '\0') return NULL;
+
+ for (size_t i = 0; i < uri->num_query_parts; ++i) {
+ if (0 == strcmp(key, uri->query_parts[i])) {
+ return uri->query_parts_values[i];
+ }
+ }
+ return NULL;
+}
+
void grpc_uri_destroy(grpc_uri *uri) {
if (!uri) return;
gpr_free(uri->scheme);
gpr_free(uri->authority);
gpr_free(uri->path);
gpr_free(uri->query);
+ for (size_t i = 0; i < uri->num_query_parts; ++i) {
+ gpr_free(uri->query_parts[i]);
+ gpr_free(uri->query_parts_values[i]);
+ }
+ gpr_free(uri->query_parts);
+ gpr_free(uri->query_parts_values);
gpr_free(uri->fragment);
gpr_free(uri);
}
diff --git a/src/core/lib/client_config/uri_parser.h b/src/core/lib/client_config/uri_parser.h
index d70d451e60..5d6785d293 100644
--- a/src/core/lib/client_config/uri_parser.h
+++ b/src/core/lib/client_config/uri_parser.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -34,17 +34,29 @@
#ifndef GRPC_CORE_LIB_CLIENT_CONFIG_URI_PARSER_H
#define GRPC_CORE_LIB_CLIENT_CONFIG_URI_PARSER_H
+#include <stddef.h>
+
typedef struct {
char *scheme;
char *authority;
char *path;
char *query;
+ /** Query substrings separated by '&' */
+ char **query_parts;
+ /** Number of elements in \a query_parts and \a query_parts_values */
+ size_t num_query_parts;
+ /** Split each query part by '='. NULL if not present. */
+ char **query_parts_values;
char *fragment;
} grpc_uri;
/** parse a uri, return NULL on failure */
grpc_uri *grpc_uri_parse(const char *uri_text, int suppress_errors);
+/** return the part of a query string after the '=' in "?key=xxx&...", or NULL
+ * if key is not present */
+const char *grpc_uri_get_query_arg(const grpc_uri *uri, const char *key);
+
/** destroy a uri */
void grpc_uri_destroy(grpc_uri *uri);
diff --git a/src/core/lib/compression/algorithm_metadata.h b/src/core/lib/compression/algorithm_metadata.h
index 47f33abdc7..1f9cc15f23 100644
--- a/src/core/lib/compression/algorithm_metadata.h
+++ b/src/core/lib/compression/algorithm_metadata.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/compression/compression_algorithm.c b/src/core/lib/compression/compression_algorithm.c
index f781b45042..7039364b7b 100644
--- a/src/core/lib/compression/compression_algorithm.c
+++ b/src/core/lib/compression/compression_algorithm.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/compression/message_compress.c b/src/core/lib/compression/message_compress.c
index b4b6a2d75e..cbe0b5a285 100644
--- a/src/core/lib/compression/message_compress.c
+++ b/src/core/lib/compression/message_compress.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/compression/message_compress.h b/src/core/lib/compression/message_compress.h
index b71608139e..c69eaaf006 100644
--- a/src/core/lib/compression/message_compress.h
+++ b/src/core/lib/compression/message_compress.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/debug/trace.c b/src/core/lib/debug/trace.c
index 786dd9324f..555f497b78 100644
--- a/src/core/lib/debug/trace.c
+++ b/src/core/lib/debug/trace.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/debug/trace.h b/src/core/lib/debug/trace.h
index 76ea5a7c64..7afc38db7e 100644
--- a/src/core/lib/debug/trace.h
+++ b/src/core/lib/debug/trace.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/http/format_request.c b/src/core/lib/http/format_request.c
index 95b3918646..9240356fea 100644
--- a/src/core/lib/http/format_request.c
+++ b/src/core/lib/http/format_request.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/http/format_request.h b/src/core/lib/http/format_request.h
index 2e933d804b..1543efe4b0 100644
--- a/src/core/lib/http/format_request.h
+++ b/src/core/lib/http/format_request.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/http/httpcli.c b/src/core/lib/http/httpcli.c
index aab28ad8b6..76bd1b64dc 100644
--- a/src/core/lib/http/httpcli.c
+++ b/src/core/lib/http/httpcli.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/http/httpcli.h b/src/core/lib/http/httpcli.h
index b8d54a8586..11a32a125c 100644
--- a/src/core/lib/http/httpcli.h
+++ b/src/core/lib/http/httpcli.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/http/httpcli_security_connector.c b/src/core/lib/http/httpcli_security_connector.c
index 6f1630ac1f..ea4bff30d4 100644
--- a/src/core/lib/http/httpcli_security_connector.c
+++ b/src/core/lib/http/httpcli_security_connector.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/http/parser.c b/src/core/lib/http/parser.c
index 5d4e304615..01d17fb623 100644
--- a/src/core/lib/http/parser.c
+++ b/src/core/lib/http/parser.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -39,6 +39,8 @@
#include <grpc/support/log.h>
#include <grpc/support/useful.h>
+extern int grpc_http_trace;
+
static char *buf2str(void *buffer, size_t length) {
char *out = gpr_malloc(length + 1);
memcpy(out, buffer, length);
@@ -72,7 +74,7 @@ static int handle_response_line(grpc_http_parser *parser) {
return 1;
error:
- gpr_log(GPR_ERROR, "Failed parsing response line");
+ if (grpc_http_trace) gpr_log(GPR_ERROR, "Failed parsing response line");
return 0;
}
@@ -125,7 +127,7 @@ static int handle_request_line(grpc_http_parser *parser) {
return 1;
error:
- gpr_log(GPR_ERROR, "Failed parsing request line");
+ if (grpc_http_trace) gpr_log(GPR_ERROR, "Failed parsing request line");
return 0;
}
@@ -150,7 +152,8 @@ static int add_header(grpc_http_parser *parser) {
GPR_ASSERT(cur != end);
if (*cur == ' ' || *cur == '\t') {
- gpr_log(GPR_ERROR, "Continued header lines not supported yet");
+ if (grpc_http_trace)
+ gpr_log(GPR_ERROR, "Continued header lines not supported yet");
goto error;
}
@@ -158,7 +161,7 @@ static int add_header(grpc_http_parser *parser) {
cur++;
}
if (cur == end) {
- gpr_log(GPR_ERROR, "Didn't find ':' in header string");
+ if (grpc_http_trace) gpr_log(GPR_ERROR, "Didn't find ':' in header string");
goto error;
}
GPR_ASSERT(cur >= beg);
@@ -249,8 +252,9 @@ static int addbyte(grpc_http_parser *parser, uint8_t byte) {
case GRPC_HTTP_FIRST_LINE:
case GRPC_HTTP_HEADERS:
if (parser->cur_line_length >= GRPC_HTTP_PARSER_MAX_HEADER_LENGTH) {
- gpr_log(GPR_ERROR, "HTTP client max line length (%d) exceeded",
- GRPC_HTTP_PARSER_MAX_HEADER_LENGTH);
+ if (grpc_http_trace)
+ gpr_log(GPR_ERROR, "HTTP client max line length (%d) exceeded",
+ GRPC_HTTP_PARSER_MAX_HEADER_LENGTH);
return 0;
}
parser->cur_line[parser->cur_line_length] = byte;
diff --git a/src/core/lib/http/parser.h b/src/core/lib/http/parser.h
index 6a72174aa6..8bd73f649a 100644
--- a/src/core/lib/http/parser.h
+++ b/src/core/lib/http/parser.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/closure.c b/src/core/lib/iomgr/closure.c
index 724ebc284a..d6f073fc9d 100644
--- a/src/core/lib/iomgr/closure.c
+++ b/src/core/lib/iomgr/closure.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/closure.h b/src/core/lib/iomgr/closure.h
index 2597cf1706..8652b53a8b 100644
--- a/src/core/lib/iomgr/closure.h
+++ b/src/core/lib/iomgr/closure.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/endpoint.c b/src/core/lib/iomgr/endpoint.c
index 576b5a6e5c..1ab3733d38 100644
--- a/src/core/lib/iomgr/endpoint.c
+++ b/src/core/lib/iomgr/endpoint.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/endpoint.h b/src/core/lib/iomgr/endpoint.h
index 918e705fbd..3877ceb1e2 100644
--- a/src/core/lib/iomgr/endpoint.h
+++ b/src/core/lib/iomgr/endpoint.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/endpoint_pair.h b/src/core/lib/iomgr/endpoint_pair.h
index bef8bb3518..5cd78051bd 100644
--- a/src/core/lib/iomgr/endpoint_pair.h
+++ b/src/core/lib/iomgr/endpoint_pair.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/endpoint_pair_windows.c b/src/core/lib/iomgr/endpoint_pair_windows.c
index cba18db81f..582704e267 100644
--- a/src/core/lib/iomgr/endpoint_pair_windows.c
+++ b/src/core/lib/iomgr/endpoint_pair_windows.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/ev_poll_and_epoll_posix.c b/src/core/lib/iomgr/ev_poll_and_epoll_posix.c
new file mode 100644
index 0000000000..dba335490b
--- /dev/null
+++ b/src/core/lib/iomgr/ev_poll_and_epoll_posix.c
@@ -0,0 +1,1936 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+/* This file will be removed shortly: it's here to keep refactoring
+ * steps simple and auditable.
+ * It's the combination of the old files:
+ * - fd_posix.{h,c}
+ * - pollset_posix.{h,c}
+ * - pullset_multipoller_with_{poll,epoll}.{h,c}
+ * The new version will be split into:
+ * - ev_poll_posix.{h,c}
+ * - ev_epoll_posix.{h,c}
+ */
+
+#include <grpc/support/port_platform.h>
+
+#ifdef GPR_POSIX_SOCKET
+
+#include "src/core/lib/iomgr/ev_poll_and_epoll_posix.h"
+
+#include <assert.h>
+#include <errno.h>
+#include <poll.h>
+#include <string.h>
+#include <sys/socket.h>
+#include <unistd.h>
+
+#include <grpc/support/alloc.h>
+#include <grpc/support/log.h>
+#include <grpc/support/string_util.h>
+#include <grpc/support/tls.h>
+#include <grpc/support/useful.h>
+
+#include "src/core/lib/iomgr/iomgr_internal.h"
+#include "src/core/lib/iomgr/wakeup_fd_posix.h"
+#include "src/core/lib/profiling/timers.h"
+#include "src/core/lib/support/block_annotate.h"
+
+/*******************************************************************************
+ * FD declarations
+ */
+
+typedef struct grpc_fd_watcher {
+ struct grpc_fd_watcher *next;
+ struct grpc_fd_watcher *prev;
+ grpc_pollset *pollset;
+ grpc_pollset_worker *worker;
+ grpc_fd *fd;
+} grpc_fd_watcher;
+
+struct grpc_fd {
+ int fd;
+ /* refst format:
+ bit0: 1=active/0=orphaned
+ bit1-n: refcount
+ meaning that mostly we ref by two to avoid altering the orphaned bit,
+ and just unref by 1 when we're ready to flag the object as orphaned */
+ gpr_atm refst;
+
+ gpr_mu mu;
+ int shutdown;
+ int closed;
+ int released;
+
+ /* The watcher list.
+
+ The following watcher related fields are protected by watcher_mu.
+
+ An fd_watcher is an ephemeral object created when an fd wants to
+ begin polling, and destroyed after the poll.
+
+ It denotes the fd's interest in whether to read poll or write poll
+ or both or neither on this fd.
+
+ If a watcher is asked to poll for reads or writes, the read_watcher
+ or write_watcher fields are set respectively. A watcher may be asked
+ to poll for both, in which case both fields will be set.
+
+ read_watcher and write_watcher may be NULL if no watcher has been
+ asked to poll for reads or writes.
+
+ If an fd_watcher is not asked to poll for reads or writes, it's added
+ to a linked list of inactive watchers, rooted at inactive_watcher_root.
+ If at a later time there becomes need of a poller to poll, one of
+ the inactive pollers may be kicked out of their poll loops to take
+ that responsibility. */
+ grpc_fd_watcher inactive_watcher_root;
+ grpc_fd_watcher *read_watcher;
+ grpc_fd_watcher *write_watcher;
+
+ grpc_closure *read_closure;
+ grpc_closure *write_closure;
+
+ struct grpc_fd *freelist_next;
+
+ grpc_closure *on_done_closure;
+
+ grpc_iomgr_object iomgr_object;
+};
+
+/* Begin polling on an fd.
+ Registers that the given pollset is interested in this fd - so that if read
+ or writability interest changes, the pollset can be kicked to pick up that
+ new interest.
+ Return value is:
+ (fd_needs_read? read_mask : 0) | (fd_needs_write? write_mask : 0)
+ i.e. a combination of read_mask and write_mask determined by the fd's current
+ interest in said events.
+ Polling strategies that do not need to alter their behavior depending on the
+ fd's current interest (such as epoll) do not need to call this function.
+ MUST NOT be called with a pollset lock taken */
+static uint32_t fd_begin_poll(grpc_fd *fd, grpc_pollset *pollset,
+ grpc_pollset_worker *worker, uint32_t read_mask,
+ uint32_t write_mask, grpc_fd_watcher *rec);
+/* Complete polling previously started with fd_begin_poll
+ MUST NOT be called with a pollset lock taken
+ if got_read or got_write are 1, also does the become_{readable,writable} as
+ appropriate. */
+static void fd_end_poll(grpc_exec_ctx *exec_ctx, grpc_fd_watcher *rec,
+ int got_read, int got_write);
+
+/* Return 1 if this fd is orphaned, 0 otherwise */
+static bool fd_is_orphaned(grpc_fd *fd);
+
+/* Reference counting for fds */
+/*#define GRPC_FD_REF_COUNT_DEBUG*/
+#ifdef GRPC_FD_REF_COUNT_DEBUG
+static void fd_ref(grpc_fd *fd, const char *reason, const char *file, int line);
+static void fd_unref(grpc_fd *fd, const char *reason, const char *file,
+ int line);
+#define GRPC_FD_REF(fd, reason) fd_ref(fd, reason, __FILE__, __LINE__)
+#define GRPC_FD_UNREF(fd, reason) fd_unref(fd, reason, __FILE__, __LINE__)
+#else
+static void fd_ref(grpc_fd *fd);
+static void fd_unref(grpc_fd *fd);
+#define GRPC_FD_REF(fd, reason) fd_ref(fd)
+#define GRPC_FD_UNREF(fd, reason) fd_unref(fd)
+#endif
+
+static void fd_global_init(void);
+static void fd_global_shutdown(void);
+
+#define CLOSURE_NOT_READY ((grpc_closure *)0)
+#define CLOSURE_READY ((grpc_closure *)1)
+
+/*******************************************************************************
+ * pollset declarations
+ */
+
+typedef struct grpc_pollset_vtable grpc_pollset_vtable;
+
+typedef struct grpc_cached_wakeup_fd {
+ grpc_wakeup_fd fd;
+ struct grpc_cached_wakeup_fd *next;
+} grpc_cached_wakeup_fd;
+
+struct grpc_pollset_worker {
+ grpc_cached_wakeup_fd *wakeup_fd;
+ int reevaluate_polling_on_wakeup;
+ int kicked_specifically;
+ struct grpc_pollset_worker *next;
+ struct grpc_pollset_worker *prev;
+};
+
+struct grpc_pollset {
+ /* pollsets under posix can mutate representation as fds are added and
+ removed.
+ For example, we may choose a poll() based implementation on linux for
+ few fds, and an epoll() based implementation for many fds */
+ const grpc_pollset_vtable *vtable;
+ gpr_mu mu;
+ grpc_pollset_worker root_worker;
+ int in_flight_cbs;
+ int shutting_down;
+ int called_shutdown;
+ int kicked_without_pollers;
+ grpc_closure *shutdown_done;
+ grpc_closure_list idle_jobs;
+ union {
+ int fd;
+ void *ptr;
+ } data;
+ /* Local cache of eventfds for workers */
+ grpc_cached_wakeup_fd *local_wakeup_cache;
+};
+
+struct grpc_pollset_vtable {
+ void (*add_fd)(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ struct grpc_fd *fd, int and_unlock_pollset);
+ void (*maybe_work_and_unlock)(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ grpc_pollset_worker *worker,
+ gpr_timespec deadline, gpr_timespec now);
+ void (*finish_shutdown)(grpc_pollset *pollset);
+ void (*destroy)(grpc_pollset *pollset);
+};
+
+/* Add an fd to a pollset */
+static void pollset_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ struct grpc_fd *fd);
+
+static void pollset_set_add_fd(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set, grpc_fd *fd);
+
+/* Convert a timespec to milliseconds:
+ - very small or negative poll times are clamped to zero to do a
+ non-blocking poll (which becomes spin polling)
+ - other small values are rounded up to one millisecond
+ - longer than a millisecond polls are rounded up to the next nearest
+ millisecond to avoid spinning
+ - infinite timeouts are converted to -1 */
+static int poll_deadline_to_millis_timeout(gpr_timespec deadline,
+ gpr_timespec now);
+
+/* Allow kick to wakeup the currently polling worker */
+#define GRPC_POLLSET_CAN_KICK_SELF 1
+/* Force the wakee to repoll when awoken */
+#define GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP 2
+/* As per pollset_kick, with an extended set of flags (defined above)
+ -- mostly for fd_posix's use. */
+static void pollset_kick_ext(grpc_pollset *p,
+ grpc_pollset_worker *specific_worker,
+ uint32_t flags);
+
+/* turn a pollset into a multipoller: platform specific */
+typedef void (*platform_become_multipoller_type)(grpc_exec_ctx *exec_ctx,
+ grpc_pollset *pollset,
+ struct grpc_fd **fds,
+ size_t fd_count);
+static platform_become_multipoller_type platform_become_multipoller;
+
+/* Return 1 if the pollset has active threads in pollset_work (pollset must
+ * be locked) */
+static int pollset_has_workers(grpc_pollset *pollset);
+
+static void remove_fd_from_all_epoll_sets(int fd);
+
+/*******************************************************************************
+ * pollset_set definitions
+ */
+
+struct grpc_pollset_set {
+ gpr_mu mu;
+
+ size_t pollset_count;
+ size_t pollset_capacity;
+ grpc_pollset **pollsets;
+
+ size_t pollset_set_count;
+ size_t pollset_set_capacity;
+ struct grpc_pollset_set **pollset_sets;
+
+ size_t fd_count;
+ size_t fd_capacity;
+ grpc_fd **fds;
+};
+
+/*******************************************************************************
+ * fd_posix.c
+ */
+
+/* We need to keep a freelist not because of any concerns of malloc performance
+ * but instead so that implementations with multiple threads in (for example)
+ * epoll_wait deal with the race between pollset removal and incoming poll
+ * notifications.
+ *
+ * The problem is that the poller ultimately holds a reference to this
+ * object, so it is very difficult to know when is safe to free it, at least
+ * without some expensive synchronization.
+ *
+ * If we keep the object freelisted, in the worst case losing this race just
+ * becomes a spurious read notification on a reused fd.
+ */
+/* TODO(klempner): We could use some form of polling generation count to know
+ * when these are safe to free. */
+/* TODO(klempner): Consider disabling freelisting if we don't have multiple
+ * threads in poll on the same fd */
+/* TODO(klempner): Batch these allocations to reduce fragmentation */
+static grpc_fd *fd_freelist = NULL;
+static gpr_mu fd_freelist_mu;
+
+static void freelist_fd(grpc_fd *fd) {
+ gpr_mu_lock(&fd_freelist_mu);
+ fd->freelist_next = fd_freelist;
+ fd_freelist = fd;
+ grpc_iomgr_unregister_object(&fd->iomgr_object);
+ gpr_mu_unlock(&fd_freelist_mu);
+}
+
+static grpc_fd *alloc_fd(int fd) {
+ grpc_fd *r = NULL;
+ gpr_mu_lock(&fd_freelist_mu);
+ if (fd_freelist != NULL) {
+ r = fd_freelist;
+ fd_freelist = fd_freelist->freelist_next;
+ }
+ gpr_mu_unlock(&fd_freelist_mu);
+ if (r == NULL) {
+ r = gpr_malloc(sizeof(grpc_fd));
+ gpr_mu_init(&r->mu);
+ }
+
+ gpr_mu_lock(&r->mu);
+ gpr_atm_rel_store(&r->refst, 1);
+ r->shutdown = 0;
+ r->read_closure = CLOSURE_NOT_READY;
+ r->write_closure = CLOSURE_NOT_READY;
+ r->fd = fd;
+ r->inactive_watcher_root.next = r->inactive_watcher_root.prev =
+ &r->inactive_watcher_root;
+ r->freelist_next = NULL;
+ r->read_watcher = r->write_watcher = NULL;
+ r->on_done_closure = NULL;
+ r->closed = 0;
+ r->released = 0;
+ gpr_mu_unlock(&r->mu);
+ return r;
+}
+
+static void destroy(grpc_fd *fd) {
+ gpr_mu_destroy(&fd->mu);
+ gpr_free(fd);
+}
+
+#ifdef GRPC_FD_REF_COUNT_DEBUG
+#define REF_BY(fd, n, reason) ref_by(fd, n, reason, __FILE__, __LINE__)
+#define UNREF_BY(fd, n, reason) unref_by(fd, n, reason, __FILE__, __LINE__)
+static void ref_by(grpc_fd *fd, int n, const char *reason, const char *file,
+ int line) {
+ gpr_log(GPR_DEBUG, "FD %d %p ref %d %d -> %d [%s; %s:%d]", fd->fd, fd, n,
+ gpr_atm_no_barrier_load(&fd->refst),
+ gpr_atm_no_barrier_load(&fd->refst) + n, reason, file, line);
+#else
+#define REF_BY(fd, n, reason) ref_by(fd, n)
+#define UNREF_BY(fd, n, reason) unref_by(fd, n)
+static void ref_by(grpc_fd *fd, int n) {
+#endif
+ GPR_ASSERT(gpr_atm_no_barrier_fetch_add(&fd->refst, n) > 0);
+}
+
+#ifdef GRPC_FD_REF_COUNT_DEBUG
+static void unref_by(grpc_fd *fd, int n, const char *reason, const char *file,
+ int line) {
+ gpr_atm old;
+ gpr_log(GPR_DEBUG, "FD %d %p unref %d %d -> %d [%s; %s:%d]", fd->fd, fd, n,
+ gpr_atm_no_barrier_load(&fd->refst),
+ gpr_atm_no_barrier_load(&fd->refst) - n, reason, file, line);
+#else
+static void unref_by(grpc_fd *fd, int n) {
+ gpr_atm old;
+#endif
+ old = gpr_atm_full_fetch_add(&fd->refst, -n);
+ if (old == n) {
+ freelist_fd(fd);
+ } else {
+ GPR_ASSERT(old > n);
+ }
+}
+
+static void fd_global_init(void) { gpr_mu_init(&fd_freelist_mu); }
+
+static void fd_global_shutdown(void) {
+ gpr_mu_lock(&fd_freelist_mu);
+ gpr_mu_unlock(&fd_freelist_mu);
+ while (fd_freelist != NULL) {
+ grpc_fd *fd = fd_freelist;
+ fd_freelist = fd_freelist->freelist_next;
+ destroy(fd);
+ }
+ gpr_mu_destroy(&fd_freelist_mu);
+}
+
+static grpc_fd *fd_create(int fd, const char *name) {
+ grpc_fd *r = alloc_fd(fd);
+ char *name2;
+ gpr_asprintf(&name2, "%s fd=%d", name, fd);
+ grpc_iomgr_register_object(&r->iomgr_object, name2);
+ gpr_free(name2);
+#ifdef GRPC_FD_REF_COUNT_DEBUG
+ gpr_log(GPR_DEBUG, "FD %d %p create %s", fd, r, name);
+#endif
+ return r;
+}
+
+static bool fd_is_orphaned(grpc_fd *fd) {
+ return (gpr_atm_acq_load(&fd->refst) & 1) == 0;
+}
+
+static void pollset_kick_locked(grpc_fd_watcher *watcher) {
+ gpr_mu_lock(&watcher->pollset->mu);
+ GPR_ASSERT(watcher->worker);
+ pollset_kick_ext(watcher->pollset, watcher->worker,
+ GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP);
+ gpr_mu_unlock(&watcher->pollset->mu);
+}
+
+static void maybe_wake_one_watcher_locked(grpc_fd *fd) {
+ if (fd->inactive_watcher_root.next != &fd->inactive_watcher_root) {
+ pollset_kick_locked(fd->inactive_watcher_root.next);
+ } else if (fd->read_watcher) {
+ pollset_kick_locked(fd->read_watcher);
+ } else if (fd->write_watcher) {
+ pollset_kick_locked(fd->write_watcher);
+ }
+}
+
+static void wake_all_watchers_locked(grpc_fd *fd) {
+ grpc_fd_watcher *watcher;
+ for (watcher = fd->inactive_watcher_root.next;
+ watcher != &fd->inactive_watcher_root; watcher = watcher->next) {
+ pollset_kick_locked(watcher);
+ }
+ if (fd->read_watcher) {
+ pollset_kick_locked(fd->read_watcher);
+ }
+ if (fd->write_watcher && fd->write_watcher != fd->read_watcher) {
+ pollset_kick_locked(fd->write_watcher);
+ }
+}
+
+static int has_watchers(grpc_fd *fd) {
+ return fd->read_watcher != NULL || fd->write_watcher != NULL ||
+ fd->inactive_watcher_root.next != &fd->inactive_watcher_root;
+}
+
+static void close_fd_locked(grpc_exec_ctx *exec_ctx, grpc_fd *fd) {
+ fd->closed = 1;
+ if (!fd->released) {
+ close(fd->fd);
+ } else {
+ remove_fd_from_all_epoll_sets(fd->fd);
+ }
+ grpc_exec_ctx_enqueue(exec_ctx, fd->on_done_closure, true, NULL);
+}
+
+static int fd_wrapped_fd(grpc_fd *fd) {
+ if (fd->released || fd->closed) {
+ return -1;
+ } else {
+ return fd->fd;
+ }
+}
+
+static void fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+ grpc_closure *on_done, int *release_fd,
+ const char *reason) {
+ fd->on_done_closure = on_done;
+ fd->released = release_fd != NULL;
+ if (!fd->released) {
+ shutdown(fd->fd, SHUT_RDWR);
+ } else {
+ *release_fd = fd->fd;
+ }
+ gpr_mu_lock(&fd->mu);
+ REF_BY(fd, 1, reason); /* remove active status, but keep referenced */
+ if (!has_watchers(fd)) {
+ close_fd_locked(exec_ctx, fd);
+ } else {
+ wake_all_watchers_locked(fd);
+ }
+ gpr_mu_unlock(&fd->mu);
+ UNREF_BY(fd, 2, reason); /* drop the reference */
+}
+
+/* increment refcount by two to avoid changing the orphan bit */
+#ifdef GRPC_FD_REF_COUNT_DEBUG
+static void fd_ref(grpc_fd *fd, const char *reason, const char *file,
+ int line) {
+ ref_by(fd, 2, reason, file, line);
+}
+
+static void fd_unref(grpc_fd *fd, const char *reason, const char *file,
+ int line) {
+ unref_by(fd, 2, reason, file, line);
+}
+#else
+static void fd_ref(grpc_fd *fd) { ref_by(fd, 2); }
+
+static void fd_unref(grpc_fd *fd) { unref_by(fd, 2); }
+#endif
+
+static void notify_on_locked(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+ grpc_closure **st, grpc_closure *closure) {
+ if (*st == CLOSURE_NOT_READY) {
+ /* not ready ==> switch to a waiting state by setting the closure */
+ *st = closure;
+ } else if (*st == CLOSURE_READY) {
+ /* already ready ==> queue the closure to run immediately */
+ *st = CLOSURE_NOT_READY;
+ grpc_exec_ctx_enqueue(exec_ctx, closure, !fd->shutdown, NULL);
+ maybe_wake_one_watcher_locked(fd);
+ } else {
+ /* upcallptr was set to a different closure. This is an error! */
+ gpr_log(GPR_ERROR,
+ "User called a notify_on function with a previous callback still "
+ "pending");
+ abort();
+ }
+}
+
+/* returns 1 if state becomes not ready */
+static int set_ready_locked(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+ grpc_closure **st) {
+ if (*st == CLOSURE_READY) {
+ /* duplicate ready ==> ignore */
+ return 0;
+ } else if (*st == CLOSURE_NOT_READY) {
+ /* not ready, and not waiting ==> flag ready */
+ *st = CLOSURE_READY;
+ return 0;
+ } else {
+ /* waiting ==> queue closure */
+ grpc_exec_ctx_enqueue(exec_ctx, *st, !fd->shutdown, NULL);
+ *st = CLOSURE_NOT_READY;
+ return 1;
+ }
+}
+
+static void fd_shutdown(grpc_exec_ctx *exec_ctx, grpc_fd *fd) {
+ gpr_mu_lock(&fd->mu);
+ GPR_ASSERT(!fd->shutdown);
+ fd->shutdown = 1;
+ set_ready_locked(exec_ctx, fd, &fd->read_closure);
+ set_ready_locked(exec_ctx, fd, &fd->write_closure);
+ gpr_mu_unlock(&fd->mu);
+}
+
+static void fd_notify_on_read(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+ grpc_closure *closure) {
+ gpr_mu_lock(&fd->mu);
+ notify_on_locked(exec_ctx, fd, &fd->read_closure, closure);
+ gpr_mu_unlock(&fd->mu);
+}
+
+static void fd_notify_on_write(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+ grpc_closure *closure) {
+ gpr_mu_lock(&fd->mu);
+ notify_on_locked(exec_ctx, fd, &fd->write_closure, closure);
+ gpr_mu_unlock(&fd->mu);
+}
+
+static uint32_t fd_begin_poll(grpc_fd *fd, grpc_pollset *pollset,
+ grpc_pollset_worker *worker, uint32_t read_mask,
+ uint32_t write_mask, grpc_fd_watcher *watcher) {
+ uint32_t mask = 0;
+ grpc_closure *cur;
+ int requested;
+ /* keep track of pollers that have requested our events, in case they change
+ */
+ GRPC_FD_REF(fd, "poll");
+
+ gpr_mu_lock(&fd->mu);
+
+ /* if we are shutdown, then don't add to the watcher set */
+ if (fd->shutdown) {
+ watcher->fd = NULL;
+ watcher->pollset = NULL;
+ watcher->worker = NULL;
+ gpr_mu_unlock(&fd->mu);
+ GRPC_FD_UNREF(fd, "poll");
+ return 0;
+ }
+
+ /* if there is nobody polling for read, but we need to, then start doing so */
+ cur = fd->read_closure;
+ requested = cur != CLOSURE_READY;
+ if (read_mask && fd->read_watcher == NULL && requested) {
+ fd->read_watcher = watcher;
+ mask |= read_mask;
+ }
+ /* if there is nobody polling for write, but we need to, then start doing so
+ */
+ cur = fd->write_closure;
+ requested = cur != CLOSURE_READY;
+ if (write_mask && fd->write_watcher == NULL && requested) {
+ fd->write_watcher = watcher;
+ mask |= write_mask;
+ }
+ /* if not polling, remember this watcher in case we need someone to later */
+ if (mask == 0 && worker != NULL) {
+ watcher->next = &fd->inactive_watcher_root;
+ watcher->prev = watcher->next->prev;
+ watcher->next->prev = watcher->prev->next = watcher;
+ }
+ watcher->pollset = pollset;
+ watcher->worker = worker;
+ watcher->fd = fd;
+ gpr_mu_unlock(&fd->mu);
+
+ return mask;
+}
+
+static void fd_end_poll(grpc_exec_ctx *exec_ctx, grpc_fd_watcher *watcher,
+ int got_read, int got_write) {
+ int was_polling = 0;
+ int kick = 0;
+ grpc_fd *fd = watcher->fd;
+
+ if (fd == NULL) {
+ return;
+ }
+
+ gpr_mu_lock(&fd->mu);
+
+ if (watcher == fd->read_watcher) {
+ /* remove read watcher, kick if we still need a read */
+ was_polling = 1;
+ if (!got_read) {
+ kick = 1;
+ }
+ fd->read_watcher = NULL;
+ }
+ if (watcher == fd->write_watcher) {
+ /* remove write watcher, kick if we still need a write */
+ was_polling = 1;
+ if (!got_write) {
+ kick = 1;
+ }
+ fd->write_watcher = NULL;
+ }
+ if (!was_polling && watcher->worker != NULL) {
+ /* remove from inactive list */
+ watcher->next->prev = watcher->prev;
+ watcher->prev->next = watcher->next;
+ }
+ if (got_read) {
+ if (set_ready_locked(exec_ctx, fd, &fd->read_closure)) {
+ kick = 1;
+ }
+ }
+ if (got_write) {
+ if (set_ready_locked(exec_ctx, fd, &fd->write_closure)) {
+ kick = 1;
+ }
+ }
+ if (kick) {
+ maybe_wake_one_watcher_locked(fd);
+ }
+ if (fd_is_orphaned(fd) && !has_watchers(fd) && !fd->closed) {
+ close_fd_locked(exec_ctx, fd);
+ }
+ gpr_mu_unlock(&fd->mu);
+
+ GRPC_FD_UNREF(fd, "poll");
+}
+
+/*******************************************************************************
+ * pollset_posix.c
+ */
+
+GPR_TLS_DECL(g_current_thread_poller);
+GPR_TLS_DECL(g_current_thread_worker);
+
+/** The alarm system needs to be able to wakeup 'some poller' sometimes
+ * (specifically when a new alarm needs to be triggered earlier than the next
+ * alarm 'epoch').
+ * This wakeup_fd gives us something to alert on when such a case occurs. */
+grpc_wakeup_fd grpc_global_wakeup_fd;
+
+static void remove_worker(grpc_pollset *p, grpc_pollset_worker *worker) {
+ worker->prev->next = worker->next;
+ worker->next->prev = worker->prev;
+}
+
+static int pollset_has_workers(grpc_pollset *p) {
+ return p->root_worker.next != &p->root_worker;
+}
+
+static grpc_pollset_worker *pop_front_worker(grpc_pollset *p) {
+ if (pollset_has_workers(p)) {
+ grpc_pollset_worker *w = p->root_worker.next;
+ remove_worker(p, w);
+ return w;
+ } else {
+ return NULL;
+ }
+}
+
+static void push_back_worker(grpc_pollset *p, grpc_pollset_worker *worker) {
+ worker->next = &p->root_worker;
+ worker->prev = worker->next->prev;
+ worker->prev->next = worker->next->prev = worker;
+}
+
+static void push_front_worker(grpc_pollset *p, grpc_pollset_worker *worker) {
+ worker->prev = &p->root_worker;
+ worker->next = worker->prev->next;
+ worker->prev->next = worker->next->prev = worker;
+}
+
+static void pollset_kick_ext(grpc_pollset *p,
+ grpc_pollset_worker *specific_worker,
+ uint32_t flags) {
+ GPR_TIMER_BEGIN("pollset_kick_ext", 0);
+
+ /* pollset->mu already held */
+ if (specific_worker != NULL) {
+ if (specific_worker == GRPC_POLLSET_KICK_BROADCAST) {
+ GPR_TIMER_BEGIN("pollset_kick_ext.broadcast", 0);
+ GPR_ASSERT((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) == 0);
+ for (specific_worker = p->root_worker.next;
+ specific_worker != &p->root_worker;
+ specific_worker = specific_worker->next) {
+ grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd);
+ }
+ p->kicked_without_pollers = 1;
+ GPR_TIMER_END("pollset_kick_ext.broadcast", 0);
+ } else if (gpr_tls_get(&g_current_thread_worker) !=
+ (intptr_t)specific_worker) {
+ GPR_TIMER_MARK("different_thread_worker", 0);
+ if ((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) != 0) {
+ specific_worker->reevaluate_polling_on_wakeup = 1;
+ }
+ specific_worker->kicked_specifically = 1;
+ grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd);
+ } else if ((flags & GRPC_POLLSET_CAN_KICK_SELF) != 0) {
+ GPR_TIMER_MARK("kick_yoself", 0);
+ if ((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) != 0) {
+ specific_worker->reevaluate_polling_on_wakeup = 1;
+ }
+ specific_worker->kicked_specifically = 1;
+ grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd);
+ }
+ } else if (gpr_tls_get(&g_current_thread_poller) != (intptr_t)p) {
+ GPR_ASSERT((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) == 0);
+ GPR_TIMER_MARK("kick_anonymous", 0);
+ specific_worker = pop_front_worker(p);
+ if (specific_worker != NULL) {
+ if (gpr_tls_get(&g_current_thread_worker) == (intptr_t)specific_worker) {
+ GPR_TIMER_MARK("kick_anonymous_not_self", 0);
+ push_back_worker(p, specific_worker);
+ specific_worker = pop_front_worker(p);
+ if ((flags & GRPC_POLLSET_CAN_KICK_SELF) == 0 &&
+ gpr_tls_get(&g_current_thread_worker) ==
+ (intptr_t)specific_worker) {
+ push_back_worker(p, specific_worker);
+ specific_worker = NULL;
+ }
+ }
+ if (specific_worker != NULL) {
+ GPR_TIMER_MARK("finally_kick", 0);
+ push_back_worker(p, specific_worker);
+ grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd);
+ }
+ } else {
+ GPR_TIMER_MARK("kicked_no_pollers", 0);
+ p->kicked_without_pollers = 1;
+ }
+ }
+
+ GPR_TIMER_END("pollset_kick_ext", 0);
+}
+
+static void pollset_kick(grpc_pollset *p,
+ grpc_pollset_worker *specific_worker) {
+ pollset_kick_ext(p, specific_worker, 0);
+}
+
+/* global state management */
+
+static void pollset_global_init(void) {
+ gpr_tls_init(&g_current_thread_poller);
+ gpr_tls_init(&g_current_thread_worker);
+ grpc_wakeup_fd_global_init();
+ grpc_wakeup_fd_init(&grpc_global_wakeup_fd);
+}
+
+static void pollset_global_shutdown(void) {
+ grpc_wakeup_fd_destroy(&grpc_global_wakeup_fd);
+ gpr_tls_destroy(&g_current_thread_poller);
+ gpr_tls_destroy(&g_current_thread_worker);
+ grpc_wakeup_fd_global_destroy();
+}
+
+static void kick_poller(void) { grpc_wakeup_fd_wakeup(&grpc_global_wakeup_fd); }
+
+/* main interface */
+
+static void become_basic_pollset(grpc_pollset *pollset, grpc_fd *fd_or_null);
+
+static void pollset_init(grpc_pollset *pollset, gpr_mu **mu) {
+ gpr_mu_init(&pollset->mu);
+ *mu = &pollset->mu;
+ pollset->root_worker.next = pollset->root_worker.prev = &pollset->root_worker;
+ pollset->in_flight_cbs = 0;
+ pollset->shutting_down = 0;
+ pollset->called_shutdown = 0;
+ pollset->kicked_without_pollers = 0;
+ pollset->idle_jobs.head = pollset->idle_jobs.tail = NULL;
+ pollset->local_wakeup_cache = NULL;
+ pollset->kicked_without_pollers = 0;
+ become_basic_pollset(pollset, NULL);
+}
+
+static void pollset_destroy(grpc_pollset *pollset) {
+ GPR_ASSERT(pollset->in_flight_cbs == 0);
+ GPR_ASSERT(!pollset_has_workers(pollset));
+ GPR_ASSERT(pollset->idle_jobs.head == pollset->idle_jobs.tail);
+ pollset->vtable->destroy(pollset);
+ while (pollset->local_wakeup_cache) {
+ grpc_cached_wakeup_fd *next = pollset->local_wakeup_cache->next;
+ grpc_wakeup_fd_destroy(&pollset->local_wakeup_cache->fd);
+ gpr_free(pollset->local_wakeup_cache);
+ pollset->local_wakeup_cache = next;
+ }
+ gpr_mu_destroy(&pollset->mu);
+}
+
+static void pollset_reset(grpc_pollset *pollset) {
+ GPR_ASSERT(pollset->shutting_down);
+ GPR_ASSERT(pollset->in_flight_cbs == 0);
+ GPR_ASSERT(!pollset_has_workers(pollset));
+ GPR_ASSERT(pollset->idle_jobs.head == pollset->idle_jobs.tail);
+ pollset->vtable->destroy(pollset);
+ pollset->shutting_down = 0;
+ pollset->called_shutdown = 0;
+ pollset->kicked_without_pollers = 0;
+ become_basic_pollset(pollset, NULL);
+}
+
+static void pollset_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ grpc_fd *fd) {
+ gpr_mu_lock(&pollset->mu);
+ pollset->vtable->add_fd(exec_ctx, pollset, fd, 1);
+/* the following (enabled only in debug) will reacquire and then release
+ our lock - meaning that if the unlocking flag passed to add_fd above is
+ not respected, the code will deadlock (in a way that we have a chance of
+ debugging) */
+#ifndef NDEBUG
+ gpr_mu_lock(&pollset->mu);
+ gpr_mu_unlock(&pollset->mu);
+#endif
+}
+
+static void finish_shutdown(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset) {
+ GPR_ASSERT(grpc_closure_list_empty(pollset->idle_jobs));
+ pollset->vtable->finish_shutdown(pollset);
+ grpc_exec_ctx_enqueue(exec_ctx, pollset->shutdown_done, true, NULL);
+}
+
+static void pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ grpc_pollset_worker **worker_hdl, gpr_timespec now,
+ gpr_timespec deadline) {
+ grpc_pollset_worker worker;
+ *worker_hdl = &worker;
+
+ /* pollset->mu already held */
+ int added_worker = 0;
+ int locked = 1;
+ int queued_work = 0;
+ int keep_polling = 0;
+ GPR_TIMER_BEGIN("pollset_work", 0);
+ /* this must happen before we (potentially) drop pollset->mu */
+ worker.next = worker.prev = NULL;
+ worker.reevaluate_polling_on_wakeup = 0;
+ if (pollset->local_wakeup_cache != NULL) {
+ worker.wakeup_fd = pollset->local_wakeup_cache;
+ pollset->local_wakeup_cache = worker.wakeup_fd->next;
+ } else {
+ worker.wakeup_fd = gpr_malloc(sizeof(*worker.wakeup_fd));
+ grpc_wakeup_fd_init(&worker.wakeup_fd->fd);
+ }
+ worker.kicked_specifically = 0;
+ /* If there's work waiting for the pollset to be idle, and the
+ pollset is idle, then do that work */
+ if (!pollset_has_workers(pollset) &&
+ !grpc_closure_list_empty(pollset->idle_jobs)) {
+ GPR_TIMER_MARK("pollset_work.idle_jobs", 0);
+ grpc_exec_ctx_enqueue_list(exec_ctx, &pollset->idle_jobs, NULL);
+ goto done;
+ }
+ /* If we're shutting down then we don't execute any extended work */
+ if (pollset->shutting_down) {
+ GPR_TIMER_MARK("pollset_work.shutting_down", 0);
+ goto done;
+ }
+ /* Give do_promote priority so we don't starve it out */
+ if (pollset->in_flight_cbs) {
+ GPR_TIMER_MARK("pollset_work.in_flight_cbs", 0);
+ gpr_mu_unlock(&pollset->mu);
+ locked = 0;
+ goto done;
+ }
+ /* Start polling, and keep doing so while we're being asked to
+ re-evaluate our pollers (this allows poll() based pollers to
+ ensure they don't miss wakeups) */
+ keep_polling = 1;
+ while (keep_polling) {
+ keep_polling = 0;
+ if (!pollset->kicked_without_pollers) {
+ if (!added_worker) {
+ push_front_worker(pollset, &worker);
+ added_worker = 1;
+ gpr_tls_set(&g_current_thread_worker, (intptr_t)&worker);
+ }
+ gpr_tls_set(&g_current_thread_poller, (intptr_t)pollset);
+ GPR_TIMER_BEGIN("maybe_work_and_unlock", 0);
+ pollset->vtable->maybe_work_and_unlock(exec_ctx, pollset, &worker,
+ deadline, now);
+ GPR_TIMER_END("maybe_work_and_unlock", 0);
+ locked = 0;
+ gpr_tls_set(&g_current_thread_poller, 0);
+ } else {
+ GPR_TIMER_MARK("pollset_work.kicked_without_pollers", 0);
+ pollset->kicked_without_pollers = 0;
+ }
+ /* Finished execution - start cleaning up.
+ Note that we may arrive here from outside the enclosing while() loop.
+ In that case we won't loop though as we haven't added worker to the
+ worker list, which means nobody could ask us to re-evaluate polling). */
+ done:
+ if (!locked) {
+ queued_work |= grpc_exec_ctx_flush(exec_ctx);
+ gpr_mu_lock(&pollset->mu);
+ locked = 1;
+ }
+ /* If we're forced to re-evaluate polling (via pollset_kick with
+ GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) then we land here and force
+ a loop */
+ if (worker.reevaluate_polling_on_wakeup) {
+ worker.reevaluate_polling_on_wakeup = 0;
+ pollset->kicked_without_pollers = 0;
+ if (queued_work || worker.kicked_specifically) {
+ /* If there's queued work on the list, then set the deadline to be
+ immediate so we get back out of the polling loop quickly */
+ deadline = gpr_inf_past(GPR_CLOCK_MONOTONIC);
+ }
+ keep_polling = 1;
+ }
+ }
+ if (added_worker) {
+ remove_worker(pollset, &worker);
+ gpr_tls_set(&g_current_thread_worker, 0);
+ }
+ /* release wakeup fd to the local pool */
+ worker.wakeup_fd->next = pollset->local_wakeup_cache;
+ pollset->local_wakeup_cache = worker.wakeup_fd;
+ /* check shutdown conditions */
+ if (pollset->shutting_down) {
+ if (pollset_has_workers(pollset)) {
+ pollset_kick(pollset, NULL);
+ } else if (!pollset->called_shutdown && pollset->in_flight_cbs == 0) {
+ pollset->called_shutdown = 1;
+ gpr_mu_unlock(&pollset->mu);
+ finish_shutdown(exec_ctx, pollset);
+ grpc_exec_ctx_flush(exec_ctx);
+ /* Continuing to access pollset here is safe -- it is the caller's
+ * responsibility to not destroy when it has outstanding calls to
+ * pollset_work.
+ * TODO(dklempner): Can we refactor the shutdown logic to avoid this? */
+ gpr_mu_lock(&pollset->mu);
+ } else if (!grpc_closure_list_empty(pollset->idle_jobs)) {
+ grpc_exec_ctx_enqueue_list(exec_ctx, &pollset->idle_jobs, NULL);
+ gpr_mu_unlock(&pollset->mu);
+ grpc_exec_ctx_flush(exec_ctx);
+ gpr_mu_lock(&pollset->mu);
+ }
+ }
+ *worker_hdl = NULL;
+ GPR_TIMER_END("pollset_work", 0);
+}
+
+static void pollset_shutdown(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ grpc_closure *closure) {
+ GPR_ASSERT(!pollset->shutting_down);
+ pollset->shutting_down = 1;
+ pollset->shutdown_done = closure;
+ pollset_kick(pollset, GRPC_POLLSET_KICK_BROADCAST);
+ if (!pollset_has_workers(pollset)) {
+ grpc_exec_ctx_enqueue_list(exec_ctx, &pollset->idle_jobs, NULL);
+ }
+ if (!pollset->called_shutdown && pollset->in_flight_cbs == 0 &&
+ !pollset_has_workers(pollset)) {
+ pollset->called_shutdown = 1;
+ finish_shutdown(exec_ctx, pollset);
+ }
+}
+
+static int poll_deadline_to_millis_timeout(gpr_timespec deadline,
+ gpr_timespec now) {
+ gpr_timespec timeout;
+ static const int64_t max_spin_polling_us = 10;
+ if (gpr_time_cmp(deadline, gpr_inf_future(deadline.clock_type)) == 0) {
+ return -1;
+ }
+ if (gpr_time_cmp(deadline, gpr_time_add(now, gpr_time_from_micros(
+ max_spin_polling_us,
+ GPR_TIMESPAN))) <= 0) {
+ return 0;
+ }
+ timeout = gpr_time_sub(deadline, now);
+ return gpr_time_to_millis(gpr_time_add(
+ timeout, gpr_time_from_nanos(GPR_NS_PER_MS - 1, GPR_TIMESPAN)));
+}
+
+/*
+ * basic_pollset - a vtable that provides polling for zero or one file
+ * descriptor via poll()
+ */
+
+typedef struct grpc_unary_promote_args {
+ const grpc_pollset_vtable *original_vtable;
+ grpc_pollset *pollset;
+ grpc_fd *fd;
+ grpc_closure promotion_closure;
+} grpc_unary_promote_args;
+
+static void basic_do_promote(grpc_exec_ctx *exec_ctx, void *args,
+ bool success) {
+ grpc_unary_promote_args *up_args = args;
+ const grpc_pollset_vtable *original_vtable = up_args->original_vtable;
+ grpc_pollset *pollset = up_args->pollset;
+ grpc_fd *fd = up_args->fd;
+
+ /*
+ * This is quite tricky. There are a number of cases to keep in mind here:
+ * 1. fd may have been orphaned
+ * 2. The pollset may no longer be a unary poller (and we can't let case #1
+ * leak to other pollset types!)
+ * 3. pollset's fd (which may have changed) may have been orphaned
+ * 4. The pollset may be shutting down.
+ */
+
+ gpr_mu_lock(&pollset->mu);
+ /* First we need to ensure that nobody is polling concurrently */
+ GPR_ASSERT(!pollset_has_workers(pollset));
+
+ gpr_free(up_args);
+ /* At this point the pollset may no longer be a unary poller. In that case
+ * we should just call the right add function and be done. */
+ /* TODO(klempner): If we're not careful this could cause infinite recursion.
+ * That's not a problem for now because empty_pollset has a trivial poller
+ * and we don't have any mechanism to unbecome multipoller. */
+ pollset->in_flight_cbs--;
+ if (pollset->shutting_down) {
+ /* We don't care about this pollset anymore. */
+ if (pollset->in_flight_cbs == 0 && !pollset->called_shutdown) {
+ pollset->called_shutdown = 1;
+ finish_shutdown(exec_ctx, pollset);
+ }
+ } else if (fd_is_orphaned(fd)) {
+ /* Don't try to add it to anything, we'll drop our ref on it below */
+ } else if (pollset->vtable != original_vtable) {
+ pollset->vtable->add_fd(exec_ctx, pollset, fd, 0);
+ } else if (fd != pollset->data.ptr) {
+ grpc_fd *fds[2];
+ fds[0] = pollset->data.ptr;
+ fds[1] = fd;
+
+ if (fds[0] && !fd_is_orphaned(fds[0])) {
+ platform_become_multipoller(exec_ctx, pollset, fds, GPR_ARRAY_SIZE(fds));
+ GRPC_FD_UNREF(fds[0], "basicpoll");
+ } else {
+ /* old fd is orphaned and we haven't cleaned it up until now, so remain a
+ * unary poller */
+ /* Note that it is possible that fds[1] is also orphaned at this point.
+ * That's okay, we'll correct it at the next add or poll. */
+ if (fds[0]) GRPC_FD_UNREF(fds[0], "basicpoll");
+ pollset->data.ptr = fd;
+ GRPC_FD_REF(fd, "basicpoll");
+ }
+ }
+
+ gpr_mu_unlock(&pollset->mu);
+
+ /* Matching ref in basic_pollset_add_fd */
+ GRPC_FD_UNREF(fd, "basicpoll_add");
+}
+
+static void basic_pollset_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ grpc_fd *fd, int and_unlock_pollset) {
+ grpc_unary_promote_args *up_args;
+ GPR_ASSERT(fd);
+ if (fd == pollset->data.ptr) goto exit;
+
+ if (!pollset_has_workers(pollset)) {
+ /* Fast path -- no in flight cbs */
+ /* TODO(klempner): Comment this out and fix any test failures or establish
+ * they are due to timing issues */
+ grpc_fd *fds[2];
+ fds[0] = pollset->data.ptr;
+ fds[1] = fd;
+
+ if (fds[0] == NULL) {
+ pollset->data.ptr = fd;
+ GRPC_FD_REF(fd, "basicpoll");
+ } else if (!fd_is_orphaned(fds[0])) {
+ platform_become_multipoller(exec_ctx, pollset, fds, GPR_ARRAY_SIZE(fds));
+ GRPC_FD_UNREF(fds[0], "basicpoll");
+ } else {
+ /* old fd is orphaned and we haven't cleaned it up until now, so remain a
+ * unary poller */
+ GRPC_FD_UNREF(fds[0], "basicpoll");
+ pollset->data.ptr = fd;
+ GRPC_FD_REF(fd, "basicpoll");
+ }
+ goto exit;
+ }
+
+ /* Now we need to promote. This needs to happen when we're not polling. Since
+ * this may be called from poll, the wait needs to happen asynchronously. */
+ GRPC_FD_REF(fd, "basicpoll_add");
+ pollset->in_flight_cbs++;
+ up_args = gpr_malloc(sizeof(*up_args));
+ up_args->fd = fd;
+ up_args->original_vtable = pollset->vtable;
+ up_args->pollset = pollset;
+ up_args->promotion_closure.cb = basic_do_promote;
+ up_args->promotion_closure.cb_arg = up_args;
+
+ grpc_closure_list_add(&pollset->idle_jobs, &up_args->promotion_closure, 1);
+ pollset_kick(pollset, GRPC_POLLSET_KICK_BROADCAST);
+
+exit:
+ if (and_unlock_pollset) {
+ gpr_mu_unlock(&pollset->mu);
+ }
+}
+
+static void basic_pollset_maybe_work_and_unlock(grpc_exec_ctx *exec_ctx,
+ grpc_pollset *pollset,
+ grpc_pollset_worker *worker,
+ gpr_timespec deadline,
+ gpr_timespec now) {
+#define POLLOUT_CHECK (POLLOUT | POLLHUP | POLLERR)
+#define POLLIN_CHECK (POLLIN | POLLHUP | POLLERR)
+
+ struct pollfd pfd[3];
+ grpc_fd *fd;
+ grpc_fd_watcher fd_watcher;
+ int timeout;
+ int r;
+ nfds_t nfds;
+
+ fd = pollset->data.ptr;
+ if (fd && fd_is_orphaned(fd)) {
+ GRPC_FD_UNREF(fd, "basicpoll");
+ fd = pollset->data.ptr = NULL;
+ }
+ timeout = poll_deadline_to_millis_timeout(deadline, now);
+ pfd[0].fd = GRPC_WAKEUP_FD_GET_READ_FD(&grpc_global_wakeup_fd);
+ pfd[0].events = POLLIN;
+ pfd[0].revents = 0;
+ pfd[1].fd = GRPC_WAKEUP_FD_GET_READ_FD(&worker->wakeup_fd->fd);
+ pfd[1].events = POLLIN;
+ pfd[1].revents = 0;
+ nfds = 2;
+ if (fd) {
+ pfd[2].fd = fd->fd;
+ pfd[2].revents = 0;
+ GRPC_FD_REF(fd, "basicpoll_begin");
+ gpr_mu_unlock(&pollset->mu);
+ pfd[2].events =
+ (short)fd_begin_poll(fd, pollset, worker, POLLIN, POLLOUT, &fd_watcher);
+ if (pfd[2].events != 0) {
+ nfds++;
+ }
+ } else {
+ gpr_mu_unlock(&pollset->mu);
+ }
+
+ /* TODO(vpai): Consider first doing a 0 timeout poll here to avoid
+ even going into the blocking annotation if possible */
+ /* poll fd count (argument 2) is shortened by one if we have no events
+ to poll on - such that it only includes the kicker */
+ GPR_TIMER_BEGIN("poll", 0);
+ GRPC_SCHEDULING_START_BLOCKING_REGION;
+ r = grpc_poll_function(pfd, nfds, timeout);
+ GRPC_SCHEDULING_END_BLOCKING_REGION;
+ GPR_TIMER_END("poll", 0);
+
+ if (r < 0) {
+ if (errno != EINTR) {
+ gpr_log(GPR_ERROR, "poll() failed: %s", strerror(errno));
+ }
+ if (fd) {
+ fd_end_poll(exec_ctx, &fd_watcher, 0, 0);
+ }
+ } else if (r == 0) {
+ if (fd) {
+ fd_end_poll(exec_ctx, &fd_watcher, 0, 0);
+ }
+ } else {
+ if (pfd[0].revents & POLLIN_CHECK) {
+ grpc_wakeup_fd_consume_wakeup(&grpc_global_wakeup_fd);
+ }
+ if (pfd[1].revents & POLLIN_CHECK) {
+ grpc_wakeup_fd_consume_wakeup(&worker->wakeup_fd->fd);
+ }
+ if (nfds > 2) {
+ fd_end_poll(exec_ctx, &fd_watcher, pfd[2].revents & POLLIN_CHECK,
+ pfd[2].revents & POLLOUT_CHECK);
+ } else if (fd) {
+ fd_end_poll(exec_ctx, &fd_watcher, 0, 0);
+ }
+ }
+
+ if (fd) {
+ GRPC_FD_UNREF(fd, "basicpoll_begin");
+ }
+}
+
+static void basic_pollset_destroy(grpc_pollset *pollset) {
+ if (pollset->data.ptr != NULL) {
+ GRPC_FD_UNREF(pollset->data.ptr, "basicpoll");
+ pollset->data.ptr = NULL;
+ }
+}
+
+static const grpc_pollset_vtable basic_pollset = {
+ basic_pollset_add_fd, basic_pollset_maybe_work_and_unlock,
+ basic_pollset_destroy, basic_pollset_destroy};
+
+static void become_basic_pollset(grpc_pollset *pollset, grpc_fd *fd_or_null) {
+ pollset->vtable = &basic_pollset;
+ pollset->data.ptr = fd_or_null;
+ if (fd_or_null != NULL) {
+ GRPC_FD_REF(fd_or_null, "basicpoll");
+ }
+}
+
+/*******************************************************************************
+ * pollset_multipoller_with_poll_posix.c
+ */
+
+#ifndef GPR_LINUX_MULTIPOLL_WITH_EPOLL
+
+typedef struct {
+ /* all polled fds */
+ size_t fd_count;
+ size_t fd_capacity;
+ grpc_fd **fds;
+ /* fds that have been removed from the pollset explicitly */
+ size_t del_count;
+ size_t del_capacity;
+ grpc_fd **dels;
+} poll_hdr;
+
+static void multipoll_with_poll_pollset_add_fd(grpc_exec_ctx *exec_ctx,
+ grpc_pollset *pollset,
+ grpc_fd *fd,
+ int and_unlock_pollset) {
+ size_t i;
+ poll_hdr *h = pollset->data.ptr;
+ /* TODO(ctiller): this is O(num_fds^2); maybe switch to a hash set here */
+ for (i = 0; i < h->fd_count; i++) {
+ if (h->fds[i] == fd) goto exit;
+ }
+ if (h->fd_count == h->fd_capacity) {
+ h->fd_capacity = GPR_MAX(h->fd_capacity + 8, h->fd_count * 3 / 2);
+ h->fds = gpr_realloc(h->fds, sizeof(grpc_fd *) * h->fd_capacity);
+ }
+ h->fds[h->fd_count++] = fd;
+ GRPC_FD_REF(fd, "multipoller");
+exit:
+ if (and_unlock_pollset) {
+ gpr_mu_unlock(&pollset->mu);
+ }
+}
+
+static void multipoll_with_poll_pollset_maybe_work_and_unlock(
+ grpc_exec_ctx *exec_ctx, grpc_pollset *pollset, grpc_pollset_worker *worker,
+ gpr_timespec deadline, gpr_timespec now) {
+#define POLLOUT_CHECK (POLLOUT | POLLHUP | POLLERR)
+#define POLLIN_CHECK (POLLIN | POLLHUP | POLLERR)
+
+ int timeout;
+ int r;
+ size_t i, j, fd_count;
+ nfds_t pfd_count;
+ poll_hdr *h;
+ /* TODO(ctiller): inline some elements to avoid an allocation */
+ grpc_fd_watcher *watchers;
+ struct pollfd *pfds;
+
+ h = pollset->data.ptr;
+ timeout = poll_deadline_to_millis_timeout(deadline, now);
+ /* TODO(ctiller): perform just one malloc here if we exceed the inline case */
+ pfds = gpr_malloc(sizeof(*pfds) * (h->fd_count + 2));
+ watchers = gpr_malloc(sizeof(*watchers) * (h->fd_count + 2));
+ fd_count = 0;
+ pfd_count = 2;
+ pfds[0].fd = GRPC_WAKEUP_FD_GET_READ_FD(&grpc_global_wakeup_fd);
+ pfds[0].events = POLLIN;
+ pfds[0].revents = 0;
+ pfds[1].fd = GRPC_WAKEUP_FD_GET_READ_FD(&worker->wakeup_fd->fd);
+ pfds[1].events = POLLIN;
+ pfds[1].revents = 0;
+ for (i = 0; i < h->fd_count; i++) {
+ int remove = fd_is_orphaned(h->fds[i]);
+ for (j = 0; !remove && j < h->del_count; j++) {
+ if (h->fds[i] == h->dels[j]) remove = 1;
+ }
+ if (remove) {
+ GRPC_FD_UNREF(h->fds[i], "multipoller");
+ } else {
+ h->fds[fd_count++] = h->fds[i];
+ watchers[pfd_count].fd = h->fds[i];
+ GRPC_FD_REF(watchers[pfd_count].fd, "multipoller_start");
+ pfds[pfd_count].fd = h->fds[i]->fd;
+ pfds[pfd_count].revents = 0;
+ pfd_count++;
+ }
+ }
+ for (j = 0; j < h->del_count; j++) {
+ GRPC_FD_UNREF(h->dels[j], "multipoller_del");
+ }
+ h->del_count = 0;
+ h->fd_count = fd_count;
+ gpr_mu_unlock(&pollset->mu);
+
+ for (i = 2; i < pfd_count; i++) {
+ grpc_fd *fd = watchers[i].fd;
+ pfds[i].events = (short)fd_begin_poll(fd, pollset, worker, POLLIN, POLLOUT,
+ &watchers[i]);
+ GRPC_FD_UNREF(fd, "multipoller_start");
+ }
+
+ /* TODO(vpai): Consider first doing a 0 timeout poll here to avoid
+ even going into the blocking annotation if possible */
+ GRPC_SCHEDULING_START_BLOCKING_REGION;
+ r = grpc_poll_function(pfds, pfd_count, timeout);
+ GRPC_SCHEDULING_END_BLOCKING_REGION;
+
+ if (r < 0) {
+ if (errno != EINTR) {
+ gpr_log(GPR_ERROR, "poll() failed: %s", strerror(errno));
+ }
+ for (i = 2; i < pfd_count; i++) {
+ fd_end_poll(exec_ctx, &watchers[i], 0, 0);
+ }
+ } else if (r == 0) {
+ for (i = 2; i < pfd_count; i++) {
+ fd_end_poll(exec_ctx, &watchers[i], 0, 0);
+ }
+ } else {
+ if (pfds[0].revents & POLLIN_CHECK) {
+ grpc_wakeup_fd_consume_wakeup(&grpc_global_wakeup_fd);
+ }
+ if (pfds[1].revents & POLLIN_CHECK) {
+ grpc_wakeup_fd_consume_wakeup(&worker->wakeup_fd->fd);
+ }
+ for (i = 2; i < pfd_count; i++) {
+ if (watchers[i].fd == NULL) {
+ fd_end_poll(exec_ctx, &watchers[i], 0, 0);
+ continue;
+ }
+ fd_end_poll(exec_ctx, &watchers[i], pfds[i].revents & POLLIN_CHECK,
+ pfds[i].revents & POLLOUT_CHECK);
+ }
+ }
+
+ gpr_free(pfds);
+ gpr_free(watchers);
+}
+
+static void multipoll_with_poll_pollset_finish_shutdown(grpc_pollset *pollset) {
+ size_t i;
+ poll_hdr *h = pollset->data.ptr;
+ for (i = 0; i < h->fd_count; i++) {
+ GRPC_FD_UNREF(h->fds[i], "multipoller");
+ }
+ for (i = 0; i < h->del_count; i++) {
+ GRPC_FD_UNREF(h->dels[i], "multipoller_del");
+ }
+ h->fd_count = 0;
+ h->del_count = 0;
+}
+
+static void multipoll_with_poll_pollset_destroy(grpc_pollset *pollset) {
+ poll_hdr *h = pollset->data.ptr;
+ multipoll_with_poll_pollset_finish_shutdown(pollset);
+ gpr_free(h->fds);
+ gpr_free(h->dels);
+ gpr_free(h);
+}
+
+static const grpc_pollset_vtable multipoll_with_poll_pollset = {
+ multipoll_with_poll_pollset_add_fd,
+ multipoll_with_poll_pollset_maybe_work_and_unlock,
+ multipoll_with_poll_pollset_finish_shutdown,
+ multipoll_with_poll_pollset_destroy};
+
+static void poll_become_multipoller(grpc_exec_ctx *exec_ctx,
+ grpc_pollset *pollset, grpc_fd **fds,
+ size_t nfds) {
+ size_t i;
+ poll_hdr *h = gpr_malloc(sizeof(poll_hdr));
+ pollset->vtable = &multipoll_with_poll_pollset;
+ pollset->data.ptr = h;
+ h->fd_count = nfds;
+ h->fd_capacity = nfds;
+ h->fds = gpr_malloc(nfds * sizeof(grpc_fd *));
+ h->del_count = 0;
+ h->del_capacity = 0;
+ h->dels = NULL;
+ for (i = 0; i < nfds; i++) {
+ h->fds[i] = fds[i];
+ GRPC_FD_REF(fds[i], "multipoller");
+ }
+}
+
+#endif /* !GPR_LINUX_MULTIPOLL_WITH_EPOLL */
+
+/*******************************************************************************
+ * pollset_multipoller_with_epoll_posix.c
+ */
+
+#ifdef GPR_LINUX_MULTIPOLL_WITH_EPOLL
+
+#include <errno.h>
+#include <poll.h>
+#include <string.h>
+#include <sys/epoll.h>
+#include <unistd.h>
+
+#include <grpc/support/alloc.h>
+#include <grpc/support/log.h>
+#include <grpc/support/useful.h>
+
+#include "src/core/lib/iomgr/ev_posix.h"
+#include "src/core/lib/profiling/timers.h"
+#include "src/core/lib/support/block_annotate.h"
+
+static void set_ready(grpc_exec_ctx *exec_ctx, grpc_fd *fd, grpc_closure **st) {
+ /* only one set_ready can be active at once (but there may be a racing
+ notify_on) */
+ gpr_mu_lock(&fd->mu);
+ set_ready_locked(exec_ctx, fd, st);
+ gpr_mu_unlock(&fd->mu);
+}
+
+static void fd_become_readable(grpc_exec_ctx *exec_ctx, grpc_fd *fd) {
+ set_ready(exec_ctx, fd, &fd->read_closure);
+}
+
+static void fd_become_writable(grpc_exec_ctx *exec_ctx, grpc_fd *fd) {
+ set_ready(exec_ctx, fd, &fd->write_closure);
+}
+
+struct epoll_fd_list {
+ int *epoll_fds;
+ size_t count;
+ size_t capacity;
+};
+
+static struct epoll_fd_list epoll_fd_global_list;
+static gpr_once init_epoll_fd_list_mu = GPR_ONCE_INIT;
+static gpr_mu epoll_fd_list_mu;
+
+static void init_mu(void) { gpr_mu_init(&epoll_fd_list_mu); }
+
+static void add_epoll_fd_to_global_list(int epoll_fd) {
+ gpr_once_init(&init_epoll_fd_list_mu, init_mu);
+
+ gpr_mu_lock(&epoll_fd_list_mu);
+ if (epoll_fd_global_list.count == epoll_fd_global_list.capacity) {
+ epoll_fd_global_list.capacity =
+ GPR_MAX((size_t)8, epoll_fd_global_list.capacity * 2);
+ epoll_fd_global_list.epoll_fds =
+ gpr_realloc(epoll_fd_global_list.epoll_fds,
+ epoll_fd_global_list.capacity * sizeof(int));
+ }
+ epoll_fd_global_list.epoll_fds[epoll_fd_global_list.count++] = epoll_fd;
+ gpr_mu_unlock(&epoll_fd_list_mu);
+}
+
+static void remove_epoll_fd_from_global_list(int epoll_fd) {
+ gpr_mu_lock(&epoll_fd_list_mu);
+ GPR_ASSERT(epoll_fd_global_list.count > 0);
+ for (size_t i = 0; i < epoll_fd_global_list.count; i++) {
+ if (epoll_fd == epoll_fd_global_list.epoll_fds[i]) {
+ epoll_fd_global_list.epoll_fds[i] =
+ epoll_fd_global_list.epoll_fds[--(epoll_fd_global_list.count)];
+ break;
+ }
+ }
+ gpr_mu_unlock(&epoll_fd_list_mu);
+}
+
+static void remove_fd_from_all_epoll_sets(int fd) {
+ int err;
+ gpr_once_init(&init_epoll_fd_list_mu, init_mu);
+ gpr_mu_lock(&epoll_fd_list_mu);
+ if (epoll_fd_global_list.count == 0) {
+ gpr_mu_unlock(&epoll_fd_list_mu);
+ return;
+ }
+ for (size_t i = 0; i < epoll_fd_global_list.count; i++) {
+ err = epoll_ctl(epoll_fd_global_list.epoll_fds[i], EPOLL_CTL_DEL, fd, NULL);
+ if (err < 0 && errno != ENOENT) {
+ gpr_log(GPR_ERROR, "epoll_ctl del for %d failed: %s", fd,
+ strerror(errno));
+ }
+ }
+ gpr_mu_unlock(&epoll_fd_list_mu);
+}
+
+typedef struct {
+ grpc_pollset *pollset;
+ grpc_fd *fd;
+ grpc_closure closure;
+} delayed_add;
+
+typedef struct { int epoll_fd; } epoll_hdr;
+
+static void finally_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ grpc_fd *fd) {
+ epoll_hdr *h = pollset->data.ptr;
+ struct epoll_event ev;
+ int err;
+ grpc_fd_watcher watcher;
+
+ /* We pretend to be polling whilst adding an fd to keep the fd from being
+ closed during the add. This may result in a spurious wakeup being assigned
+ to this pollset whilst adding, but that should be benign. */
+ GPR_ASSERT(fd_begin_poll(fd, pollset, NULL, 0, 0, &watcher) == 0);
+ if (watcher.fd != NULL) {
+ ev.events = (uint32_t)(EPOLLIN | EPOLLOUT | EPOLLET);
+ ev.data.ptr = fd;
+ err = epoll_ctl(h->epoll_fd, EPOLL_CTL_ADD, fd->fd, &ev);
+ if (err < 0) {
+ /* FDs may be added to a pollset multiple times, so EEXIST is normal. */
+ if (errno != EEXIST) {
+ gpr_log(GPR_ERROR, "epoll_ctl add for %d failed: %s", fd->fd,
+ strerror(errno));
+ }
+ }
+ }
+ fd_end_poll(exec_ctx, &watcher, 0, 0);
+}
+
+static void perform_delayed_add(grpc_exec_ctx *exec_ctx, void *arg,
+ bool iomgr_status) {
+ delayed_add *da = arg;
+
+ if (!fd_is_orphaned(da->fd)) {
+ finally_add_fd(exec_ctx, da->pollset, da->fd);
+ }
+
+ gpr_mu_lock(&da->pollset->mu);
+ da->pollset->in_flight_cbs--;
+ if (da->pollset->shutting_down) {
+ /* We don't care about this pollset anymore. */
+ if (da->pollset->in_flight_cbs == 0 && !da->pollset->called_shutdown) {
+ da->pollset->called_shutdown = 1;
+ grpc_exec_ctx_enqueue(exec_ctx, da->pollset->shutdown_done, true, NULL);
+ }
+ }
+ gpr_mu_unlock(&da->pollset->mu);
+
+ GRPC_FD_UNREF(da->fd, "delayed_add");
+
+ gpr_free(da);
+}
+
+static void multipoll_with_epoll_pollset_add_fd(grpc_exec_ctx *exec_ctx,
+ grpc_pollset *pollset,
+ grpc_fd *fd,
+ int and_unlock_pollset) {
+ if (and_unlock_pollset) {
+ gpr_mu_unlock(&pollset->mu);
+ finally_add_fd(exec_ctx, pollset, fd);
+ } else {
+ delayed_add *da = gpr_malloc(sizeof(*da));
+ da->pollset = pollset;
+ da->fd = fd;
+ GRPC_FD_REF(fd, "delayed_add");
+ grpc_closure_init(&da->closure, perform_delayed_add, da);
+ pollset->in_flight_cbs++;
+ grpc_exec_ctx_enqueue(exec_ctx, &da->closure, true, NULL);
+ }
+}
+
+/* TODO(klempner): We probably want to turn this down a bit */
+#define GRPC_EPOLL_MAX_EVENTS 1000
+
+static void multipoll_with_epoll_pollset_maybe_work_and_unlock(
+ grpc_exec_ctx *exec_ctx, grpc_pollset *pollset, grpc_pollset_worker *worker,
+ gpr_timespec deadline, gpr_timespec now) {
+ struct epoll_event ep_ev[GRPC_EPOLL_MAX_EVENTS];
+ int ep_rv;
+ int poll_rv;
+ epoll_hdr *h = pollset->data.ptr;
+ int timeout_ms;
+ struct pollfd pfds[2];
+
+ /* If you want to ignore epoll's ability to sanely handle parallel pollers,
+ * for a more apples-to-apples performance comparison with poll, add a
+ * if (pollset->counter != 0) { return 0; }
+ * here.
+ */
+
+ gpr_mu_unlock(&pollset->mu);
+
+ timeout_ms = poll_deadline_to_millis_timeout(deadline, now);
+
+ pfds[0].fd = GRPC_WAKEUP_FD_GET_READ_FD(&worker->wakeup_fd->fd);
+ pfds[0].events = POLLIN;
+ pfds[0].revents = 0;
+ pfds[1].fd = h->epoll_fd;
+ pfds[1].events = POLLIN;
+ pfds[1].revents = 0;
+
+ /* TODO(vpai): Consider first doing a 0 timeout poll here to avoid
+ even going into the blocking annotation if possible */
+ GPR_TIMER_BEGIN("poll", 0);
+ GRPC_SCHEDULING_START_BLOCKING_REGION;
+ poll_rv = grpc_poll_function(pfds, 2, timeout_ms);
+ GRPC_SCHEDULING_END_BLOCKING_REGION;
+ GPR_TIMER_END("poll", 0);
+
+ if (poll_rv < 0) {
+ if (errno != EINTR) {
+ gpr_log(GPR_ERROR, "poll() failed: %s", strerror(errno));
+ }
+ } else if (poll_rv == 0) {
+ /* do nothing */
+ } else {
+ if (pfds[0].revents) {
+ grpc_wakeup_fd_consume_wakeup(&worker->wakeup_fd->fd);
+ }
+ if (pfds[1].revents) {
+ do {
+ /* The following epoll_wait never blocks; it has a timeout of 0 */
+ ep_rv = epoll_wait(h->epoll_fd, ep_ev, GRPC_EPOLL_MAX_EVENTS, 0);
+ if (ep_rv < 0) {
+ if (errno != EINTR) {
+ gpr_log(GPR_ERROR, "epoll_wait() failed: %s", strerror(errno));
+ }
+ } else {
+ int i;
+ for (i = 0; i < ep_rv; ++i) {
+ grpc_fd *fd = ep_ev[i].data.ptr;
+ /* TODO(klempner): We might want to consider making err and pri
+ * separate events */
+ int cancel = ep_ev[i].events & (EPOLLERR | EPOLLHUP);
+ int read_ev = ep_ev[i].events & (EPOLLIN | EPOLLPRI);
+ int write_ev = ep_ev[i].events & EPOLLOUT;
+ if (fd == NULL) {
+ grpc_wakeup_fd_consume_wakeup(&grpc_global_wakeup_fd);
+ } else {
+ if (read_ev || cancel) {
+ fd_become_readable(exec_ctx, fd);
+ }
+ if (write_ev || cancel) {
+ fd_become_writable(exec_ctx, fd);
+ }
+ }
+ }
+ }
+ } while (ep_rv == GRPC_EPOLL_MAX_EVENTS);
+ }
+ }
+}
+
+static void multipoll_with_epoll_pollset_finish_shutdown(
+ grpc_pollset *pollset) {}
+
+static void multipoll_with_epoll_pollset_destroy(grpc_pollset *pollset) {
+ epoll_hdr *h = pollset->data.ptr;
+ close(h->epoll_fd);
+ remove_epoll_fd_from_global_list(h->epoll_fd);
+ gpr_free(h);
+}
+
+static const grpc_pollset_vtable multipoll_with_epoll_pollset = {
+ multipoll_with_epoll_pollset_add_fd,
+ multipoll_with_epoll_pollset_maybe_work_and_unlock,
+ multipoll_with_epoll_pollset_finish_shutdown,
+ multipoll_with_epoll_pollset_destroy};
+
+static void epoll_become_multipoller(grpc_exec_ctx *exec_ctx,
+ grpc_pollset *pollset, grpc_fd **fds,
+ size_t nfds) {
+ size_t i;
+ epoll_hdr *h = gpr_malloc(sizeof(epoll_hdr));
+ struct epoll_event ev;
+ int err;
+
+ pollset->vtable = &multipoll_with_epoll_pollset;
+ pollset->data.ptr = h;
+ h->epoll_fd = epoll_create1(EPOLL_CLOEXEC);
+ if (h->epoll_fd < 0) {
+ /* TODO(klempner): Fall back to poll here, especially on ENOSYS */
+ gpr_log(GPR_ERROR, "epoll_create1 failed: %s", strerror(errno));
+ abort();
+ }
+ add_epoll_fd_to_global_list(h->epoll_fd);
+
+ ev.events = (uint32_t)(EPOLLIN | EPOLLET);
+ ev.data.ptr = NULL;
+ err = epoll_ctl(h->epoll_fd, EPOLL_CTL_ADD,
+ GRPC_WAKEUP_FD_GET_READ_FD(&grpc_global_wakeup_fd), &ev);
+ if (err < 0) {
+ gpr_log(GPR_ERROR, "epoll_ctl add for %d failed: %s",
+ GRPC_WAKEUP_FD_GET_READ_FD(&grpc_global_wakeup_fd),
+ strerror(errno));
+ }
+
+ for (i = 0; i < nfds; i++) {
+ multipoll_with_epoll_pollset_add_fd(exec_ctx, pollset, fds[i], 0);
+ }
+}
+
+#else /* GPR_LINUX_MULTIPOLL_WITH_EPOLL */
+
+static void remove_fd_from_all_epoll_sets(int fd) {}
+
+#endif /* GPR_LINUX_MULTIPOLL_WITH_EPOLL */
+
+/*******************************************************************************
+ * pollset_set_posix.c
+ */
+
+static grpc_pollset_set *pollset_set_create(void) {
+ grpc_pollset_set *pollset_set = gpr_malloc(sizeof(*pollset_set));
+ memset(pollset_set, 0, sizeof(*pollset_set));
+ gpr_mu_init(&pollset_set->mu);
+ return pollset_set;
+}
+
+static void pollset_set_destroy(grpc_pollset_set *pollset_set) {
+ size_t i;
+ gpr_mu_destroy(&pollset_set->mu);
+ for (i = 0; i < pollset_set->fd_count; i++) {
+ GRPC_FD_UNREF(pollset_set->fds[i], "pollset_set");
+ }
+ gpr_free(pollset_set->pollsets);
+ gpr_free(pollset_set->pollset_sets);
+ gpr_free(pollset_set->fds);
+ gpr_free(pollset_set);
+}
+
+static void pollset_set_add_pollset(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set,
+ grpc_pollset *pollset) {
+ size_t i, j;
+ gpr_mu_lock(&pollset_set->mu);
+ if (pollset_set->pollset_count == pollset_set->pollset_capacity) {
+ pollset_set->pollset_capacity =
+ GPR_MAX(8, 2 * pollset_set->pollset_capacity);
+ pollset_set->pollsets =
+ gpr_realloc(pollset_set->pollsets, pollset_set->pollset_capacity *
+ sizeof(*pollset_set->pollsets));
+ }
+ pollset_set->pollsets[pollset_set->pollset_count++] = pollset;
+ for (i = 0, j = 0; i < pollset_set->fd_count; i++) {
+ if (fd_is_orphaned(pollset_set->fds[i])) {
+ GRPC_FD_UNREF(pollset_set->fds[i], "pollset_set");
+ } else {
+ pollset_add_fd(exec_ctx, pollset, pollset_set->fds[i]);
+ pollset_set->fds[j++] = pollset_set->fds[i];
+ }
+ }
+ pollset_set->fd_count = j;
+ gpr_mu_unlock(&pollset_set->mu);
+}
+
+static void pollset_set_del_pollset(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set,
+ grpc_pollset *pollset) {
+ size_t i;
+ gpr_mu_lock(&pollset_set->mu);
+ for (i = 0; i < pollset_set->pollset_count; i++) {
+ if (pollset_set->pollsets[i] == pollset) {
+ pollset_set->pollset_count--;
+ GPR_SWAP(grpc_pollset *, pollset_set->pollsets[i],
+ pollset_set->pollsets[pollset_set->pollset_count]);
+ break;
+ }
+ }
+ gpr_mu_unlock(&pollset_set->mu);
+}
+
+static void pollset_set_add_pollset_set(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *bag,
+ grpc_pollset_set *item) {
+ size_t i, j;
+ gpr_mu_lock(&bag->mu);
+ if (bag->pollset_set_count == bag->pollset_set_capacity) {
+ bag->pollset_set_capacity = GPR_MAX(8, 2 * bag->pollset_set_capacity);
+ bag->pollset_sets =
+ gpr_realloc(bag->pollset_sets,
+ bag->pollset_set_capacity * sizeof(*bag->pollset_sets));
+ }
+ bag->pollset_sets[bag->pollset_set_count++] = item;
+ for (i = 0, j = 0; i < bag->fd_count; i++) {
+ if (fd_is_orphaned(bag->fds[i])) {
+ GRPC_FD_UNREF(bag->fds[i], "pollset_set");
+ } else {
+ pollset_set_add_fd(exec_ctx, item, bag->fds[i]);
+ bag->fds[j++] = bag->fds[i];
+ }
+ }
+ bag->fd_count = j;
+ gpr_mu_unlock(&bag->mu);
+}
+
+static void pollset_set_del_pollset_set(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *bag,
+ grpc_pollset_set *item) {
+ size_t i;
+ gpr_mu_lock(&bag->mu);
+ for (i = 0; i < bag->pollset_set_count; i++) {
+ if (bag->pollset_sets[i] == item) {
+ bag->pollset_set_count--;
+ GPR_SWAP(grpc_pollset_set *, bag->pollset_sets[i],
+ bag->pollset_sets[bag->pollset_set_count]);
+ break;
+ }
+ }
+ gpr_mu_unlock(&bag->mu);
+}
+
+static void pollset_set_add_fd(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set, grpc_fd *fd) {
+ size_t i;
+ gpr_mu_lock(&pollset_set->mu);
+ if (pollset_set->fd_count == pollset_set->fd_capacity) {
+ pollset_set->fd_capacity = GPR_MAX(8, 2 * pollset_set->fd_capacity);
+ pollset_set->fds = gpr_realloc(
+ pollset_set->fds, pollset_set->fd_capacity * sizeof(*pollset_set->fds));
+ }
+ GRPC_FD_REF(fd, "pollset_set");
+ pollset_set->fds[pollset_set->fd_count++] = fd;
+ for (i = 0; i < pollset_set->pollset_count; i++) {
+ pollset_add_fd(exec_ctx, pollset_set->pollsets[i], fd);
+ }
+ for (i = 0; i < pollset_set->pollset_set_count; i++) {
+ pollset_set_add_fd(exec_ctx, pollset_set->pollset_sets[i], fd);
+ }
+ gpr_mu_unlock(&pollset_set->mu);
+}
+
+static void pollset_set_del_fd(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set, grpc_fd *fd) {
+ size_t i;
+ gpr_mu_lock(&pollset_set->mu);
+ for (i = 0; i < pollset_set->fd_count; i++) {
+ if (pollset_set->fds[i] == fd) {
+ pollset_set->fd_count--;
+ GPR_SWAP(grpc_fd *, pollset_set->fds[i],
+ pollset_set->fds[pollset_set->fd_count]);
+ GRPC_FD_UNREF(fd, "pollset_set");
+ break;
+ }
+ }
+ for (i = 0; i < pollset_set->pollset_set_count; i++) {
+ pollset_set_del_fd(exec_ctx, pollset_set->pollset_sets[i], fd);
+ }
+ gpr_mu_unlock(&pollset_set->mu);
+}
+
+/*******************************************************************************
+ * event engine binding
+ */
+
+static void shutdown_engine(void) {
+ fd_global_shutdown();
+ pollset_global_shutdown();
+}
+
+static const grpc_event_engine_vtable vtable = {
+ .pollset_size = sizeof(grpc_pollset),
+
+ .fd_create = fd_create,
+ .fd_wrapped_fd = fd_wrapped_fd,
+ .fd_orphan = fd_orphan,
+ .fd_shutdown = fd_shutdown,
+ .fd_notify_on_read = fd_notify_on_read,
+ .fd_notify_on_write = fd_notify_on_write,
+
+ .pollset_init = pollset_init,
+ .pollset_shutdown = pollset_shutdown,
+ .pollset_reset = pollset_reset,
+ .pollset_destroy = pollset_destroy,
+ .pollset_work = pollset_work,
+ .pollset_kick = pollset_kick,
+ .pollset_add_fd = pollset_add_fd,
+
+ .pollset_set_create = pollset_set_create,
+ .pollset_set_destroy = pollset_set_destroy,
+ .pollset_set_add_pollset = pollset_set_add_pollset,
+ .pollset_set_del_pollset = pollset_set_del_pollset,
+ .pollset_set_add_pollset_set = pollset_set_add_pollset_set,
+ .pollset_set_del_pollset_set = pollset_set_del_pollset_set,
+ .pollset_set_add_fd = pollset_set_add_fd,
+ .pollset_set_del_fd = pollset_set_del_fd,
+
+ .kick_poller = kick_poller,
+
+ .shutdown_engine = shutdown_engine,
+};
+
+const grpc_event_engine_vtable *grpc_init_poll_and_epoll_posix(void) {
+#ifdef GPR_LINUX_MULTIPOLL_WITH_EPOLL
+ platform_become_multipoller = epoll_become_multipoller;
+#else
+ platform_become_multipoller = poll_become_multipoller;
+#endif
+ fd_global_init();
+ pollset_global_init();
+ return &vtable;
+}
+
+#endif
diff --git a/src/core/lib/census/grpc_plugin.h b/src/core/lib/iomgr/ev_poll_and_epoll_posix.h
index 33e5f0b701..06d6dbf29d 100644
--- a/src/core/lib/census/grpc_plugin.h
+++ b/src/core/lib/iomgr/ev_poll_and_epoll_posix.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,10 +31,11 @@
*
*/
-#ifndef GRPC_CORE_LIB_CENSUS_GRPC_PLUGIN_H
-#define GRPC_CORE_LIB_CENSUS_GRPC_PLUGIN_H
+#ifndef GRPC_CORE_LIB_IOMGR_EV_POLL_AND_EPOLL_POSIX_H
+#define GRPC_CORE_LIB_IOMGR_EV_POLL_AND_EPOLL_POSIX_H
-void census_grpc_plugin_init(void);
-void census_grpc_plugin_destroy(void);
+#include "src/core/lib/iomgr/ev_posix.h"
-#endif /* GRPC_CORE_LIB_CENSUS_GRPC_PLUGIN_H */
+const grpc_event_engine_vtable *grpc_init_poll_and_epoll_posix(void);
+
+#endif /* GRPC_CORE_LIB_IOMGR_EV_POLL_AND_EPOLL_POSIX_H */
diff --git a/src/core/lib/iomgr/ev_posix.c b/src/core/lib/iomgr/ev_posix.c
new file mode 100644
index 0000000000..235a7df08d
--- /dev/null
+++ b/src/core/lib/iomgr/ev_posix.c
@@ -0,0 +1,165 @@
+/*
+ *
+ * Copyright 2015-2016, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include <grpc/support/port_platform.h>
+
+#ifdef GPR_POSIX_SOCKET
+
+#include "src/core/lib/iomgr/ev_posix.h"
+
+#include <grpc/support/log.h>
+
+#include "src/core/lib/iomgr/ev_poll_and_epoll_posix.h"
+
+static const grpc_event_engine_vtable *g_event_engine;
+
+grpc_poll_function_type grpc_poll_function = poll;
+grpc_wakeup_fd grpc_global_wakeup_fd;
+
+void grpc_event_engine_init(void) {
+ if ((g_event_engine = grpc_init_poll_and_epoll_posix())) {
+ return;
+ }
+ gpr_log(GPR_ERROR, "No event engine could be initialized");
+ abort();
+}
+
+void grpc_event_engine_shutdown(void) { g_event_engine->shutdown_engine(); }
+
+grpc_fd *grpc_fd_create(int fd, const char *name) {
+ return g_event_engine->fd_create(fd, name);
+}
+
+int grpc_fd_wrapped_fd(grpc_fd *fd) {
+ return g_event_engine->fd_wrapped_fd(fd);
+}
+
+void grpc_fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd, grpc_closure *on_done,
+ int *release_fd, const char *reason) {
+ g_event_engine->fd_orphan(exec_ctx, fd, on_done, release_fd, reason);
+}
+
+void grpc_fd_shutdown(grpc_exec_ctx *exec_ctx, grpc_fd *fd) {
+ g_event_engine->fd_shutdown(exec_ctx, fd);
+}
+
+void grpc_fd_notify_on_read(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+ grpc_closure *closure) {
+ g_event_engine->fd_notify_on_read(exec_ctx, fd, closure);
+}
+
+void grpc_fd_notify_on_write(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+ grpc_closure *closure) {
+ g_event_engine->fd_notify_on_write(exec_ctx, fd, closure);
+}
+
+size_t grpc_pollset_size(void) { return g_event_engine->pollset_size; }
+
+void grpc_pollset_init(grpc_pollset *pollset, gpr_mu **mu) {
+ g_event_engine->pollset_init(pollset, mu);
+}
+
+void grpc_pollset_shutdown(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ grpc_closure *closure) {
+ g_event_engine->pollset_shutdown(exec_ctx, pollset, closure);
+}
+
+void grpc_pollset_reset(grpc_pollset *pollset) {
+ g_event_engine->pollset_reset(pollset);
+}
+
+void grpc_pollset_destroy(grpc_pollset *pollset) {
+ g_event_engine->pollset_destroy(pollset);
+}
+
+void grpc_pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ grpc_pollset_worker **worker, gpr_timespec now,
+ gpr_timespec deadline) {
+ g_event_engine->pollset_work(exec_ctx, pollset, worker, now, deadline);
+}
+
+void grpc_pollset_kick(grpc_pollset *pollset,
+ grpc_pollset_worker *specific_worker) {
+ g_event_engine->pollset_kick(pollset, specific_worker);
+}
+
+void grpc_pollset_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ struct grpc_fd *fd) {
+ g_event_engine->pollset_add_fd(exec_ctx, pollset, fd);
+}
+
+grpc_pollset_set *grpc_pollset_set_create(void) {
+ return g_event_engine->pollset_set_create();
+}
+
+void grpc_pollset_set_destroy(grpc_pollset_set *pollset_set) {
+ g_event_engine->pollset_set_destroy(pollset_set);
+}
+
+void grpc_pollset_set_add_pollset(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set,
+ grpc_pollset *pollset) {
+ g_event_engine->pollset_set_add_pollset(exec_ctx, pollset_set, pollset);
+}
+
+void grpc_pollset_set_del_pollset(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set,
+ grpc_pollset *pollset) {
+ g_event_engine->pollset_set_del_pollset(exec_ctx, pollset_set, pollset);
+}
+
+void grpc_pollset_set_add_pollset_set(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *bag,
+ grpc_pollset_set *item) {
+ g_event_engine->pollset_set_add_pollset_set(exec_ctx, bag, item);
+}
+
+void grpc_pollset_set_del_pollset_set(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *bag,
+ grpc_pollset_set *item) {
+ g_event_engine->pollset_set_del_pollset_set(exec_ctx, bag, item);
+}
+
+void grpc_pollset_set_add_fd(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set, grpc_fd *fd) {
+ g_event_engine->pollset_set_add_fd(exec_ctx, pollset_set, fd);
+}
+
+void grpc_pollset_set_del_fd(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set, grpc_fd *fd) {
+ g_event_engine->pollset_set_del_fd(exec_ctx, pollset_set, fd);
+}
+
+void grpc_kick_poller(void) { g_event_engine->kick_poller(); }
+
+#endif // GPR_POSIX_SOCKET
diff --git a/src/core/lib/iomgr/ev_posix.h b/src/core/lib/iomgr/ev_posix.h
new file mode 100644
index 0000000000..9d27b2bcda
--- /dev/null
+++ b/src/core/lib/iomgr/ev_posix.h
@@ -0,0 +1,158 @@
+/*
+ *
+ * Copyright 2015-2016, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef GRPC_CORE_LIB_IOMGR_EV_POSIX_H
+#define GRPC_CORE_LIB_IOMGR_EV_POSIX_H
+
+#include <poll.h>
+
+#include "src/core/lib/iomgr/exec_ctx.h"
+#include "src/core/lib/iomgr/pollset.h"
+#include "src/core/lib/iomgr/pollset_set.h"
+#include "src/core/lib/iomgr/wakeup_fd_posix.h"
+
+typedef struct grpc_fd grpc_fd;
+
+typedef struct grpc_event_engine_vtable {
+ size_t pollset_size;
+
+ grpc_fd *(*fd_create)(int fd, const char *name);
+ int (*fd_wrapped_fd)(grpc_fd *fd);
+ void (*fd_orphan)(grpc_exec_ctx *exec_ctx, grpc_fd *fd, grpc_closure *on_done,
+ int *release_fd, const char *reason);
+ void (*fd_shutdown)(grpc_exec_ctx *exec_ctx, grpc_fd *fd);
+ void (*fd_notify_on_read)(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+ grpc_closure *closure);
+ void (*fd_notify_on_write)(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+ grpc_closure *closure);
+
+ void (*pollset_init)(grpc_pollset *pollset, gpr_mu **mu);
+ void (*pollset_shutdown)(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ grpc_closure *closure);
+ void (*pollset_reset)(grpc_pollset *pollset);
+ void (*pollset_destroy)(grpc_pollset *pollset);
+ void (*pollset_work)(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ grpc_pollset_worker **worker, gpr_timespec now,
+ gpr_timespec deadline);
+ void (*pollset_kick)(grpc_pollset *pollset,
+ grpc_pollset_worker *specific_worker);
+ void (*pollset_add_fd)(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ struct grpc_fd *fd);
+
+ grpc_pollset_set *(*pollset_set_create)(void);
+ void (*pollset_set_destroy)(grpc_pollset_set *pollset_set);
+ void (*pollset_set_add_pollset)(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set,
+ grpc_pollset *pollset);
+ void (*pollset_set_del_pollset)(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set,
+ grpc_pollset *pollset);
+ void (*pollset_set_add_pollset_set)(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *bag,
+ grpc_pollset_set *item);
+ void (*pollset_set_del_pollset_set)(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *bag,
+ grpc_pollset_set *item);
+ void (*pollset_set_add_fd)(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set, grpc_fd *fd);
+ void (*pollset_set_del_fd)(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set, grpc_fd *fd);
+
+ void (*kick_poller)(void);
+
+ void (*shutdown_engine)(void);
+} grpc_event_engine_vtable;
+
+void grpc_event_engine_init(void);
+void grpc_event_engine_shutdown(void);
+
+/* Create a wrapped file descriptor.
+ Requires fd is a non-blocking file descriptor.
+ This takes ownership of closing fd. */
+grpc_fd *grpc_fd_create(int fd, const char *name);
+
+/* Return the wrapped fd, or -1 if it has been released or closed. */
+int grpc_fd_wrapped_fd(grpc_fd *fd);
+
+/* Releases fd to be asynchronously destroyed.
+ on_done is called when the underlying file descriptor is definitely close()d.
+ If on_done is NULL, no callback will be made.
+ If release_fd is not NULL, it's set to fd and fd will not be closed.
+ Requires: *fd initialized; no outstanding notify_on_read or
+ notify_on_write.
+ MUST NOT be called with a pollset lock taken */
+void grpc_fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd, grpc_closure *on_done,
+ int *release_fd, const char *reason);
+
+/* Cause any current callbacks to error out with GRPC_CALLBACK_CANCELLED. */
+void grpc_fd_shutdown(grpc_exec_ctx *exec_ctx, grpc_fd *fd);
+
+/* Register read interest, causing read_cb to be called once when fd becomes
+ readable, on deadline specified by deadline, or on shutdown triggered by
+ grpc_fd_shutdown.
+ read_cb will be called with read_cb_arg when *fd becomes readable.
+ read_cb is Called with status of GRPC_CALLBACK_SUCCESS if readable,
+ GRPC_CALLBACK_TIMED_OUT if the call timed out,
+ and CANCELLED if the call was cancelled.
+
+ Requires:This method must not be called before the read_cb for any previous
+ call runs. Edge triggered events are used whenever they are supported by the
+ underlying platform. This means that users must drain fd in read_cb before
+ calling notify_on_read again. Users are also expected to handle spurious
+ events, i.e read_cb is called while nothing can be readable from fd */
+void grpc_fd_notify_on_read(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+ grpc_closure *closure);
+
+/* Exactly the same semantics as above, except based on writable events. */
+void grpc_fd_notify_on_write(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
+ grpc_closure *closure);
+
+/* pollset_posix functions */
+
+/* Add an fd to a pollset */
+void grpc_pollset_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
+ struct grpc_fd *fd);
+
+/* pollset_set_posix functions */
+
+void grpc_pollset_set_add_fd(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set, grpc_fd *fd);
+void grpc_pollset_set_del_fd(grpc_exec_ctx *exec_ctx,
+ grpc_pollset_set *pollset_set, grpc_fd *fd);
+
+/* override to allow tests to hook poll() usage */
+typedef int (*grpc_poll_function_type)(struct pollfd *, nfds_t, int);
+extern grpc_poll_function_type grpc_poll_function;
+extern grpc_wakeup_fd grpc_global_wakeup_fd;
+
+#endif /* GRPC_CORE_LIB_IOMGR_EV_POSIX_H */
diff --git a/src/core/lib/iomgr/exec_ctx.c b/src/core/lib/iomgr/exec_ctx.c
index 1ed6da623a..2146c7dd1f 100644
--- a/src/core/lib/iomgr/exec_ctx.c
+++ b/src/core/lib/iomgr/exec_ctx.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/exec_ctx.h b/src/core/lib/iomgr/exec_ctx.h
index e62ea2dedf..e09ef02400 100644
--- a/src/core/lib/iomgr/exec_ctx.h
+++ b/src/core/lib/iomgr/exec_ctx.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/executor.c b/src/core/lib/iomgr/executor.c
index 42a9db3cbb..36e22e4271 100644
--- a/src/core/lib/iomgr/executor.c
+++ b/src/core/lib/iomgr/executor.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/executor.h b/src/core/lib/iomgr/executor.h
index f1871416a0..b7e6f51aa5 100644
--- a/src/core/lib/iomgr/executor.h
+++ b/src/core/lib/iomgr/executor.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/fd_posix.c b/src/core/lib/iomgr/fd_posix.c
deleted file mode 100644
index 72c924bdcb..0000000000
--- a/src/core/lib/iomgr/fd_posix.c
+++ /dev/null
@@ -1,454 +0,0 @@
-/*
- *
- * Copyright 2015-2016, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#include <grpc/support/port_platform.h>
-
-#ifdef GPR_POSIX_SOCKET
-
-#include "src/core/lib/iomgr/fd_posix.h"
-
-#include <assert.h>
-#include <sys/socket.h>
-#include <unistd.h>
-
-#include <grpc/support/alloc.h>
-#include <grpc/support/log.h>
-#include <grpc/support/string_util.h>
-#include <grpc/support/useful.h>
-
-#include "src/core/lib/iomgr/pollset_posix.h"
-
-#define CLOSURE_NOT_READY ((grpc_closure *)0)
-#define CLOSURE_READY ((grpc_closure *)1)
-
-/* We need to keep a freelist not because of any concerns of malloc performance
- * but instead so that implementations with multiple threads in (for example)
- * epoll_wait deal with the race between pollset removal and incoming poll
- * notifications.
- *
- * The problem is that the poller ultimately holds a reference to this
- * object, so it is very difficult to know when is safe to free it, at least
- * without some expensive synchronization.
- *
- * If we keep the object freelisted, in the worst case losing this race just
- * becomes a spurious read notification on a reused fd.
- */
-/* TODO(klempner): We could use some form of polling generation count to know
- * when these are safe to free. */
-/* TODO(klempner): Consider disabling freelisting if we don't have multiple
- * threads in poll on the same fd */
-/* TODO(klempner): Batch these allocations to reduce fragmentation */
-static grpc_fd *fd_freelist = NULL;
-static gpr_mu fd_freelist_mu;
-
-static void freelist_fd(grpc_fd *fd) {
- gpr_mu_lock(&fd_freelist_mu);
- fd->freelist_next = fd_freelist;
- fd_freelist = fd;
- grpc_iomgr_unregister_object(&fd->iomgr_object);
- gpr_mu_unlock(&fd_freelist_mu);
-}
-
-static grpc_fd *alloc_fd(int fd) {
- grpc_fd *r = NULL;
- gpr_mu_lock(&fd_freelist_mu);
- if (fd_freelist != NULL) {
- r = fd_freelist;
- fd_freelist = fd_freelist->freelist_next;
- }
- gpr_mu_unlock(&fd_freelist_mu);
- if (r == NULL) {
- r = gpr_malloc(sizeof(grpc_fd));
- gpr_mu_init(&r->mu);
- }
-
- gpr_mu_lock(&r->mu);
- r->shutdown = 0;
- r->read_closure = CLOSURE_NOT_READY;
- r->write_closure = CLOSURE_NOT_READY;
- r->fd = fd;
- r->inactive_watcher_root.next = r->inactive_watcher_root.prev =
- &r->inactive_watcher_root;
- r->freelist_next = NULL;
- r->read_watcher = r->write_watcher = NULL;
- r->on_done_closure = NULL;
- r->closed = 0;
- r->released = 0;
- gpr_atm_rel_store(&r->refst, 1);
- gpr_mu_unlock(&r->mu);
-
- return r;
-}
-
-static void destroy(grpc_fd *fd) {
- gpr_mu_destroy(&fd->mu);
- gpr_free(fd);
-}
-
-#ifdef GRPC_FD_REF_COUNT_DEBUG
-#define REF_BY(fd, n, reason) ref_by(fd, n, reason, __FILE__, __LINE__)
-#define UNREF_BY(fd, n, reason) unref_by(fd, n, reason, __FILE__, __LINE__)
-static void ref_by(grpc_fd *fd, int n, const char *reason, const char *file,
- int line) {
- gpr_log(GPR_DEBUG, "FD %d %p ref %d %d -> %d [%s; %s:%d]", fd->fd, fd, n,
- gpr_atm_no_barrier_load(&fd->refst),
- gpr_atm_no_barrier_load(&fd->refst) + n, reason, file, line);
-#else
-#define REF_BY(fd, n, reason) ref_by(fd, n)
-#define UNREF_BY(fd, n, reason) unref_by(fd, n)
-static void ref_by(grpc_fd *fd, int n) {
-#endif
- GPR_ASSERT(gpr_atm_no_barrier_fetch_add(&fd->refst, n) > 0);
-}
-
-#ifdef GRPC_FD_REF_COUNT_DEBUG
-static void unref_by(grpc_fd *fd, int n, const char *reason, const char *file,
- int line) {
- gpr_atm old;
- gpr_log(GPR_DEBUG, "FD %d %p unref %d %d -> %d [%s; %s:%d]", fd->fd, fd, n,
- gpr_atm_no_barrier_load(&fd->refst),
- gpr_atm_no_barrier_load(&fd->refst) - n, reason, file, line);
-#else
-static void unref_by(grpc_fd *fd, int n) {
- gpr_atm old;
-#endif
- old = gpr_atm_full_fetch_add(&fd->refst, -n);
- if (old == n) {
- freelist_fd(fd);
- } else {
- GPR_ASSERT(old > n);
- }
-}
-
-void grpc_fd_global_init(void) { gpr_mu_init(&fd_freelist_mu); }
-
-void grpc_fd_global_shutdown(void) {
- gpr_mu_lock(&fd_freelist_mu);
- gpr_mu_unlock(&fd_freelist_mu);
- while (fd_freelist != NULL) {
- grpc_fd *fd = fd_freelist;
- fd_freelist = fd_freelist->freelist_next;
- destroy(fd);
- }
- gpr_mu_destroy(&fd_freelist_mu);
-}
-
-grpc_fd *grpc_fd_create(int fd, const char *name) {
- grpc_fd *r = alloc_fd(fd);
- char *name2;
- gpr_asprintf(&name2, "%s fd=%d", name, fd);
- grpc_iomgr_register_object(&r->iomgr_object, name2);
- gpr_free(name2);
-#ifdef GRPC_FD_REF_COUNT_DEBUG
- gpr_log(GPR_DEBUG, "FD %d %p create %s", fd, r, name);
-#endif
- return r;
-}
-
-int grpc_fd_is_orphaned(grpc_fd *fd) {
- return (gpr_atm_acq_load(&fd->refst) & 1) == 0;
-}
-
-static void pollset_kick_locked(grpc_fd_watcher *watcher) {
- gpr_mu_lock(&watcher->pollset->mu);
- GPR_ASSERT(watcher->worker);
- grpc_pollset_kick_ext(watcher->pollset, watcher->worker,
- GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP);
- gpr_mu_unlock(&watcher->pollset->mu);
-}
-
-static void maybe_wake_one_watcher_locked(grpc_fd *fd) {
- if (fd->inactive_watcher_root.next != &fd->inactive_watcher_root) {
- pollset_kick_locked(fd->inactive_watcher_root.next);
- } else if (fd->read_watcher) {
- pollset_kick_locked(fd->read_watcher);
- } else if (fd->write_watcher) {
- pollset_kick_locked(fd->write_watcher);
- }
-}
-
-static void wake_all_watchers_locked(grpc_fd *fd) {
- grpc_fd_watcher *watcher;
- for (watcher = fd->inactive_watcher_root.next;
- watcher != &fd->inactive_watcher_root; watcher = watcher->next) {
- pollset_kick_locked(watcher);
- }
- if (fd->read_watcher) {
- pollset_kick_locked(fd->read_watcher);
- }
- if (fd->write_watcher && fd->write_watcher != fd->read_watcher) {
- pollset_kick_locked(fd->write_watcher);
- }
-}
-
-static int has_watchers(grpc_fd *fd) {
- return fd->read_watcher != NULL || fd->write_watcher != NULL ||
- fd->inactive_watcher_root.next != &fd->inactive_watcher_root;
-}
-
-static void close_fd_locked(grpc_exec_ctx *exec_ctx, grpc_fd *fd) {
- fd->closed = 1;
- if (!fd->released) {
- close(fd->fd);
- } else {
- grpc_remove_fd_from_all_epoll_sets(fd->fd);
- }
- grpc_exec_ctx_enqueue(exec_ctx, fd->on_done_closure, true, NULL);
-}
-
-int grpc_fd_wrapped_fd(grpc_fd *fd) {
- if (fd->released || fd->closed) {
- return -1;
- } else {
- return fd->fd;
- }
-}
-
-void grpc_fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd, grpc_closure *on_done,
- int *release_fd, const char *reason) {
- fd->on_done_closure = on_done;
- fd->released = release_fd != NULL;
- if (!fd->released) {
- shutdown(fd->fd, SHUT_RDWR);
- } else {
- *release_fd = fd->fd;
- }
- gpr_mu_lock(&fd->mu);
- REF_BY(fd, 1, reason); /* remove active status, but keep referenced */
- if (!has_watchers(fd)) {
- close_fd_locked(exec_ctx, fd);
- } else {
- wake_all_watchers_locked(fd);
- }
- gpr_mu_unlock(&fd->mu);
- UNREF_BY(fd, 2, reason); /* drop the reference */
-}
-
-/* increment refcount by two to avoid changing the orphan bit */
-#ifdef GRPC_FD_REF_COUNT_DEBUG
-void grpc_fd_ref(grpc_fd *fd, const char *reason, const char *file, int line) {
- ref_by(fd, 2, reason, file, line);
-}
-
-void grpc_fd_unref(grpc_fd *fd, const char *reason, const char *file,
- int line) {
- unref_by(fd, 2, reason, file, line);
-}
-#else
-void grpc_fd_ref(grpc_fd *fd) { ref_by(fd, 2); }
-
-void grpc_fd_unref(grpc_fd *fd) { unref_by(fd, 2); }
-#endif
-
-static void notify_on_locked(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
- grpc_closure **st, grpc_closure *closure) {
- if (*st == CLOSURE_NOT_READY) {
- /* not ready ==> switch to a waiting state by setting the closure */
- *st = closure;
- } else if (*st == CLOSURE_READY) {
- /* already ready ==> queue the closure to run immediately */
- *st = CLOSURE_NOT_READY;
- grpc_exec_ctx_enqueue(exec_ctx, closure, !fd->shutdown, NULL);
- maybe_wake_one_watcher_locked(fd);
- } else {
- /* upcallptr was set to a different closure. This is an error! */
- gpr_log(GPR_ERROR,
- "User called a notify_on function with a previous callback still "
- "pending");
- abort();
- }
-}
-
-/* returns 1 if state becomes not ready */
-static int set_ready_locked(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
- grpc_closure **st) {
- if (*st == CLOSURE_READY) {
- /* duplicate ready ==> ignore */
- return 0;
- } else if (*st == CLOSURE_NOT_READY) {
- /* not ready, and not waiting ==> flag ready */
- *st = CLOSURE_READY;
- return 0;
- } else {
- /* waiting ==> queue closure */
- grpc_exec_ctx_enqueue(exec_ctx, *st, !fd->shutdown, NULL);
- *st = CLOSURE_NOT_READY;
- return 1;
- }
-}
-
-static void set_ready(grpc_exec_ctx *exec_ctx, grpc_fd *fd, grpc_closure **st) {
- /* only one set_ready can be active at once (but there may be a racing
- notify_on) */
- gpr_mu_lock(&fd->mu);
- set_ready_locked(exec_ctx, fd, st);
- gpr_mu_unlock(&fd->mu);
-}
-
-void grpc_fd_shutdown(grpc_exec_ctx *exec_ctx, grpc_fd *fd) {
- gpr_mu_lock(&fd->mu);
- GPR_ASSERT(!fd->shutdown);
- fd->shutdown = 1;
- set_ready_locked(exec_ctx, fd, &fd->read_closure);
- set_ready_locked(exec_ctx, fd, &fd->write_closure);
- gpr_mu_unlock(&fd->mu);
-}
-
-void grpc_fd_notify_on_read(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
- grpc_closure *closure) {
- gpr_mu_lock(&fd->mu);
- notify_on_locked(exec_ctx, fd, &fd->read_closure, closure);
- gpr_mu_unlock(&fd->mu);
-}
-
-void grpc_fd_notify_on_write(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
- grpc_closure *closure) {
- gpr_mu_lock(&fd->mu);
- notify_on_locked(exec_ctx, fd, &fd->write_closure, closure);
- gpr_mu_unlock(&fd->mu);
-}
-
-uint32_t grpc_fd_begin_poll(grpc_fd *fd, grpc_pollset *pollset,
- grpc_pollset_worker *worker, uint32_t read_mask,
- uint32_t write_mask, grpc_fd_watcher *watcher) {
- uint32_t mask = 0;
- grpc_closure *cur;
- int requested;
- /* keep track of pollers that have requested our events, in case they change
- */
- GRPC_FD_REF(fd, "poll");
-
- gpr_mu_lock(&fd->mu);
-
- /* if we are shutdown, then don't add to the watcher set */
- if (fd->shutdown) {
- watcher->fd = NULL;
- watcher->pollset = NULL;
- watcher->worker = NULL;
- gpr_mu_unlock(&fd->mu);
- GRPC_FD_UNREF(fd, "poll");
- return 0;
- }
-
- /* if there is nobody polling for read, but we need to, then start doing so */
- cur = fd->read_closure;
- requested = cur != CLOSURE_READY;
- if (read_mask && fd->read_watcher == NULL && requested) {
- fd->read_watcher = watcher;
- mask |= read_mask;
- }
- /* if there is nobody polling for write, but we need to, then start doing so
- */
- cur = fd->write_closure;
- requested = cur != CLOSURE_READY;
- if (write_mask && fd->write_watcher == NULL && requested) {
- fd->write_watcher = watcher;
- mask |= write_mask;
- }
- /* if not polling, remember this watcher in case we need someone to later */
- if (mask == 0 && worker != NULL) {
- watcher->next = &fd->inactive_watcher_root;
- watcher->prev = watcher->next->prev;
- watcher->next->prev = watcher->prev->next = watcher;
- }
- watcher->pollset = pollset;
- watcher->worker = worker;
- watcher->fd = fd;
- gpr_mu_unlock(&fd->mu);
-
- return mask;
-}
-
-void grpc_fd_end_poll(grpc_exec_ctx *exec_ctx, grpc_fd_watcher *watcher,
- int got_read, int got_write) {
- int was_polling = 0;
- int kick = 0;
- grpc_fd *fd = watcher->fd;
-
- if (fd == NULL) {
- return;
- }
-
- gpr_mu_lock(&fd->mu);
-
- if (watcher == fd->read_watcher) {
- /* remove read watcher, kick if we still need a read */
- was_polling = 1;
- if (!got_read) {
- kick = 1;
- }
- fd->read_watcher = NULL;
- }
- if (watcher == fd->write_watcher) {
- /* remove write watcher, kick if we still need a write */
- was_polling = 1;
- if (!got_write) {
- kick = 1;
- }
- fd->write_watcher = NULL;
- }
- if (!was_polling && watcher->worker != NULL) {
- /* remove from inactive list */
- watcher->next->prev = watcher->prev;
- watcher->prev->next = watcher->next;
- }
- if (got_read) {
- if (set_ready_locked(exec_ctx, fd, &fd->read_closure)) {
- kick = 1;
- }
- }
- if (got_write) {
- if (set_ready_locked(exec_ctx, fd, &fd->write_closure)) {
- kick = 1;
- }
- }
- if (kick) {
- maybe_wake_one_watcher_locked(fd);
- }
- if (grpc_fd_is_orphaned(fd) && !has_watchers(fd) && !fd->closed) {
- close_fd_locked(exec_ctx, fd);
- }
- gpr_mu_unlock(&fd->mu);
-
- GRPC_FD_UNREF(fd, "poll");
-}
-
-void grpc_fd_become_readable(grpc_exec_ctx *exec_ctx, grpc_fd *fd) {
- set_ready(exec_ctx, fd, &fd->read_closure);
-}
-
-void grpc_fd_become_writable(grpc_exec_ctx *exec_ctx, grpc_fd *fd) {
- set_ready(exec_ctx, fd, &fd->write_closure);
-}
-
-#endif
diff --git a/src/core/lib/iomgr/fd_posix.h b/src/core/lib/iomgr/fd_posix.h
deleted file mode 100644
index 69d09ef5e3..0000000000
--- a/src/core/lib/iomgr/fd_posix.h
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
- *
- * Copyright 2015-2016, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#ifndef GRPC_CORE_LIB_IOMGR_FD_POSIX_H
-#define GRPC_CORE_LIB_IOMGR_FD_POSIX_H
-
-#include <grpc/support/atm.h>
-#include <grpc/support/sync.h>
-#include <grpc/support/time.h>
-#include "src/core/lib/iomgr/iomgr_internal.h"
-#include "src/core/lib/iomgr/pollset.h"
-
-typedef struct grpc_fd grpc_fd;
-
-typedef struct grpc_fd_watcher {
- struct grpc_fd_watcher *next;
- struct grpc_fd_watcher *prev;
- grpc_pollset *pollset;
- grpc_pollset_worker *worker;
- grpc_fd *fd;
-} grpc_fd_watcher;
-
-struct grpc_fd {
- int fd;
- /* refst format:
- bit0: 1=active/0=orphaned
- bit1-n: refcount
- meaning that mostly we ref by two to avoid altering the orphaned bit,
- and just unref by 1 when we're ready to flag the object as orphaned */
- gpr_atm refst;
-
- gpr_mu mu;
- int shutdown;
- int closed;
- int released;
-
- /* The watcher list.
-
- The following watcher related fields are protected by watcher_mu.
-
- An fd_watcher is an ephemeral object created when an fd wants to
- begin polling, and destroyed after the poll.
-
- It denotes the fd's interest in whether to read poll or write poll
- or both or neither on this fd.
-
- If a watcher is asked to poll for reads or writes, the read_watcher
- or write_watcher fields are set respectively. A watcher may be asked
- to poll for both, in which case both fields will be set.
-
- read_watcher and write_watcher may be NULL if no watcher has been
- asked to poll for reads or writes.
-
- If an fd_watcher is not asked to poll for reads or writes, it's added
- to a linked list of inactive watchers, rooted at inactive_watcher_root.
- If at a later time there becomes need of a poller to poll, one of
- the inactive pollers may be kicked out of their poll loops to take
- that responsibility. */
- grpc_fd_watcher inactive_watcher_root;
- grpc_fd_watcher *read_watcher;
- grpc_fd_watcher *write_watcher;
-
- grpc_closure *read_closure;
- grpc_closure *write_closure;
-
- struct grpc_fd *freelist_next;
-
- grpc_closure *on_done_closure;
-
- grpc_iomgr_object iomgr_object;
-};
-
-/* Create a wrapped file descriptor.
- Requires fd is a non-blocking file descriptor.
- This takes ownership of closing fd. */
-grpc_fd *grpc_fd_create(int fd, const char *name);
-
-/* Return the wrapped fd, or -1 if it has been released or closed. */
-int grpc_fd_wrapped_fd(grpc_fd *fd);
-
-/* Releases fd to be asynchronously destroyed.
- on_done is called when the underlying file descriptor is definitely close()d.
- If on_done is NULL, no callback will be made.
- If release_fd is not NULL, it's set to fd and fd will not be closed.
- Requires: *fd initialized; no outstanding notify_on_read or
- notify_on_write.
- MUST NOT be called with a pollset lock taken */
-void grpc_fd_orphan(grpc_exec_ctx *exec_ctx, grpc_fd *fd, grpc_closure *on_done,
- int *release_fd, const char *reason);
-
-/* Begin polling on an fd.
- Registers that the given pollset is interested in this fd - so that if read
- or writability interest changes, the pollset can be kicked to pick up that
- new interest.
- Return value is:
- (fd_needs_read? read_mask : 0) | (fd_needs_write? write_mask : 0)
- i.e. a combination of read_mask and write_mask determined by the fd's current
- interest in said events.
- Polling strategies that do not need to alter their behavior depending on the
- fd's current interest (such as epoll) do not need to call this function.
- MUST NOT be called with a pollset lock taken */
-uint32_t grpc_fd_begin_poll(grpc_fd *fd, grpc_pollset *pollset,
- grpc_pollset_worker *worker, uint32_t read_mask,
- uint32_t write_mask, grpc_fd_watcher *rec);
-/* Complete polling previously started with grpc_fd_begin_poll
- MUST NOT be called with a pollset lock taken
- if got_read or got_write are 1, also does the become_{readable,writable} as
- appropriate. */
-void grpc_fd_end_poll(grpc_exec_ctx *exec_ctx, grpc_fd_watcher *rec,
- int got_read, int got_write);
-
-/* Return 1 if this fd is orphaned, 0 otherwise */
-int grpc_fd_is_orphaned(grpc_fd *fd);
-
-/* Cause any current callbacks to error out with GRPC_CALLBACK_CANCELLED. */
-void grpc_fd_shutdown(grpc_exec_ctx *exec_ctx, grpc_fd *fd);
-
-/* Register read interest, causing read_cb to be called once when fd becomes
- readable, on deadline specified by deadline, or on shutdown triggered by
- grpc_fd_shutdown.
- read_cb will be called with read_cb_arg when *fd becomes readable.
- read_cb is Called with status of GRPC_CALLBACK_SUCCESS if readable,
- GRPC_CALLBACK_TIMED_OUT if the call timed out,
- and CANCELLED if the call was cancelled.
-
- Requires:This method must not be called before the read_cb for any previous
- call runs. Edge triggered events are used whenever they are supported by the
- underlying platform. This means that users must drain fd in read_cb before
- calling notify_on_read again. Users are also expected to handle spurious
- events, i.e read_cb is called while nothing can be readable from fd */
-void grpc_fd_notify_on_read(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
- grpc_closure *closure);
-
-/* Exactly the same semantics as above, except based on writable events. */
-void grpc_fd_notify_on_write(grpc_exec_ctx *exec_ctx, grpc_fd *fd,
- grpc_closure *closure);
-
-/* Notification from the poller to an fd that it has become readable or
- writable.
- If allow_synchronous_callback is 1, allow running the fd callback inline
- in this callstack, otherwise register an asynchronous callback and return */
-void grpc_fd_become_readable(grpc_exec_ctx *exec_ctx, grpc_fd *fd);
-void grpc_fd_become_writable(grpc_exec_ctx *exec_ctx, grpc_fd *fd);
-
-/* Reference counting for fds */
-/*#define GRPC_FD_REF_COUNT_DEBUG*/
-#ifdef GRPC_FD_REF_COUNT_DEBUG
-void grpc_fd_ref(grpc_fd *fd, const char *reason, const char *file, int line);
-void grpc_fd_unref(grpc_fd *fd, const char *reason, const char *file, int line);
-#define GRPC_FD_REF(fd, reason) grpc_fd_ref(fd, reason, __FILE__, __LINE__)
-#define GRPC_FD_UNREF(fd, reason) grpc_fd_unref(fd, reason, __FILE__, __LINE__)
-#else
-void grpc_fd_ref(grpc_fd *fd);
-void grpc_fd_unref(grpc_fd *fd);
-#define GRPC_FD_REF(fd, reason) grpc_fd_ref(fd)
-#define GRPC_FD_UNREF(fd, reason) grpc_fd_unref(fd)
-#endif
-
-void grpc_fd_global_init(void);
-void grpc_fd_global_shutdown(void);
-
-#endif /* GRPC_CORE_LIB_IOMGR_FD_POSIX_H */
diff --git a/src/core/lib/iomgr/iocp_windows.c b/src/core/lib/iomgr/iocp_windows.c
index 682a32c0da..d46558ab1b 100644
--- a/src/core/lib/iomgr/iocp_windows.c
+++ b/src/core/lib/iomgr/iocp_windows.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/iocp_windows.h b/src/core/lib/iomgr/iocp_windows.h
index 856c837fb4..ae210fa7d7 100644
--- a/src/core/lib/iomgr/iocp_windows.h
+++ b/src/core/lib/iomgr/iocp_windows.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/iomgr.c b/src/core/lib/iomgr/iomgr.c
index bb544c8280..146663984d 100644
--- a/src/core/lib/iomgr/iomgr.c
+++ b/src/core/lib/iomgr/iomgr.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -63,7 +63,6 @@ void grpc_iomgr_init(void) {
g_root_object.next = g_root_object.prev = &g_root_object;
g_root_object.name = "root";
grpc_iomgr_platform_init();
- grpc_pollset_global_init();
}
static size_t count_objects(void) {
@@ -138,7 +137,6 @@ void grpc_iomgr_shutdown(void) {
gpr_mu_lock(&g_mu);
gpr_mu_unlock(&g_mu);
- grpc_pollset_global_shutdown();
grpc_iomgr_platform_shutdown();
grpc_exec_ctx_global_shutdown();
gpr_mu_destroy(&g_mu);
diff --git a/src/core/lib/iomgr/iomgr.h b/src/core/lib/iomgr/iomgr.h
index babf0a85b7..6c82de78ac 100644
--- a/src/core/lib/iomgr/iomgr.h
+++ b/src/core/lib/iomgr/iomgr.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/iomgr_internal.h b/src/core/lib/iomgr/iomgr_internal.h
index 0963630c61..805be1f1e4 100644
--- a/src/core/lib/iomgr/iomgr_internal.h
+++ b/src/core/lib/iomgr/iomgr_internal.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -36,7 +36,6 @@
#include <stdbool.h>
-#include <grpc/support/sync.h>
#include "src/core/lib/iomgr/iomgr.h"
typedef struct grpc_iomgr_object {
@@ -45,9 +44,6 @@ typedef struct grpc_iomgr_object {
struct grpc_iomgr_object *prev;
} grpc_iomgr_object;
-void grpc_pollset_global_init(void);
-void grpc_pollset_global_shutdown(void);
-
void grpc_iomgr_register_object(grpc_iomgr_object *obj, const char *name);
void grpc_iomgr_unregister_object(grpc_iomgr_object *obj);
diff --git a/src/core/lib/iomgr/iomgr_posix.c b/src/core/lib/iomgr/iomgr_posix.c
index e4990f7bce..016c501f75 100644
--- a/src/core/lib/iomgr/iomgr_posix.c
+++ b/src/core/lib/iomgr/iomgr_posix.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -36,17 +36,17 @@
#ifdef GPR_POSIX_SOCKET
#include "src/core/lib/debug/trace.h"
-#include "src/core/lib/iomgr/fd_posix.h"
+#include "src/core/lib/iomgr/ev_posix.h"
#include "src/core/lib/iomgr/iomgr_posix.h"
#include "src/core/lib/iomgr/tcp_posix.h"
void grpc_iomgr_platform_init(void) {
- grpc_fd_global_init();
+ grpc_event_engine_init();
grpc_register_tracer("tcp", &grpc_tcp_trace);
}
void grpc_iomgr_platform_flush(void) {}
-void grpc_iomgr_platform_shutdown(void) { grpc_fd_global_shutdown(); }
+void grpc_iomgr_platform_shutdown(void) { grpc_event_engine_shutdown(); }
#endif /* GRPC_POSIX_SOCKET */
diff --git a/src/core/lib/iomgr/iomgr_posix.h b/src/core/lib/iomgr/iomgr_posix.h
index 6a8996e403..d5eade962a 100644
--- a/src/core/lib/iomgr/iomgr_posix.h
+++ b/src/core/lib/iomgr/iomgr_posix.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/iomgr_windows.c b/src/core/lib/iomgr/iomgr_windows.c
index af7e616394..398517fc75 100644
--- a/src/core/lib/iomgr/iomgr_windows.c
+++ b/src/core/lib/iomgr/iomgr_windows.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -41,6 +41,7 @@
#include "src/core/lib/iomgr/iocp_windows.h"
#include "src/core/lib/iomgr/iomgr.h"
+#include "src/core/lib/iomgr/pollset_windows.h"
#include "src/core/lib/iomgr/socket_windows.h"
/* Windows' io manager is going to be fully designed using IO completion
@@ -61,11 +62,13 @@ static void winsock_shutdown(void) {
void grpc_iomgr_platform_init(void) {
winsock_init();
grpc_iocp_init();
+ grpc_pollset_global_init();
}
void grpc_iomgr_platform_flush(void) { grpc_iocp_flush(); }
void grpc_iomgr_platform_shutdown(void) {
+ grpc_pollset_global_shutdown();
grpc_iocp_shutdown();
winsock_shutdown();
}
diff --git a/src/core/lib/iomgr/pollset.h b/src/core/lib/iomgr/pollset.h
index 6156124862..c40a474877 100644
--- a/src/core/lib/iomgr/pollset.h
+++ b/src/core/lib/iomgr/pollset.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/pollset_multipoller_with_epoll.c b/src/core/lib/iomgr/pollset_multipoller_with_epoll.c
deleted file mode 100644
index fa1b0d2d84..0000000000
--- a/src/core/lib/iomgr/pollset_multipoller_with_epoll.c
+++ /dev/null
@@ -1,324 +0,0 @@
-/*
- *
- * Copyright 2015-2016, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#include <grpc/support/port_platform.h>
-
-#ifdef GPR_LINUX_MULTIPOLL_WITH_EPOLL
-
-#include <errno.h>
-#include <poll.h>
-#include <string.h>
-#include <sys/epoll.h>
-#include <unistd.h>
-
-#include <grpc/support/alloc.h>
-#include <grpc/support/log.h>
-#include <grpc/support/useful.h>
-#include "src/core/lib/iomgr/fd_posix.h"
-#include "src/core/lib/iomgr/pollset_posix.h"
-#include "src/core/lib/profiling/timers.h"
-#include "src/core/lib/support/block_annotate.h"
-
-struct epoll_fd_list {
- int *epoll_fds;
- size_t count;
- size_t capacity;
-};
-
-static struct epoll_fd_list epoll_fd_global_list;
-static gpr_once init_epoll_fd_list_mu = GPR_ONCE_INIT;
-static gpr_mu epoll_fd_list_mu;
-
-static void init_mu(void) { gpr_mu_init(&epoll_fd_list_mu); }
-
-static void add_epoll_fd_to_global_list(int epoll_fd) {
- gpr_once_init(&init_epoll_fd_list_mu, init_mu);
-
- gpr_mu_lock(&epoll_fd_list_mu);
- if (epoll_fd_global_list.count == epoll_fd_global_list.capacity) {
- epoll_fd_global_list.capacity =
- GPR_MAX((size_t)8, epoll_fd_global_list.capacity * 2);
- epoll_fd_global_list.epoll_fds =
- gpr_realloc(epoll_fd_global_list.epoll_fds,
- epoll_fd_global_list.capacity * sizeof(int));
- }
- epoll_fd_global_list.epoll_fds[epoll_fd_global_list.count++] = epoll_fd;
- gpr_mu_unlock(&epoll_fd_list_mu);
-}
-
-static void remove_epoll_fd_from_global_list(int epoll_fd) {
- gpr_mu_lock(&epoll_fd_list_mu);
- GPR_ASSERT(epoll_fd_global_list.count > 0);
- for (size_t i = 0; i < epoll_fd_global_list.count; i++) {
- if (epoll_fd == epoll_fd_global_list.epoll_fds[i]) {
- epoll_fd_global_list.epoll_fds[i] =
- epoll_fd_global_list.epoll_fds[--(epoll_fd_global_list.count)];
- break;
- }
- }
- gpr_mu_unlock(&epoll_fd_list_mu);
-}
-
-void grpc_remove_fd_from_all_epoll_sets(int fd) {
- int err;
- gpr_once_init(&init_epoll_fd_list_mu, init_mu);
- gpr_mu_lock(&epoll_fd_list_mu);
- if (epoll_fd_global_list.count == 0) {
- gpr_mu_unlock(&epoll_fd_list_mu);
- return;
- }
- for (size_t i = 0; i < epoll_fd_global_list.count; i++) {
- err = epoll_ctl(epoll_fd_global_list.epoll_fds[i], EPOLL_CTL_DEL, fd, NULL);
- if (err < 0 && errno != ENOENT) {
- gpr_log(GPR_ERROR, "epoll_ctl del for %d failed: %s", fd,
- strerror(errno));
- }
- }
- gpr_mu_unlock(&epoll_fd_list_mu);
-}
-
-typedef struct {
- grpc_pollset *pollset;
- grpc_fd *fd;
- grpc_closure closure;
-} delayed_add;
-
-typedef struct { int epoll_fd; } pollset_hdr;
-
-static void finally_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
- grpc_fd *fd) {
- pollset_hdr *h = pollset->data.ptr;
- struct epoll_event ev;
- int err;
- grpc_fd_watcher watcher;
-
- /* We pretend to be polling whilst adding an fd to keep the fd from being
- closed during the add. This may result in a spurious wakeup being assigned
- to this pollset whilst adding, but that should be benign. */
- GPR_ASSERT(grpc_fd_begin_poll(fd, pollset, NULL, 0, 0, &watcher) == 0);
- if (watcher.fd != NULL) {
- ev.events = (uint32_t)(EPOLLIN | EPOLLOUT | EPOLLET);
- ev.data.ptr = fd;
- err = epoll_ctl(h->epoll_fd, EPOLL_CTL_ADD, fd->fd, &ev);
- if (err < 0) {
- /* FDs may be added to a pollset multiple times, so EEXIST is normal. */
- if (errno != EEXIST) {
- gpr_log(GPR_ERROR, "epoll_ctl add for %d failed: %s", fd->fd,
- strerror(errno));
- }
- }
- }
- grpc_fd_end_poll(exec_ctx, &watcher, 0, 0);
-}
-
-static void perform_delayed_add(grpc_exec_ctx *exec_ctx, void *arg,
- bool iomgr_status) {
- delayed_add *da = arg;
-
- if (!grpc_fd_is_orphaned(da->fd)) {
- finally_add_fd(exec_ctx, da->pollset, da->fd);
- }
-
- gpr_mu_lock(&da->pollset->mu);
- da->pollset->in_flight_cbs--;
- if (da->pollset->shutting_down) {
- /* We don't care about this pollset anymore. */
- if (da->pollset->in_flight_cbs == 0 && !da->pollset->called_shutdown) {
- da->pollset->called_shutdown = 1;
- grpc_exec_ctx_enqueue(exec_ctx, da->pollset->shutdown_done, true, NULL);
- }
- }
- gpr_mu_unlock(&da->pollset->mu);
-
- GRPC_FD_UNREF(da->fd, "delayed_add");
-
- gpr_free(da);
-}
-
-static void multipoll_with_epoll_pollset_add_fd(grpc_exec_ctx *exec_ctx,
- grpc_pollset *pollset,
- grpc_fd *fd,
- int and_unlock_pollset) {
- if (and_unlock_pollset) {
- gpr_mu_unlock(&pollset->mu);
- finally_add_fd(exec_ctx, pollset, fd);
- } else {
- delayed_add *da = gpr_malloc(sizeof(*da));
- da->pollset = pollset;
- da->fd = fd;
- GRPC_FD_REF(fd, "delayed_add");
- grpc_closure_init(&da->closure, perform_delayed_add, da);
- pollset->in_flight_cbs++;
- grpc_exec_ctx_enqueue(exec_ctx, &da->closure, true, NULL);
- }
-}
-
-/* TODO(klempner): We probably want to turn this down a bit */
-#define GRPC_EPOLL_MAX_EVENTS 1000
-
-static void multipoll_with_epoll_pollset_maybe_work_and_unlock(
- grpc_exec_ctx *exec_ctx, grpc_pollset *pollset, grpc_pollset_worker *worker,
- gpr_timespec deadline, gpr_timespec now) {
- struct epoll_event ep_ev[GRPC_EPOLL_MAX_EVENTS];
- int ep_rv;
- int poll_rv;
- pollset_hdr *h = pollset->data.ptr;
- int timeout_ms;
- struct pollfd pfds[2];
-
- /* If you want to ignore epoll's ability to sanely handle parallel pollers,
- * for a more apples-to-apples performance comparison with poll, add a
- * if (pollset->counter != 0) { return 0; }
- * here.
- */
-
- gpr_mu_unlock(&pollset->mu);
-
- timeout_ms = grpc_poll_deadline_to_millis_timeout(deadline, now);
-
- pfds[0].fd = GRPC_WAKEUP_FD_GET_READ_FD(&worker->wakeup_fd->fd);
- pfds[0].events = POLLIN;
- pfds[0].revents = 0;
- pfds[1].fd = h->epoll_fd;
- pfds[1].events = POLLIN;
- pfds[1].revents = 0;
-
- /* TODO(vpai): Consider first doing a 0 timeout poll here to avoid
- even going into the blocking annotation if possible */
- GPR_TIMER_BEGIN("poll", 0);
- GRPC_SCHEDULING_START_BLOCKING_REGION;
- poll_rv = grpc_poll_function(pfds, 2, timeout_ms);
- GRPC_SCHEDULING_END_BLOCKING_REGION;
- GPR_TIMER_END("poll", 0);
-
- if (poll_rv < 0) {
- if (errno != EINTR) {
- gpr_log(GPR_ERROR, "poll() failed: %s", strerror(errno));
- }
- } else if (poll_rv == 0) {
- /* do nothing */
- } else {
- if (pfds[0].revents) {
- grpc_wakeup_fd_consume_wakeup(&worker->wakeup_fd->fd);
- }
- if (pfds[1].revents) {
- do {
- /* The following epoll_wait never blocks; it has a timeout of 0 */
- ep_rv = epoll_wait(h->epoll_fd, ep_ev, GRPC_EPOLL_MAX_EVENTS, 0);
- if (ep_rv < 0) {
- if (errno != EINTR) {
- gpr_log(GPR_ERROR, "epoll_wait() failed: %s", strerror(errno));
- }
- } else {
- int i;
- for (i = 0; i < ep_rv; ++i) {
- grpc_fd *fd = ep_ev[i].data.ptr;
- /* TODO(klempner): We might want to consider making err and pri
- * separate events */
- int cancel = ep_ev[i].events & (EPOLLERR | EPOLLHUP);
- int read_ev = ep_ev[i].events & (EPOLLIN | EPOLLPRI);
- int write_ev = ep_ev[i].events & EPOLLOUT;
- if (fd == NULL) {
- grpc_wakeup_fd_consume_wakeup(&grpc_global_wakeup_fd);
- } else {
- if (read_ev || cancel) {
- grpc_fd_become_readable(exec_ctx, fd);
- }
- if (write_ev || cancel) {
- grpc_fd_become_writable(exec_ctx, fd);
- }
- }
- }
- }
- } while (ep_rv == GRPC_EPOLL_MAX_EVENTS);
- }
- }
-}
-
-static void multipoll_with_epoll_pollset_finish_shutdown(
- grpc_pollset *pollset) {}
-
-static void multipoll_with_epoll_pollset_destroy(grpc_pollset *pollset) {
- pollset_hdr *h = pollset->data.ptr;
- close(h->epoll_fd);
- remove_epoll_fd_from_global_list(h->epoll_fd);
- gpr_free(h);
-}
-
-static const grpc_pollset_vtable multipoll_with_epoll_pollset = {
- multipoll_with_epoll_pollset_add_fd,
- multipoll_with_epoll_pollset_maybe_work_and_unlock,
- multipoll_with_epoll_pollset_finish_shutdown,
- multipoll_with_epoll_pollset_destroy};
-
-static void epoll_become_multipoller(grpc_exec_ctx *exec_ctx,
- grpc_pollset *pollset, grpc_fd **fds,
- size_t nfds) {
- size_t i;
- pollset_hdr *h = gpr_malloc(sizeof(pollset_hdr));
- struct epoll_event ev;
- int err;
-
- pollset->vtable = &multipoll_with_epoll_pollset;
- pollset->data.ptr = h;
- h->epoll_fd = epoll_create1(EPOLL_CLOEXEC);
- if (h->epoll_fd < 0) {
- /* TODO(klempner): Fall back to poll here, especially on ENOSYS */
- gpr_log(GPR_ERROR, "epoll_create1 failed: %s", strerror(errno));
- abort();
- }
- add_epoll_fd_to_global_list(h->epoll_fd);
-
- ev.events = (uint32_t)(EPOLLIN | EPOLLET);
- ev.data.ptr = NULL;
- err = epoll_ctl(h->epoll_fd, EPOLL_CTL_ADD,
- GRPC_WAKEUP_FD_GET_READ_FD(&grpc_global_wakeup_fd), &ev);
- if (err < 0) {
- gpr_log(GPR_ERROR, "epoll_ctl add for %d failed: %s",
- GRPC_WAKEUP_FD_GET_READ_FD(&grpc_global_wakeup_fd),
- strerror(errno));
- }
-
- for (i = 0; i < nfds; i++) {
- multipoll_with_epoll_pollset_add_fd(exec_ctx, pollset, fds[i], 0);
- }
-}
-
-grpc_platform_become_multipoller_type grpc_platform_become_multipoller =
- epoll_become_multipoller;
-
-#else /* GPR_LINUX_MULTIPOLL_WITH_EPOLL */
-
-void grpc_remove_fd_from_all_epoll_sets(int fd) {}
-
-#endif /* GPR_LINUX_MULTIPOLL_WITH_EPOLL */
diff --git a/src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c b/src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c
deleted file mode 100644
index 9b33f6dbb2..0000000000
--- a/src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- *
- * Copyright 2015-2016, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#include <grpc/support/port_platform.h>
-
-#ifdef GPR_POSIX_SOCKET
-
-#include "src/core/lib/iomgr/pollset_posix.h"
-
-#include <errno.h>
-#include <poll.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <grpc/support/alloc.h>
-#include <grpc/support/log.h>
-#include <grpc/support/useful.h>
-
-#include "src/core/lib/iomgr/fd_posix.h"
-#include "src/core/lib/iomgr/iomgr_internal.h"
-#include "src/core/lib/iomgr/pollset_posix.h"
-#include "src/core/lib/support/block_annotate.h"
-
-typedef struct {
- /* all polled fds */
- size_t fd_count;
- size_t fd_capacity;
- grpc_fd **fds;
- /* fds that have been removed from the pollset explicitly */
- size_t del_count;
- size_t del_capacity;
- grpc_fd **dels;
-} pollset_hdr;
-
-static void multipoll_with_poll_pollset_add_fd(grpc_exec_ctx *exec_ctx,
- grpc_pollset *pollset,
- grpc_fd *fd,
- int and_unlock_pollset) {
- size_t i;
- pollset_hdr *h = pollset->data.ptr;
- /* TODO(ctiller): this is O(num_fds^2); maybe switch to a hash set here */
- for (i = 0; i < h->fd_count; i++) {
- if (h->fds[i] == fd) goto exit;
- }
- if (h->fd_count == h->fd_capacity) {
- h->fd_capacity = GPR_MAX(h->fd_capacity + 8, h->fd_count * 3 / 2);
- h->fds = gpr_realloc(h->fds, sizeof(grpc_fd *) * h->fd_capacity);
- }
- h->fds[h->fd_count++] = fd;
- GRPC_FD_REF(fd, "multipoller");
-exit:
- if (and_unlock_pollset) {
- gpr_mu_unlock(&pollset->mu);
- }
-}
-
-static void multipoll_with_poll_pollset_maybe_work_and_unlock(
- grpc_exec_ctx *exec_ctx, grpc_pollset *pollset, grpc_pollset_worker *worker,
- gpr_timespec deadline, gpr_timespec now) {
-#define POLLOUT_CHECK (POLLOUT | POLLHUP | POLLERR)
-#define POLLIN_CHECK (POLLIN | POLLHUP | POLLERR)
-
- int timeout;
- int r;
- size_t i, j, fd_count;
- nfds_t pfd_count;
- pollset_hdr *h;
- /* TODO(ctiller): inline some elements to avoid an allocation */
- grpc_fd_watcher *watchers;
- struct pollfd *pfds;
-
- h = pollset->data.ptr;
- timeout = grpc_poll_deadline_to_millis_timeout(deadline, now);
- /* TODO(ctiller): perform just one malloc here if we exceed the inline case */
- pfds = gpr_malloc(sizeof(*pfds) * (h->fd_count + 2));
- watchers = gpr_malloc(sizeof(*watchers) * (h->fd_count + 2));
- fd_count = 0;
- pfd_count = 2;
- pfds[0].fd = GRPC_WAKEUP_FD_GET_READ_FD(&grpc_global_wakeup_fd);
- pfds[0].events = POLLIN;
- pfds[0].revents = 0;
- pfds[1].fd = GRPC_WAKEUP_FD_GET_READ_FD(&worker->wakeup_fd->fd);
- pfds[1].events = POLLIN;
- pfds[1].revents = 0;
- for (i = 0; i < h->fd_count; i++) {
- int remove = grpc_fd_is_orphaned(h->fds[i]);
- for (j = 0; !remove && j < h->del_count; j++) {
- if (h->fds[i] == h->dels[j]) remove = 1;
- }
- if (remove) {
- GRPC_FD_UNREF(h->fds[i], "multipoller");
- } else {
- h->fds[fd_count++] = h->fds[i];
- watchers[pfd_count].fd = h->fds[i];
- GRPC_FD_REF(watchers[pfd_count].fd, "multipoller_start");
- pfds[pfd_count].fd = h->fds[i]->fd;
- pfds[pfd_count].revents = 0;
- pfd_count++;
- }
- }
- for (j = 0; j < h->del_count; j++) {
- GRPC_FD_UNREF(h->dels[j], "multipoller_del");
- }
- h->del_count = 0;
- h->fd_count = fd_count;
- gpr_mu_unlock(&pollset->mu);
-
- for (i = 2; i < pfd_count; i++) {
- grpc_fd *fd = watchers[i].fd;
- pfds[i].events = (short)grpc_fd_begin_poll(fd, pollset, worker, POLLIN,
- POLLOUT, &watchers[i]);
- GRPC_FD_UNREF(fd, "multipoller_start");
- }
-
- /* TODO(vpai): Consider first doing a 0 timeout poll here to avoid
- even going into the blocking annotation if possible */
- GRPC_SCHEDULING_START_BLOCKING_REGION;
- r = grpc_poll_function(pfds, pfd_count, timeout);
- GRPC_SCHEDULING_END_BLOCKING_REGION;
-
- if (r < 0) {
- if (errno != EINTR) {
- gpr_log(GPR_ERROR, "poll() failed: %s", strerror(errno));
- }
- for (i = 2; i < pfd_count; i++) {
- grpc_fd_end_poll(exec_ctx, &watchers[i], 0, 0);
- }
- } else if (r == 0) {
- for (i = 2; i < pfd_count; i++) {
- grpc_fd_end_poll(exec_ctx, &watchers[i], 0, 0);
- }
- } else {
- if (pfds[0].revents & POLLIN_CHECK) {
- grpc_wakeup_fd_consume_wakeup(&grpc_global_wakeup_fd);
- }
- if (pfds[1].revents & POLLIN_CHECK) {
- grpc_wakeup_fd_consume_wakeup(&worker->wakeup_fd->fd);
- }
- for (i = 2; i < pfd_count; i++) {
- if (watchers[i].fd == NULL) {
- grpc_fd_end_poll(exec_ctx, &watchers[i], 0, 0);
- continue;
- }
- grpc_fd_end_poll(exec_ctx, &watchers[i], pfds[i].revents & POLLIN_CHECK,
- pfds[i].revents & POLLOUT_CHECK);
- }
- }
-
- gpr_free(pfds);
- gpr_free(watchers);
-}
-
-static void multipoll_with_poll_pollset_finish_shutdown(grpc_pollset *pollset) {
- size_t i;
- pollset_hdr *h = pollset->data.ptr;
- for (i = 0; i < h->fd_count; i++) {
- GRPC_FD_UNREF(h->fds[i], "multipoller");
- }
- for (i = 0; i < h->del_count; i++) {
- GRPC_FD_UNREF(h->dels[i], "multipoller_del");
- }
- h->fd_count = 0;
- h->del_count = 0;
-}
-
-static void multipoll_with_poll_pollset_destroy(grpc_pollset *pollset) {
- pollset_hdr *h = pollset->data.ptr;
- multipoll_with_poll_pollset_finish_shutdown(pollset);
- gpr_free(h->fds);
- gpr_free(h->dels);
- gpr_free(h);
-}
-
-static const grpc_pollset_vtable multipoll_with_poll_pollset = {
- multipoll_with_poll_pollset_add_fd,
- multipoll_with_poll_pollset_maybe_work_and_unlock,
- multipoll_with_poll_pollset_finish_shutdown,
- multipoll_with_poll_pollset_destroy};
-
-void grpc_poll_become_multipoller(grpc_exec_ctx *exec_ctx,
- grpc_pollset *pollset, grpc_fd **fds,
- size_t nfds) {
- size_t i;
- pollset_hdr *h = gpr_malloc(sizeof(pollset_hdr));
- pollset->vtable = &multipoll_with_poll_pollset;
- pollset->data.ptr = h;
- h->fd_count = nfds;
- h->fd_capacity = nfds;
- h->fds = gpr_malloc(nfds * sizeof(grpc_fd *));
- h->del_count = 0;
- h->del_capacity = 0;
- h->dels = NULL;
- for (i = 0; i < nfds; i++) {
- h->fds[i] = fds[i];
- GRPC_FD_REF(fds[i], "multipoller");
- }
-}
-
-#endif /* GPR_POSIX_SOCKET */
-
-#ifdef GPR_POSIX_MULTIPOLL_WITH_POLL
-grpc_platform_become_multipoller_type grpc_platform_become_multipoller =
- grpc_poll_become_multipoller;
-#endif
diff --git a/src/core/lib/iomgr/pollset_posix.c b/src/core/lib/iomgr/pollset_posix.c
deleted file mode 100644
index 259c7bc194..0000000000
--- a/src/core/lib/iomgr/pollset_posix.c
+++ /dev/null
@@ -1,633 +0,0 @@
-/*
- *
- * Copyright 2015-2016, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#include <grpc/support/port_platform.h>
-
-#ifdef GPR_POSIX_SOCKET
-
-#include "src/core/lib/iomgr/pollset_posix.h"
-
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <grpc/support/alloc.h>
-#include <grpc/support/log.h>
-#include <grpc/support/thd.h>
-#include <grpc/support/tls.h>
-#include <grpc/support/useful.h>
-#include "src/core/lib/iomgr/fd_posix.h"
-#include "src/core/lib/iomgr/iomgr_internal.h"
-#include "src/core/lib/iomgr/socket_utils_posix.h"
-#include "src/core/lib/profiling/timers.h"
-#include "src/core/lib/support/block_annotate.h"
-
-GPR_TLS_DECL(g_current_thread_poller);
-GPR_TLS_DECL(g_current_thread_worker);
-
-/** Default poll() function - a pointer so that it can be overridden by some
- * tests */
-grpc_poll_function_type grpc_poll_function = poll;
-
-/** The alarm system needs to be able to wakeup 'some poller' sometimes
- * (specifically when a new alarm needs to be triggered earlier than the next
- * alarm 'epoch').
- * This wakeup_fd gives us something to alert on when such a case occurs. */
-grpc_wakeup_fd grpc_global_wakeup_fd;
-
-static void remove_worker(grpc_pollset *p, grpc_pollset_worker *worker) {
- worker->prev->next = worker->next;
- worker->next->prev = worker->prev;
-}
-
-int grpc_pollset_has_workers(grpc_pollset *p) {
- return p->root_worker.next != &p->root_worker;
-}
-
-static grpc_pollset_worker *pop_front_worker(grpc_pollset *p) {
- if (grpc_pollset_has_workers(p)) {
- grpc_pollset_worker *w = p->root_worker.next;
- remove_worker(p, w);
- return w;
- } else {
- return NULL;
- }
-}
-
-static void push_back_worker(grpc_pollset *p, grpc_pollset_worker *worker) {
- worker->next = &p->root_worker;
- worker->prev = worker->next->prev;
- worker->prev->next = worker->next->prev = worker;
-}
-
-static void push_front_worker(grpc_pollset *p, grpc_pollset_worker *worker) {
- worker->prev = &p->root_worker;
- worker->next = worker->prev->next;
- worker->prev->next = worker->next->prev = worker;
-}
-
-size_t grpc_pollset_size(void) { return sizeof(grpc_pollset); }
-
-void grpc_pollset_kick_ext(grpc_pollset *p,
- grpc_pollset_worker *specific_worker,
- uint32_t flags) {
- GPR_TIMER_BEGIN("grpc_pollset_kick_ext", 0);
-
- /* pollset->mu already held */
- if (specific_worker != NULL) {
- if (specific_worker == GRPC_POLLSET_KICK_BROADCAST) {
- GPR_TIMER_BEGIN("grpc_pollset_kick_ext.broadcast", 0);
- GPR_ASSERT((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) == 0);
- for (specific_worker = p->root_worker.next;
- specific_worker != &p->root_worker;
- specific_worker = specific_worker->next) {
- grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd);
- }
- p->kicked_without_pollers = 1;
- GPR_TIMER_END("grpc_pollset_kick_ext.broadcast", 0);
- } else if (gpr_tls_get(&g_current_thread_worker) !=
- (intptr_t)specific_worker) {
- GPR_TIMER_MARK("different_thread_worker", 0);
- if ((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) != 0) {
- specific_worker->reevaluate_polling_on_wakeup = 1;
- }
- specific_worker->kicked_specifically = 1;
- grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd);
- } else if ((flags & GRPC_POLLSET_CAN_KICK_SELF) != 0) {
- GPR_TIMER_MARK("kick_yoself", 0);
- if ((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) != 0) {
- specific_worker->reevaluate_polling_on_wakeup = 1;
- }
- specific_worker->kicked_specifically = 1;
- grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd);
- }
- } else if (gpr_tls_get(&g_current_thread_poller) != (intptr_t)p) {
- GPR_ASSERT((flags & GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) == 0);
- GPR_TIMER_MARK("kick_anonymous", 0);
- specific_worker = pop_front_worker(p);
- if (specific_worker != NULL) {
- if (gpr_tls_get(&g_current_thread_worker) == (intptr_t)specific_worker) {
- GPR_TIMER_MARK("kick_anonymous_not_self", 0);
- push_back_worker(p, specific_worker);
- specific_worker = pop_front_worker(p);
- if ((flags & GRPC_POLLSET_CAN_KICK_SELF) == 0 &&
- gpr_tls_get(&g_current_thread_worker) ==
- (intptr_t)specific_worker) {
- push_back_worker(p, specific_worker);
- specific_worker = NULL;
- }
- }
- if (specific_worker != NULL) {
- GPR_TIMER_MARK("finally_kick", 0);
- push_back_worker(p, specific_worker);
- grpc_wakeup_fd_wakeup(&specific_worker->wakeup_fd->fd);
- }
- } else {
- GPR_TIMER_MARK("kicked_no_pollers", 0);
- p->kicked_without_pollers = 1;
- }
- }
-
- GPR_TIMER_END("grpc_pollset_kick_ext", 0);
-}
-
-void grpc_pollset_kick(grpc_pollset *p, grpc_pollset_worker *specific_worker) {
- grpc_pollset_kick_ext(p, specific_worker, 0);
-}
-
-/* global state management */
-
-void grpc_pollset_global_init(void) {
- gpr_tls_init(&g_current_thread_poller);
- gpr_tls_init(&g_current_thread_worker);
- grpc_wakeup_fd_global_init();
- grpc_wakeup_fd_init(&grpc_global_wakeup_fd);
-}
-
-void grpc_pollset_global_shutdown(void) {
- grpc_wakeup_fd_destroy(&grpc_global_wakeup_fd);
- gpr_tls_destroy(&g_current_thread_poller);
- gpr_tls_destroy(&g_current_thread_worker);
- grpc_wakeup_fd_global_destroy();
-}
-
-void grpc_kick_poller(void) { grpc_wakeup_fd_wakeup(&grpc_global_wakeup_fd); }
-
-/* main interface */
-
-static void become_basic_pollset(grpc_pollset *pollset, grpc_fd *fd_or_null);
-
-void grpc_pollset_init(grpc_pollset *pollset, gpr_mu **mu) {
- gpr_mu_init(&pollset->mu);
- *mu = &pollset->mu;
- pollset->root_worker.next = pollset->root_worker.prev = &pollset->root_worker;
- pollset->in_flight_cbs = 0;
- pollset->shutting_down = 0;
- pollset->called_shutdown = 0;
- pollset->kicked_without_pollers = 0;
- pollset->idle_jobs.head = pollset->idle_jobs.tail = NULL;
- pollset->local_wakeup_cache = NULL;
- pollset->kicked_without_pollers = 0;
- become_basic_pollset(pollset, NULL);
-}
-
-void grpc_pollset_destroy(grpc_pollset *pollset) {
- GPR_ASSERT(pollset->in_flight_cbs == 0);
- GPR_ASSERT(!grpc_pollset_has_workers(pollset));
- GPR_ASSERT(pollset->idle_jobs.head == pollset->idle_jobs.tail);
- pollset->vtable->destroy(pollset);
- while (pollset->local_wakeup_cache) {
- grpc_cached_wakeup_fd *next = pollset->local_wakeup_cache->next;
- grpc_wakeup_fd_destroy(&pollset->local_wakeup_cache->fd);
- gpr_free(pollset->local_wakeup_cache);
- pollset->local_wakeup_cache = next;
- }
-}
-
-void grpc_pollset_reset(grpc_pollset *pollset) {
- GPR_ASSERT(pollset->shutting_down);
- GPR_ASSERT(pollset->in_flight_cbs == 0);
- GPR_ASSERT(!grpc_pollset_has_workers(pollset));
- GPR_ASSERT(pollset->idle_jobs.head == pollset->idle_jobs.tail);
- pollset->vtable->destroy(pollset);
- pollset->shutting_down = 0;
- pollset->called_shutdown = 0;
- pollset->kicked_without_pollers = 0;
- become_basic_pollset(pollset, NULL);
-}
-
-void grpc_pollset_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
- grpc_fd *fd) {
- gpr_mu_lock(&pollset->mu);
- pollset->vtable->add_fd(exec_ctx, pollset, fd, 1);
-/* the following (enabled only in debug) will reacquire and then release
- our lock - meaning that if the unlocking flag passed to add_fd above is
- not respected, the code will deadlock (in a way that we have a chance of
- debugging) */
-#ifndef NDEBUG
- gpr_mu_lock(&pollset->mu);
- gpr_mu_unlock(&pollset->mu);
-#endif
-}
-
-static void finish_shutdown(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset) {
- GPR_ASSERT(grpc_closure_list_empty(pollset->idle_jobs));
- pollset->vtable->finish_shutdown(pollset);
- grpc_exec_ctx_enqueue(exec_ctx, pollset->shutdown_done, true, NULL);
-}
-
-void grpc_pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
- grpc_pollset_worker **worker_hdl, gpr_timespec now,
- gpr_timespec deadline) {
- grpc_pollset_worker worker;
- *worker_hdl = &worker;
-
- /* pollset->mu already held */
- int added_worker = 0;
- int locked = 1;
- int queued_work = 0;
- int keep_polling = 0;
- GPR_TIMER_BEGIN("grpc_pollset_work", 0);
- /* this must happen before we (potentially) drop pollset->mu */
- worker.next = worker.prev = NULL;
- worker.reevaluate_polling_on_wakeup = 0;
- if (pollset->local_wakeup_cache != NULL) {
- worker.wakeup_fd = pollset->local_wakeup_cache;
- pollset->local_wakeup_cache = worker.wakeup_fd->next;
- } else {
- worker.wakeup_fd = gpr_malloc(sizeof(*worker.wakeup_fd));
- grpc_wakeup_fd_init(&worker.wakeup_fd->fd);
- }
- worker.kicked_specifically = 0;
- /* If there's work waiting for the pollset to be idle, and the
- pollset is idle, then do that work */
- if (!grpc_pollset_has_workers(pollset) &&
- !grpc_closure_list_empty(pollset->idle_jobs)) {
- GPR_TIMER_MARK("grpc_pollset_work.idle_jobs", 0);
- grpc_exec_ctx_enqueue_list(exec_ctx, &pollset->idle_jobs, NULL);
- goto done;
- }
- /* If we're shutting down then we don't execute any extended work */
- if (pollset->shutting_down) {
- GPR_TIMER_MARK("grpc_pollset_work.shutting_down", 0);
- goto done;
- }
- /* Give do_promote priority so we don't starve it out */
- if (pollset->in_flight_cbs) {
- GPR_TIMER_MARK("grpc_pollset_work.in_flight_cbs", 0);
- gpr_mu_unlock(&pollset->mu);
- locked = 0;
- goto done;
- }
- /* Start polling, and keep doing so while we're being asked to
- re-evaluate our pollers (this allows poll() based pollers to
- ensure they don't miss wakeups) */
- keep_polling = 1;
- while (keep_polling) {
- keep_polling = 0;
- if (!pollset->kicked_without_pollers) {
- if (!added_worker) {
- push_front_worker(pollset, &worker);
- added_worker = 1;
- gpr_tls_set(&g_current_thread_worker, (intptr_t)&worker);
- }
- gpr_tls_set(&g_current_thread_poller, (intptr_t)pollset);
- GPR_TIMER_BEGIN("maybe_work_and_unlock", 0);
- pollset->vtable->maybe_work_and_unlock(exec_ctx, pollset, &worker,
- deadline, now);
- GPR_TIMER_END("maybe_work_and_unlock", 0);
- locked = 0;
- gpr_tls_set(&g_current_thread_poller, 0);
- } else {
- GPR_TIMER_MARK("grpc_pollset_work.kicked_without_pollers", 0);
- pollset->kicked_without_pollers = 0;
- }
- /* Finished execution - start cleaning up.
- Note that we may arrive here from outside the enclosing while() loop.
- In that case we won't loop though as we haven't added worker to the
- worker list, which means nobody could ask us to re-evaluate polling). */
- done:
- if (!locked) {
- queued_work |= grpc_exec_ctx_flush(exec_ctx);
- gpr_mu_lock(&pollset->mu);
- locked = 1;
- }
- /* If we're forced to re-evaluate polling (via grpc_pollset_kick with
- GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP) then we land here and force
- a loop */
- if (worker.reevaluate_polling_on_wakeup) {
- worker.reevaluate_polling_on_wakeup = 0;
- pollset->kicked_without_pollers = 0;
- if (queued_work || worker.kicked_specifically) {
- /* If there's queued work on the list, then set the deadline to be
- immediate so we get back out of the polling loop quickly */
- deadline = gpr_inf_past(GPR_CLOCK_MONOTONIC);
- }
- keep_polling = 1;
- }
- }
- if (added_worker) {
- remove_worker(pollset, &worker);
- gpr_tls_set(&g_current_thread_worker, 0);
- }
- /* release wakeup fd to the local pool */
- worker.wakeup_fd->next = pollset->local_wakeup_cache;
- pollset->local_wakeup_cache = worker.wakeup_fd;
- /* check shutdown conditions */
- if (pollset->shutting_down) {
- if (grpc_pollset_has_workers(pollset)) {
- grpc_pollset_kick(pollset, NULL);
- } else if (!pollset->called_shutdown && pollset->in_flight_cbs == 0) {
- pollset->called_shutdown = 1;
- gpr_mu_unlock(&pollset->mu);
- finish_shutdown(exec_ctx, pollset);
- grpc_exec_ctx_flush(exec_ctx);
- /* Continuing to access pollset here is safe -- it is the caller's
- * responsibility to not destroy when it has outstanding calls to
- * grpc_pollset_work.
- * TODO(dklempner): Can we refactor the shutdown logic to avoid this? */
- gpr_mu_lock(&pollset->mu);
- } else if (!grpc_closure_list_empty(pollset->idle_jobs)) {
- grpc_exec_ctx_enqueue_list(exec_ctx, &pollset->idle_jobs, NULL);
- gpr_mu_unlock(&pollset->mu);
- grpc_exec_ctx_flush(exec_ctx);
- gpr_mu_lock(&pollset->mu);
- }
- }
- *worker_hdl = NULL;
- GPR_TIMER_END("grpc_pollset_work", 0);
-}
-
-void grpc_pollset_shutdown(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
- grpc_closure *closure) {
- GPR_ASSERT(!pollset->shutting_down);
- pollset->shutting_down = 1;
- pollset->shutdown_done = closure;
- grpc_pollset_kick(pollset, GRPC_POLLSET_KICK_BROADCAST);
- if (!grpc_pollset_has_workers(pollset)) {
- grpc_exec_ctx_enqueue_list(exec_ctx, &pollset->idle_jobs, NULL);
- }
- if (!pollset->called_shutdown && pollset->in_flight_cbs == 0 &&
- !grpc_pollset_has_workers(pollset)) {
- pollset->called_shutdown = 1;
- finish_shutdown(exec_ctx, pollset);
- }
-}
-
-int grpc_poll_deadline_to_millis_timeout(gpr_timespec deadline,
- gpr_timespec now) {
- gpr_timespec timeout;
- static const int64_t max_spin_polling_us = 10;
- if (gpr_time_cmp(deadline, gpr_inf_future(deadline.clock_type)) == 0) {
- return -1;
- }
- if (gpr_time_cmp(deadline, gpr_time_add(now, gpr_time_from_micros(
- max_spin_polling_us,
- GPR_TIMESPAN))) <= 0) {
- return 0;
- }
- timeout = gpr_time_sub(deadline, now);
- return gpr_time_to_millis(gpr_time_add(
- timeout, gpr_time_from_nanos(GPR_NS_PER_MS - 1, GPR_TIMESPAN)));
-}
-
-/*
- * basic_pollset - a vtable that provides polling for zero or one file
- * descriptor via poll()
- */
-
-typedef struct grpc_unary_promote_args {
- const grpc_pollset_vtable *original_vtable;
- grpc_pollset *pollset;
- grpc_fd *fd;
- grpc_closure promotion_closure;
-} grpc_unary_promote_args;
-
-static void basic_do_promote(grpc_exec_ctx *exec_ctx, void *args,
- bool success) {
- grpc_unary_promote_args *up_args = args;
- const grpc_pollset_vtable *original_vtable = up_args->original_vtable;
- grpc_pollset *pollset = up_args->pollset;
- grpc_fd *fd = up_args->fd;
-
- /*
- * This is quite tricky. There are a number of cases to keep in mind here:
- * 1. fd may have been orphaned
- * 2. The pollset may no longer be a unary poller (and we can't let case #1
- * leak to other pollset types!)
- * 3. pollset's fd (which may have changed) may have been orphaned
- * 4. The pollset may be shutting down.
- */
-
- gpr_mu_lock(&pollset->mu);
- /* First we need to ensure that nobody is polling concurrently */
- GPR_ASSERT(!grpc_pollset_has_workers(pollset));
-
- gpr_free(up_args);
- /* At this point the pollset may no longer be a unary poller. In that case
- * we should just call the right add function and be done. */
- /* TODO(klempner): If we're not careful this could cause infinite recursion.
- * That's not a problem for now because empty_pollset has a trivial poller
- * and we don't have any mechanism to unbecome multipoller. */
- pollset->in_flight_cbs--;
- if (pollset->shutting_down) {
- /* We don't care about this pollset anymore. */
- if (pollset->in_flight_cbs == 0 && !pollset->called_shutdown) {
- pollset->called_shutdown = 1;
- finish_shutdown(exec_ctx, pollset);
- }
- } else if (grpc_fd_is_orphaned(fd)) {
- /* Don't try to add it to anything, we'll drop our ref on it below */
- } else if (pollset->vtable != original_vtable) {
- pollset->vtable->add_fd(exec_ctx, pollset, fd, 0);
- } else if (fd != pollset->data.ptr) {
- grpc_fd *fds[2];
- fds[0] = pollset->data.ptr;
- fds[1] = fd;
-
- if (fds[0] && !grpc_fd_is_orphaned(fds[0])) {
- grpc_platform_become_multipoller(exec_ctx, pollset, fds,
- GPR_ARRAY_SIZE(fds));
- GRPC_FD_UNREF(fds[0], "basicpoll");
- } else {
- /* old fd is orphaned and we haven't cleaned it up until now, so remain a
- * unary poller */
- /* Note that it is possible that fds[1] is also orphaned at this point.
- * That's okay, we'll correct it at the next add or poll. */
- if (fds[0]) GRPC_FD_UNREF(fds[0], "basicpoll");
- pollset->data.ptr = fd;
- GRPC_FD_REF(fd, "basicpoll");
- }
- }
-
- gpr_mu_unlock(&pollset->mu);
-
- /* Matching ref in basic_pollset_add_fd */
- GRPC_FD_UNREF(fd, "basicpoll_add");
-}
-
-static void basic_pollset_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
- grpc_fd *fd, int and_unlock_pollset) {
- grpc_unary_promote_args *up_args;
- GPR_ASSERT(fd);
- if (fd == pollset->data.ptr) goto exit;
-
- if (!grpc_pollset_has_workers(pollset)) {
- /* Fast path -- no in flight cbs */
- /* TODO(klempner): Comment this out and fix any test failures or establish
- * they are due to timing issues */
- grpc_fd *fds[2];
- fds[0] = pollset->data.ptr;
- fds[1] = fd;
-
- if (fds[0] == NULL) {
- pollset->data.ptr = fd;
- GRPC_FD_REF(fd, "basicpoll");
- } else if (!grpc_fd_is_orphaned(fds[0])) {
- grpc_platform_become_multipoller(exec_ctx, pollset, fds,
- GPR_ARRAY_SIZE(fds));
- GRPC_FD_UNREF(fds[0], "basicpoll");
- } else {
- /* old fd is orphaned and we haven't cleaned it up until now, so remain a
- * unary poller */
- GRPC_FD_UNREF(fds[0], "basicpoll");
- pollset->data.ptr = fd;
- GRPC_FD_REF(fd, "basicpoll");
- }
- goto exit;
- }
-
- /* Now we need to promote. This needs to happen when we're not polling. Since
- * this may be called from poll, the wait needs to happen asynchronously. */
- GRPC_FD_REF(fd, "basicpoll_add");
- pollset->in_flight_cbs++;
- up_args = gpr_malloc(sizeof(*up_args));
- up_args->fd = fd;
- up_args->original_vtable = pollset->vtable;
- up_args->pollset = pollset;
- up_args->promotion_closure.cb = basic_do_promote;
- up_args->promotion_closure.cb_arg = up_args;
-
- grpc_closure_list_add(&pollset->idle_jobs, &up_args->promotion_closure, 1);
- grpc_pollset_kick(pollset, GRPC_POLLSET_KICK_BROADCAST);
-
-exit:
- if (and_unlock_pollset) {
- gpr_mu_unlock(&pollset->mu);
- }
-}
-
-static void basic_pollset_maybe_work_and_unlock(grpc_exec_ctx *exec_ctx,
- grpc_pollset *pollset,
- grpc_pollset_worker *worker,
- gpr_timespec deadline,
- gpr_timespec now) {
-#define POLLOUT_CHECK (POLLOUT | POLLHUP | POLLERR)
-#define POLLIN_CHECK (POLLIN | POLLHUP | POLLERR)
-
- struct pollfd pfd[3];
- grpc_fd *fd;
- grpc_fd_watcher fd_watcher;
- int timeout;
- int r;
- nfds_t nfds;
-
- fd = pollset->data.ptr;
- if (fd && grpc_fd_is_orphaned(fd)) {
- GRPC_FD_UNREF(fd, "basicpoll");
- fd = pollset->data.ptr = NULL;
- }
- timeout = grpc_poll_deadline_to_millis_timeout(deadline, now);
- pfd[0].fd = GRPC_WAKEUP_FD_GET_READ_FD(&grpc_global_wakeup_fd);
- pfd[0].events = POLLIN;
- pfd[0].revents = 0;
- pfd[1].fd = GRPC_WAKEUP_FD_GET_READ_FD(&worker->wakeup_fd->fd);
- pfd[1].events = POLLIN;
- pfd[1].revents = 0;
- nfds = 2;
- if (fd) {
- pfd[2].fd = fd->fd;
- pfd[2].revents = 0;
- GRPC_FD_REF(fd, "basicpoll_begin");
- gpr_mu_unlock(&pollset->mu);
- pfd[2].events = (short)grpc_fd_begin_poll(fd, pollset, worker, POLLIN,
- POLLOUT, &fd_watcher);
- if (pfd[2].events != 0) {
- nfds++;
- }
- } else {
- gpr_mu_unlock(&pollset->mu);
- }
-
- /* TODO(vpai): Consider first doing a 0 timeout poll here to avoid
- even going into the blocking annotation if possible */
- /* poll fd count (argument 2) is shortened by one if we have no events
- to poll on - such that it only includes the kicker */
- GPR_TIMER_BEGIN("poll", 0);
- GRPC_SCHEDULING_START_BLOCKING_REGION;
- r = grpc_poll_function(pfd, nfds, timeout);
- GRPC_SCHEDULING_END_BLOCKING_REGION;
- GPR_TIMER_END("poll", 0);
-
- if (r < 0) {
- if (errno != EINTR) {
- gpr_log(GPR_ERROR, "poll() failed: %s", strerror(errno));
- }
- if (fd) {
- grpc_fd_end_poll(exec_ctx, &fd_watcher, 0, 0);
- }
- } else if (r == 0) {
- if (fd) {
- grpc_fd_end_poll(exec_ctx, &fd_watcher, 0, 0);
- }
- } else {
- if (pfd[0].revents & POLLIN_CHECK) {
- grpc_wakeup_fd_consume_wakeup(&grpc_global_wakeup_fd);
- }
- if (pfd[1].revents & POLLIN_CHECK) {
- grpc_wakeup_fd_consume_wakeup(&worker->wakeup_fd->fd);
- }
- if (nfds > 2) {
- grpc_fd_end_poll(exec_ctx, &fd_watcher, pfd[2].revents & POLLIN_CHECK,
- pfd[2].revents & POLLOUT_CHECK);
- } else if (fd) {
- grpc_fd_end_poll(exec_ctx, &fd_watcher, 0, 0);
- }
- }
-
- if (fd) {
- GRPC_FD_UNREF(fd, "basicpoll_begin");
- }
-}
-
-static void basic_pollset_destroy(grpc_pollset *pollset) {
- if (pollset->data.ptr != NULL) {
- GRPC_FD_UNREF(pollset->data.ptr, "basicpoll");
- pollset->data.ptr = NULL;
- }
-}
-
-static const grpc_pollset_vtable basic_pollset = {
- basic_pollset_add_fd, basic_pollset_maybe_work_and_unlock,
- basic_pollset_destroy, basic_pollset_destroy};
-
-static void become_basic_pollset(grpc_pollset *pollset, grpc_fd *fd_or_null) {
- pollset->vtable = &basic_pollset;
- pollset->data.ptr = fd_or_null;
- if (fd_or_null != NULL) {
- GRPC_FD_REF(fd_or_null, "basicpoll");
- }
-}
-
-#endif /* GPR_POSIX_POLLSET */
diff --git a/src/core/lib/iomgr/pollset_posix.h b/src/core/lib/iomgr/pollset_posix.h
deleted file mode 100644
index 7d8e9fc279..0000000000
--- a/src/core/lib/iomgr/pollset_posix.h
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- *
- * Copyright 2015-2016, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#ifndef GRPC_CORE_LIB_IOMGR_POLLSET_POSIX_H
-#define GRPC_CORE_LIB_IOMGR_POLLSET_POSIX_H
-
-#include <poll.h>
-
-#include <grpc/support/sync.h>
-
-#include "src/core/lib/iomgr/exec_ctx.h"
-#include "src/core/lib/iomgr/iomgr.h"
-#include "src/core/lib/iomgr/pollset.h"
-#include "src/core/lib/iomgr/wakeup_fd_posix.h"
-
-typedef struct grpc_pollset_vtable grpc_pollset_vtable;
-
-/* forward declare only in this file to avoid leaking impl details via
- pollset.h; real users of grpc_fd should always include 'fd_posix.h' and not
- use the struct tag */
-struct grpc_fd;
-
-typedef struct grpc_cached_wakeup_fd {
- grpc_wakeup_fd fd;
- struct grpc_cached_wakeup_fd *next;
-} grpc_cached_wakeup_fd;
-
-struct grpc_pollset_worker {
- grpc_cached_wakeup_fd *wakeup_fd;
- int reevaluate_polling_on_wakeup;
- int kicked_specifically;
- struct grpc_pollset_worker *next;
- struct grpc_pollset_worker *prev;
-};
-
-struct grpc_pollset {
- /* pollsets under posix can mutate representation as fds are added and
- removed.
- For example, we may choose a poll() based implementation on linux for
- few fds, and an epoll() based implementation for many fds */
- const grpc_pollset_vtable *vtable;
- gpr_mu mu;
- grpc_pollset_worker root_worker;
- int in_flight_cbs;
- int shutting_down;
- int called_shutdown;
- int kicked_without_pollers;
- grpc_closure *shutdown_done;
- grpc_closure_list idle_jobs;
- union {
- int fd;
- void *ptr;
- } data;
- /* Local cache of eventfds for workers */
- grpc_cached_wakeup_fd *local_wakeup_cache;
-};
-
-struct grpc_pollset_vtable {
- void (*add_fd)(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
- struct grpc_fd *fd, int and_unlock_pollset);
- void (*maybe_work_and_unlock)(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
- grpc_pollset_worker *worker,
- gpr_timespec deadline, gpr_timespec now);
- void (*finish_shutdown)(grpc_pollset *pollset);
- void (*destroy)(grpc_pollset *pollset);
-};
-
-/* Add an fd to a pollset */
-void grpc_pollset_add_fd(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset,
- struct grpc_fd *fd);
-
-/* Returns the fd to listen on for kicks */
-int grpc_kick_read_fd(grpc_pollset *p);
-/* Call after polling has been kicked to leave the kicked state */
-void grpc_kick_drain(grpc_pollset *p);
-
-/* Convert a timespec to milliseconds:
- - very small or negative poll times are clamped to zero to do a
- non-blocking poll (which becomes spin polling)
- - other small values are rounded up to one millisecond
- - longer than a millisecond polls are rounded up to the next nearest
- millisecond to avoid spinning
- - infinite timeouts are converted to -1 */
-int grpc_poll_deadline_to_millis_timeout(gpr_timespec deadline,
- gpr_timespec now);
-
-/* Allow kick to wakeup the currently polling worker */
-#define GRPC_POLLSET_CAN_KICK_SELF 1
-/* Force the wakee to repoll when awoken */
-#define GRPC_POLLSET_REEVALUATE_POLLING_ON_WAKEUP 2
-/* As per grpc_pollset_kick, with an extended set of flags (defined above)
- -- mostly for fd_posix's use. */
-void grpc_pollset_kick_ext(grpc_pollset *p,
- grpc_pollset_worker *specific_worker,
- uint32_t flags);
-
-/* turn a pollset into a multipoller: platform specific */
-typedef void (*grpc_platform_become_multipoller_type)(grpc_exec_ctx *exec_ctx,
- grpc_pollset *pollset,
- struct grpc_fd **fds,
- size_t fd_count);
-extern grpc_platform_become_multipoller_type grpc_platform_become_multipoller;
-
-void grpc_poll_become_multipoller(grpc_exec_ctx *exec_ctx,
- grpc_pollset *pollset, struct grpc_fd **fds,
- size_t fd_count);
-
-/* Return 1 if the pollset has active threads in grpc_pollset_work (pollset must
- * be locked) */
-int grpc_pollset_has_workers(grpc_pollset *pollset);
-
-void grpc_remove_fd_from_all_epoll_sets(int fd);
-
-/* override to allow tests to hook poll() usage */
-/* NOTE: Any changes to grpc_poll_function must take place when the gRPC
- is certainly not doing any polling anywhere.
- Otherwise, there might be a race between changing the variable and actually
- doing a polling operation */
-typedef int (*grpc_poll_function_type)(struct pollfd *, nfds_t, int);
-extern grpc_poll_function_type grpc_poll_function;
-extern grpc_wakeup_fd grpc_global_wakeup_fd;
-
-#endif /* GRPC_CORE_LIB_IOMGR_POLLSET_POSIX_H */
diff --git a/src/core/lib/iomgr/pollset_set.h b/src/core/lib/iomgr/pollset_set.h
index fb29d692d7..34bb728c41 100644
--- a/src/core/lib/iomgr/pollset_set.h
+++ b/src/core/lib/iomgr/pollset_set.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/pollset_set_posix.c b/src/core/lib/iomgr/pollset_set_posix.c
deleted file mode 100644
index d6142f9b6b..0000000000
--- a/src/core/lib/iomgr/pollset_set_posix.c
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- *
- * Copyright 2015-2016, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#include <grpc/support/port_platform.h>
-
-#ifdef GPR_POSIX_SOCKET
-
-#include <stdlib.h>
-#include <string.h>
-
-#include <grpc/support/alloc.h>
-#include <grpc/support/useful.h>
-
-#include "src/core/lib/iomgr/pollset_posix.h"
-#include "src/core/lib/iomgr/pollset_set_posix.h"
-
-struct grpc_pollset_set {
- gpr_mu mu;
-
- size_t pollset_count;
- size_t pollset_capacity;
- grpc_pollset **pollsets;
-
- size_t pollset_set_count;
- size_t pollset_set_capacity;
- struct grpc_pollset_set **pollset_sets;
-
- size_t fd_count;
- size_t fd_capacity;
- grpc_fd **fds;
-};
-
-grpc_pollset_set *grpc_pollset_set_create(void) {
- grpc_pollset_set *pollset_set = gpr_malloc(sizeof(*pollset_set));
- memset(pollset_set, 0, sizeof(*pollset_set));
- gpr_mu_init(&pollset_set->mu);
- return pollset_set;
-}
-
-void grpc_pollset_set_destroy(grpc_pollset_set *pollset_set) {
- size_t i;
- gpr_mu_destroy(&pollset_set->mu);
- for (i = 0; i < pollset_set->fd_count; i++) {
- GRPC_FD_UNREF(pollset_set->fds[i], "pollset_set");
- }
- gpr_free(pollset_set->pollsets);
- gpr_free(pollset_set->pollset_sets);
- gpr_free(pollset_set->fds);
- gpr_free(pollset_set);
-}
-
-void grpc_pollset_set_add_pollset(grpc_exec_ctx *exec_ctx,
- grpc_pollset_set *pollset_set,
- grpc_pollset *pollset) {
- size_t i, j;
- gpr_mu_lock(&pollset_set->mu);
- if (pollset_set->pollset_count == pollset_set->pollset_capacity) {
- pollset_set->pollset_capacity =
- GPR_MAX(8, 2 * pollset_set->pollset_capacity);
- pollset_set->pollsets =
- gpr_realloc(pollset_set->pollsets, pollset_set->pollset_capacity *
- sizeof(*pollset_set->pollsets));
- }
- pollset_set->pollsets[pollset_set->pollset_count++] = pollset;
- for (i = 0, j = 0; i < pollset_set->fd_count; i++) {
- if (grpc_fd_is_orphaned(pollset_set->fds[i])) {
- GRPC_FD_UNREF(pollset_set->fds[i], "pollset_set");
- } else {
- grpc_pollset_add_fd(exec_ctx, pollset, pollset_set->fds[i]);
- pollset_set->fds[j++] = pollset_set->fds[i];
- }
- }
- pollset_set->fd_count = j;
- gpr_mu_unlock(&pollset_set->mu);
-}
-
-void grpc_pollset_set_del_pollset(grpc_exec_ctx *exec_ctx,
- grpc_pollset_set *pollset_set,
- grpc_pollset *pollset) {
- size_t i;
- gpr_mu_lock(&pollset_set->mu);
- for (i = 0; i < pollset_set->pollset_count; i++) {
- if (pollset_set->pollsets[i] == pollset) {
- pollset_set->pollset_count--;
- GPR_SWAP(grpc_pollset *, pollset_set->pollsets[i],
- pollset_set->pollsets[pollset_set->pollset_count]);
- break;
- }
- }
- gpr_mu_unlock(&pollset_set->mu);
-}
-
-void grpc_pollset_set_add_pollset_set(grpc_exec_ctx *exec_ctx,
- grpc_pollset_set *bag,
- grpc_pollset_set *item) {
- size_t i, j;
- gpr_mu_lock(&bag->mu);
- if (bag->pollset_set_count == bag->pollset_set_capacity) {
- bag->pollset_set_capacity = GPR_MAX(8, 2 * bag->pollset_set_capacity);
- bag->pollset_sets =
- gpr_realloc(bag->pollset_sets,
- bag->pollset_set_capacity * sizeof(*bag->pollset_sets));
- }
- bag->pollset_sets[bag->pollset_set_count++] = item;
- for (i = 0, j = 0; i < bag->fd_count; i++) {
- if (grpc_fd_is_orphaned(bag->fds[i])) {
- GRPC_FD_UNREF(bag->fds[i], "pollset_set");
- } else {
- grpc_pollset_set_add_fd(exec_ctx, item, bag->fds[i]);
- bag->fds[j++] = bag->fds[i];
- }
- }
- bag->fd_count = j;
- gpr_mu_unlock(&bag->mu);
-}
-
-void grpc_pollset_set_del_pollset_set(grpc_exec_ctx *exec_ctx,
- grpc_pollset_set *bag,
- grpc_pollset_set *item) {
- size_t i;
- gpr_mu_lock(&bag->mu);
- for (i = 0; i < bag->pollset_set_count; i++) {
- if (bag->pollset_sets[i] == item) {
- bag->pollset_set_count--;
- GPR_SWAP(grpc_pollset_set *, bag->pollset_sets[i],
- bag->pollset_sets[bag->pollset_set_count]);
- break;
- }
- }
- gpr_mu_unlock(&bag->mu);
-}
-
-void grpc_pollset_set_add_fd(grpc_exec_ctx *exec_ctx,
- grpc_pollset_set *pollset_set, grpc_fd *fd) {
- size_t i;
- gpr_mu_lock(&pollset_set->mu);
- if (pollset_set->fd_count == pollset_set->fd_capacity) {
- pollset_set->fd_capacity = GPR_MAX(8, 2 * pollset_set->fd_capacity);
- pollset_set->fds = gpr_realloc(
- pollset_set->fds, pollset_set->fd_capacity * sizeof(*pollset_set->fds));
- }
- GRPC_FD_REF(fd, "pollset_set");
- pollset_set->fds[pollset_set->fd_count++] = fd;
- for (i = 0; i < pollset_set->pollset_count; i++) {
- grpc_pollset_add_fd(exec_ctx, pollset_set->pollsets[i], fd);
- }
- for (i = 0; i < pollset_set->pollset_set_count; i++) {
- grpc_pollset_set_add_fd(exec_ctx, pollset_set->pollset_sets[i], fd);
- }
- gpr_mu_unlock(&pollset_set->mu);
-}
-
-void grpc_pollset_set_del_fd(grpc_exec_ctx *exec_ctx,
- grpc_pollset_set *pollset_set, grpc_fd *fd) {
- size_t i;
- gpr_mu_lock(&pollset_set->mu);
- for (i = 0; i < pollset_set->fd_count; i++) {
- if (pollset_set->fds[i] == fd) {
- pollset_set->fd_count--;
- GPR_SWAP(grpc_fd *, pollset_set->fds[i],
- pollset_set->fds[pollset_set->fd_count]);
- GRPC_FD_UNREF(fd, "pollset_set");
- break;
- }
- }
- for (i = 0; i < pollset_set->pollset_set_count; i++) {
- grpc_pollset_set_del_fd(exec_ctx, pollset_set->pollset_sets[i], fd);
- }
- gpr_mu_unlock(&pollset_set->mu);
-}
-
-#endif /* GPR_POSIX_SOCKET */
diff --git a/src/core/lib/iomgr/pollset_set_posix.h b/src/core/lib/iomgr/pollset_set_posix.h
deleted file mode 100644
index 4e6b063c6f..0000000000
--- a/src/core/lib/iomgr/pollset_set_posix.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *
- * Copyright 2015-2016, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#ifndef GRPC_CORE_LIB_IOMGR_POLLSET_SET_POSIX_H
-#define GRPC_CORE_LIB_IOMGR_POLLSET_SET_POSIX_H
-
-#include "src/core/lib/iomgr/fd_posix.h"
-#include "src/core/lib/iomgr/pollset_set.h"
-
-void grpc_pollset_set_add_fd(grpc_exec_ctx *exec_ctx,
- grpc_pollset_set *pollset_set, grpc_fd *fd);
-void grpc_pollset_set_del_fd(grpc_exec_ctx *exec_ctx,
- grpc_pollset_set *pollset_set, grpc_fd *fd);
-
-#endif /* GRPC_CORE_LIB_IOMGR_POLLSET_SET_POSIX_H */
diff --git a/src/core/lib/iomgr/pollset_set_windows.c b/src/core/lib/iomgr/pollset_set_windows.c
index 0b14e446ae..89f60b92fb 100644
--- a/src/core/lib/iomgr/pollset_set_windows.c
+++ b/src/core/lib/iomgr/pollset_set_windows.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -37,7 +37,7 @@
#include "src/core/lib/iomgr/pollset_set_windows.h"
-grpc_pollset_set* grpc_pollset_set_create(pollset_set) { return NULL; }
+grpc_pollset_set* grpc_pollset_set_create(void) { return NULL; }
void grpc_pollset_set_destroy(grpc_pollset_set* pollset_set) {}
diff --git a/src/core/lib/iomgr/pollset_set_windows.h b/src/core/lib/iomgr/pollset_set_windows.h
index 7c2cea23de..0356749b15 100644
--- a/src/core/lib/iomgr/pollset_set_windows.h
+++ b/src/core/lib/iomgr/pollset_set_windows.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/pollset_windows.c b/src/core/lib/iomgr/pollset_windows.c
index 6b339127a8..bff5c586f8 100644
--- a/src/core/lib/iomgr/pollset_windows.c
+++ b/src/core/lib/iomgr/pollset_windows.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -47,7 +47,7 @@ gpr_mu grpc_polling_mu;
static grpc_pollset_worker *g_active_poller;
static grpc_pollset_worker g_global_root_worker;
-void grpc_pollset_global_init() {
+void grpc_pollset_global_init(void) {
gpr_mu_init(&grpc_polling_mu);
g_active_poller = NULL;
g_global_root_worker.links[GRPC_POLLSET_WORKER_LINK_GLOBAL].next =
@@ -55,7 +55,7 @@ void grpc_pollset_global_init() {
&g_global_root_worker;
}
-void grpc_pollset_global_shutdown() { gpr_mu_destroy(&grpc_polling_mu); }
+void grpc_pollset_global_shutdown(void) { gpr_mu_destroy(&grpc_polling_mu); }
static void remove_worker(grpc_pollset_worker *worker,
grpc_pollset_worker_link_type type) {
diff --git a/src/core/lib/iomgr/pollset_windows.h b/src/core/lib/iomgr/pollset_windows.h
index fa9553ffea..2642013afc 100644
--- a/src/core/lib/iomgr/pollset_windows.h
+++ b/src/core/lib/iomgr/pollset_windows.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -72,4 +72,7 @@ struct grpc_pollset {
grpc_closure *on_shutdown;
};
+void grpc_pollset_global_init(void);
+void grpc_pollset_global_shutdown(void);
+
#endif /* GRPC_CORE_LIB_IOMGR_POLLSET_WINDOWS_H */
diff --git a/src/core/lib/iomgr/resolve_address.h b/src/core/lib/iomgr/resolve_address.h
index f748288685..ecc06340a3 100644
--- a/src/core/lib/iomgr/resolve_address.h
+++ b/src/core/lib/iomgr/resolve_address.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/resolve_address_posix.c b/src/core/lib/iomgr/resolve_address_posix.c
index ebecb39c16..b9d3bbdb89 100644
--- a/src/core/lib/iomgr/resolve_address_posix.c
+++ b/src/core/lib/iomgr/resolve_address_posix.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/resolve_address_windows.c b/src/core/lib/iomgr/resolve_address_windows.c
index bde1f1b7f7..82763d11f4 100644
--- a/src/core/lib/iomgr/resolve_address_windows.c
+++ b/src/core/lib/iomgr/resolve_address_windows.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/sockaddr.h b/src/core/lib/iomgr/sockaddr.h
index 66a930ee6a..891a2f094f 100644
--- a/src/core/lib/iomgr/sockaddr.h
+++ b/src/core/lib/iomgr/sockaddr.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/sockaddr_posix.h b/src/core/lib/iomgr/sockaddr_posix.h
index 79a7467c5d..b150de42f7 100644
--- a/src/core/lib/iomgr/sockaddr_posix.h
+++ b/src/core/lib/iomgr/sockaddr_posix.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/sockaddr_utils.h b/src/core/lib/iomgr/sockaddr_utils.h
index 20a3e3bec3..9f81992e6b 100644
--- a/src/core/lib/iomgr/sockaddr_utils.h
+++ b/src/core/lib/iomgr/sockaddr_utils.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/sockaddr_win32.h b/src/core/lib/iomgr/sockaddr_win32.h
index 2dd7111240..02aeae7619 100644
--- a/src/core/lib/iomgr/sockaddr_win32.h
+++ b/src/core/lib/iomgr/sockaddr_win32.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/socket_utils_common_posix.c b/src/core/lib/iomgr/socket_utils_common_posix.c
index 9dbc2784e4..fa83ceef30 100644
--- a/src/core/lib/iomgr/socket_utils_common_posix.c
+++ b/src/core/lib/iomgr/socket_utils_common_posix.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -89,6 +89,28 @@ int grpc_set_socket_no_sigpipe_if_possible(int fd) {
#endif
}
+int grpc_set_socket_ip_pktinfo_if_possible(int fd) {
+#ifdef GPR_HAVE_IP_PKTINFO
+ int get_local_ip = 1;
+ return 0 == setsockopt(fd, IPPROTO_IP, IP_PKTINFO, &get_local_ip,
+ sizeof(get_local_ip));
+#else
+ (void)fd;
+ return 1;
+#endif
+}
+
+int grpc_set_socket_ipv6_recvpktinfo_if_possible(int fd) {
+#ifdef GPR_HAVE_IPV6_RECVPKTINFO
+ int get_local_ip = 1;
+ return 0 == setsockopt(fd, IPPROTO_IPV6, IPV6_RECVPKTINFO, &get_local_ip,
+ sizeof(get_local_ip));
+#else
+ (void)fd;
+ return 1;
+#endif
+}
+
/* set a socket to close on exec */
int grpc_set_socket_cloexec(int fd, int close_on_exec) {
int oldflags = fcntl(fd, F_GETFD, 0);
diff --git a/src/core/lib/iomgr/socket_utils_linux.c b/src/core/lib/iomgr/socket_utils_linux.c
index e7dfe892ca..144e3110c8 100644
--- a/src/core/lib/iomgr/socket_utils_linux.c
+++ b/src/core/lib/iomgr/socket_utils_linux.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/socket_utils_posix.c b/src/core/lib/iomgr/socket_utils_posix.c
index b2fa00c5c1..57ae64c103 100644
--- a/src/core/lib/iomgr/socket_utils_posix.c
+++ b/src/core/lib/iomgr/socket_utils_posix.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/socket_utils_posix.h b/src/core/lib/iomgr/socket_utils_posix.h
index 063f298d72..a8f6e5e658 100644
--- a/src/core/lib/iomgr/socket_utils_posix.h
+++ b/src/core/lib/iomgr/socket_utils_posix.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -68,6 +68,16 @@ int grpc_ipv6_loopback_available(void);
If SO_NO_SIGPIPE is not available, returns 1. */
int grpc_set_socket_no_sigpipe_if_possible(int fd);
+/* Tries to set IP_PKTINFO if available on this platform.
+ Returns 1 on success, 0 on failure.
+ If IP_PKTINFO is not available, returns 1. */
+int grpc_set_socket_ip_pktinfo_if_possible(int fd);
+
+/* Tries to set IPV6_RECVPKTINFO if available on this platform.
+ Returns 1 on success, 0 on failure.
+ If IPV6_RECVPKTINFO is not available, returns 1. */
+int grpc_set_socket_ipv6_recvpktinfo_if_possible(int fd);
+
/* An enum to keep track of IPv4/IPv6 socket modes.
Currently, this information is only used when a socket is first created, but
diff --git a/src/core/lib/iomgr/socket_windows.c b/src/core/lib/iomgr/socket_windows.c
index 1023a6d4f8..ebd77e0372 100644
--- a/src/core/lib/iomgr/socket_windows.c
+++ b/src/core/lib/iomgr/socket_windows.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/socket_windows.h b/src/core/lib/iomgr/socket_windows.h
index 74447896c9..73c4384987 100644
--- a/src/core/lib/iomgr/socket_windows.h
+++ b/src/core/lib/iomgr/socket_windows.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/tcp_client.h b/src/core/lib/iomgr/tcp_client.h
index 6bbe26445a..a07e0b9f0c 100644
--- a/src/core/lib/iomgr/tcp_client.h
+++ b/src/core/lib/iomgr/tcp_client.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/tcp_client_posix.c b/src/core/lib/iomgr/tcp_client_posix.c
index b8ef643298..6430cb629f 100644
--- a/src/core/lib/iomgr/tcp_client_posix.c
+++ b/src/core/lib/iomgr/tcp_client_posix.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -47,9 +47,8 @@
#include <grpc/support/string_util.h>
#include <grpc/support/time.h>
+#include "src/core/lib/iomgr/ev_posix.h"
#include "src/core/lib/iomgr/iomgr_posix.h"
-#include "src/core/lib/iomgr/pollset_posix.h"
-#include "src/core/lib/iomgr/pollset_set_posix.h"
#include "src/core/lib/iomgr/sockaddr_utils.h"
#include "src/core/lib/iomgr/socket_utils_posix.h"
#include "src/core/lib/iomgr/tcp_posix.h"
@@ -140,7 +139,8 @@ static void on_writable(grpc_exec_ctx *exec_ctx, void *acp, bool success) {
if (success) {
do {
so_error_size = sizeof(so_error);
- err = getsockopt(fd->fd, SOL_SOCKET, SO_ERROR, &so_error, &so_error_size);
+ err = getsockopt(grpc_fd_wrapped_fd(fd), SOL_SOCKET, SO_ERROR, &so_error,
+ &so_error_size);
} while (err < 0 && errno == EINTR);
if (err < 0) {
gpr_log(GPR_ERROR, "failed to connect to '%s': getsockopt(ERROR): %s",
diff --git a/src/core/lib/iomgr/tcp_client_windows.c b/src/core/lib/iomgr/tcp_client_windows.c
index 86b8d58975..7d78beb15a 100644
--- a/src/core/lib/iomgr/tcp_client_windows.c
+++ b/src/core/lib/iomgr/tcp_client_windows.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -103,7 +103,8 @@ static void on_connect(grpc_exec_ctx *exec_ctx, void *acp, bool from_iocp) {
GPR_ASSERT(transfered_bytes == 0);
if (!wsa_success) {
char *utf8_message = gpr_format_message(WSAGetLastError());
- gpr_log(GPR_ERROR, "on_connect error: %s", utf8_message);
+ gpr_log(GPR_ERROR, "on_connect error connecting to '%s': %s",
+ ac->addr_name, utf8_message);
gpr_free(utf8_message);
} else {
*ep = grpc_tcp_create(ac->socket, ac->addr_name);
diff --git a/src/core/lib/iomgr/tcp_posix.c b/src/core/lib/iomgr/tcp_posix.c
index 1898d96901..7210aef5d5 100644
--- a/src/core/lib/iomgr/tcp_posix.c
+++ b/src/core/lib/iomgr/tcp_posix.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -52,8 +52,7 @@
#include <grpc/support/time.h>
#include "src/core/lib/debug/trace.h"
-#include "src/core/lib/iomgr/pollset_posix.h"
-#include "src/core/lib/iomgr/pollset_set_posix.h"
+#include "src/core/lib/iomgr/ev_posix.h"
#include "src/core/lib/profiling/timers.h"
#include "src/core/lib/support/string.h"
@@ -454,7 +453,7 @@ grpc_endpoint *grpc_tcp_create(grpc_fd *em_fd, size_t slice_size,
grpc_tcp *tcp = (grpc_tcp *)gpr_malloc(sizeof(grpc_tcp));
tcp->base.vtable = &vtable;
tcp->peer_string = gpr_strdup(peer_string);
- tcp->fd = em_fd->fd;
+ tcp->fd = grpc_fd_wrapped_fd(em_fd);
tcp->read_cb = NULL;
tcp->write_cb = NULL;
tcp->release_fd_cb = NULL;
diff --git a/src/core/lib/iomgr/tcp_posix.h b/src/core/lib/iomgr/tcp_posix.h
index 09c4436f1f..99125836d6 100644
--- a/src/core/lib/iomgr/tcp_posix.h
+++ b/src/core/lib/iomgr/tcp_posix.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -45,7 +45,7 @@
*/
#include "src/core/lib/iomgr/endpoint.h"
-#include "src/core/lib/iomgr/fd_posix.h"
+#include "src/core/lib/iomgr/ev_posix.h"
#define GRPC_TCP_DEFAULT_READ_SLICE_SIZE 8192
diff --git a/src/core/lib/iomgr/tcp_server.h b/src/core/lib/iomgr/tcp_server.h
index 81edb61997..99b9f29729 100644
--- a/src/core/lib/iomgr/tcp_server.h
+++ b/src/core/lib/iomgr/tcp_server.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/tcp_server_posix.c b/src/core/lib/iomgr/tcp_server_posix.c
index e9c7f4ef5c..aaeb384f6e 100644
--- a/src/core/lib/iomgr/tcp_server_posix.c
+++ b/src/core/lib/iomgr/tcp_server_posix.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -59,7 +59,6 @@
#include <grpc/support/string_util.h>
#include <grpc/support/sync.h>
#include <grpc/support/time.h>
-#include "src/core/lib/iomgr/pollset_posix.h"
#include "src/core/lib/iomgr/resolve_address.h"
#include "src/core/lib/iomgr/sockaddr_utils.h"
#include "src/core/lib/iomgr/socket_utils_posix.h"
diff --git a/src/core/lib/iomgr/tcp_server_windows.c b/src/core/lib/iomgr/tcp_server_windows.c
index 3db92aa41a..6940dec7b0 100644
--- a/src/core/lib/iomgr/tcp_server_windows.c
+++ b/src/core/lib/iomgr/tcp_server_windows.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/tcp_windows.c b/src/core/lib/iomgr/tcp_windows.c
index c1ce725f2c..7ee689a7e4 100644
--- a/src/core/lib/iomgr/tcp_windows.c
+++ b/src/core/lib/iomgr/tcp_windows.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/tcp_windows.h b/src/core/lib/iomgr/tcp_windows.h
index 7a9ebd85eb..a2f58eddd5 100644
--- a/src/core/lib/iomgr/tcp_windows.h
+++ b/src/core/lib/iomgr/tcp_windows.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/time_averaged_stats.c b/src/core/lib/iomgr/time_averaged_stats.c
index f24d68087e..da9cae6f28 100644
--- a/src/core/lib/iomgr/time_averaged_stats.c
+++ b/src/core/lib/iomgr/time_averaged_stats.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/time_averaged_stats.h b/src/core/lib/iomgr/time_averaged_stats.h
index 4a662e17ec..284b31f94a 100644
--- a/src/core/lib/iomgr/time_averaged_stats.h
+++ b/src/core/lib/iomgr/time_averaged_stats.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/timer.c b/src/core/lib/iomgr/timer.c
index 4748f9b270..713f15b69e 100644
--- a/src/core/lib/iomgr/timer.c
+++ b/src/core/lib/iomgr/timer.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/timer.h b/src/core/lib/iomgr/timer.h
index 54f301c5ed..a825d2a28b 100644
--- a/src/core/lib/iomgr/timer.h
+++ b/src/core/lib/iomgr/timer.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/timer_heap.c b/src/core/lib/iomgr/timer_heap.c
index d43b6ccf75..2ad9bb9cd2 100644
--- a/src/core/lib/iomgr/timer_heap.c
+++ b/src/core/lib/iomgr/timer_heap.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/timer_heap.h b/src/core/lib/iomgr/timer_heap.h
index d5112cf0de..576c20e09a 100644
--- a/src/core/lib/iomgr/timer_heap.h
+++ b/src/core/lib/iomgr/timer_heap.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/udp_server.c b/src/core/lib/iomgr/udp_server.c
index 06f5d3dc8b..24131179af 100644
--- a/src/core/lib/iomgr/udp_server.c
+++ b/src/core/lib/iomgr/udp_server.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -60,12 +60,10 @@
#include <grpc/support/string_util.h>
#include <grpc/support/sync.h>
#include <grpc/support/time.h>
-#include "src/core/lib/iomgr/fd_posix.h"
-#include "src/core/lib/iomgr/pollset_posix.h"
+#include "src/core/lib/iomgr/ev_posix.h"
#include "src/core/lib/iomgr/resolve_address.h"
#include "src/core/lib/iomgr/sockaddr_utils.h"
#include "src/core/lib/iomgr/socket_utils_posix.h"
-#include "src/core/lib/iomgr/unix_sockets_posix.h"
#include "src/core/lib/support/string.h"
#define INIT_PORT_CAP 2
@@ -208,8 +206,6 @@ static int prepare_socket(int fd, const struct sockaddr *addr,
size_t addr_len) {
struct sockaddr_storage sockname_temp;
socklen_t sockname_len;
- int get_local_ip;
- int rc;
if (fd < 0) {
goto error;
@@ -220,14 +216,9 @@ static int prepare_socket(int fd, const struct sockaddr *addr,
strerror(errno));
}
- get_local_ip = 1;
- rc = setsockopt(fd, IPPROTO_IP, IP_PKTINFO, &get_local_ip,
- sizeof(get_local_ip));
- if (rc == 0 && addr->sa_family == AF_INET6) {
-#if !defined(__APPLE__)
- rc = setsockopt(fd, IPPROTO_IPV6, IPV6_RECVPKTINFO, &get_local_ip,
- sizeof(get_local_ip));
-#endif
+ if (grpc_set_socket_ip_pktinfo_if_possible(fd) &&
+ addr->sa_family == AF_INET6) {
+ grpc_set_socket_ipv6_recvpktinfo_if_possible(fd);
}
GPR_ASSERT(addr_len < ~(socklen_t)0);
diff --git a/src/core/lib/iomgr/udp_server.h b/src/core/lib/iomgr/udp_server.h
index 316845ad66..d8cf957a22 100644
--- a/src/core/lib/iomgr/udp_server.h
+++ b/src/core/lib/iomgr/udp_server.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -35,7 +35,7 @@
#define GRPC_CORE_LIB_IOMGR_UDP_SERVER_H
#include "src/core/lib/iomgr/endpoint.h"
-#include "src/core/lib/iomgr/fd_posix.h"
+#include "src/core/lib/iomgr/ev_posix.h"
/* Forward decl of struct grpc_server */
/* This is not typedef'ed to avoid a typedef-redefinition error */
diff --git a/src/core/lib/iomgr/unix_sockets_posix_noop.c b/src/core/lib/iomgr/unix_sockets_posix_noop.c
index 06f6ee05e7..43e006e15e 100644
--- a/src/core/lib/iomgr/unix_sockets_posix_noop.c
+++ b/src/core/lib/iomgr/unix_sockets_posix_noop.c
@@ -35,7 +35,12 @@
#ifndef GPR_HAVE_UNIX_SOCKET
-void grpc_create_socketpair_if_unix(int sv[2]) {}
+void grpc_create_socketpair_if_unix(int sv[2]) {
+ // TODO: Either implement this for the non-Unix socket case or make
+ // sure that it is never called in any such case. Until then, leave an
+ // assertion to notify if this gets called inadvertently
+ GPR_ASSERT(0);
+}
grpc_resolved_addresses *grpc_resolve_unix_domain_address(const char *name) {
return NULL;
diff --git a/src/core/lib/iomgr/wakeup_fd_eventfd.c b/src/core/lib/iomgr/wakeup_fd_eventfd.c
index 41ded0ca4d..8a772add13 100644
--- a/src/core/lib/iomgr/wakeup_fd_eventfd.c
+++ b/src/core/lib/iomgr/wakeup_fd_eventfd.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/wakeup_fd_nospecial.c b/src/core/lib/iomgr/wakeup_fd_nospecial.c
index 39defa65c6..cb2f707dc5 100644
--- a/src/core/lib/iomgr/wakeup_fd_nospecial.c
+++ b/src/core/lib/iomgr/wakeup_fd_nospecial.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/wakeup_fd_pipe.c b/src/core/lib/iomgr/wakeup_fd_pipe.c
index 820919e4dd..e9b9a0119f 100644
--- a/src/core/lib/iomgr/wakeup_fd_pipe.c
+++ b/src/core/lib/iomgr/wakeup_fd_pipe.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/wakeup_fd_pipe.h b/src/core/lib/iomgr/wakeup_fd_pipe.h
index bbdb1fc448..8972efc270 100644
--- a/src/core/lib/iomgr/wakeup_fd_pipe.h
+++ b/src/core/lib/iomgr/wakeup_fd_pipe.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/wakeup_fd_posix.c b/src/core/lib/iomgr/wakeup_fd_posix.c
index c4d174fb34..525369c356 100644
--- a/src/core/lib/iomgr/wakeup_fd_posix.c
+++ b/src/core/lib/iomgr/wakeup_fd_posix.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/wakeup_fd_posix.h b/src/core/lib/iomgr/wakeup_fd_posix.h
index 20988d5fd3..6b069c1837 100644
--- a/src/core/lib/iomgr/wakeup_fd_posix.h
+++ b/src/core/lib/iomgr/wakeup_fd_posix.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/workqueue.h b/src/core/lib/iomgr/workqueue.h
index 9c420c57de..3e2b223670 100644
--- a/src/core/lib/iomgr/workqueue.h
+++ b/src/core/lib/iomgr/workqueue.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/workqueue_posix.c b/src/core/lib/iomgr/workqueue_posix.c
index 76830ef12d..80e7a0b206 100644
--- a/src/core/lib/iomgr/workqueue_posix.c
+++ b/src/core/lib/iomgr/workqueue_posix.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -43,8 +43,7 @@
#include <grpc/support/log.h>
#include <grpc/support/useful.h>
-#include "src/core/lib/iomgr/fd_posix.h"
-#include "src/core/lib/iomgr/pollset_posix.h"
+#include "src/core/lib/iomgr/ev_posix.h"
static void on_readable(grpc_exec_ctx *exec_ctx, void *arg, bool success);
diff --git a/src/core/lib/iomgr/workqueue_posix.h b/src/core/lib/iomgr/workqueue_posix.h
index 956de8fb27..dcb47e7b59 100644
--- a/src/core/lib/iomgr/workqueue_posix.h
+++ b/src/core/lib/iomgr/workqueue_posix.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/workqueue_windows.c b/src/core/lib/iomgr/workqueue_windows.c
index 6697f93498..c3c0446a57 100644
--- a/src/core/lib/iomgr/workqueue_windows.c
+++ b/src/core/lib/iomgr/workqueue_windows.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/iomgr/workqueue_windows.h b/src/core/lib/iomgr/workqueue_windows.h
index 8e6980b6d9..e5d59130bb 100644
--- a/src/core/lib/iomgr/workqueue_windows.h
+++ b/src/core/lib/iomgr/workqueue_windows.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/json/json.c b/src/core/lib/json/json.c
index 9793045d91..5b583a1f2e 100644
--- a/src/core/lib/json/json.c
+++ b/src/core/lib/json/json.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/json/json.h b/src/core/lib/json/json.h
index 41d87dd5ce..681df4bb77 100644
--- a/src/core/lib/json/json.h
+++ b/src/core/lib/json/json.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/json/json_common.h b/src/core/lib/json/json_common.h
index ce980040f8..fa13088be9 100644
--- a/src/core/lib/json/json_common.h
+++ b/src/core/lib/json/json_common.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/json/json_reader.c b/src/core/lib/json/json_reader.c
index 0807f029ce..bc04bccc65 100644
--- a/src/core/lib/json/json_reader.c
+++ b/src/core/lib/json/json_reader.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -180,6 +180,13 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader *reader) {
case GRPC_JSON_STATE_VALUE_NUMBER_WITH_DECIMAL:
case GRPC_JSON_STATE_VALUE_NUMBER_ZERO:
case GRPC_JSON_STATE_VALUE_NUMBER_EPM:
+ if (reader->depth == 0) {
+ return GRPC_JSON_PARSE_ERROR;
+ } else if ((c == '}') && !reader->in_object) {
+ return GRPC_JSON_PARSE_ERROR;
+ } else if ((c == ']') && !reader->in_array) {
+ return GRPC_JSON_PARSE_ERROR;
+ }
success = (uint32_t)json_reader_set_number(reader);
if (!success) return GRPC_JSON_PARSE_ERROR;
json_reader_string_clear(reader);
@@ -195,8 +202,10 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader *reader) {
}
if (reader->in_object) {
reader->state = GRPC_JSON_STATE_OBJECT_KEY_BEGIN;
- } else {
+ } else if (reader->in_array) {
reader->state = GRPC_JSON_STATE_VALUE_BEGIN;
+ } else {
+ return GRPC_JSON_PARSE_ERROR;
}
} else {
if (reader->depth-- == 0) return GRPC_JSON_PARSE_ERROR;
@@ -280,13 +289,14 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader *reader) {
break;
case GRPC_JSON_STATE_OBJECT_KEY_STRING:
- GPR_ASSERT(reader->unicode_high_surrogate == 0);
+ if (reader->unicode_high_surrogate != 0)
+ return GRPC_JSON_PARSE_ERROR;
if (c == '"') {
reader->state = GRPC_JSON_STATE_OBJECT_KEY_END;
json_reader_set_key(reader);
json_reader_string_clear(reader);
} else {
- if (c <= 0x001f) return GRPC_JSON_PARSE_ERROR;
+ if (c < 32) return GRPC_JSON_PARSE_ERROR;
json_reader_string_add_char(reader, c);
}
break;
@@ -362,6 +372,8 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader *reader) {
reader->in_object = 0;
reader->in_array = 1;
break;
+ default:
+ return GRPC_JSON_PARSE_ERROR;
}
break;
diff --git a/src/core/lib/json/json_reader.h b/src/core/lib/json/json_reader.h
index 37a838889d..e0322c5507 100644
--- a/src/core/lib/json/json_reader.h
+++ b/src/core/lib/json/json_reader.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/json/json_string.c b/src/core/lib/json/json_string.c
index 8e6f1253dc..4af7ee7179 100644
--- a/src/core/lib/json/json_string.c
+++ b/src/core/lib/json/json_string.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/json/json_writer.c b/src/core/lib/json/json_writer.c
index d614a72fc4..b6a17f41e8 100644
--- a/src/core/lib/json/json_writer.c
+++ b/src/core/lib/json/json_writer.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/json/json_writer.h b/src/core/lib/json/json_writer.h
index f90e79cd74..faeb41d031 100644
--- a/src/core/lib/json/json_writer.h
+++ b/src/core/lib/json/json_writer.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/profiling/basic_timers.c b/src/core/lib/profiling/basic_timers.c
index 2b17cb2dc8..0a4ae3057a 100644
--- a/src/core/lib/profiling/basic_timers.c
+++ b/src/core/lib/profiling/basic_timers.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/profiling/stap_timers.c b/src/core/lib/profiling/stap_timers.c
index f55c1a569a..25e38e6d99 100644
--- a/src/core/lib/profiling/stap_timers.c
+++ b/src/core/lib/profiling/stap_timers.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/profiling/timers.h b/src/core/lib/profiling/timers.h
index 1303593ffb..c8567e8137 100644
--- a/src/core/lib/profiling/timers.h
+++ b/src/core/lib/profiling/timers.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/security/auth_filters.h b/src/core/lib/security/auth_filters.h
index 162b60e2c8..7fb56c3f3a 100644
--- a/src/core/lib/security/auth_filters.h
+++ b/src/core/lib/security/auth_filters.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/security/b64.c b/src/core/lib/security/b64.c
index 1d3879534c..87f0e05280 100644
--- a/src/core/lib/security/b64.c
+++ b/src/core/lib/security/b64.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/security/b64.h b/src/core/lib/security/b64.h
index 0bf372a1e7..c515e7af2c 100644
--- a/src/core/lib/security/b64.h
+++ b/src/core/lib/security/b64.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/security/client_auth_filter.c b/src/core/lib/security/client_auth_filter.c
index b9e5bf0339..943b1da85c 100644
--- a/src/core/lib/security/client_auth_filter.c
+++ b/src/core/lib/security/client_auth_filter.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -172,7 +172,7 @@ static void send_security_metadata(grpc_exec_ctx *exec_ctx,
calld->creds = grpc_composite_call_credentials_create(channel_call_creds,
ctx->creds, NULL);
if (calld->creds == NULL) {
- bubble_up_error(exec_ctx, elem, GRPC_STATUS_INVALID_ARGUMENT,
+ bubble_up_error(exec_ctx, elem, GRPC_STATUS_INTERNAL,
"Incompatible credentials set on channel and call.");
return;
}
@@ -201,7 +201,7 @@ static void on_host_checked(grpc_exec_ctx *exec_ctx, void *user_data,
char *error_msg;
gpr_asprintf(&error_msg, "Invalid host %s set in :authority metadata.",
grpc_mdstr_as_c_string(calld->host));
- bubble_up_error(exec_ctx, elem, GRPC_STATUS_INVALID_ARGUMENT, error_msg);
+ bubble_up_error(exec_ctx, elem, GRPC_STATUS_INTERNAL, error_msg);
gpr_free(error_msg);
}
}
diff --git a/src/core/lib/security/credentials.c b/src/core/lib/security/credentials.c
index 99a07e5c13..2c7d31519c 100644
--- a/src/core/lib/security/credentials.c
+++ b/src/core/lib/security/credentials.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/security/credentials.h b/src/core/lib/security/credentials.h
index 7168b98942..0373ceaa3f 100644
--- a/src/core/lib/security/credentials.h
+++ b/src/core/lib/security/credentials.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/security/credentials_metadata.c b/src/core/lib/security/credentials_metadata.c
index c3bfcb11b5..bd00194278 100644
--- a/src/core/lib/security/credentials_metadata.c
+++ b/src/core/lib/security/credentials_metadata.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/security/credentials_posix.c b/src/core/lib/security/credentials_posix.c
index b758cd0a1a..a07de182a0 100644
--- a/src/core/lib/security/credentials_posix.c
+++ b/src/core/lib/security/credentials_posix.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/security/credentials_win32.c b/src/core/lib/security/credentials_win32.c
index a225ab0d7d..d29847af38 100644
--- a/src/core/lib/security/credentials_win32.c
+++ b/src/core/lib/security/credentials_win32.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/security/google_default_credentials.c b/src/core/lib/security/google_default_credentials.c
index 5c342288cc..236f1d7fa7 100644
--- a/src/core/lib/security/google_default_credentials.c
+++ b/src/core/lib/security/google_default_credentials.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/security/handshake.c b/src/core/lib/security/handshake.c
index adb6d7fe4e..d5fe0c7b7d 100644
--- a/src/core/lib/security/handshake.c
+++ b/src/core/lib/security/handshake.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/security/handshake.h b/src/core/lib/security/handshake.h
index b5d7bb3282..f34476ed49 100644
--- a/src/core/lib/security/handshake.h
+++ b/src/core/lib/security/handshake.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/security/json_token.c b/src/core/lib/security/json_token.c
index 97054286d9..d5bc2c8d60 100644
--- a/src/core/lib/security/json_token.c
+++ b/src/core/lib/security/json_token.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/security/json_token.h b/src/core/lib/security/json_token.h
index 376fb03875..123fa652fd 100644
--- a/src/core/lib/security/json_token.h
+++ b/src/core/lib/security/json_token.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/security/jwt_verifier.c b/src/core/lib/security/jwt_verifier.c
index 460b92f9a0..0e012294de 100644
--- a/src/core/lib/security/jwt_verifier.c
+++ b/src/core/lib/security/jwt_verifier.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/security/jwt_verifier.h b/src/core/lib/security/jwt_verifier.h
index 28a9eff048..98a4f6b116 100644
--- a/src/core/lib/security/jwt_verifier.h
+++ b/src/core/lib/security/jwt_verifier.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/security/secure_endpoint.c b/src/core/lib/security/secure_endpoint.c
index e233b081ef..27b0e98910 100644
--- a/src/core/lib/security/secure_endpoint.c
+++ b/src/core/lib/security/secure_endpoint.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/security/secure_endpoint.h b/src/core/lib/security/secure_endpoint.h
index 57bd160a52..ff1c6639de 100644
--- a/src/core/lib/security/secure_endpoint.h
+++ b/src/core/lib/security/secure_endpoint.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/security/security_connector.c b/src/core/lib/security/security_connector.c
index 5474bc3a9e..4d8c5dd82d 100644
--- a/src/core/lib/security/security_connector.c
+++ b/src/core/lib/security/security_connector.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -42,6 +42,7 @@
#include <grpc/support/slice_buffer.h>
#include <grpc/support/string_util.h>
+#include "src/core/ext/transport/chttp2/transport/alpn.h"
#include "src/core/lib/security/credentials.h"
#include "src/core/lib/security/handshake.h"
#include "src/core/lib/security/secure_endpoint.h"
@@ -49,7 +50,6 @@
#include "src/core/lib/support/env.h"
#include "src/core/lib/support/load_file.h"
#include "src/core/lib/support/string.h"
-#include "src/core/lib/transport/chttp2/alpn.h"
#include "src/core/lib/tsi/fake_transport_security.h"
#include "src/core/lib/tsi/ssl_transport_security.h"
diff --git a/src/core/lib/security/security_connector.h b/src/core/lib/security/security_connector.h
index d50091c628..c9e262b1ad 100644
--- a/src/core/lib/security/security_connector.h
+++ b/src/core/lib/security/security_connector.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/security/security_context.c b/src/core/lib/security/security_context.c
index 0e66373bd8..343e0b5b8b 100644
--- a/src/core/lib/security/security_context.c
+++ b/src/core/lib/security/security_context.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/security/security_context.h b/src/core/lib/security/security_context.h
index e9e4e503bc..81161ec47d 100644
--- a/src/core/lib/security/security_context.h
+++ b/src/core/lib/security/security_context.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/security/server_auth_filter.c b/src/core/lib/security/server_auth_filter.c
index 158cde0e2c..7844dc87cb 100644
--- a/src/core/lib/security/server_auth_filter.c
+++ b/src/core/lib/security/server_auth_filter.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/alloc.c b/src/core/lib/support/alloc.c
index 27fa6a95ed..020917f79c 100644
--- a/src/core/lib/support/alloc.c
+++ b/src/core/lib/support/alloc.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/avl.c b/src/core/lib/support/avl.c
index f378b3ee17..8d3ce23e6c 100644
--- a/src/core/lib/support/avl.c
+++ b/src/core/lib/support/avl.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/block_annotate.h b/src/core/lib/support/block_annotate.h
index bd3071655e..8fb380241f 100644
--- a/src/core/lib/support/block_annotate.h
+++ b/src/core/lib/support/block_annotate.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/cmdline.c b/src/core/lib/support/cmdline.c
index 35c4990b22..d47498676d 100644
--- a/src/core/lib/support/cmdline.c
+++ b/src/core/lib/support/cmdline.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/cpu_iphone.c b/src/core/lib/support/cpu_iphone.c
index e83191bada..82b49b47bc 100644
--- a/src/core/lib/support/cpu_iphone.c
+++ b/src/core/lib/support/cpu_iphone.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/cpu_linux.c b/src/core/lib/support/cpu_linux.c
index 5597df2d03..d6f7e7d3da 100644
--- a/src/core/lib/support/cpu_linux.c
+++ b/src/core/lib/support/cpu_linux.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/cpu_posix.c b/src/core/lib/support/cpu_posix.c
index e508ddd8ca..667bde7cad 100644
--- a/src/core/lib/support/cpu_posix.c
+++ b/src/core/lib/support/cpu_posix.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/cpu_windows.c b/src/core/lib/support/cpu_windows.c
index 0f84a9e5ea..ce32eb0a9d 100644
--- a/src/core/lib/support/cpu_windows.c
+++ b/src/core/lib/support/cpu_windows.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/env.h b/src/core/lib/support/env.h
index ddc4ee3c6d..ec3959bc6e 100644
--- a/src/core/lib/support/env.h
+++ b/src/core/lib/support/env.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/env_linux.c b/src/core/lib/support/env_linux.c
index a86133e6c3..2436eb20b0 100644
--- a/src/core/lib/support/env_linux.c
+++ b/src/core/lib/support/env_linux.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/env_posix.c b/src/core/lib/support/env_posix.c
index 1b57b094a9..ff47630443 100644
--- a/src/core/lib/support/env_posix.c
+++ b/src/core/lib/support/env_posix.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/env_win32.c b/src/core/lib/support/env_win32.c
index 566feee49e..ef84c941df 100644
--- a/src/core/lib/support/env_win32.c
+++ b/src/core/lib/support/env_win32.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/histogram.c b/src/core/lib/support/histogram.c
index 62227be1a6..7b016bbc78 100644
--- a/src/core/lib/support/histogram.c
+++ b/src/core/lib/support/histogram.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/host_port.c b/src/core/lib/support/host_port.c
index e03f6241ff..f19bdbc835 100644
--- a/src/core/lib/support/host_port.c
+++ b/src/core/lib/support/host_port.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/load_file.c b/src/core/lib/support/load_file.c
index 0cecd5edd5..f30aacdd4f 100644
--- a/src/core/lib/support/load_file.c
+++ b/src/core/lib/support/load_file.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/load_file.h b/src/core/lib/support/load_file.h
index fe030c967e..9a4b27942e 100644
--- a/src/core/lib/support/load_file.h
+++ b/src/core/lib/support/load_file.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/log.c b/src/core/lib/support/log.c
index cd6a0726cf..04156a5b1f 100644
--- a/src/core/lib/support/log.c
+++ b/src/core/lib/support/log.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/log_android.c b/src/core/lib/support/log_android.c
index 640c9d7099..94c8100fd7 100644
--- a/src/core/lib/support/log_android.c
+++ b/src/core/lib/support/log_android.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/log_linux.c b/src/core/lib/support/log_linux.c
index e60512c526..6d4b63bbe0 100644
--- a/src/core/lib/support/log_linux.c
+++ b/src/core/lib/support/log_linux.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/log_posix.c b/src/core/lib/support/log_posix.c
index 7429dd0a2c..6ae6320767 100644
--- a/src/core/lib/support/log_posix.c
+++ b/src/core/lib/support/log_posix.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/log_win32.c b/src/core/lib/support/log_win32.c
index cec99440a5..ba78497a0a 100644
--- a/src/core/lib/support/log_win32.c
+++ b/src/core/lib/support/log_win32.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/murmur_hash.c b/src/core/lib/support/murmur_hash.c
index 97832f1510..5711fff0c0 100644
--- a/src/core/lib/support/murmur_hash.c
+++ b/src/core/lib/support/murmur_hash.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/murmur_hash.h b/src/core/lib/support/murmur_hash.h
index e54cdf2592..6d282ff358 100644
--- a/src/core/lib/support/murmur_hash.h
+++ b/src/core/lib/support/murmur_hash.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/slice.c b/src/core/lib/support/slice.c
index cf3953ce4e..b9a7c77bda 100644
--- a/src/core/lib/support/slice.c
+++ b/src/core/lib/support/slice.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/slice_buffer.c b/src/core/lib/support/slice_buffer.c
index 563e659dd7..66f111d767 100644
--- a/src/core/lib/support/slice_buffer.c
+++ b/src/core/lib/support/slice_buffer.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/stack_lockfree.c b/src/core/lib/support/stack_lockfree.c
index de80486132..9d7c9e5a38 100644
--- a/src/core/lib/support/stack_lockfree.c
+++ b/src/core/lib/support/stack_lockfree.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/stack_lockfree.h b/src/core/lib/support/stack_lockfree.h
index a030a01d1f..35ef7c2959 100644
--- a/src/core/lib/support/stack_lockfree.h
+++ b/src/core/lib/support/stack_lockfree.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/string.c b/src/core/lib/support/string.c
index 365d861de3..a2ab6c5f1f 100644
--- a/src/core/lib/support/string.c
+++ b/src/core/lib/support/string.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/string.h b/src/core/lib/support/string.h
index 68c02878e0..ea58610914 100644
--- a/src/core/lib/support/string.h
+++ b/src/core/lib/support/string.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/string_posix.c b/src/core/lib/support/string_posix.c
index a73b3106a5..c804ed5ded 100644
--- a/src/core/lib/support/string_posix.c
+++ b/src/core/lib/support/string_posix.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/string_win32.c b/src/core/lib/support/string_win32.c
index 16b7e37f2a..a2f9857356 100644
--- a/src/core/lib/support/string_win32.c
+++ b/src/core/lib/support/string_win32.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/string_win32.h b/src/core/lib/support/string_win32.h
index f47d567715..ff4a694ca9 100644
--- a/src/core/lib/support/string_win32.h
+++ b/src/core/lib/support/string_win32.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/subprocess_posix.c b/src/core/lib/support/subprocess_posix.c
index 662e7dd999..4f4de9298e 100644
--- a/src/core/lib/support/subprocess_posix.c
+++ b/src/core/lib/support/subprocess_posix.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/sync.c b/src/core/lib/support/sync.c
index 800cf20287..44b83f8175 100644
--- a/src/core/lib/support/sync.c
+++ b/src/core/lib/support/sync.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/sync_posix.c b/src/core/lib/support/sync_posix.c
index a5e59db8c7..dcb0969a4e 100644
--- a/src/core/lib/support/sync_posix.c
+++ b/src/core/lib/support/sync_posix.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/sync_win32.c b/src/core/lib/support/sync_win32.c
index 41998ebcb6..470a9f9704 100644
--- a/src/core/lib/support/sync_win32.c
+++ b/src/core/lib/support/sync_win32.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/thd.c b/src/core/lib/support/thd.c
index d59aace38d..41daeb5d0e 100644
--- a/src/core/lib/support/thd.c
+++ b/src/core/lib/support/thd.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/thd_internal.h b/src/core/lib/support/thd_internal.h
index f269a3249e..975d5537cc 100644
--- a/src/core/lib/support/thd_internal.h
+++ b/src/core/lib/support/thd_internal.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/thd_posix.c b/src/core/lib/support/thd_posix.c
index 1c703844b4..2fc23bffaf 100644
--- a/src/core/lib/support/thd_posix.c
+++ b/src/core/lib/support/thd_posix.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/thd_win32.c b/src/core/lib/support/thd_win32.c
index 630eb7f625..6deb3140eb 100644
--- a/src/core/lib/support/thd_win32.c
+++ b/src/core/lib/support/thd_win32.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/time.c b/src/core/lib/support/time.c
index 0e2c8fcf1a..57f8331194 100644
--- a/src/core/lib/support/time.c
+++ b/src/core/lib/support/time.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/time_posix.c b/src/core/lib/support/time_posix.c
index fcfab2f2fa..f5f62dadc6 100644
--- a/src/core/lib/support/time_posix.c
+++ b/src/core/lib/support/time_posix.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/time_precise.c b/src/core/lib/support/time_precise.c
index 31ac47e0f8..a2cf74bc84 100644
--- a/src/core/lib/support/time_precise.c
+++ b/src/core/lib/support/time_precise.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/time_precise.h b/src/core/lib/support/time_precise.h
index e1faee1f9f..30818d04b9 100644
--- a/src/core/lib/support/time_precise.h
+++ b/src/core/lib/support/time_precise.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/time_win32.c b/src/core/lib/support/time_win32.c
index a6ac003fb8..f7acbd14a6 100644
--- a/src/core/lib/support/time_win32.c
+++ b/src/core/lib/support/time_win32.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/tls_pthread.c b/src/core/lib/support/tls_pthread.c
index bdc7ed14ae..9683a6e547 100644
--- a/src/core/lib/support/tls_pthread.c
+++ b/src/core/lib/support/tls_pthread.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/tmpfile.h b/src/core/lib/support/tmpfile.h
index 4fec2076e3..059142ab0f 100644
--- a/src/core/lib/support/tmpfile.h
+++ b/src/core/lib/support/tmpfile.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/tmpfile_posix.c b/src/core/lib/support/tmpfile_posix.c
index 743f45e1bc..9e0e7ad808 100644
--- a/src/core/lib/support/tmpfile_posix.c
+++ b/src/core/lib/support/tmpfile_posix.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/support/tmpfile_win32.c b/src/core/lib/support/tmpfile_win32.c
index 05d92b6036..0cb2904f8d 100644
--- a/src/core/lib/support/tmpfile_win32.c
+++ b/src/core/lib/support/tmpfile_win32.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/alarm.c b/src/core/lib/surface/alarm.c
index 368683378e..2cf2f00b31 100644
--- a/src/core/lib/surface/alarm.c
+++ b/src/core/lib/surface/alarm.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/api_trace.c b/src/core/lib/surface/api_trace.c
index 3702c024db..79e3e5ca9b 100644
--- a/src/core/lib/surface/api_trace.c
+++ b/src/core/lib/surface/api_trace.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/api_trace.h b/src/core/lib/surface/api_trace.h
index b50011c9e5..c60aaba5e9 100644
--- a/src/core/lib/surface/api_trace.h
+++ b/src/core/lib/surface/api_trace.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/byte_buffer.c b/src/core/lib/surface/byte_buffer.c
index 314a67dfcc..a093a37af3 100644
--- a/src/core/lib/surface/byte_buffer.c
+++ b/src/core/lib/surface/byte_buffer.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/byte_buffer_reader.c b/src/core/lib/surface/byte_buffer_reader.c
index 7248f5fe71..809fd5f1fa 100644
--- a/src/core/lib/surface/byte_buffer_reader.c
+++ b/src/core/lib/surface/byte_buffer_reader.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/call.c b/src/core/lib/surface/call.c
index d63a4a7401..37cc724b53 100644
--- a/src/core/lib/surface/call.c
+++ b/src/core/lib/surface/call.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -174,6 +174,9 @@ struct grpc_call {
/* Received call statuses from various sources */
received_status status[STATUS_SOURCE_COUNT];
+ /* Call stats: only valid after trailing metadata received */
+ grpc_transport_stream_stats stats;
+
/* Compression algorithm for the call */
grpc_compression_algorithm compression_algorithm;
/* Supported encodings (compression algorithms), a bitset */
@@ -909,7 +912,7 @@ static void set_cancelled_value(grpc_status_code status, void *dest) {
*(int *)dest = (status != GRPC_STATUS_OK);
}
-static int are_write_flags_valid(uint32_t flags) {
+static bool are_write_flags_valid(uint32_t flags) {
/* check that only bits in GRPC_WRITE_(INTERNAL?)_USED_MASK are set */
const uint32_t allowed_write_positions =
(GRPC_WRITE_USED_MASK | GRPC_WRITE_INTERNAL_USED_MASK);
@@ -917,6 +920,15 @@ static int are_write_flags_valid(uint32_t flags) {
return !(flags & invalid_positions);
}
+static bool are_initial_metadata_flags_valid(uint32_t flags, bool is_client) {
+ /* check that only bits in GRPC_WRITE_(INTERNAL?)_USED_MASK are set */
+ uint32_t invalid_positions = ~GRPC_INITIAL_METADATA_USED_MASK;
+ if (!is_client) {
+ invalid_positions |= GRPC_INITIAL_METADATA_IDEMPOTENT_REQUEST;
+ }
+ return !(flags & invalid_positions);
+}
+
static batch_control *allocate_batch_control(grpc_call *call) {
size_t i;
for (i = 0; i < MAX_CONCURRENT_BATCHES; i++) {
@@ -1196,7 +1208,7 @@ static grpc_call_error call_start_batch(grpc_exec_ctx *exec_ctx,
switch (op->op) {
case GRPC_OP_SEND_INITIAL_METADATA:
/* Flag validation: currently allow no flags */
- if (op->flags != 0) {
+ if (!are_initial_metadata_flags_valid(op->flags, call->is_client)) {
error = GRPC_CALL_ERROR_INVALID_FLAGS;
goto done_with_error;
}
@@ -1220,6 +1232,8 @@ static grpc_call_error call_start_batch(grpc_exec_ctx *exec_ctx,
call->metadata_batch[0][0].deadline = call->send_deadline;
stream_op.send_initial_metadata =
&call->metadata_batch[0 /* is_receiving */][0 /* is_trailing */];
+ stream_op.send_idempotent_request =
+ (op->flags & GRPC_INITIAL_METADATA_IDEMPOTENT_REQUEST) != 0;
break;
case GRPC_OP_SEND_MESSAGE:
if (!are_write_flags_valid(op->flags)) {
@@ -1371,6 +1385,7 @@ static grpc_call_error call_start_batch(grpc_exec_ctx *exec_ctx,
bctl->recv_final_op = 1;
stream_op.recv_trailing_metadata =
&call->metadata_batch[1 /* is_receiving */][1 /* is_trailing */];
+ stream_op.collect_stats = &call->stats;
break;
case GRPC_OP_RECV_CLOSE_ON_SERVER:
/* Flag validation: currently allow no flags */
@@ -1392,6 +1407,7 @@ static grpc_call_error call_start_batch(grpc_exec_ctx *exec_ctx,
bctl->recv_final_op = 1;
stream_op.recv_trailing_metadata =
&call->metadata_batch[1 /* is_receiving */][1 /* is_trailing */];
+ stream_op.collect_stats = &call->stats;
break;
}
}
diff --git a/src/core/lib/surface/call.h b/src/core/lib/surface/call.h
index e2e75865be..2725e060b8 100644
--- a/src/core/lib/surface/call.h
+++ b/src/core/lib/surface/call.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/call_details.c b/src/core/lib/surface/call_details.c
index 08f606d84a..fe73da3f55 100644
--- a/src/core/lib/surface/call_details.c
+++ b/src/core/lib/surface/call_details.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/call_log_batch.c b/src/core/lib/surface/call_log_batch.c
index bc5a2ffb65..a6d1d5149f 100644
--- a/src/core/lib/surface/call_log_batch.c
+++ b/src/core/lib/surface/call_log_batch.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/call_test_only.h b/src/core/lib/surface/call_test_only.h
index 400214189e..47088991d3 100644
--- a/src/core/lib/surface/call_test_only.h
+++ b/src/core/lib/surface/call_test_only.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/channel.c b/src/core/lib/surface/channel.c
index d815daa70c..06f991b085 100644
--- a/src/core/lib/surface/channel.c
+++ b/src/core/lib/surface/channel.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/channel.h b/src/core/lib/surface/channel.h
index 09de0fccc9..640fd7e137 100644
--- a/src/core/lib/surface/channel.h
+++ b/src/core/lib/surface/channel.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/channel_connectivity.c b/src/core/lib/surface/channel_connectivity.c
index 2f5d763e70..9a9ee422c2 100644
--- a/src/core/lib/surface/channel_connectivity.c
+++ b/src/core/lib/surface/channel_connectivity.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/channel_ping.c b/src/core/lib/surface/channel_ping.c
index dd862cdadd..5a50698695 100644
--- a/src/core/lib/surface/channel_ping.c
+++ b/src/core/lib/surface/channel_ping.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/channel_stack_type.h b/src/core/lib/surface/channel_stack_type.h
index 16608fa386..4eea4f1b01 100644
--- a/src/core/lib/surface/channel_stack_type.h
+++ b/src/core/lib/surface/channel_stack_type.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/completion_queue.c b/src/core/lib/surface/completion_queue.c
index a0d7002053..5ec8808b50 100644
--- a/src/core/lib/surface/completion_queue.c
+++ b/src/core/lib/surface/completion_queue.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/completion_queue.h b/src/core/lib/surface/completion_queue.h
index 35591cb6f4..eef82cf014 100644
--- a/src/core/lib/surface/completion_queue.h
+++ b/src/core/lib/surface/completion_queue.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/event_string.c b/src/core/lib/surface/event_string.c
index 360c718a17..1abc6ebf8c 100644
--- a/src/core/lib/surface/event_string.c
+++ b/src/core/lib/surface/event_string.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/event_string.h b/src/core/lib/surface/event_string.h
index 577e9c718f..bc1464380d 100644
--- a/src/core/lib/surface/event_string.h
+++ b/src/core/lib/surface/event_string.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/init.c b/src/core/lib/surface/init.c
index dcb9c62d36..aca4ce9d07 100644
--- a/src/core/lib/surface/init.c
+++ b/src/core/lib/surface/init.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -39,20 +39,15 @@
#include <grpc/grpc.h>
#include <grpc/support/alloc.h>
#include <grpc/support/time.h>
-/* TODO(ctiller): find another way? - better not to include census here */
-#include "src/core/lib/census/grpc_plugin.h"
+#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/channel/client_channel.h"
#include "src/core/lib/channel/compress_filter.h"
#include "src/core/lib/channel/connected_channel.h"
#include "src/core/lib/channel/http_client_filter.h"
#include "src/core/lib/channel/http_server_filter.h"
-#include "src/core/lib/client_config/lb_policies/pick_first.h"
-#include "src/core/lib/client_config/lb_policies/round_robin.h"
#include "src/core/lib/client_config/lb_policy_registry.h"
#include "src/core/lib/client_config/resolver_registry.h"
-#include "src/core/lib/client_config/resolvers/dns_resolver.h"
-#include "src/core/lib/client_config/resolvers/sockaddr_resolver.h"
#include "src/core/lib/client_config/subchannel.h"
#include "src/core/lib/client_config/subchannel_index.h"
#include "src/core/lib/debug/trace.h"
@@ -67,7 +62,6 @@
#include "src/core/lib/surface/lame_client.h"
#include "src/core/lib/surface/server.h"
#include "src/core/lib/surface/surface_trace.h"
-#include "src/core/lib/transport/chttp2_transport.h"
#include "src/core/lib/transport/connectivity_state.h"
#include "src/core/lib/transport/transport_impl.h"
@@ -75,6 +69,9 @@
#define GRPC_DEFAULT_NAME_PREFIX "dns:///"
#endif
+/* (generated) built in registry of plugins */
+extern void grpc_register_built_in_plugins(void);
+
#define MAX_PLUGINS 128
static gpr_once g_basic_init = GPR_ONCE_INIT;
@@ -83,8 +80,7 @@ static int g_initializations;
static void do_basic_init(void) {
gpr_mu_init(&g_init_mu);
- /* TODO(ctiller): ideally remove this strict linkage */
- grpc_register_plugin(census_grpc_plugin_init, census_grpc_plugin_destroy);
+ grpc_register_built_in_plugins();
g_initializations = 0;
}
@@ -165,16 +161,8 @@ void grpc_init(void) {
gpr_time_init();
grpc_mdctx_global_init();
grpc_channel_init_init();
- grpc_lb_policy_registry_init(grpc_pick_first_lb_factory_create());
- grpc_register_lb_policy(grpc_pick_first_lb_factory_create());
- grpc_register_lb_policy(grpc_round_robin_lb_factory_create());
+ grpc_lb_policy_registry_init();
grpc_resolver_registry_init(GRPC_DEFAULT_NAME_PREFIX);
- grpc_register_resolver_type(grpc_dns_resolver_factory_create());
- grpc_register_resolver_type(grpc_ipv4_resolver_factory_create());
- grpc_register_resolver_type(grpc_ipv6_resolver_factory_create());
-#ifdef GPR_POSIX_SOCKET
- grpc_register_resolver_type(grpc_unix_resolver_factory_create());
-#endif
grpc_register_tracer("api", &grpc_api_trace);
grpc_register_tracer("channel", &grpc_trace_channel);
grpc_register_tracer("http", &grpc_http_trace);
diff --git a/src/core/lib/surface/init.h b/src/core/lib/surface/init.h
index 10e2a5896e..b1bf57c10d 100644
--- a/src/core/lib/surface/init.h
+++ b/src/core/lib/surface/init.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/init_secure.c b/src/core/lib/surface/init_secure.c
index d3c2f645a7..3fda2c9e1e 100644
--- a/src/core/lib/surface/init_secure.c
+++ b/src/core/lib/surface/init_secure.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/init_unsecure.c b/src/core/lib/surface/init_unsecure.c
index 243c005d86..f952739e0a 100644
--- a/src/core/lib/surface/init_unsecure.c
+++ b/src/core/lib/surface/init_unsecure.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/lame_client.c b/src/core/lib/surface/lame_client.c
index 95ec4b06c3..c1f6812c4e 100644
--- a/src/core/lib/surface/lame_client.c
+++ b/src/core/lib/surface/lame_client.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/metadata_array.c b/src/core/lib/surface/metadata_array.c
index 4436f2da87..6c2b750e1d 100644
--- a/src/core/lib/surface/metadata_array.c
+++ b/src/core/lib/surface/metadata_array.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/server.c b/src/core/lib/surface/server.c
index 080734e9d5..1898bee1c1 100644
--- a/src/core/lib/surface/server.c
+++ b/src/core/lib/surface/server.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -100,6 +100,7 @@ typedef struct requested_call {
typedef struct channel_registered_method {
registered_method *server_registered_method;
+ uint32_t flags;
grpc_mdstr *method;
grpc_mdstr *host;
} channel_registered_method;
@@ -152,6 +153,7 @@ struct call_data {
grpc_completion_queue *cq_new;
grpc_metadata_batch *recv_initial_metadata;
+ bool recv_idempotent_request;
grpc_metadata_array initial_metadata;
grpc_closure got_initial_metadata;
@@ -171,6 +173,7 @@ struct request_matcher {
struct registered_method {
char *method;
char *host;
+ uint32_t flags;
request_matcher request_matcher;
registered_method *next;
};
@@ -468,6 +471,9 @@ static void start_new_rpc(grpc_exec_ctx *exec_ctx, grpc_call_element *elem) {
if (!rm) break;
if (rm->host != calld->host) continue;
if (rm->method != calld->path) continue;
+ if ((rm->flags & GRPC_INITIAL_METADATA_IDEMPOTENT_REQUEST) &&
+ !calld->recv_idempotent_request)
+ continue;
finish_start_new_rpc(exec_ctx, server, elem,
&rm->server_registered_method->request_matcher);
return;
@@ -480,6 +486,9 @@ static void start_new_rpc(grpc_exec_ctx *exec_ctx, grpc_call_element *elem) {
if (!rm) break;
if (rm->host != NULL) continue;
if (rm->method != calld->path) continue;
+ if ((rm->flags & GRPC_INITIAL_METADATA_IDEMPOTENT_REQUEST) &&
+ !calld->recv_idempotent_request)
+ continue;
finish_start_new_rpc(exec_ctx, server, elem,
&rm->server_registered_method->request_matcher);
return;
@@ -598,9 +607,11 @@ static void server_mutate_op(grpc_call_element *elem,
call_data *calld = elem->call_data;
if (op->recv_initial_metadata != NULL) {
+ GPR_ASSERT(op->recv_idempotent_request == NULL);
calld->recv_initial_metadata = op->recv_initial_metadata;
calld->on_done_recv_initial_metadata = op->recv_initial_metadata_ready;
op->recv_initial_metadata_ready = &calld->server_on_recv_initial_metadata;
+ op->recv_idempotent_request = &calld->recv_idempotent_request;
}
}
@@ -830,10 +841,12 @@ static int streq(const char *a, const char *b) {
}
void *grpc_server_register_method(grpc_server *server, const char *method,
- const char *host) {
+ const char *host, uint32_t flags) {
registered_method *m;
- GRPC_API_TRACE("grpc_server_register_method(server=%p, method=%s, host=%s)",
- 3, (server, method, host));
+ GRPC_API_TRACE(
+ "grpc_server_register_method(server=%p, method=%s, host=%s, "
+ "flags=0x%08x)",
+ 4, (server, method, host, flags));
if (!method) {
gpr_log(GPR_ERROR,
"grpc_server_register_method method string cannot be NULL");
@@ -846,12 +859,18 @@ void *grpc_server_register_method(grpc_server *server, const char *method,
return NULL;
}
}
+ if ((flags & ~GRPC_INITIAL_METADATA_USED_MASK) != 0) {
+ gpr_log(GPR_ERROR, "grpc_server_register_method invalid flags 0x%08x",
+ flags);
+ return NULL;
+ }
m = gpr_malloc(sizeof(registered_method));
memset(m, 0, sizeof(*m));
request_matcher_init(&m->request_matcher, server->max_requested_calls);
m->method = gpr_strdup(method);
m->host = gpr_strdup(host);
m->next = server->registered_methods;
+ m->flags = flags;
server->registered_methods = m;
return m;
}
@@ -930,6 +949,7 @@ void grpc_server_setup_transport(grpc_exec_ctx *exec_ctx, grpc_server *s,
if (probes > max_probes) max_probes = probes;
crm = &chand->registered_methods[(hash + probes) % slots];
crm->server_registered_method = rm;
+ crm->flags = rm->flags;
crm->host = host;
crm->method = method;
}
@@ -1247,6 +1267,10 @@ static void begin_call(grpc_exec_ctx *exec_ctx, grpc_server *server,
cpstr(&rc->data.batch.details->method,
&rc->data.batch.details->method_capacity, calld->path);
rc->data.batch.details->deadline = calld->deadline;
+ rc->data.batch.details->flags =
+ 0 | (calld->recv_idempotent_request
+ ? GRPC_INITIAL_METADATA_IDEMPOTENT_REQUEST
+ : 0);
break;
case REGISTERED_CALL:
*rc->data.registered.deadline = calld->deadline;
diff --git a/src/core/lib/surface/server.h b/src/core/lib/surface/server.h
index 3845eb2981..470ef23c69 100644
--- a/src/core/lib/surface/server.h
+++ b/src/core/lib/surface/server.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/surface_trace.h b/src/core/lib/surface/surface_trace.h
index 6b3f673924..a69a0fff57 100644
--- a/src/core/lib/surface/surface_trace.h
+++ b/src/core/lib/surface/surface_trace.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/surface/version.c b/src/core/lib/surface/version.c
index 7723f39401..fe954cbefb 100644
--- a/src/core/lib/surface/version.c
+++ b/src/core/lib/surface/version.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/transport/byte_stream.c b/src/core/lib/transport/byte_stream.c
index 79981aa154..2f6c75cb6a 100644
--- a/src/core/lib/transport/byte_stream.c
+++ b/src/core/lib/transport/byte_stream.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/transport/byte_stream.h b/src/core/lib/transport/byte_stream.h
index e7346dafc3..95519a9eaf 100644
--- a/src/core/lib/transport/byte_stream.h
+++ b/src/core/lib/transport/byte_stream.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/transport/connectivity_state.c b/src/core/lib/transport/connectivity_state.c
index 123eab8b36..e24ee638fd 100644
--- a/src/core/lib/transport/connectivity_state.c
+++ b/src/core/lib/transport/connectivity_state.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/transport/connectivity_state.h b/src/core/lib/transport/connectivity_state.h
index 6f92132438..2eb7e09124 100644
--- a/src/core/lib/transport/connectivity_state.h
+++ b/src/core/lib/transport/connectivity_state.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/transport/metadata.c b/src/core/lib/transport/metadata.c
index 7605f09991..2b1d32d55e 100644
--- a/src/core/lib/transport/metadata.c
+++ b/src/core/lib/transport/metadata.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -44,11 +44,11 @@
#include <grpc/support/string_util.h>
#include <grpc/support/time.h>
+#include "src/core/ext/transport/chttp2/transport/bin_encoder.h"
#include "src/core/lib/iomgr/iomgr_internal.h"
#include "src/core/lib/profiling/timers.h"
#include "src/core/lib/support/murmur_hash.h"
#include "src/core/lib/support/string.h"
-#include "src/core/lib/transport/chttp2/bin_encoder.h"
#include "src/core/lib/transport/static_metadata.h"
/* There are two kinds of mdelem and mdstr instances.
diff --git a/src/core/lib/transport/metadata.h b/src/core/lib/transport/metadata.h
index d72ec9accc..6a02437fdf 100644
--- a/src/core/lib/transport/metadata.h
+++ b/src/core/lib/transport/metadata.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/transport/metadata_batch.c b/src/core/lib/transport/metadata_batch.c
index bb79b8fa96..4567221a48 100644
--- a/src/core/lib/transport/metadata_batch.c
+++ b/src/core/lib/transport/metadata_batch.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/transport/metadata_batch.h b/src/core/lib/transport/metadata_batch.h
index f1d4726989..b62668876e 100644
--- a/src/core/lib/transport/metadata_batch.h
+++ b/src/core/lib/transport/metadata_batch.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/transport/static_metadata.c b/src/core/lib/transport/static_metadata.c
index eda277b3dc..73b0041fd4 100644
--- a/src/core/lib/transport/static_metadata.c
+++ b/src/core/lib/transport/static_metadata.c
@@ -1,6 +1,5 @@
/*
- *
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -28,19 +27,16 @@
* 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.
- *
*/
/*
* WARNING: Auto-generated code.
*
* To make changes to this file, change
- * tools/codegen/core/gen_static_metadata.py,
- * and then re-run it.
+ * tools/codegen/core/gen_static_metadata.py, and then re-run it.
*
* See metadata.h for an explanation of the interface here, and metadata.c for
- * an
- * explanation of what's going on.
+ * an explanation of what's going on.
*/
#include "src/core/lib/transport/static_metadata.h"
@@ -52,7 +48,7 @@ uintptr_t grpc_static_mdelem_user_data[GRPC_STATIC_MDELEM_COUNT] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 4, 8, 6, 2, 4, 8, 6, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const uint8_t grpc_static_metadata_elem_indices[GRPC_STATIC_MDELEM_COUNT * 2] =
{11, 35, 10, 35, 12, 35, 12, 49, 13, 35, 14, 35, 15, 35, 16, 35, 17, 35,
@@ -60,10 +56,10 @@ const uint8_t grpc_static_metadata_elem_indices[GRPC_STATIC_MDELEM_COUNT * 2] =
30, 18, 30, 35, 31, 35, 32, 35, 36, 35, 37, 35, 38, 35, 39, 35, 42, 33,
42, 34, 42, 48, 42, 53, 42, 54, 42, 55, 42, 56, 43, 33, 43, 48, 43, 53,
46, 0, 46, 1, 46, 2, 50, 35, 57, 35, 58, 35, 59, 35, 60, 35, 61, 35,
- 62, 35, 63, 35, 64, 35, 65, 35, 66, 40, 66, 68, 67, 78, 67, 79, 69, 35,
- 70, 35, 71, 35, 72, 35, 73, 35, 74, 35, 75, 41, 75, 51, 75, 52, 76, 35,
- 77, 35, 80, 3, 80, 4, 80, 5, 80, 6, 80, 7, 80, 8, 80, 9, 81, 35,
- 82, 83, 84, 35, 85, 35, 86, 35, 87, 35, 88, 35};
+ 62, 35, 63, 35, 64, 35, 65, 35, 66, 40, 66, 68, 66, 71, 67, 79, 67, 80,
+ 69, 35, 70, 35, 72, 35, 73, 35, 74, 35, 75, 35, 76, 41, 76, 51, 76, 52,
+ 77, 35, 78, 35, 81, 3, 81, 4, 81, 5, 81, 6, 81, 7, 81, 8, 81, 9,
+ 82, 35, 83, 84, 85, 35, 86, 35, 87, 35, 88, 35, 89, 35};
const char *const grpc_static_metadata_strings[GRPC_STATIC_MDSTR_COUNT] = {
"0",
@@ -137,6 +133,7 @@ const char *const grpc_static_metadata_strings[GRPC_STATIC_MDSTR_COUNT] = {
"POST",
"proxy-authenticate",
"proxy-authorization",
+ "PUT",
"range",
"referer",
"refresh",
diff --git a/src/core/lib/transport/static_metadata.h b/src/core/lib/transport/static_metadata.h
index aff136a6d2..f9d8bcdc8f 100644
--- a/src/core/lib/transport/static_metadata.h
+++ b/src/core/lib/transport/static_metadata.h
@@ -1,6 +1,5 @@
/*
- *
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -28,19 +27,16 @@
* 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.
- *
*/
/*
* WARNING: Auto-generated code.
*
* To make changes to this file, change
- * tools/codegen/core/gen_static_metadata.py,
- * and then re-run it.
+ * tools/codegen/core/gen_static_metadata.py, and then re-run it.
*
* See metadata.h for an explanation of the interface here, and metadata.c for
- * an
- * explanation of what's going on.
+ * an explanation of what's going on.
*/
#ifndef GRPC_CORE_LIB_TRANSPORT_STATIC_METADATA_H
@@ -48,7 +44,7 @@
#include "src/core/lib/transport/metadata.h"
-#define GRPC_STATIC_MDSTR_COUNT 89
+#define GRPC_STATIC_MDSTR_COUNT 90
extern grpc_mdstr grpc_static_mdstr_table[GRPC_STATIC_MDSTR_COUNT];
/* "0" */
#define GRPC_MDSTR_0 (&grpc_static_mdstr_table[0])
@@ -193,44 +189,46 @@ extern grpc_mdstr grpc_static_mdstr_table[GRPC_STATIC_MDSTR_COUNT];
#define GRPC_MDSTR_PROXY_AUTHENTICATE (&grpc_static_mdstr_table[69])
/* "proxy-authorization" */
#define GRPC_MDSTR_PROXY_AUTHORIZATION (&grpc_static_mdstr_table[70])
+/* "PUT" */
+#define GRPC_MDSTR_PUT (&grpc_static_mdstr_table[71])
/* "range" */
-#define GRPC_MDSTR_RANGE (&grpc_static_mdstr_table[71])
+#define GRPC_MDSTR_RANGE (&grpc_static_mdstr_table[72])
/* "referer" */
-#define GRPC_MDSTR_REFERER (&grpc_static_mdstr_table[72])
+#define GRPC_MDSTR_REFERER (&grpc_static_mdstr_table[73])
/* "refresh" */
-#define GRPC_MDSTR_REFRESH (&grpc_static_mdstr_table[73])
+#define GRPC_MDSTR_REFRESH (&grpc_static_mdstr_table[74])
/* "retry-after" */
-#define GRPC_MDSTR_RETRY_AFTER (&grpc_static_mdstr_table[74])
+#define GRPC_MDSTR_RETRY_AFTER (&grpc_static_mdstr_table[75])
/* ":scheme" */
-#define GRPC_MDSTR_SCHEME (&grpc_static_mdstr_table[75])
+#define GRPC_MDSTR_SCHEME (&grpc_static_mdstr_table[76])
/* "server" */
-#define GRPC_MDSTR_SERVER (&grpc_static_mdstr_table[76])
+#define GRPC_MDSTR_SERVER (&grpc_static_mdstr_table[77])
/* "set-cookie" */
-#define GRPC_MDSTR_SET_COOKIE (&grpc_static_mdstr_table[77])
+#define GRPC_MDSTR_SET_COOKIE (&grpc_static_mdstr_table[78])
/* "/" */
-#define GRPC_MDSTR_SLASH (&grpc_static_mdstr_table[78])
+#define GRPC_MDSTR_SLASH (&grpc_static_mdstr_table[79])
/* "/index.html" */
-#define GRPC_MDSTR_SLASH_INDEX_DOT_HTML (&grpc_static_mdstr_table[79])
+#define GRPC_MDSTR_SLASH_INDEX_DOT_HTML (&grpc_static_mdstr_table[80])
/* ":status" */
-#define GRPC_MDSTR_STATUS (&grpc_static_mdstr_table[80])
+#define GRPC_MDSTR_STATUS (&grpc_static_mdstr_table[81])
/* "strict-transport-security" */
-#define GRPC_MDSTR_STRICT_TRANSPORT_SECURITY (&grpc_static_mdstr_table[81])
+#define GRPC_MDSTR_STRICT_TRANSPORT_SECURITY (&grpc_static_mdstr_table[82])
/* "te" */
-#define GRPC_MDSTR_TE (&grpc_static_mdstr_table[82])
+#define GRPC_MDSTR_TE (&grpc_static_mdstr_table[83])
/* "trailers" */
-#define GRPC_MDSTR_TRAILERS (&grpc_static_mdstr_table[83])
+#define GRPC_MDSTR_TRAILERS (&grpc_static_mdstr_table[84])
/* "transfer-encoding" */
-#define GRPC_MDSTR_TRANSFER_ENCODING (&grpc_static_mdstr_table[84])
+#define GRPC_MDSTR_TRANSFER_ENCODING (&grpc_static_mdstr_table[85])
/* "user-agent" */
-#define GRPC_MDSTR_USER_AGENT (&grpc_static_mdstr_table[85])
+#define GRPC_MDSTR_USER_AGENT (&grpc_static_mdstr_table[86])
/* "vary" */
-#define GRPC_MDSTR_VARY (&grpc_static_mdstr_table[86])
+#define GRPC_MDSTR_VARY (&grpc_static_mdstr_table[87])
/* "via" */
-#define GRPC_MDSTR_VIA (&grpc_static_mdstr_table[87])
+#define GRPC_MDSTR_VIA (&grpc_static_mdstr_table[88])
/* "www-authenticate" */
-#define GRPC_MDSTR_WWW_AUTHENTICATE (&grpc_static_mdstr_table[88])
+#define GRPC_MDSTR_WWW_AUTHENTICATE (&grpc_static_mdstr_table[89])
-#define GRPC_STATIC_MDELEM_COUNT 78
+#define GRPC_STATIC_MDELEM_COUNT 79
extern grpc_mdelem grpc_static_mdelem_table[GRPC_STATIC_MDELEM_COUNT];
extern uintptr_t grpc_static_mdelem_user_data[GRPC_STATIC_MDELEM_COUNT];
/* "accept-charset": "" */
@@ -343,61 +341,63 @@ extern uintptr_t grpc_static_mdelem_user_data[GRPC_STATIC_MDELEM_COUNT];
#define GRPC_MDELEM_METHOD_GET (&grpc_static_mdelem_table[49])
/* ":method": "POST" */
#define GRPC_MDELEM_METHOD_POST (&grpc_static_mdelem_table[50])
+/* ":method": "PUT" */
+#define GRPC_MDELEM_METHOD_PUT (&grpc_static_mdelem_table[51])
/* ":path": "/" */
-#define GRPC_MDELEM_PATH_SLASH (&grpc_static_mdelem_table[51])
+#define GRPC_MDELEM_PATH_SLASH (&grpc_static_mdelem_table[52])
/* ":path": "/index.html" */
-#define GRPC_MDELEM_PATH_SLASH_INDEX_DOT_HTML (&grpc_static_mdelem_table[52])
+#define GRPC_MDELEM_PATH_SLASH_INDEX_DOT_HTML (&grpc_static_mdelem_table[53])
/* "proxy-authenticate": "" */
-#define GRPC_MDELEM_PROXY_AUTHENTICATE_EMPTY (&grpc_static_mdelem_table[53])
+#define GRPC_MDELEM_PROXY_AUTHENTICATE_EMPTY (&grpc_static_mdelem_table[54])
/* "proxy-authorization": "" */
-#define GRPC_MDELEM_PROXY_AUTHORIZATION_EMPTY (&grpc_static_mdelem_table[54])
+#define GRPC_MDELEM_PROXY_AUTHORIZATION_EMPTY (&grpc_static_mdelem_table[55])
/* "range": "" */
-#define GRPC_MDELEM_RANGE_EMPTY (&grpc_static_mdelem_table[55])
+#define GRPC_MDELEM_RANGE_EMPTY (&grpc_static_mdelem_table[56])
/* "referer": "" */
-#define GRPC_MDELEM_REFERER_EMPTY (&grpc_static_mdelem_table[56])
+#define GRPC_MDELEM_REFERER_EMPTY (&grpc_static_mdelem_table[57])
/* "refresh": "" */
-#define GRPC_MDELEM_REFRESH_EMPTY (&grpc_static_mdelem_table[57])
+#define GRPC_MDELEM_REFRESH_EMPTY (&grpc_static_mdelem_table[58])
/* "retry-after": "" */
-#define GRPC_MDELEM_RETRY_AFTER_EMPTY (&grpc_static_mdelem_table[58])
+#define GRPC_MDELEM_RETRY_AFTER_EMPTY (&grpc_static_mdelem_table[59])
/* ":scheme": "grpc" */
-#define GRPC_MDELEM_SCHEME_GRPC (&grpc_static_mdelem_table[59])
+#define GRPC_MDELEM_SCHEME_GRPC (&grpc_static_mdelem_table[60])
/* ":scheme": "http" */
-#define GRPC_MDELEM_SCHEME_HTTP (&grpc_static_mdelem_table[60])
+#define GRPC_MDELEM_SCHEME_HTTP (&grpc_static_mdelem_table[61])
/* ":scheme": "https" */
-#define GRPC_MDELEM_SCHEME_HTTPS (&grpc_static_mdelem_table[61])
+#define GRPC_MDELEM_SCHEME_HTTPS (&grpc_static_mdelem_table[62])
/* "server": "" */
-#define GRPC_MDELEM_SERVER_EMPTY (&grpc_static_mdelem_table[62])
+#define GRPC_MDELEM_SERVER_EMPTY (&grpc_static_mdelem_table[63])
/* "set-cookie": "" */
-#define GRPC_MDELEM_SET_COOKIE_EMPTY (&grpc_static_mdelem_table[63])
+#define GRPC_MDELEM_SET_COOKIE_EMPTY (&grpc_static_mdelem_table[64])
/* ":status": "200" */
-#define GRPC_MDELEM_STATUS_200 (&grpc_static_mdelem_table[64])
+#define GRPC_MDELEM_STATUS_200 (&grpc_static_mdelem_table[65])
/* ":status": "204" */
-#define GRPC_MDELEM_STATUS_204 (&grpc_static_mdelem_table[65])
+#define GRPC_MDELEM_STATUS_204 (&grpc_static_mdelem_table[66])
/* ":status": "206" */
-#define GRPC_MDELEM_STATUS_206 (&grpc_static_mdelem_table[66])
+#define GRPC_MDELEM_STATUS_206 (&grpc_static_mdelem_table[67])
/* ":status": "304" */
-#define GRPC_MDELEM_STATUS_304 (&grpc_static_mdelem_table[67])
+#define GRPC_MDELEM_STATUS_304 (&grpc_static_mdelem_table[68])
/* ":status": "400" */
-#define GRPC_MDELEM_STATUS_400 (&grpc_static_mdelem_table[68])
+#define GRPC_MDELEM_STATUS_400 (&grpc_static_mdelem_table[69])
/* ":status": "404" */
-#define GRPC_MDELEM_STATUS_404 (&grpc_static_mdelem_table[69])
+#define GRPC_MDELEM_STATUS_404 (&grpc_static_mdelem_table[70])
/* ":status": "500" */
-#define GRPC_MDELEM_STATUS_500 (&grpc_static_mdelem_table[70])
+#define GRPC_MDELEM_STATUS_500 (&grpc_static_mdelem_table[71])
/* "strict-transport-security": "" */
#define GRPC_MDELEM_STRICT_TRANSPORT_SECURITY_EMPTY \
- (&grpc_static_mdelem_table[71])
+ (&grpc_static_mdelem_table[72])
/* "te": "trailers" */
-#define GRPC_MDELEM_TE_TRAILERS (&grpc_static_mdelem_table[72])
+#define GRPC_MDELEM_TE_TRAILERS (&grpc_static_mdelem_table[73])
/* "transfer-encoding": "" */
-#define GRPC_MDELEM_TRANSFER_ENCODING_EMPTY (&grpc_static_mdelem_table[73])
+#define GRPC_MDELEM_TRANSFER_ENCODING_EMPTY (&grpc_static_mdelem_table[74])
/* "user-agent": "" */
-#define GRPC_MDELEM_USER_AGENT_EMPTY (&grpc_static_mdelem_table[74])
+#define GRPC_MDELEM_USER_AGENT_EMPTY (&grpc_static_mdelem_table[75])
/* "vary": "" */
-#define GRPC_MDELEM_VARY_EMPTY (&grpc_static_mdelem_table[75])
+#define GRPC_MDELEM_VARY_EMPTY (&grpc_static_mdelem_table[76])
/* "via": "" */
-#define GRPC_MDELEM_VIA_EMPTY (&grpc_static_mdelem_table[76])
+#define GRPC_MDELEM_VIA_EMPTY (&grpc_static_mdelem_table[77])
/* "www-authenticate": "" */
-#define GRPC_MDELEM_WWW_AUTHENTICATE_EMPTY (&grpc_static_mdelem_table[77])
+#define GRPC_MDELEM_WWW_AUTHENTICATE_EMPTY (&grpc_static_mdelem_table[78])
extern const uint8_t
grpc_static_metadata_elem_indices[GRPC_STATIC_MDELEM_COUNT * 2];
diff --git a/src/core/lib/transport/transport.c b/src/core/lib/transport/transport.c
index 18256aae5e..53c634adca 100644
--- a/src/core/lib/transport/transport.c
+++ b/src/core/lib/transport/transport.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -35,6 +35,7 @@
#include <grpc/support/alloc.h>
#include <grpc/support/atm.h>
#include <grpc/support/log.h>
+#include <grpc/support/sync.h>
#include "src/core/lib/transport/transport_impl.h"
#ifdef GRPC_STREAM_REFCOUNT_DEBUG
@@ -76,6 +77,24 @@ void grpc_stream_ref_init(grpc_stream_refcount *refcount, int initial_refs,
grpc_closure_init(&refcount->destroy, cb, cb_arg);
}
+static void move64(uint64_t *from, uint64_t *to) {
+ *to += *from;
+ *from = 0;
+}
+
+void grpc_transport_move_one_way_stats(grpc_transport_one_way_stats *from,
+ grpc_transport_one_way_stats *to) {
+ move64(&from->framing_bytes, &to->framing_bytes);
+ move64(&from->data_bytes, &to->data_bytes);
+ move64(&from->header_bytes, &to->header_bytes);
+}
+
+void grpc_transport_move_stats(grpc_transport_stream_stats *from,
+ grpc_transport_stream_stats *to) {
+ grpc_transport_move_one_way_stats(&from->incoming, &to->incoming);
+ grpc_transport_move_one_way_stats(&from->outgoing, &to->outgoing);
+}
+
size_t grpc_transport_stream_size(grpc_transport *transport) {
return transport->vtable->sizeof_stream;
}
diff --git a/src/core/lib/transport/transport.h b/src/core/lib/transport/transport.h
index e98cfe9515..460e4dcedc 100644
--- a/src/core/lib/transport/transport.h
+++ b/src/core/lib/transport/transport.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -78,11 +78,32 @@ void grpc_stream_unref(grpc_exec_ctx *exec_ctx, grpc_stream_refcount *refcount);
grpc_stream_ref_init(rc, ir, cb, cb_arg)
#endif
+typedef struct {
+ uint64_t framing_bytes;
+ uint64_t data_bytes;
+ uint64_t header_bytes;
+} grpc_transport_one_way_stats;
+
+typedef struct grpc_transport_stream_stats {
+ grpc_transport_one_way_stats incoming;
+ grpc_transport_one_way_stats outgoing;
+} grpc_transport_stream_stats;
+
+void grpc_transport_move_one_way_stats(grpc_transport_one_way_stats *from,
+ grpc_transport_one_way_stats *to);
+
+void grpc_transport_move_stats(grpc_transport_stream_stats *from,
+ grpc_transport_stream_stats *to);
+
/* Transport stream op: a set of operations to perform on a transport
against a single stream */
typedef struct grpc_transport_stream_op {
- /** Send initial metadata to the peer, from the provided metadata batch. */
+ /** Send initial metadata to the peer, from the provided metadata batch.
+ idempotent_request MUST be set if this is non-null */
grpc_metadata_batch *send_initial_metadata;
+ /** Iff send_initial_metadata != NULL, flags if this is an idempotent request
+ or not */
+ bool send_idempotent_request;
/** Send trailing metadata to the peer, from the provided metadata batch. */
grpc_metadata_batch *send_trailing_metadata;
@@ -92,6 +113,7 @@ typedef struct grpc_transport_stream_op {
/** Receive initial metadata from the stream, into provided metadata batch. */
grpc_metadata_batch *recv_initial_metadata;
+ bool *recv_idempotent_request;
/** Should be enqueued when initial metadata is ready to be processed. */
grpc_closure *recv_initial_metadata_ready;
@@ -104,6 +126,9 @@ typedef struct grpc_transport_stream_op {
*/
grpc_metadata_batch *recv_trailing_metadata;
+ /** 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. */
diff --git a/src/core/lib/transport/transport_impl.h b/src/core/lib/transport/transport_impl.h
index 92fa5d519d..2ff67073af 100644
--- a/src/core/lib/transport/transport_impl.h
+++ b/src/core/lib/transport/transport_impl.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/transport/transport_op_string.c b/src/core/lib/transport/transport_op_string.c
index 1fa8fa5d4f..df04c61127 100644
--- a/src/core/lib/transport/transport_op_string.c
+++ b/src/core/lib/transport/transport_op_string.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/tsi/fake_transport_security.c b/src/core/lib/tsi/fake_transport_security.c
index 350cd9b648..a0f69c3d64 100644
--- a/src/core/lib/tsi/fake_transport_security.c
+++ b/src/core/lib/tsi/fake_transport_security.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/tsi/fake_transport_security.h b/src/core/lib/tsi/fake_transport_security.h
index b887dfcb09..54a9469b58 100644
--- a/src/core/lib/tsi/fake_transport_security.h
+++ b/src/core/lib/tsi/fake_transport_security.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/tsi/ssl_transport_security.c b/src/core/lib/tsi/ssl_transport_security.c
index 542f870d06..ef3aeb7090 100644
--- a/src/core/lib/tsi/ssl_transport_security.c
+++ b/src/core/lib/tsi/ssl_transport_security.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/tsi/ssl_transport_security.h b/src/core/lib/tsi/ssl_transport_security.h
index c9b9e8f54b..211c8f9656 100644
--- a/src/core/lib/tsi/ssl_transport_security.h
+++ b/src/core/lib/tsi/ssl_transport_security.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/tsi/ssl_types.h b/src/core/lib/tsi/ssl_types.h
index c6e68c01ad..0a988effd0 100644
--- a/src/core/lib/tsi/ssl_types.h
+++ b/src/core/lib/tsi/ssl_types.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/tsi/transport_security.c b/src/core/lib/tsi/transport_security.c
index edbbe0ed97..66f1e356d6 100644
--- a/src/core/lib/tsi/transport_security.c
+++ b/src/core/lib/tsi/transport_security.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/tsi/transport_security.h b/src/core/lib/tsi/transport_security.h
index 349dd0ae9c..aaf110ee05 100644
--- a/src/core/lib/tsi/transport_security.h
+++ b/src/core/lib/tsi/transport_security.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/tsi/transport_security_interface.h b/src/core/lib/tsi/transport_security_interface.h
index f88f1516a9..d81ec0963a 100644
--- a/src/core/lib/tsi/transport_security_interface.h
+++ b/src/core/lib/tsi/transport_security_interface.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/plugin_registry/grpc_plugin_registry.c b/src/core/plugin_registry/grpc_plugin_registry.c
new file mode 100644
index 0000000000..79df85516e
--- /dev/null
+++ b/src/core/plugin_registry/grpc_plugin_registry.c
@@ -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.
+ *
+ */
+
+#include <grpc/grpc.h>
+
+extern void grpc_lb_policy_pick_first_init(void);
+extern void grpc_lb_policy_pick_first_shutdown(void);
+extern void grpc_lb_policy_round_robin_init(void);
+extern void grpc_lb_policy_round_robin_shutdown(void);
+extern void grpc_resolver_dns_native_init(void);
+extern void grpc_resolver_dns_native_shutdown(void);
+extern void grpc_resolver_sockaddr_init(void);
+extern void grpc_resolver_sockaddr_shutdown(void);
+extern void census_grpc_plugin_init(void);
+extern void census_grpc_plugin_shutdown(void);
+
+void grpc_register_built_in_plugins(void) {
+ grpc_register_plugin(grpc_lb_policy_pick_first_init,
+ grpc_lb_policy_pick_first_shutdown);
+ grpc_register_plugin(grpc_lb_policy_round_robin_init,
+ grpc_lb_policy_round_robin_shutdown);
+ grpc_register_plugin(grpc_resolver_dns_native_init,
+ grpc_resolver_dns_native_shutdown);
+ grpc_register_plugin(grpc_resolver_sockaddr_init,
+ grpc_resolver_sockaddr_shutdown);
+ grpc_register_plugin(census_grpc_plugin_init,
+ census_grpc_plugin_shutdown);
+}
diff --git a/src/core/plugin_registry/grpc_unsecure_plugin_registry.c b/src/core/plugin_registry/grpc_unsecure_plugin_registry.c
new file mode 100644
index 0000000000..b3786c927d
--- /dev/null
+++ b/src/core/plugin_registry/grpc_unsecure_plugin_registry.c
@@ -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.
+ *
+ */
+
+#include <grpc/grpc.h>
+
+extern void grpc_resolver_dns_native_init(void);
+extern void grpc_resolver_dns_native_shutdown(void);
+extern void grpc_resolver_sockaddr_init(void);
+extern void grpc_resolver_sockaddr_shutdown(void);
+extern void grpc_lb_policy_pick_first_init(void);
+extern void grpc_lb_policy_pick_first_shutdown(void);
+extern void grpc_lb_policy_round_robin_init(void);
+extern void grpc_lb_policy_round_robin_shutdown(void);
+extern void census_grpc_plugin_init(void);
+extern void census_grpc_plugin_shutdown(void);
+
+void grpc_register_built_in_plugins(void) {
+ grpc_register_plugin(grpc_resolver_dns_native_init,
+ grpc_resolver_dns_native_shutdown);
+ grpc_register_plugin(grpc_resolver_sockaddr_init,
+ grpc_resolver_sockaddr_shutdown);
+ grpc_register_plugin(grpc_lb_policy_pick_first_init,
+ grpc_lb_policy_pick_first_shutdown);
+ grpc_register_plugin(grpc_lb_policy_round_robin_init,
+ grpc_lb_policy_round_robin_shutdown);
+ grpc_register_plugin(census_grpc_plugin_init,
+ census_grpc_plugin_shutdown);
+}
diff --git a/src/cpp/client/channel.cc b/src/cpp/client/channel.cc
index f174676172..43b3875cb3 100644
--- a/src/cpp/client/channel.cc
+++ b/src/cpp/client/channel.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/cpp/client/client_context.cc b/src/cpp/client/client_context.cc
index de8b2db6e3..bf6423128a 100644
--- a/src/cpp/client/client_context.cc
+++ b/src/cpp/client/client_context.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/cpp/client/create_channel.cc b/src/cpp/client/create_channel.cc
index 76a1b31e2f..d0cc33b7a2 100644
--- a/src/cpp/client/create_channel.cc
+++ b/src/cpp/client/create_channel.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/cpp/client/credentials.cc b/src/cpp/client/credentials.cc
index 6fb620b0ea..e6a4f81b0d 100644
--- a/src/cpp/client/credentials.cc
+++ b/src/cpp/client/credentials.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/cpp/client/insecure_credentials.cc b/src/cpp/client/insecure_credentials.cc
index efea02995a..13019a7117 100644
--- a/src/cpp/client/insecure_credentials.cc
+++ b/src/cpp/client/insecure_credentials.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/cpp/client/secure_credentials.cc b/src/cpp/client/secure_credentials.cc
index cdc8406f24..269c523bba 100644
--- a/src/cpp/client/secure_credentials.cc
+++ b/src/cpp/client/secure_credentials.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/cpp/client/secure_credentials.h b/src/cpp/client/secure_credentials.h
index fd82331a44..ae41ef8007 100644
--- a/src/cpp/client/secure_credentials.h
+++ b/src/cpp/client/secure_credentials.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/cpp/common/channel_arguments.cc b/src/cpp/common/channel_arguments.cc
index 3bdb4398ab..db3558f192 100644
--- a/src/cpp/common/channel_arguments.cc
+++ b/src/cpp/common/channel_arguments.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/cpp/common/completion_queue.cc b/src/cpp/common/completion_queue.cc
index 729dc33749..00cc102f92 100644
--- a/src/cpp/common/completion_queue.cc
+++ b/src/cpp/common/completion_queue.cc
@@ -1,5 +1,5 @@
/*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/cpp/common/create_auth_context.h b/src/cpp/common/create_auth_context.h
index c53055503f..387407bfec 100644
--- a/src/cpp/common/create_auth_context.h
+++ b/src/cpp/common/create_auth_context.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/cpp/common/insecure_create_auth_context.cc b/src/cpp/common/insecure_create_auth_context.cc
index 7ec5d9bd12..258f02c2ad 100644
--- a/src/cpp/common/insecure_create_auth_context.cc
+++ b/src/cpp/common/insecure_create_auth_context.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/cpp/common/secure_channel_arguments.cc b/src/cpp/common/secure_channel_arguments.cc
index 82e02f0238..81ec251b92 100644
--- a/src/cpp/common/secure_channel_arguments.cc
+++ b/src/cpp/common/secure_channel_arguments.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/cpp/common/secure_create_auth_context.cc b/src/cpp/common/secure_create_auth_context.cc
index d7cf803fde..51ddea46a3 100644
--- a/src/cpp/common/secure_create_auth_context.cc
+++ b/src/cpp/common/secure_create_auth_context.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/cpp/server/server.cc b/src/cpp/server/server.cc
index 7e5f557ffa..3e44c502fc 100644
--- a/src/cpp/server/server.cc
+++ b/src/cpp/server/server.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -264,6 +264,7 @@ class Server::SyncRequest GRPC_FINAL : public CompletionQueueTag {
void* const tag_;
bool in_flight_;
const bool has_request_payload_;
+ uint32_t incoming_flags_;
grpc_call* call_;
grpc_call_details* call_details_;
gpr_timespec deadline_;
@@ -334,7 +335,7 @@ bool Server::RegisterService(const grpc::string* host, Service* service) {
}
RpcServiceMethod* method = it->get();
void* tag = grpc_server_register_method(server_, method->name(),
- host ? host->c_str() : nullptr);
+ host ? host->c_str() : nullptr, 0);
if (tag == nullptr) {
gpr_log(GPR_DEBUG, "Attempt to register %s multiple times",
method->name());
diff --git a/src/cpp/server/server_builder.cc b/src/cpp/server/server_builder.cc
index 1947d68e3e..68cc38258c 100644
--- a/src/cpp/server/server_builder.cc
+++ b/src/cpp/server/server_builder.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/cpp/server/server_context.cc b/src/cpp/server/server_context.cc
index 0422650953..e05a7df28a 100644
--- a/src/cpp/server/server_context.cc
+++ b/src/cpp/server/server_context.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/cpp/util/byte_buffer.cc b/src/cpp/util/byte_buffer.cc
index 3a2318d1a6..c0a14de418 100644
--- a/src/cpp/util/byte_buffer.cc
+++ b/src/cpp/util/byte_buffer.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/cpp/util/string_ref.cc b/src/cpp/util/string_ref.cc
index b55019b5f2..a16601de5d 100644
--- a/src/cpp/util/string_ref.cc
+++ b/src/cpp/util/string_ref.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/cpp/util/time.cc b/src/cpp/util/time.cc
index bb5fce389d..c43d848cc6 100644
--- a/src/cpp/util/time.cc
+++ b/src/cpp/util/time.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/.nuget/packages.config b/src/csharp/.nuget/packages.config
index 89a310ac56..acb43ae4b3 100644
--- a/src/csharp/.nuget/packages.config
+++ b/src/csharp/.nuget/packages.config
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="NUnit.Runners" version="2.6.4" />
- <package id="OpenCover" version="4.6.166" />
- <package id="ReportGenerator" version="2.3.2.0" />
+ <package id="OpenCover" version="4.6.519" />
+ <package id="ReportGenerator" version="2.4.4.0" />
</packages> \ No newline at end of file
diff --git a/src/csharp/Grpc.Auth/GoogleAuthInterceptors.cs b/src/csharp/Grpc.Auth/GoogleAuthInterceptors.cs
index 1837f5c74b..96d6ee87ae 100644
--- a/src/csharp/Grpc.Auth/GoogleAuthInterceptors.cs
+++ b/src/csharp/Grpc.Auth/GoogleAuthInterceptors.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Auth/Grpc.Auth.csproj b/src/csharp/Grpc.Auth/Grpc.Auth.csproj
index 8dd12b50ef..3acea7d2f8 100644
--- a/src/csharp/Grpc.Auth/Grpc.Auth.csproj
+++ b/src/csharp/Grpc.Auth/Grpc.Auth.csproj
@@ -9,7 +9,7 @@
<AssemblyName>Grpc.Auth</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<DocumentationFile>bin\$(Configuration)\Grpc.Auth.Xml</DocumentationFile>
- <NuGetPackageImportStamp>4f8487a9</NuGetPackageImportStamp>
+ <NuGetPackageImportStamp>455903a2</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -39,43 +39,30 @@
<AssemblyOriginatorKeyFile>..\keys\Grpc.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<ItemGroup>
- <Reference Include="Google.Apis.Auth, Version=1.10.0.25333, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <Reference Include="BouncyCastle.Crypto, Version=1.7.4137.9688, Culture=neutral, PublicKeyToken=a4292a325f69b123, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Google.Apis.Auth.1.10.0\lib\net40\Google.Apis.Auth.dll</HintPath>
+ <HintPath>..\packages\BouncyCastle.1.7.0\lib\Net40-Client\BouncyCastle.Crypto.dll</HintPath>
+ </Reference>
+ <Reference Include="Google.Apis.Auth, Version=1.11.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\packages\Google.Apis.Auth.1.11.1\lib\net45\Google.Apis.Auth.dll</HintPath>
+ </Reference>
+ <Reference Include="Google.Apis.Auth.PlatformServices, Version=1.11.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\packages\Google.Apis.Auth.1.11.1\lib\net45\Google.Apis.Auth.PlatformServices.dll</HintPath>
</Reference>
- <Reference Include="Google.Apis.Auth.PlatformServices, Version=1.10.0.25333, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <Reference Include="Google.Apis.Core, Version=1.11.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Google.Apis.Auth.1.10.0\lib\net40\Google.Apis.Auth.PlatformServices.dll</HintPath>
+ <HintPath>..\packages\Google.Apis.Core.1.11.1\lib\net45\Google.Apis.Core.dll</HintPath>
</Reference>
- <Reference Include="Google.Apis.Core, Version=1.10.0.25331, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <Reference Include="Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Google.Apis.Core.1.10.0\lib\portable-net40+sl50+win+wpa81+wp80\Google.Apis.Core.dll</HintPath>
+ <HintPath>..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Net" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Net.Http.WebRequest" />
- <Reference Include="BouncyCastle.Crypto">
- <HintPath>..\packages\BouncyCastle.1.7.0\lib\Net40-Client\BouncyCastle.Crypto.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.Threading.Tasks">
- <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.Threading.Tasks.Extensions">
- <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.Threading.Tasks.Extensions.Desktop">
- <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll</HintPath>
- </Reference>
- <Reference Include="Newtonsoft.Json">
- <HintPath>..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
- </Reference>
- <Reference Include="System.Net.Http.Extensions">
- <HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll</HintPath>
- </Reference>
- <Reference Include="System.Net.Http.Primitives">
- <HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll</HintPath>
- </Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\Grpc.Core\Version.cs">
@@ -93,15 +80,7 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
- <None Include="app.config" />
<None Include="Grpc.Auth.nuspec" />
<None Include="packages.config" />
</ItemGroup>
- <Import Project="..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" />
- <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
- <PropertyGroup>
- <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
- </PropertyGroup>
- <Error Condition="!Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" />
- </Target>
</Project> \ No newline at end of file
diff --git a/src/csharp/Grpc.Auth/Grpc.Auth.nuspec b/src/csharp/Grpc.Auth/Grpc.Auth.nuspec
index f1f8f7c709..4baed3704c 100644
--- a/src/csharp/Grpc.Auth/Grpc.Auth.nuspec
+++ b/src/csharp/Grpc.Auth/Grpc.Auth.nuspec
@@ -15,7 +15,7 @@
<copyright>Copyright 2015, Google Inc.</copyright>
<tags>gRPC RPC Protocol HTTP/2 Auth OAuth2</tags>
<dependencies>
- <dependency id="Google.Apis.Auth" version="1.9.3" />
+ <dependency id="Google.Apis.Auth" version="1.11.1" />
<dependency id="Grpc.Core" version="$version$" />
</dependencies>
</metadata>
diff --git a/src/csharp/Grpc.Auth/app.config b/src/csharp/Grpc.Auth/app.config
deleted file mode 100644
index 84d7534d65..0000000000
--- a/src/csharp/Grpc.Auth/app.config
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
- <runtime>
- <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
- <dependentAssembly>
- <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.2.29.0" newVersion="4.2.29.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.2.28.0" newVersion="4.0.0.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="Google.Apis.Core" publicKeyToken="4b01fa6e34db77ab" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-1.9.2.38523" newVersion="1.9.2.38523" />
- </dependentAssembly>
- </assemblyBinding>
- </runtime>
-</configuration> \ No newline at end of file
diff --git a/src/csharp/Grpc.Auth/packages.config b/src/csharp/Grpc.Auth/packages.config
index 5fe8ca616c..c20d9ceed6 100644
--- a/src/csharp/Grpc.Auth/packages.config
+++ b/src/csharp/Grpc.Auth/packages.config
@@ -1,11 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="BouncyCastle" version="1.7.0" targetFramework="net45" />
- <package id="Google.Apis.Auth" version="1.10.0" targetFramework="net45" />
- <package id="Google.Apis.Core" version="1.10.0" targetFramework="net45" />
- <package id="Microsoft.Bcl" version="1.1.10" targetFramework="net45" />
- <package id="Microsoft.Bcl.Async" version="1.0.168" targetFramework="net45" />
- <package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="net45" />
- <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net45" />
+ <package id="Google.Apis.Auth" version="1.11.1" targetFramework="net45" />
+ <package id="Google.Apis.Core" version="1.11.1" targetFramework="net45" />
<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" />
</packages> \ No newline at end of file
diff --git a/src/csharp/Grpc.Core.Tests/Grpc.Core.Tests.csproj b/src/csharp/Grpc.Core.Tests/Grpc.Core.Tests.csproj
index 7e73c4f181..3bfd49b10f 100644
--- a/src/csharp/Grpc.Core.Tests/Grpc.Core.Tests.csproj
+++ b/src/csharp/Grpc.Core.Tests/Grpc.Core.Tests.csproj
@@ -93,6 +93,7 @@
<Compile Include="MetadataTest.cs" />
<Compile Include="PerformanceTest.cs" />
<Compile Include="SanityTest.cs" />
+ <Compile Include="HalfcloseTest.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ItemGroup>
diff --git a/src/csharp/Grpc.Core.Tests/GrpcEnvironmentTest.cs b/src/csharp/Grpc.Core.Tests/GrpcEnvironmentTest.cs
index fac93fcc5c..ab12c120cb 100644
--- a/src/csharp/Grpc.Core.Tests/GrpcEnvironmentTest.cs
+++ b/src/csharp/Grpc.Core.Tests/GrpcEnvironmentTest.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core.Tests/HalfcloseTest.cs b/src/csharp/Grpc.Core.Tests/HalfcloseTest.cs
new file mode 100644
index 0000000000..fe6edb858b
--- /dev/null
+++ b/src/csharp/Grpc.Core.Tests/HalfcloseTest.cs
@@ -0,0 +1,97 @@
+#region Copyright notice and license
+
+// Copyright 2016, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+
+using Grpc.Core;
+using Grpc.Core.Internal;
+using Grpc.Core.Utils;
+
+using NUnit.Framework;
+
+namespace Grpc.Core.Tests
+{
+ public class HalfcloseTest
+ {
+ MockServiceHelper helper;
+ Server server;
+ Channel channel;
+
+ [SetUp]
+ public void Init()
+ {
+ helper = new MockServiceHelper();
+
+ server = helper.GetServer();
+ server.Start();
+ channel = helper.GetChannel();
+ }
+
+ [TearDown]
+ public void Cleanup()
+ {
+ channel.ShutdownAsync().Wait();
+ server.ShutdownAsync().Wait();
+ }
+
+ /// <summary>
+ /// For client streaming and duplex streaming calls, if server does a full close
+ /// before we halfclose the request stream, an attempt to halfclose
+ /// (complete the request stream) shouldn't be treated as an error.
+ /// </summary>
+ [Test]
+ public async Task HalfcloseAfterFullclose_ClientStreamingCall()
+ {
+ helper.ClientStreamingHandler = new ClientStreamingServerMethod<string, string>(async (requestStream, context) =>
+ {
+ return "PASS";
+ });
+
+ var call = Calls.AsyncClientStreamingCall(helper.CreateClientStreamingCall());
+ // make sure server has fullclosed on us
+ Assert.AreEqual("PASS", await call.ResponseAsync);
+
+ // sending close from client should be still fine because server can finish
+ // the call anytime and we cannot do anything about it on the client side.
+ await call.RequestStream.CompleteAsync();
+
+ // Second attempt to close from client is not allowed.
+ Assert.Throws(typeof(InvalidOperationException), async () => await call.RequestStream.CompleteAsync());
+ }
+ }
+}
diff --git a/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs b/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs
index d5a1eeb0fb..543f6375df 100644
--- a/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs
+++ b/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core.Tests/PInvokeTest.cs b/src/csharp/Grpc.Core.Tests/PInvokeTest.cs
index da0ea2e6dc..d2b2fc6a66 100644
--- a/src/csharp/Grpc.Core.Tests/PInvokeTest.cs
+++ b/src/csharp/Grpc.Core.Tests/PInvokeTest.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -74,6 +74,8 @@ namespace Grpc.Core.Tests
/// (~110ns .NET Windows)
/// </summary>
[Test]
+ [Category("Performance")]
+ [Ignore("Prevent running on Jenkins")]
public void NativeCallbackBenchmark()
{
OpCompletionDelegate handler = Handler;
@@ -95,6 +97,8 @@ namespace Grpc.Core.Tests
/// (~1.1us on .NET Windows)
/// </summary>
[Test]
+ [Category("Performance")]
+ [Ignore("Prevent running on Jenkins")]
public void NewNativeCallbackBenchmark()
{
counter = 0;
@@ -112,6 +116,8 @@ namespace Grpc.Core.Tests
/// (~46ns .NET Windows)
/// </summary>
[Test]
+ [Category("Performance")]
+ [Ignore("Prevent running on Jenkins")]
public void NopPInvokeBenchmark()
{
BenchmarkUtil.RunBenchmark(
diff --git a/src/csharp/Grpc.Core/AsyncAuthInterceptor.cs b/src/csharp/Grpc.Core/AsyncAuthInterceptor.cs
index 5ba06d6509..1ad2290928 100644
--- a/src/csharp/Grpc.Core/AsyncAuthInterceptor.cs
+++ b/src/csharp/Grpc.Core/AsyncAuthInterceptor.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/CallCredentials.cs b/src/csharp/Grpc.Core/CallCredentials.cs
index 7cd41d0480..7476b0ca16 100644
--- a/src/csharp/Grpc.Core/CallCredentials.cs
+++ b/src/csharp/Grpc.Core/CallCredentials.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/CallInvocationDetails.cs b/src/csharp/Grpc.Core/CallInvocationDetails.cs
index 52bfbe6edb..98db854614 100644
--- a/src/csharp/Grpc.Core/CallInvocationDetails.cs
+++ b/src/csharp/Grpc.Core/CallInvocationDetails.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/CallOptions.cs b/src/csharp/Grpc.Core/CallOptions.cs
index 7bd95d4ba8..caf8210d91 100644
--- a/src/csharp/Grpc.Core/CallOptions.cs
+++ b/src/csharp/Grpc.Core/CallOptions.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Channel.cs b/src/csharp/Grpc.Core/Channel.cs
index d7a482d86f..89981b1849 100644
--- a/src/csharp/Grpc.Core/Channel.cs
+++ b/src/csharp/Grpc.Core/Channel.cs
@@ -1,5 +1,5 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/ChannelCredentials.cs b/src/csharp/Grpc.Core/ChannelCredentials.cs
index 03cda28400..db0cefef8b 100644
--- a/src/csharp/Grpc.Core/ChannelCredentials.cs
+++ b/src/csharp/Grpc.Core/ChannelCredentials.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/ChannelOptions.cs b/src/csharp/Grpc.Core/ChannelOptions.cs
index 65e15e21e9..b6eeceabc4 100644
--- a/src/csharp/Grpc.Core/ChannelOptions.cs
+++ b/src/csharp/Grpc.Core/ChannelOptions.cs
@@ -1,5 +1,5 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/ContextPropagationToken.cs b/src/csharp/Grpc.Core/ContextPropagationToken.cs
index c0f638f837..935498246a 100644
--- a/src/csharp/Grpc.Core/ContextPropagationToken.cs
+++ b/src/csharp/Grpc.Core/ContextPropagationToken.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/GrpcEnvironment.cs b/src/csharp/Grpc.Core/GrpcEnvironment.cs
index 86b37b8660..a5c78cc9d7 100644
--- a/src/csharp/Grpc.Core/GrpcEnvironment.cs
+++ b/src/csharp/Grpc.Core/GrpcEnvironment.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Internal/AsyncCall.cs b/src/csharp/Grpc.Core/Internal/AsyncCall.cs
index 2caba260b3..016e1b8587 100644
--- a/src/csharp/Grpc.Core/Internal/AsyncCall.cs
+++ b/src/csharp/Grpc.Core/Internal/AsyncCall.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -258,9 +258,19 @@ namespace Grpc.Core.Internal
lock (myLock)
{
GrpcPreconditions.CheckNotNull(completionDelegate, "Completion delegate cannot be null");
- CheckSendingAllowed();
+ CheckSendingAllowed(allowFinished: true);
- call.StartSendCloseFromClient(HandleHalfclosed);
+ if (!disposed && !finished)
+ {
+ call.StartSendCloseFromClient(HandleSendCloseFromClientFinished);
+ }
+ else
+ {
+ // In case the call has already been finished by the serverside,
+ // the halfclose has already been done implicitly, so we only
+ // emit the notification for the completion delegate.
+ Task.Run(() => HandleSendCloseFromClientFinished(true));
+ }
halfcloseRequested = true;
sendCompletionDelegate = completionDelegate;
diff --git a/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs b/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs
index 45d4c3e078..ccd047f469 100644
--- a/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs
+++ b/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -136,7 +136,7 @@ namespace Grpc.Core.Internal
lock (myLock)
{
GrpcPreconditions.CheckNotNull(completionDelegate, "Completion delegate cannot be null");
- CheckSendingAllowed();
+ CheckSendingAllowed(allowFinished: false);
call.StartSendMessage(HandleSendFinished, payload, writeFlags, !initialMetadataSent);
@@ -202,14 +202,14 @@ namespace Grpc.Core.Internal
{
}
- protected void CheckSendingAllowed()
+ protected void CheckSendingAllowed(bool allowFinished)
{
GrpcPreconditions.CheckState(started);
CheckNotCancelled();
- GrpcPreconditions.CheckState(!disposed);
+ GrpcPreconditions.CheckState(!disposed || allowFinished);
GrpcPreconditions.CheckState(!halfcloseRequested, "Already halfclosed.");
- GrpcPreconditions.CheckState(!finished, "Already finished.");
+ GrpcPreconditions.CheckState(!finished || allowFinished, "Already finished.");
GrpcPreconditions.CheckState(sendCompletionDelegate == null, "Only one write can be pending at a time");
}
@@ -294,9 +294,33 @@ namespace Grpc.Core.Internal
}
/// <summary>
- /// Handles halfclose completion.
+ /// Handles halfclose (send close from client) completion.
+ /// </summary>
+ protected void HandleSendCloseFromClientFinished(bool success)
+ {
+ AsyncCompletionDelegate<object> origCompletionDelegate = null;
+ lock (myLock)
+ {
+ origCompletionDelegate = sendCompletionDelegate;
+ sendCompletionDelegate = null;
+
+ ReleaseResourcesIfPossible();
+ }
+
+ if (!success)
+ {
+ FireCompletion(origCompletionDelegate, null, new InvalidOperationException("Sending close from client has failed."));
+ }
+ else
+ {
+ FireCompletion(origCompletionDelegate, null, null);
+ }
+ }
+
+ /// <summary>
+ /// Handles send status from server completion.
/// </summary>
- protected void HandleHalfclosed(bool success)
+ protected void HandleSendStatusFromServerFinished(bool success)
{
AsyncCompletionDelegate<object> origCompletionDelegate = null;
lock (myLock)
@@ -309,7 +333,7 @@ namespace Grpc.Core.Internal
if (!success)
{
- FireCompletion(origCompletionDelegate, null, new InvalidOperationException("Halfclose failed"));
+ FireCompletion(origCompletionDelegate, null, new InvalidOperationException("Error sending status from server."));
}
else
{
diff --git a/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs b/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs
index 9380c0d0ea..bea2b3660c 100644
--- a/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs
+++ b/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -113,7 +113,7 @@ namespace Grpc.Core.Internal
GrpcPreconditions.CheckState(!initialMetadataSent, "Response headers can only be sent once per call.");
GrpcPreconditions.CheckState(streamingWritesCounter == 0, "Response headers can only be sent before the first write starts.");
- CheckSendingAllowed();
+ CheckSendingAllowed(allowFinished: false);
GrpcPreconditions.CheckNotNull(completionDelegate, "Completion delegate cannot be null");
@@ -137,11 +137,11 @@ namespace Grpc.Core.Internal
lock (myLock)
{
GrpcPreconditions.CheckNotNull(completionDelegate, "Completion delegate cannot be null");
- CheckSendingAllowed();
+ CheckSendingAllowed(allowFinished: false);
using (var metadataArray = MetadataArraySafeHandle.Create(trailers))
{
- call.StartSendStatusFromServer(HandleHalfclosed, status, metadataArray, !initialMetadataSent);
+ call.StartSendStatusFromServer(HandleSendStatusFromServerFinished, status, metadataArray, !initialMetadataSent);
}
halfcloseRequested = true;
readingDone = true;
diff --git a/src/csharp/Grpc.Core/Internal/AsyncCompletion.cs b/src/csharp/Grpc.Core/Internal/AsyncCompletion.cs
index d5bbf676ff..7e86fddb4d 100644
--- a/src/csharp/Grpc.Core/Internal/AsyncCompletion.cs
+++ b/src/csharp/Grpc.Core/Internal/AsyncCompletion.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs b/src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs
index 0e2108f0f2..66d2a66f99 100644
--- a/src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs
+++ b/src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Internal/CStringSafeHandle.cs b/src/csharp/Grpc.Core/Internal/CStringSafeHandle.cs
index 4ae57aa773..0221798d2a 100644
--- a/src/csharp/Grpc.Core/Internal/CStringSafeHandle.cs
+++ b/src/csharp/Grpc.Core/Internal/CStringSafeHandle.cs
@@ -1,5 +1,5 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Internal/CallCredentialsSafeHandle.cs b/src/csharp/Grpc.Core/Internal/CallCredentialsSafeHandle.cs
index 0f36337f11..3095a34008 100644
--- a/src/csharp/Grpc.Core/Internal/CallCredentialsSafeHandle.cs
+++ b/src/csharp/Grpc.Core/Internal/CallCredentialsSafeHandle.cs
@@ -1,5 +1,5 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs b/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs
index bc045b67b1..500653ba5d 100644
--- a/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs
+++ b/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs
@@ -1,5 +1,5 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Internal/ChannelArgsSafeHandle.cs b/src/csharp/Grpc.Core/Internal/ChannelArgsSafeHandle.cs
index f6aa710b21..0038024245 100644
--- a/src/csharp/Grpc.Core/Internal/ChannelArgsSafeHandle.cs
+++ b/src/csharp/Grpc.Core/Internal/ChannelArgsSafeHandle.cs
@@ -1,5 +1,5 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Internal/ChannelCredentialsSafeHandle.cs b/src/csharp/Grpc.Core/Internal/ChannelCredentialsSafeHandle.cs
index 65cc2e019f..c85f55241a 100644
--- a/src/csharp/Grpc.Core/Internal/ChannelCredentialsSafeHandle.cs
+++ b/src/csharp/Grpc.Core/Internal/ChannelCredentialsSafeHandle.cs
@@ -1,5 +1,5 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Internal/ChannelSafeHandle.cs b/src/csharp/Grpc.Core/Internal/ChannelSafeHandle.cs
index 2199905cc6..1dbd1f4e34 100644
--- a/src/csharp/Grpc.Core/Internal/ChannelSafeHandle.cs
+++ b/src/csharp/Grpc.Core/Internal/ChannelSafeHandle.cs
@@ -1,5 +1,5 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Internal/CompletionQueueEvent.cs b/src/csharp/Grpc.Core/Internal/CompletionQueueEvent.cs
index 36a92ecd8e..288680792a 100644
--- a/src/csharp/Grpc.Core/Internal/CompletionQueueEvent.cs
+++ b/src/csharp/Grpc.Core/Internal/CompletionQueueEvent.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Internal/CompletionQueueSafeHandle.cs b/src/csharp/Grpc.Core/Internal/CompletionQueueSafeHandle.cs
index 5c75b52e23..91364cdc70 100644
--- a/src/csharp/Grpc.Core/Internal/CompletionQueueSafeHandle.cs
+++ b/src/csharp/Grpc.Core/Internal/CompletionQueueSafeHandle.cs
@@ -1,5 +1,5 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Internal/CompletionRegistry.cs b/src/csharp/Grpc.Core/Internal/CompletionRegistry.cs
index 3a293e1626..628844f242 100644
--- a/src/csharp/Grpc.Core/Internal/CompletionRegistry.cs
+++ b/src/csharp/Grpc.Core/Internal/CompletionRegistry.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Internal/DefaultSslRootsOverride.cs b/src/csharp/Grpc.Core/Internal/DefaultSslRootsOverride.cs
index dfaee5d9d7..aa4dafd7f2 100644
--- a/src/csharp/Grpc.Core/Internal/DefaultSslRootsOverride.cs
+++ b/src/csharp/Grpc.Core/Internal/DefaultSslRootsOverride.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Internal/Enums.cs b/src/csharp/Grpc.Core/Internal/Enums.cs
index 098e7c0e99..74f86d2a30 100644
--- a/src/csharp/Grpc.Core/Internal/Enums.cs
+++ b/src/csharp/Grpc.Core/Internal/Enums.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Internal/MetadataArraySafeHandle.cs b/src/csharp/Grpc.Core/Internal/MetadataArraySafeHandle.cs
index 81760d7a10..25735d5262 100644
--- a/src/csharp/Grpc.Core/Internal/MetadataArraySafeHandle.cs
+++ b/src/csharp/Grpc.Core/Internal/MetadataArraySafeHandle.cs
@@ -1,5 +1,5 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Internal/NativeExtension.cs b/src/csharp/Grpc.Core/Internal/NativeExtension.cs
index 282816d51e..bff1e56582 100644
--- a/src/csharp/Grpc.Core/Internal/NativeExtension.cs
+++ b/src/csharp/Grpc.Core/Internal/NativeExtension.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Internal/NativeLogRedirector.cs b/src/csharp/Grpc.Core/Internal/NativeLogRedirector.cs
index 4bbbb4808c..3fcf8673ee 100644
--- a/src/csharp/Grpc.Core/Internal/NativeLogRedirector.cs
+++ b/src/csharp/Grpc.Core/Internal/NativeLogRedirector.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Internal/NativeMetadataCredentialsPlugin.cs b/src/csharp/Grpc.Core/Internal/NativeMetadataCredentialsPlugin.cs
index e810ffcdd0..0e4d9070d3 100644
--- a/src/csharp/Grpc.Core/Internal/NativeMetadataCredentialsPlugin.cs
+++ b/src/csharp/Grpc.Core/Internal/NativeMetadataCredentialsPlugin.cs
@@ -1,5 +1,5 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Internal/NativeMethods.cs b/src/csharp/Grpc.Core/Internal/NativeMethods.cs
index 19a573581e..9ee0ba3bc0 100644
--- a/src/csharp/Grpc.Core/Internal/NativeMethods.cs
+++ b/src/csharp/Grpc.Core/Internal/NativeMethods.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Internal/PlatformApis.cs b/src/csharp/Grpc.Core/Internal/PlatformApis.cs
index fb1acfb607..5d8c44b589 100644
--- a/src/csharp/Grpc.Core/Internal/PlatformApis.cs
+++ b/src/csharp/Grpc.Core/Internal/PlatformApis.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Internal/ServerCallHandler.cs b/src/csharp/Grpc.Core/Internal/ServerCallHandler.cs
index ccf144de2d..1f83e51548 100644
--- a/src/csharp/Grpc.Core/Internal/ServerCallHandler.cs
+++ b/src/csharp/Grpc.Core/Internal/ServerCallHandler.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Internal/ServerCredentialsSafeHandle.cs b/src/csharp/Grpc.Core/Internal/ServerCredentialsSafeHandle.cs
index a50f357990..24f686fddc 100644
--- a/src/csharp/Grpc.Core/Internal/ServerCredentialsSafeHandle.cs
+++ b/src/csharp/Grpc.Core/Internal/ServerCredentialsSafeHandle.cs
@@ -1,5 +1,5 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Internal/ServerSafeHandle.cs b/src/csharp/Grpc.Core/Internal/ServerSafeHandle.cs
index a57fb3b789..6b5f70e220 100644
--- a/src/csharp/Grpc.Core/Internal/ServerSafeHandle.cs
+++ b/src/csharp/Grpc.Core/Internal/ServerSafeHandle.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Internal/Timespec.cs b/src/csharp/Grpc.Core/Internal/Timespec.cs
index 754be4e035..56172a5dda 100644
--- a/src/csharp/Grpc.Core/Internal/Timespec.cs
+++ b/src/csharp/Grpc.Core/Internal/Timespec.cs
@@ -1,5 +1,5 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Internal/UnmanagedLibrary.cs b/src/csharp/Grpc.Core/Internal/UnmanagedLibrary.cs
index e763c15025..47308f8c9e 100644
--- a/src/csharp/Grpc.Core/Internal/UnmanagedLibrary.cs
+++ b/src/csharp/Grpc.Core/Internal/UnmanagedLibrary.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/KeyCertificatePair.cs b/src/csharp/Grpc.Core/KeyCertificatePair.cs
index 0fb6817986..a8f3bb073d 100644
--- a/src/csharp/Grpc.Core/KeyCertificatePair.cs
+++ b/src/csharp/Grpc.Core/KeyCertificatePair.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Logging/ConsoleLogger.cs b/src/csharp/Grpc.Core/Logging/ConsoleLogger.cs
index d41b1b9f26..da74e55a95 100644
--- a/src/csharp/Grpc.Core/Logging/ConsoleLogger.cs
+++ b/src/csharp/Grpc.Core/Logging/ConsoleLogger.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Marshaller.cs b/src/csharp/Grpc.Core/Marshaller.cs
index 5847248c1a..d86e75b3cb 100644
--- a/src/csharp/Grpc.Core/Marshaller.cs
+++ b/src/csharp/Grpc.Core/Marshaller.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Metadata.cs b/src/csharp/Grpc.Core/Metadata.cs
index 52cef96f40..e982fa0c48 100644
--- a/src/csharp/Grpc.Core/Metadata.cs
+++ b/src/csharp/Grpc.Core/Metadata.cs
@@ -1,5 +1,5 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Method.cs b/src/csharp/Grpc.Core/Method.cs
index 3870076f7f..0cf041be2b 100644
--- a/src/csharp/Grpc.Core/Method.cs
+++ b/src/csharp/Grpc.Core/Method.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Profiling/Profilers.cs b/src/csharp/Grpc.Core/Profiling/Profilers.cs
index 8a181447d6..aa0d96c0e0 100644
--- a/src/csharp/Grpc.Core/Profiling/Profilers.cs
+++ b/src/csharp/Grpc.Core/Profiling/Profilers.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Server.cs b/src/csharp/Grpc.Core/Server.cs
index 5d0fc6b1f0..5b61b7f060 100644
--- a/src/csharp/Grpc.Core/Server.cs
+++ b/src/csharp/Grpc.Core/Server.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/ServerCredentials.cs b/src/csharp/Grpc.Core/ServerCredentials.cs
index 456d331c9c..ace4820027 100644
--- a/src/csharp/Grpc.Core/ServerCredentials.cs
+++ b/src/csharp/Grpc.Core/ServerCredentials.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/ServerPort.cs b/src/csharp/Grpc.Core/ServerPort.cs
index 10ddcb782f..afae0846dd 100644
--- a/src/csharp/Grpc.Core/ServerPort.cs
+++ b/src/csharp/Grpc.Core/ServerPort.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Utils/GrpcPreconditions.cs b/src/csharp/Grpc.Core/Utils/GrpcPreconditions.cs
index 76bf04ce8b..fcfe97a09b 100644
--- a/src/csharp/Grpc.Core/Utils/GrpcPreconditions.cs
+++ b/src/csharp/Grpc.Core/Utils/GrpcPreconditions.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/Version.cs b/src/csharp/Grpc.Core/Version.cs
index 6d88438a07..8a26bd8362 100644
--- a/src/csharp/Grpc.Core/Version.cs
+++ b/src/csharp/Grpc.Core/Version.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.Core/VersionInfo.cs b/src/csharp/Grpc.Core/VersionInfo.cs
index 4bd4f204dd..9014a13f40 100644
--- a/src/csharp/Grpc.Core/VersionInfo.cs
+++ b/src/csharp/Grpc.Core/VersionInfo.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs b/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs
index c3fac05324..8318e84277 100644
--- a/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs
+++ b/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs
@@ -1,5 +1,5 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.HealthCheck.Tests/HealthServiceImplTest.cs b/src/csharp/Grpc.HealthCheck.Tests/HealthServiceImplTest.cs
index 47e4b7c2a7..a4b79e3a7d 100644
--- a/src/csharp/Grpc.HealthCheck.Tests/HealthServiceImplTest.cs
+++ b/src/csharp/Grpc.HealthCheck.Tests/HealthServiceImplTest.cs
@@ -1,5 +1,5 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.HealthCheck/HealthServiceImpl.cs b/src/csharp/Grpc.HealthCheck/HealthServiceImpl.cs
index 21482b302b..a6e82aa0d4 100644
--- a/src/csharp/Grpc.HealthCheck/HealthServiceImpl.cs
+++ b/src/csharp/Grpc.HealthCheck/HealthServiceImpl.cs
@@ -1,5 +1,5 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.IntegrationTesting.Client/Grpc.IntegrationTesting.Client.csproj b/src/csharp/Grpc.IntegrationTesting.Client/Grpc.IntegrationTesting.Client.csproj
index f37c1464c3..339a754c02 100644
--- a/src/csharp/Grpc.IntegrationTesting.Client/Grpc.IntegrationTesting.Client.csproj
+++ b/src/csharp/Grpc.IntegrationTesting.Client/Grpc.IntegrationTesting.Client.csproj
@@ -9,7 +9,7 @@
<AssemblyName>Grpc.IntegrationTesting.Client</AssemblyName>
<StartupObject>Grpc.IntegrationTesting.Client.Program</StartupObject>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
- <NuGetPackageImportStamp>6d22e68f</NuGetPackageImportStamp>
+ <NuGetPackageImportStamp>dfa56e6c</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -43,28 +43,17 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\BouncyCastle.1.7.0\lib\Net40-Client\BouncyCastle.Crypto.dll</HintPath>
</Reference>
- <Reference Include="Google.Apis.Auth, Version=1.10.0.25333, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <Reference Include="Google.Apis.Auth, Version=1.11.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Google.Apis.Auth.1.10.0\lib\net40\Google.Apis.Auth.dll</HintPath>
+ <HintPath>..\packages\Google.Apis.Auth.1.11.1\lib\net45\Google.Apis.Auth.dll</HintPath>
</Reference>
- <Reference Include="Google.Apis.Auth.PlatformServices, Version=1.10.0.25333, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <Reference Include="Google.Apis.Auth.PlatformServices, Version=1.11.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Google.Apis.Auth.1.10.0\lib\net40\Google.Apis.Auth.PlatformServices.dll</HintPath>
+ <HintPath>..\packages\Google.Apis.Auth.1.11.1\lib\net45\Google.Apis.Auth.PlatformServices.dll</HintPath>
</Reference>
- <Reference Include="Google.Apis.Core, Version=1.10.0.25331, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <Reference Include="Google.Apis.Core, Version=1.11.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Google.Apis.Core.1.10.0\lib\portable-net40+sl50+win+wpa81+wp80\Google.Apis.Core.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.Threading.Tasks, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.Threading.Tasks.Extensions">
- <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.Threading.Tasks.Extensions.Desktop, Version=1.0.168.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll</HintPath>
+ <HintPath>..\packages\Google.Apis.Core.1.11.1\lib\net45\Google.Apis.Core.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
@@ -73,12 +62,6 @@
<Reference Include="System" />
<Reference Include="System.Net" />
<Reference Include="System.Net.Http" />
- <Reference Include="System.Net.Http.Extensions">
- <HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll</HintPath>
- </Reference>
- <Reference Include="System.Net.Http.Primitives">
- <HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll</HintPath>
- </Reference>
<Reference Include="System.Net.Http.WebRequest" />
</ItemGroup>
<ItemGroup>
@@ -100,14 +83,6 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
- <None Include="app.config" />
<None Include="packages.config" />
</ItemGroup>
- <Import Project="..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" />
- <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
- <PropertyGroup>
- <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
- </PropertyGroup>
- <Error Condition="!Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" />
- </Target>
</Project> \ No newline at end of file
diff --git a/src/csharp/Grpc.IntegrationTesting.Client/app.config b/src/csharp/Grpc.IntegrationTesting.Client/app.config
deleted file mode 100644
index 84d7534d65..0000000000
--- a/src/csharp/Grpc.IntegrationTesting.Client/app.config
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
- <runtime>
- <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
- <dependentAssembly>
- <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.2.29.0" newVersion="4.2.29.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.2.28.0" newVersion="4.0.0.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="Google.Apis.Core" publicKeyToken="4b01fa6e34db77ab" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-1.9.2.38523" newVersion="1.9.2.38523" />
- </dependentAssembly>
- </assemblyBinding>
- </runtime>
-</configuration> \ No newline at end of file
diff --git a/src/csharp/Grpc.IntegrationTesting.Client/packages.config b/src/csharp/Grpc.IntegrationTesting.Client/packages.config
index 5fe8ca616c..c20d9ceed6 100644
--- a/src/csharp/Grpc.IntegrationTesting.Client/packages.config
+++ b/src/csharp/Grpc.IntegrationTesting.Client/packages.config
@@ -1,11 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="BouncyCastle" version="1.7.0" targetFramework="net45" />
- <package id="Google.Apis.Auth" version="1.10.0" targetFramework="net45" />
- <package id="Google.Apis.Core" version="1.10.0" targetFramework="net45" />
- <package id="Microsoft.Bcl" version="1.1.10" targetFramework="net45" />
- <package id="Microsoft.Bcl.Async" version="1.0.168" targetFramework="net45" />
- <package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="net45" />
- <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net45" />
+ <package id="Google.Apis.Auth" version="1.11.1" targetFramework="net45" />
+ <package id="Google.Apis.Core" version="1.11.1" targetFramework="net45" />
<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" />
</packages> \ No newline at end of file
diff --git a/src/csharp/Grpc.IntegrationTesting.QpsWorker/app.config b/src/csharp/Grpc.IntegrationTesting.QpsWorker/app.config
index 940d25cae3..e204447bb3 100644
--- a/src/csharp/Grpc.IntegrationTesting.QpsWorker/app.config
+++ b/src/csharp/Grpc.IntegrationTesting.QpsWorker/app.config
@@ -6,6 +6,10 @@
<assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.29.0" newVersion="4.2.29.0" />
</dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="Google.Apis.Core" publicKeyToken="4b01fa6e34db77ab" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-1.11.1.0" newVersion="1.11.1.0" />
+ </dependentAssembly>
</assemblyBinding>
</runtime>
</configuration> \ No newline at end of file
diff --git a/src/csharp/Grpc.IntegrationTesting.Server/Grpc.IntegrationTesting.Server.csproj b/src/csharp/Grpc.IntegrationTesting.Server/Grpc.IntegrationTesting.Server.csproj
index f27b96a53f..27a5650308 100644
--- a/src/csharp/Grpc.IntegrationTesting.Server/Grpc.IntegrationTesting.Server.csproj
+++ b/src/csharp/Grpc.IntegrationTesting.Server/Grpc.IntegrationTesting.Server.csproj
@@ -9,7 +9,7 @@
<AssemblyName>Grpc.IntegrationTesting.Server</AssemblyName>
<StartupObject>Grpc.IntegrationTesting.Server.Program</StartupObject>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
- <NuGetPackageImportStamp>d9ee8e52</NuGetPackageImportStamp>
+ <NuGetPackageImportStamp>7ceb739e</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -43,28 +43,17 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\BouncyCastle.1.7.0\lib\Net40-Client\BouncyCastle.Crypto.dll</HintPath>
</Reference>
- <Reference Include="Google.Apis.Auth, Version=1.10.0.25333, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <Reference Include="Google.Apis.Auth, Version=1.11.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Google.Apis.Auth.1.10.0\lib\net40\Google.Apis.Auth.dll</HintPath>
+ <HintPath>..\packages\Google.Apis.Auth.1.11.1\lib\net45\Google.Apis.Auth.dll</HintPath>
</Reference>
- <Reference Include="Google.Apis.Auth.PlatformServices, Version=1.10.0.25333, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <Reference Include="Google.Apis.Auth.PlatformServices, Version=1.11.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Google.Apis.Auth.1.10.0\lib\net40\Google.Apis.Auth.PlatformServices.dll</HintPath>
+ <HintPath>..\packages\Google.Apis.Auth.1.11.1\lib\net45\Google.Apis.Auth.PlatformServices.dll</HintPath>
</Reference>
- <Reference Include="Google.Apis.Core, Version=1.10.0.25331, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <Reference Include="Google.Apis.Core, Version=1.11.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Google.Apis.Core.1.10.0\lib\portable-net40+sl50+win+wpa81+wp80\Google.Apis.Core.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.Threading.Tasks, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.Threading.Tasks.Extensions">
- <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.Threading.Tasks.Extensions.Desktop, Version=1.0.168.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll</HintPath>
+ <HintPath>..\packages\Google.Apis.Core.1.11.1\lib\net45\Google.Apis.Core.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
@@ -73,12 +62,6 @@
<Reference Include="System" />
<Reference Include="System.Net" />
<Reference Include="System.Net.Http" />
- <Reference Include="System.Net.Http.Extensions">
- <HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll</HintPath>
- </Reference>
- <Reference Include="System.Net.Http.Primitives">
- <HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll</HintPath>
- </Reference>
<Reference Include="System.Net.Http.WebRequest" />
</ItemGroup>
<ItemGroup>
@@ -100,14 +83,6 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
- <None Include="app.config" />
<None Include="packages.config" />
</ItemGroup>
- <Import Project="..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" />
- <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
- <PropertyGroup>
- <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
- </PropertyGroup>
- <Error Condition="!Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" />
- </Target>
</Project> \ No newline at end of file
diff --git a/src/csharp/Grpc.IntegrationTesting.Server/app.config b/src/csharp/Grpc.IntegrationTesting.Server/app.config
deleted file mode 100644
index 84d7534d65..0000000000
--- a/src/csharp/Grpc.IntegrationTesting.Server/app.config
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
- <runtime>
- <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
- <dependentAssembly>
- <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.2.29.0" newVersion="4.2.29.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.2.28.0" newVersion="4.0.0.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="Google.Apis.Core" publicKeyToken="4b01fa6e34db77ab" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-1.9.2.38523" newVersion="1.9.2.38523" />
- </dependentAssembly>
- </assemblyBinding>
- </runtime>
-</configuration> \ No newline at end of file
diff --git a/src/csharp/Grpc.IntegrationTesting.Server/packages.config b/src/csharp/Grpc.IntegrationTesting.Server/packages.config
index 5fe8ca616c..c20d9ceed6 100644
--- a/src/csharp/Grpc.IntegrationTesting.Server/packages.config
+++ b/src/csharp/Grpc.IntegrationTesting.Server/packages.config
@@ -1,11 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="BouncyCastle" version="1.7.0" targetFramework="net45" />
- <package id="Google.Apis.Auth" version="1.10.0" targetFramework="net45" />
- <package id="Google.Apis.Core" version="1.10.0" targetFramework="net45" />
- <package id="Microsoft.Bcl" version="1.1.10" targetFramework="net45" />
- <package id="Microsoft.Bcl.Async" version="1.0.168" targetFramework="net45" />
- <package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="net45" />
- <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net45" />
+ <package id="Google.Apis.Auth" version="1.11.1" targetFramework="net45" />
+ <package id="Google.Apis.Core" version="1.11.1" targetFramework="net45" />
<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" />
</packages> \ No newline at end of file
diff --git a/src/csharp/Grpc.IntegrationTesting/BenchmarkServiceImpl.cs b/src/csharp/Grpc.IntegrationTesting/BenchmarkServiceImpl.cs
index 47a15224f1..7e7bc713a0 100644
--- a/src/csharp/Grpc.IntegrationTesting/BenchmarkServiceImpl.cs
+++ b/src/csharp/Grpc.IntegrationTesting/BenchmarkServiceImpl.cs
@@ -46,16 +46,13 @@ namespace Grpc.Testing
/// </summary>
public class BenchmarkServiceImpl : BenchmarkService.IBenchmarkService
{
- private readonly int responseSize;
-
- public BenchmarkServiceImpl(int responseSize)
+ public BenchmarkServiceImpl()
{
- this.responseSize = responseSize;
}
public Task<SimpleResponse> UnaryCall(SimpleRequest request, ServerCallContext context)
{
- var response = new SimpleResponse { Payload = CreateZerosPayload(responseSize) };
+ var response = new SimpleResponse { Payload = CreateZerosPayload(request.ResponseSize) };
return Task.FromResult(response);
}
@@ -63,7 +60,7 @@ namespace Grpc.Testing
{
await requestStream.ForEachAsync(async request =>
{
- var response = new SimpleResponse { Payload = CreateZerosPayload(responseSize) };
+ var response = new SimpleResponse { Payload = CreateZerosPayload(request.ResponseSize) };
await responseStream.WriteAsync(response);
});
}
diff --git a/src/csharp/Grpc.IntegrationTesting/ClientRunners.cs b/src/csharp/Grpc.IntegrationTesting/ClientRunners.cs
index c4016012cb..5bfc89d591 100644
--- a/src/csharp/Grpc.IntegrationTesting/ClientRunners.cs
+++ b/src/csharp/Grpc.IntegrationTesting/ClientRunners.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -41,6 +41,7 @@ using System.Threading;
using System.Threading.Tasks;
using Google.Protobuf;
using Grpc.Core;
+using Grpc.Core.Logging;
using Grpc.Core.Utils;
using NUnit.Framework;
using Grpc.Testing;
@@ -50,42 +51,65 @@ namespace Grpc.IntegrationTesting
/// <summary>
/// Helper methods to start client runners for performance testing.
/// </summary>
- public static class ClientRunners
+ public class ClientRunners
{
+ static readonly ILogger Logger = GrpcEnvironment.Logger.ForType<ClientRunners>();
+
/// <summary>
/// Creates a started client runner.
/// </summary>
public static IClientRunner CreateStarted(ClientConfig config)
{
+ Logger.Debug("ClientConfig: {0}", config);
string target = config.ServerTargets.Single();
- GrpcPreconditions.CheckArgument(config.LoadParams.LoadCase == LoadParams.LoadOneofCase.ClosedLoop);
+ GrpcPreconditions.CheckArgument(config.LoadParams.LoadCase == LoadParams.LoadOneofCase.ClosedLoop,
+ "Only closed loop scenario supported for C#");
+ GrpcPreconditions.CheckArgument(config.ClientChannels == 1, "ClientConfig.ClientChannels needs to be 1");
- var credentials = config.SecurityParams != null ? TestCredentials.CreateSslCredentials() : ChannelCredentials.Insecure;
- var channel = new Channel(target, credentials);
+ if (config.OutstandingRpcsPerChannel != 0)
+ {
+ Logger.Warning("ClientConfig.OutstandingRpcsPerChannel is not supported for C#. Ignoring the value");
+ }
+ if (config.AsyncClientThreads != 0)
+ {
+ Logger.Warning("ClientConfig.AsyncClientThreads is not supported for C#. Ignoring the value");
+ }
+ if (config.CoreLimit != 0)
+ {
+ Logger.Warning("ClientConfig.CoreLimit is not supported for C#. Ignoring the value");
+ }
+ if (config.CoreList.Count > 0)
+ {
+ Logger.Warning("ClientConfig.CoreList is not supported for C#. Ignoring the value");
+ }
- switch (config.RpcType)
+ var credentials = config.SecurityParams != null ? TestCredentials.CreateSslCredentials() : ChannelCredentials.Insecure;
+ List<ChannelOption> channelOptions = null;
+ if (config.SecurityParams != null && config.SecurityParams.ServerHostOverride != "")
{
- case RpcType.UNARY:
- return new SyncUnaryClientRunner(channel,
- config.PayloadConfig.SimpleParams.ReqSize,
- config.HistogramParams);
-
- case RpcType.STREAMING:
- default:
- throw new ArgumentException("Unsupported RpcType.");
+ channelOptions = new List<ChannelOption>
+ {
+ new ChannelOption(ChannelOptions.SslTargetNameOverride, config.SecurityParams.ServerHostOverride)
+ };
}
+ var channel = new Channel(target, credentials, channelOptions);
+
+ return new ClientRunnerImpl(channel,
+ config.ClientType,
+ config.RpcType,
+ config.PayloadConfig,
+ config.HistogramParams);
}
}
- /// <summary>
- /// Client that starts synchronous unary calls in a closed loop.
- /// </summary>
- public class SyncUnaryClientRunner : IClientRunner
+ public class ClientRunnerImpl : IClientRunner
{
const double SecondsToNanos = 1e9;
readonly Channel channel;
- readonly int payloadSize;
+ readonly ClientType clientType;
+ readonly RpcType rpcType;
+ readonly PayloadConfig payloadConfig;
readonly Histogram histogram;
readonly BenchmarkService.IBenchmarkServiceClient client;
@@ -93,15 +117,19 @@ namespace Grpc.IntegrationTesting
readonly CancellationTokenSource stoppedCts;
readonly WallClockStopwatch wallClockStopwatch = new WallClockStopwatch();
- public SyncUnaryClientRunner(Channel channel, int payloadSize, HistogramParams histogramParams)
+ public ClientRunnerImpl(Channel channel, ClientType clientType, RpcType rpcType, PayloadConfig payloadConfig, HistogramParams histogramParams)
{
this.channel = GrpcPreconditions.CheckNotNull(channel);
- this.payloadSize = payloadSize;
+ this.clientType = clientType;
+ this.rpcType = rpcType;
+ this.payloadConfig = payloadConfig;
this.histogram = new Histogram(histogramParams.Resolution, histogramParams.MaxPossible);
this.stoppedCts = new CancellationTokenSource();
this.client = BenchmarkService.NewClient(channel);
- this.runnerTask = Task.Factory.StartNew(Run, TaskCreationOptions.LongRunning);
+
+ var threadBody = GetThreadBody();
+ this.runnerTask = Task.Factory.StartNew(threadBody, TaskCreationOptions.LongRunning);
}
public ClientStats GetStats(bool reset)
@@ -126,12 +154,9 @@ namespace Grpc.IntegrationTesting
await channel.ShutdownAsync();
}
- private void Run()
+ private void RunClosedLoopUnary()
{
- var request = new SimpleRequest
- {
- Payload = CreateZerosPayload(payloadSize)
- };
+ var request = CreateSimpleRequest();
var stopwatch = new Stopwatch();
while (!stoppedCts.Token.IsCancellationRequested)
@@ -145,6 +170,124 @@ namespace Grpc.IntegrationTesting
}
}
+ private async Task RunClosedLoopUnaryAsync()
+ {
+ var request = CreateSimpleRequest();
+ var stopwatch = new Stopwatch();
+
+ while (!stoppedCts.Token.IsCancellationRequested)
+ {
+ stopwatch.Restart();
+ await client.UnaryCallAsync(request);
+ stopwatch.Stop();
+
+ // spec requires data point in nanoseconds.
+ histogram.AddObservation(stopwatch.Elapsed.TotalSeconds * SecondsToNanos);
+ }
+ }
+
+ private async Task RunClosedLoopStreamingAsync()
+ {
+ var request = CreateSimpleRequest();
+ var stopwatch = new Stopwatch();
+
+ using (var call = client.StreamingCall())
+ {
+ while (!stoppedCts.Token.IsCancellationRequested)
+ {
+ stopwatch.Restart();
+ await call.RequestStream.WriteAsync(request);
+ await call.ResponseStream.MoveNext();
+ stopwatch.Stop();
+
+ // spec requires data point in nanoseconds.
+ histogram.AddObservation(stopwatch.Elapsed.TotalSeconds * SecondsToNanos);
+ }
+
+ // finish the streaming call
+ await call.RequestStream.CompleteAsync();
+ Assert.IsFalse(await call.ResponseStream.MoveNext());
+ }
+ }
+
+ private async Task RunGenericClosedLoopStreamingAsync()
+ {
+ var request = CreateByteBufferRequest();
+ var stopwatch = new Stopwatch();
+
+ var callDetails = new CallInvocationDetails<byte[], byte[]>(channel, GenericService.StreamingCallMethod, new CallOptions());
+
+ using (var call = Calls.AsyncDuplexStreamingCall(callDetails))
+ {
+ while (!stoppedCts.Token.IsCancellationRequested)
+ {
+ stopwatch.Restart();
+ await call.RequestStream.WriteAsync(request);
+ await call.ResponseStream.MoveNext();
+ stopwatch.Stop();
+
+ // spec requires data point in nanoseconds.
+ histogram.AddObservation(stopwatch.Elapsed.TotalSeconds * SecondsToNanos);
+ }
+
+ // finish the streaming call
+ await call.RequestStream.CompleteAsync();
+ Assert.IsFalse(await call.ResponseStream.MoveNext());
+ }
+ }
+
+ private Action GetThreadBody()
+ {
+ if (payloadConfig.PayloadCase == PayloadConfig.PayloadOneofCase.BytebufParams)
+ {
+ GrpcPreconditions.CheckArgument(clientType == ClientType.ASYNC_CLIENT, "Generic client only supports async API");
+ GrpcPreconditions.CheckArgument(rpcType == RpcType.STREAMING, "Generic client only supports streaming calls");
+ return () =>
+ {
+ RunGenericClosedLoopStreamingAsync().Wait();
+ };
+ }
+
+ GrpcPreconditions.CheckNotNull(payloadConfig.SimpleParams);
+ if (clientType == ClientType.SYNC_CLIENT)
+ {
+ GrpcPreconditions.CheckArgument(rpcType == RpcType.UNARY, "Sync client can only be used for Unary calls in C#");
+ return RunClosedLoopUnary;
+ }
+ else if (clientType == ClientType.ASYNC_CLIENT)
+ {
+ switch (rpcType)
+ {
+ case RpcType.UNARY:
+ return () =>
+ {
+ RunClosedLoopUnaryAsync().Wait();
+ };
+ case RpcType.STREAMING:
+ return () =>
+ {
+ RunClosedLoopStreamingAsync().Wait();
+ };
+ }
+ }
+ throw new ArgumentException("Unsupported configuration.");
+ }
+
+ private SimpleRequest CreateSimpleRequest()
+ {
+ GrpcPreconditions.CheckNotNull(payloadConfig.SimpleParams);
+ return new SimpleRequest
+ {
+ Payload = CreateZerosPayload(payloadConfig.SimpleParams.ReqSize),
+ ResponseSize = payloadConfig.SimpleParams.RespSize
+ };
+ }
+
+ private byte[] CreateByteBufferRequest()
+ {
+ return new byte[payloadConfig.BytebufParams.ReqSize];
+ }
+
private static Payload CreateZerosPayload(int size)
{
return new Payload { Body = ByteString.CopyFrom(new byte[size]) };
diff --git a/src/csharp/Grpc.IntegrationTesting/GenericService.cs b/src/csharp/Grpc.IntegrationTesting/GenericService.cs
new file mode 100644
index 0000000000..c6128264ac
--- /dev/null
+++ b/src/csharp/Grpc.IntegrationTesting/GenericService.cs
@@ -0,0 +1,71 @@
+#region Copyright notice and license
+
+// Copyright 2016, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.Linq;
+using System.Text.RegularExpressions;
+using System.Threading.Tasks;
+using Google.Protobuf;
+using Grpc.Core;
+using Grpc.Core.Utils;
+using NUnit.Framework;
+using Grpc.Testing;
+
+namespace Grpc.IntegrationTesting
+{
+ /// <summary>
+ /// Utility methods for defining and calling a service that doesn't use protobufs
+ /// for serialization/deserialization.
+ /// </summary>
+ public static class GenericService
+ {
+ readonly static Marshaller<byte[]> ByteArrayMarshaller = new Marshaller<byte[]>((b) => b, (b) => b);
+
+ public readonly static Method<byte[], byte[]> StreamingCallMethod = new Method<byte[], byte[]>(
+ MethodType.DuplexStreaming,
+ "grpc.testing.BenchmarkService",
+ "StreamingCall",
+ ByteArrayMarshaller,
+ ByteArrayMarshaller
+ );
+
+ public static ServerServiceDefinition BindHandler(DuplexStreamingServerMethod<byte[], byte[]> handler)
+ {
+ return ServerServiceDefinition.CreateBuilder(StreamingCallMethod.ServiceName)
+ .AddMethod(StreamingCallMethod, handler).Build();
+ }
+ }
+}
diff --git a/src/csharp/Grpc.IntegrationTesting/Grpc.IntegrationTesting.csproj b/src/csharp/Grpc.IntegrationTesting/Grpc.IntegrationTesting.csproj
index 372991374e..d3c572fe27 100644
--- a/src/csharp/Grpc.IntegrationTesting/Grpc.IntegrationTesting.csproj
+++ b/src/csharp/Grpc.IntegrationTesting/Grpc.IntegrationTesting.csproj
@@ -8,7 +8,7 @@
<RootNamespace>Grpc.IntegrationTesting</RootNamespace>
<AssemblyName>Grpc.IntegrationTesting</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
- <NuGetPackageImportStamp>6566287f</NuGetPackageImportStamp>
+ <NuGetPackageImportStamp>3a1c655d</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -38,20 +38,24 @@
<AssemblyOriginatorKeyFile>..\keys\Grpc.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<ItemGroup>
+ <Reference Include="BouncyCastle.Crypto, Version=1.7.4137.9688, Culture=neutral, PublicKeyToken=a4292a325f69b123, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\packages\BouncyCastle.1.7.0\lib\Net40-Client\BouncyCastle.Crypto.dll</HintPath>
+ </Reference>
<Reference Include="CommandLine">
<HintPath>..\packages\CommandLineParser.1.9.71\lib\net45\CommandLine.dll</HintPath>
</Reference>
- <Reference Include="Google.Apis.Auth, Version=1.10.0.25333, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <Reference Include="Google.Apis.Auth, Version=1.11.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Google.Apis.Auth.1.10.0\lib\net40\Google.Apis.Auth.dll</HintPath>
+ <HintPath>..\packages\Google.Apis.Auth.1.11.1\lib\net45\Google.Apis.Auth.dll</HintPath>
</Reference>
- <Reference Include="Google.Apis.Auth.PlatformServices, Version=1.10.0.25333, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <Reference Include="Google.Apis.Auth.PlatformServices, Version=1.11.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Google.Apis.Auth.1.10.0\lib\net40\Google.Apis.Auth.PlatformServices.dll</HintPath>
+ <HintPath>..\packages\Google.Apis.Auth.1.11.1\lib\net45\Google.Apis.Auth.PlatformServices.dll</HintPath>
</Reference>
- <Reference Include="Google.Apis.Core, Version=1.10.0.25331, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
+ <Reference Include="Google.Apis.Core, Version=1.11.1.0, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\Google.Apis.Core.1.10.0\lib\portable-net40+sl50+win+wpa81+wp80\Google.Apis.Core.dll</HintPath>
+ <HintPath>..\packages\Google.Apis.Core.1.11.1\lib\net45\Google.Apis.Core.dll</HintPath>
</Reference>
<Reference Include="Google.Protobuf, Version=3.0.0.0, Culture=neutral, PublicKeyToken=a7d26565bac4d604, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
@@ -60,6 +64,10 @@
<Reference Include="Moq">
<HintPath>..\packages\Moq.4.2.1510.2205\lib\net40\Moq.dll</HintPath>
</Reference>
+ <Reference Include="Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
+ </Reference>
<Reference Include="nunit.framework">
<HintPath>..\packages\NUnit.2.6.4\lib\nunit.framework.dll</HintPath>
</Reference>
@@ -71,21 +79,6 @@
<Reference Include="System.Net" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Net.Http.WebRequest" />
- <Reference Include="BouncyCastle.Crypto">
- <HintPath>..\packages\BouncyCastle.1.7.0\lib\Net40-Client\BouncyCastle.Crypto.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.Threading.Tasks">
- <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.Threading.Tasks.Extensions">
- <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.Threading.Tasks.Extensions.Desktop">
- <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll</HintPath>
- </Reference>
- <Reference Include="Newtonsoft.Json">
- <HintPath>..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
- </Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="..\Grpc.Core\Version.cs">
@@ -120,6 +113,7 @@
<Compile Include="WorkerServiceImpl.cs" />
<Compile Include="QpsWorker.cs" />
<Compile Include="WallClockStopwatch.cs" />
+ <Compile Include="GenericService.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ItemGroup>
@@ -133,8 +127,9 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
- <None Include="app.config" />
- <None Include="packages.config" />
+ <None Include="packages.config">
+ <SubType>Designer</SubType>
+ </None>
<None Include="data\README">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
@@ -151,11 +146,4 @@
<ItemGroup>
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
</ItemGroup>
- <Import Project="..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" />
- <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
- <PropertyGroup>
- <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
- </PropertyGroup>
- <Error Condition="!Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" />
- </Target>
</Project> \ No newline at end of file
diff --git a/src/csharp/Grpc.IntegrationTesting/Histogram.cs b/src/csharp/Grpc.IntegrationTesting/Histogram.cs
index 08a674d817..28d1f078a9 100644
--- a/src/csharp/Grpc.IntegrationTesting/Histogram.cs
+++ b/src/csharp/Grpc.IntegrationTesting/Histogram.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.IntegrationTesting/InteropClientServerTest.cs b/src/csharp/Grpc.IntegrationTesting/InteropClientServerTest.cs
index 0d12c4168c..5facb87971 100644
--- a/src/csharp/Grpc.IntegrationTesting/InteropClientServerTest.cs
+++ b/src/csharp/Grpc.IntegrationTesting/InteropClientServerTest.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.IntegrationTesting/QpsWorker.cs b/src/csharp/Grpc.IntegrationTesting/QpsWorker.cs
index e407792c4b..a7c9fa894d 100644
--- a/src/csharp/Grpc.IntegrationTesting/QpsWorker.cs
+++ b/src/csharp/Grpc.IntegrationTesting/QpsWorker.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.IntegrationTesting/RunnerClientServerTest.cs b/src/csharp/Grpc.IntegrationTesting/RunnerClientServerTest.cs
index 06d5ee93d8..13ab5a25ab 100644
--- a/src/csharp/Grpc.IntegrationTesting/RunnerClientServerTest.cs
+++ b/src/csharp/Grpc.IntegrationTesting/RunnerClientServerTest.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -55,14 +55,7 @@ namespace Grpc.IntegrationTesting
{
var serverConfig = new ServerConfig
{
- ServerType = ServerType.ASYNC_SERVER,
- PayloadConfig = new PayloadConfig
- {
- SimpleParams = new SimpleProtoParams
- {
- RespSize = 100
- }
- }
+ ServerType = ServerType.ASYNC_SERVER
};
serverRunner = ServerRunners.CreateStarted(serverConfig);
}
@@ -88,7 +81,8 @@ namespace Grpc.IntegrationTesting
{
SimpleParams = new SimpleProtoParams
{
- ReqSize = 100
+ ReqSize = 100,
+ RespSize = 100
}
},
HistogramParams = new HistogramParams
diff --git a/src/csharp/Grpc.IntegrationTesting/ServerRunners.cs b/src/csharp/Grpc.IntegrationTesting/ServerRunners.cs
index 4a73645e6c..d7859443e0 100644
--- a/src/csharp/Grpc.IntegrationTesting/ServerRunners.cs
+++ b/src/csharp/Grpc.IntegrationTesting/ServerRunners.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -41,6 +41,7 @@ using System.Threading;
using System.Threading.Tasks;
using Google.Protobuf;
using Grpc.Core;
+using Grpc.Core.Logging;
using Grpc.Core.Utils;
using NUnit.Framework;
using Grpc.Testing;
@@ -50,27 +51,78 @@ namespace Grpc.IntegrationTesting
/// <summary>
/// Helper methods to start server runners for performance testing.
/// </summary>
- public static class ServerRunners
+ public class ServerRunners
{
+ static readonly ILogger Logger = GrpcEnvironment.Logger.ForType<ServerRunners>();
+
/// <summary>
/// Creates a started server runner.
/// </summary>
public static IServerRunner CreateStarted(ServerConfig config)
{
- GrpcPreconditions.CheckArgument(config.ServerType == ServerType.ASYNC_SERVER);
+ Logger.Debug("ServerConfig: {0}", config);
var credentials = config.SecurityParams != null ? TestCredentials.CreateSslServerCredentials() : ServerCredentials.Insecure;
- // TODO: qps_driver needs to setup payload properly...
- int responseSize = config.PayloadConfig != null ? config.PayloadConfig.SimpleParams.RespSize : 0;
+ if (config.AsyncServerThreads != 0)
+ {
+ Logger.Warning("ServerConfig.AsyncServerThreads is not supported for C#. Ignoring the value");
+ }
+ if (config.CoreLimit != 0)
+ {
+ Logger.Warning("ServerConfig.CoreLimit is not supported for C#. Ignoring the value");
+ }
+ if (config.CoreList.Count > 0)
+ {
+ Logger.Warning("ServerConfig.CoreList is not supported for C#. Ignoring the value");
+ }
+
+ ServerServiceDefinition service = null;
+ if (config.ServerType == ServerType.ASYNC_SERVER)
+ {
+ GrpcPreconditions.CheckArgument(config.PayloadConfig == null,
+ "ServerConfig.PayloadConfig shouldn't be set for BenchmarkService based server.");
+ service = BenchmarkService.BindService(new BenchmarkServiceImpl());
+ }
+ else if (config.ServerType == ServerType.ASYNC_GENERIC_SERVER)
+ {
+ var genericService = new GenericServiceImpl(config.PayloadConfig.BytebufParams.RespSize);
+ service = GenericService.BindHandler(genericService.StreamingCall);
+ }
+ else
+ {
+ throw new ArgumentException("Unsupported ServerType");
+ }
+
var server = new Server
{
- Services = { BenchmarkService.BindService(new BenchmarkServiceImpl(responseSize)) },
+ Services = { service },
Ports = { new ServerPort("[::]", config.Port, credentials) }
};
server.Start();
return new ServerRunnerImpl(server);
}
+
+ private class GenericServiceImpl
+ {
+ readonly byte[] response;
+
+ public GenericServiceImpl(int responseSize)
+ {
+ this.response = new byte[responseSize];
+ }
+
+ /// <summary>
+ /// Generic streaming call handler.
+ /// </summary>
+ public async Task StreamingCall(IAsyncStreamReader<byte[]> requestStream, IServerStreamWriter<byte[]> responseStream, ServerCallContext context)
+ {
+ await requestStream.ForEachAsync(async request =>
+ {
+ await responseStream.WriteAsync(response);
+ });
+ }
+ }
}
/// <summary>
@@ -119,6 +171,5 @@ namespace Grpc.IntegrationTesting
{
return server.ShutdownAsync();
}
- }
-
+ }
}
diff --git a/src/csharp/Grpc.IntegrationTesting/WorkerServiceImpl.cs b/src/csharp/Grpc.IntegrationTesting/WorkerServiceImpl.cs
index cab299a137..e5ad0caa03 100644
--- a/src/csharp/Grpc.IntegrationTesting/WorkerServiceImpl.cs
+++ b/src/csharp/Grpc.IntegrationTesting/WorkerServiceImpl.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/Grpc.IntegrationTesting/app.config b/src/csharp/Grpc.IntegrationTesting/app.config
deleted file mode 100644
index 84d7534d65..0000000000
--- a/src/csharp/Grpc.IntegrationTesting/app.config
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<configuration>
- <runtime>
- <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
- <dependentAssembly>
- <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.2.29.0" newVersion="4.2.29.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-4.2.28.0" newVersion="4.0.0.0" />
- </dependentAssembly>
- <dependentAssembly>
- <assemblyIdentity name="Google.Apis.Core" publicKeyToken="4b01fa6e34db77ab" culture="neutral" />
- <bindingRedirect oldVersion="0.0.0.0-1.9.2.38523" newVersion="1.9.2.38523" />
- </dependentAssembly>
- </assemblyBinding>
- </runtime>
-</configuration> \ No newline at end of file
diff --git a/src/csharp/Grpc.IntegrationTesting/packages.config b/src/csharp/Grpc.IntegrationTesting/packages.config
index 462dc9d604..0ae8bf4e70 100644
--- a/src/csharp/Grpc.IntegrationTesting/packages.config
+++ b/src/csharp/Grpc.IntegrationTesting/packages.config
@@ -2,14 +2,10 @@
<packages>
<package id="BouncyCastle" version="1.7.0" targetFramework="net45" />
<package id="CommandLineParser" version="1.9.71" targetFramework="net45" />
- <package id="Google.Apis.Auth" version="1.10.0" targetFramework="net45" />
- <package id="Google.Apis.Core" version="1.10.0" targetFramework="net45" />
+ <package id="Google.Apis.Auth" version="1.11.1" targetFramework="net45" />
+ <package id="Google.Apis.Core" version="1.11.1" targetFramework="net45" />
<package id="Google.Protobuf" version="3.0.0-beta2" targetFramework="net45" />
<package id="Ix-Async" version="1.2.5" targetFramework="net45" />
- <package id="Microsoft.Bcl" version="1.1.10" targetFramework="net45" />
- <package id="Microsoft.Bcl.Async" version="1.0.168" targetFramework="net45" />
- <package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="net45" />
- <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net45" />
<package id="Moq" version="4.2.1510.2205" targetFramework="net45" />
<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" />
<package id="NUnit" version="2.6.4" targetFramework="net45" />
diff --git a/src/csharp/ext/grpc_csharp_ext.c b/src/csharp/ext/grpc_csharp_ext.c
index 642dc9ef42..8d769e5f6a 100644
--- a/src/csharp/ext/grpc_csharp_ext.c
+++ b/src/csharp/ext/grpc_csharp_ext.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/generate_proto_csharp.sh b/src/csharp/generate_proto_csharp.sh
index 23e0540253..9ac770b79d 100755
--- a/src/csharp/generate_proto_csharp.sh
+++ b/src/csharp/generate_proto_csharp.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/csharp/tests.json b/src/csharp/tests.json
index 4aa93668ad..d66cb1b100 100644
--- a/src/csharp/tests.json
+++ b/src/csharp/tests.json
@@ -21,6 +21,7 @@
"Grpc.Core.Tests.CompressionTest",
"Grpc.Core.Tests.ContextPropagationTest",
"Grpc.Core.Tests.GrpcEnvironmentTest",
+ "Grpc.Core.Tests.HalfcloseTest",
"Grpc.Core.Tests.MarshallingErrorsTest",
"Grpc.Core.Tests.MetadataTest",
"Grpc.Core.Tests.NUnitVersionTest",
diff --git a/src/node/ext/byte_buffer.cc b/src/node/ext/byte_buffer.cc
index 0f7edada14..8e0b6916e9 100644
--- a/src/node/ext/byte_buffer.cc
+++ b/src/node/ext/byte_buffer.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/node/ext/call.cc b/src/node/ext/call.cc
index da312886ce..9f023b5883 100644
--- a/src/node/ext/call.cc
+++ b/src/node/ext/call.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/node/ext/call_credentials.cc b/src/node/ext/call_credentials.cc
index bd2d146bbc..3c8f0c56da 100644
--- a/src/node/ext/call_credentials.cc
+++ b/src/node/ext/call_credentials.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/node/ext/call_credentials.h b/src/node/ext/call_credentials.h
index 1f35595f3d..04c852bea1 100644
--- a/src/node/ext/call_credentials.h
+++ b/src/node/ext/call_credentials.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/node/ext/node_grpc.cc b/src/node/ext/node_grpc.cc
index 0c71b2d610..b988f29878 100644
--- a/src/node/ext/node_grpc.cc
+++ b/src/node/ext/node_grpc.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/node/ext/timeval.cc b/src/node/ext/timeval.cc
index c8f8534cfa..9284db62ef 100644
--- a/src/node/ext/timeval.cc
+++ b/src/node/ext/timeval.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/node/health_check/health.js b/src/node/health_check/health.js
index 6ab4157183..5236683088 100644
--- a/src/node/health_check/health.js
+++ b/src/node/health_check/health.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/node/index.js b/src/node/index.js
index 1c197729d7..d345a5142d 100644
--- a/src/node/index.js
+++ b/src/node/index.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -87,6 +87,10 @@ var loadObject = exports.loadObject;
* Buffers. Defaults to false
* - longsAsStrings: deserialize long values as strings instead of objects.
* Defaults to true
+ * - deprecatedArgumentOrder: Use the beta method argument order for client
+ * methods, with optional arguments after the callback. Defaults to false.
+ * This option is only a temporary stopgap measure to smooth an API breakage.
+ * It is deprecated, and new code should not use it.
* @param {string|{root: string, file: string}} filename The file to load
* @param {string=} format The file format to expect. Must be either 'proto' or
* 'json'. Defaults to 'proto'
diff --git a/src/node/interop/async_delay_queue.js b/src/node/interop/async_delay_queue.js
index df57209637..5df1e00921 100644
--- a/src/node/interop/async_delay_queue.js
+++ b/src/node/interop/async_delay_queue.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/node/interop/interop_client.js b/src/node/interop/interop_client.js
index 5602011a8e..e8f2d37bd8 100644
--- a/src/node/interop/interop_client.js
+++ b/src/node/interop/interop_client.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -286,7 +286,7 @@ function cancelAfterFirstResponse(client, done) {
function timeoutOnSleepingServer(client, done) {
var deadline = new Date();
deadline.setMilliseconds(deadline.getMilliseconds() + 1);
- var call = client.fullDuplexCall(null, {deadline: deadline});
+ var call = client.fullDuplexCall({deadline: deadline});
call.write({
payload: {body: zeroBuffer(27182)}
});
@@ -316,10 +316,10 @@ function customMetadata(client, done) {
body: zeroBuffer(271828)
}
};
- var unary = client.unaryCall(arg, function(err, resp) {
+ var unary = client.unaryCall(arg, metadata, function(err, resp) {
assert.ifError(err);
done();
- }, metadata);
+ });
unary.on('metadata', function(metadata) {
assert.deepEqual(metadata.get(ECHO_INITIAL_KEY),
['test_initial_metadata_value']);
@@ -455,14 +455,14 @@ function perRpcAuthTest(client, done, extra) {
credential = credential.createScoped(scope);
}
var creds = grpc.credentials.createFromGoogleCredential(credential);
- client.unaryCall(arg, function(err, resp) {
+ client.unaryCall(arg, {credentials: creds}, function(err, resp) {
assert.ifError(err);
assert.strictEqual(resp.username, SERVICE_ACCOUNT_EMAIL);
assert(extra.oauth_scope.indexOf(resp.oauth_scope) > -1);
if (done) {
done();
}
- }, null, {credentials: creds});
+ });
});
}
@@ -545,6 +545,8 @@ var test_cases = {
Client: testProto.TestService}
};
+exports.test_cases = test_cases;
+
/**
* Execute a single test case.
* @param {string} address The address of the server to connect to, in the
diff --git a/src/node/interop/interop_server.js b/src/node/interop/interop_server.js
index c09481712a..7280762305 100644
--- a/src/node/interop/interop_server.js
+++ b/src/node/interop/interop_server.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/node/performance/benchmark_client.js b/src/node/performance/benchmark_client.js
index 80bec0b73e..262aa33862 100644
--- a/src/node/performance/benchmark_client.js
+++ b/src/node/performance/benchmark_client.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/node/performance/benchmark_server.js b/src/node/performance/benchmark_server.js
index b1b0bd12ab..70cee9979b 100644
--- a/src/node/performance/benchmark_server.js
+++ b/src/node/performance/benchmark_server.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/node/performance/worker.js b/src/node/performance/worker.js
index 7c8ab00026..98577bdbc9 100644
--- a/src/node/performance/worker.js
+++ b/src/node/performance/worker.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/node/performance/worker_service_impl.js b/src/node/performance/worker_service_impl.js
index 2c4651370f..17458e4b93 100644
--- a/src/node/performance/worker_service_impl.js
+++ b/src/node/performance/worker_service_impl.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/node/src/client.js b/src/node/src/client.js
index 2459e28321..5e07046fc6 100644
--- a/src/node/src/client.js
+++ b/src/node/src/client.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -50,6 +50,7 @@
'use strict';
var _ = require('lodash');
+var arguejs = require('arguejs');
var grpc = require('./grpc_extension');
@@ -353,21 +354,23 @@ function makeUnaryRequestFunction(method, serialize, deserialize) {
* @this {Client} Client object. Must have a channel member.
* @param {*} argument The argument to the call. Should be serializable with
* serialize
- * @param {function(?Error, value=)} callback The callback to for when the
- * response is received
* @param {Metadata=} metadata Metadata to add to the call
* @param {Object=} options Options map
+ * @param {function(?Error, value=)} callback The callback to for when the
+ * response is received
* @return {EventEmitter} An event emitter for stream related events
*/
- function makeUnaryRequest(argument, callback, metadata, options) {
+ function makeUnaryRequest(argument, metadata, options, callback) {
/* jshint validthis: true */
+ /* While the arguments are listed in the function signature, those variables
+ * are not used directly. Instead, ArgueJS processes the arguments
+ * object. This allows for simple handling of optional arguments in the
+ * middle of the argument list, and also provides type checking. */
+ var args = arguejs({argument: null, metadata: [Metadata, new Metadata()],
+ options: [Object], callback: Function}, arguments);
var emitter = new EventEmitter();
- var call = getCall(this.$channel, method, options);
- if (metadata === null || metadata === undefined) {
- metadata = new Metadata();
- } else {
- metadata = metadata.clone();
- }
+ var call = getCall(this.$channel, method, args.options);
+ metadata = args.metadata.clone();
emitter.cancel = function cancel() {
call.cancel();
};
@@ -375,9 +378,9 @@ function makeUnaryRequestFunction(method, serialize, deserialize) {
return call.getPeer();
};
var client_batch = {};
- var message = serialize(argument);
- if (options) {
- message.grpcWriteFlags = options.flags;
+ var message = serialize(args.argument);
+ if (args.options) {
+ message.grpcWriteFlags = args.options.flags;
}
client_batch[grpc.opType.SEND_INITIAL_METADATA] =
metadata._getCoreRepresentation();
@@ -395,7 +398,7 @@ function makeUnaryRequestFunction(method, serialize, deserialize) {
if (status.code === grpc.status.OK) {
if (err) {
// Got a batch error, but OK status. Something went wrong
- callback(err);
+ args.callback(err);
return;
} else {
try {
@@ -414,9 +417,9 @@ function makeUnaryRequestFunction(method, serialize, deserialize) {
error = new Error(status.details);
error.code = status.code;
error.metadata = status.metadata;
- callback(error);
+ args.callback(error);
} else {
- callback(null, deserialized);
+ args.callback(null, deserialized);
}
emitter.emit('status', status);
emitter.emit('metadata', Metadata._fromCoreRepresentation(
@@ -440,21 +443,23 @@ function makeClientStreamRequestFunction(method, serialize, deserialize) {
* Make a client stream request with this method on the given channel with the
* given callback, etc.
* @this {Client} Client object. Must have a channel member.
- * @param {function(?Error, value=)} callback The callback to for when the
- * response is received
* @param {Metadata=} metadata Array of metadata key/value pairs to add to the
* call
* @param {Object=} options Options map
+ * @param {function(?Error, value=)} callback The callback to for when the
+ * response is received
* @return {EventEmitter} An event emitter for stream related events
*/
- function makeClientStreamRequest(callback, metadata, options) {
+ function makeClientStreamRequest(metadata, options, callback) {
/* jshint validthis: true */
- var call = getCall(this.$channel, method, options);
- if (metadata === null || metadata === undefined) {
- metadata = new Metadata();
- } else {
- metadata = metadata.clone();
- }
+ /* While the arguments are listed in the function signature, those variables
+ * are not used directly. Instead, ArgueJS processes the arguments
+ * object. This allows for simple handling of optional arguments in the
+ * middle of the argument list, and also provides type checking. */
+ var args = arguejs({metadata: [Metadata, new Metadata()],
+ options: [Object], callback: Function}, arguments);
+ var call = getCall(this.$channel, method, args.options);
+ metadata = args.metadata.clone();
var stream = new ClientWritableStream(call, serialize);
var metadata_batch = {};
metadata_batch[grpc.opType.SEND_INITIAL_METADATA] =
@@ -481,7 +486,7 @@ function makeClientStreamRequestFunction(method, serialize, deserialize) {
if (status.code === grpc.status.OK) {
if (err) {
// Got a batch error, but OK status. Something went wrong
- callback(err);
+ args.callback(err);
return;
} else {
try {
@@ -500,9 +505,9 @@ function makeClientStreamRequestFunction(method, serialize, deserialize) {
error = new Error(response.status.details);
error.code = status.code;
error.metadata = status.metadata;
- callback(error);
+ args.callback(error);
} else {
- callback(null, deserialized);
+ args.callback(null, deserialized);
}
stream.emit('status', status);
});
@@ -533,17 +538,18 @@ function makeServerStreamRequestFunction(method, serialize, deserialize) {
*/
function makeServerStreamRequest(argument, metadata, options) {
/* jshint validthis: true */
- var call = getCall(this.$channel, method, options);
- if (metadata === null || metadata === undefined) {
- metadata = new Metadata();
- } else {
- metadata = metadata.clone();
- }
+ /* While the arguments are listed in the function signature, those variables
+ * are not used directly. Instead, ArgueJS processes the arguments
+ * object. */
+ var args = arguejs({argument: null, metadata: [Metadata, new Metadata()],
+ options: [Object]}, arguments);
+ var call = getCall(this.$channel, method, args.options);
+ metadata = args.metadata.clone();
var stream = new ClientReadableStream(call, deserialize);
var start_batch = {};
- var message = serialize(argument);
- if (options) {
- message.grpcWriteFlags = options.flags;
+ var message = serialize(args.argument);
+ if (args.options) {
+ message.grpcWriteFlags = args.options.flags;
}
start_batch[grpc.opType.SEND_INITIAL_METADATA] =
metadata._getCoreRepresentation();
@@ -595,12 +601,13 @@ function makeBidiStreamRequestFunction(method, serialize, deserialize) {
*/
function makeBidiStreamRequest(metadata, options) {
/* jshint validthis: true */
- var call = getCall(this.$channel, method, options);
- if (metadata === null || metadata === undefined) {
- metadata = new Metadata();
- } else {
- metadata = metadata.clone();
- }
+ /* While the arguments are listed in the function signature, those variables
+ * are not used directly. Instead, ArgueJS processes the arguments
+ * object. */
+ var args = arguejs({metadata: [Metadata, new Metadata()],
+ options: [Object]}, arguments);
+ var call = getCall(this.$channel, method, args.options);
+ metadata = args.metadata.clone();
var stream = new ClientDuplexStream(call, serialize, deserialize);
var start_batch = {};
start_batch[grpc.opType.SEND_INITIAL_METADATA] =
@@ -643,6 +650,40 @@ var requester_makers = {
bidi: makeBidiStreamRequestFunction
};
+function getDefaultValues(metadata, options) {
+ var res = {};
+ res.metadata = metadata || new Metadata();
+ res.options = options || {};
+ return res;
+}
+
+/**
+ * Map with wrappers for each type of requester function to make it use the old
+ * argument order with optional arguments after the callback.
+ */
+var deprecated_request_wrap = {
+ unary: function(makeUnaryRequest) {
+ return function makeWrappedUnaryRequest(argument, callback,
+ metadata, options) {
+ /* jshint validthis: true */
+ var opt_args = getDefaultValues(metadata, metadata);
+ return makeUnaryRequest.call(this, argument, opt_args.metadata,
+ opt_args.options, callback);
+ };
+ },
+ client_stream: function(makeServerStreamRequest) {
+ return function makeWrappedClientStreamRequest(callback, metadata,
+ options) {
+ /* jshint validthis: true */
+ var opt_args = getDefaultValues(metadata, options);
+ return makeServerStreamRequest.call(this, opt_args.metadata,
+ opt_args.options, callback);
+ };
+ },
+ server_stream: _.identity,
+ bidi: _.identity
+};
+
/**
* Creates a constructor for a client with the given methods. The methods object
* maps method name to an object with the following keys:
@@ -654,9 +695,19 @@ var requester_makers = {
* responseDeserialize: function to deserialize response objects
* @param {Object} methods An object mapping method names to method attributes
* @param {string} serviceName The fully qualified name of the service
+ * @param {Object} class_options An options object. Currently only uses the key
+ * deprecatedArgumentOrder, a boolean that Indicates that the old argument
+ * order should be used for methods, with optional arguments at the end
+ * instead of the callback at the end. Defaults to false. This option is
+ * only a temporary stopgap measure to smooth an API breakage.
+ * It is deprecated, and new code should not use it.
* @return {function(string, Object)} New client constructor
*/
-exports.makeClientConstructor = function(methods, serviceName) {
+exports.makeClientConstructor = function(methods, serviceName,
+ class_options) {
+ if (!class_options) {
+ class_options = {};
+ }
/**
* Create a client with the given methods
* @constructor
@@ -703,8 +754,13 @@ exports.makeClientConstructor = function(methods, serviceName) {
}
var serialize = attrs.requestSerialize;
var deserialize = attrs.responseDeserialize;
- Client.prototype[name] = requester_makers[method_type](
+ var method_func = requester_makers[method_type](
attrs.path, serialize, deserialize);
+ if (class_options.deprecatedArgumentOrder) {
+ Client.prototype[name] = deprecated_request_wrap(method_func);
+ } else {
+ Client.prototype[name] = method_func;
+ }
// Associate all provided attributes with the method
_.assign(Client.prototype[name], attrs);
});
@@ -761,8 +817,13 @@ exports.waitForClientReady = function(client, deadline, callback) {
exports.makeProtobufClientConstructor = function(service, options) {
var method_attrs = common.getProtobufServiceAttrs(service, service.name,
options);
+ var deprecatedArgumentOrder = false;
+ if (options) {
+ deprecatedArgumentOrder = options.deprecatedArgumentOrder;
+ }
var Client = exports.makeClientConstructor(
- method_attrs, common.fullyQualifiedName(service));
+ method_attrs, common.fullyQualifiedName(service),
+ deprecatedArgumentOrder);
Client.service = service;
Client.service.grpc_options = options;
return Client;
diff --git a/src/node/src/common.js b/src/node/src/common.js
index 7705a275fc..8cf43b7a84 100644
--- a/src/node/src/common.js
+++ b/src/node/src/common.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/node/src/credentials.js b/src/node/src/credentials.js
index 97c4bd73ac..a12eade4e1 100644
--- a/src/node/src/credentials.js
+++ b/src/node/src/credentials.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/node/src/metadata.js b/src/node/src/metadata.js
index 33d7ea1cf7..612361b0ea 100644
--- a/src/node/src/metadata.js
+++ b/src/node/src/metadata.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/node/src/server.js b/src/node/src/server.js
index dd0bc12bc9..22128343a9 100644
--- a/src/node/src/server.js
+++ b/src/node/src/server.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/client_config/lb_policies/round_robin.h b/src/node/stress/metrics_client.js
index 52db1caa0c..dc8ef5e711 100644
--- a/src/core/lib/client_config/lb_policies/round_robin.h
+++ b/src/node/stress/metrics_client.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,16 +31,31 @@
*
*/
-#ifndef GRPC_CORE_LIB_CLIENT_CONFIG_LB_POLICIES_ROUND_ROBIN_H
-#define GRPC_CORE_LIB_CLIENT_CONFIG_LB_POLICIES_ROUND_ROBIN_H
+'use strict';
-#include "src/core/lib/client_config/lb_policy.h"
+var grpc = require('../../..');
-extern int grpc_lb_round_robin_trace;
+var proto = grpc.load(__dirname + '/../../proto/grpc/testing/metrics.proto');
+var metrics = proto.grpc.testing;
-#include "src/core/lib/client_config/lb_policy_factory.h"
+function main() {
+ var parseArgs = require('minimist');
+ var argv = parseArgs(process.argv, {
+ string: 'metrics_server_address',
+ boolean: 'total_only'
+ });
+ var client = new metrics.MetricsService(argv.metrics_server_address,
+ grpc.credentials.createInsecure());
+ if (argv.total_only) {
+ client.getGauge({name: 'qps'}, function(err, data) {
+ console.log(data.name + ':', data.long_value);
+ });
+ } else {
+ var call = client.getAllGauges({});
+ call.on('data', function(data) {
+ console.log(data.name + ':', data.long_value);
+ });
+ }
+}
-/** Returns a load balancing factory for the round robin policy */
-grpc_lb_policy_factory *grpc_round_robin_lb_factory_create();
-
-#endif /* GRPC_CORE_LIB_CLIENT_CONFIG_LB_POLICIES_ROUND_ROBIN_H */
+main();
diff --git a/src/node/stress/metrics_server.js b/src/node/stress/metrics_server.js
new file mode 100644
index 0000000000..3ab4b4c82d
--- /dev/null
+++ b/src/node/stress/metrics_server.js
@@ -0,0 +1,87 @@
+/*
+ *
+ * Copyright 2016, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+'use strict';
+
+var _ = require('lodash');
+
+var grpc = require('../../..');
+
+var proto = grpc.load(__dirname + '/../../proto/grpc/testing/metrics.proto');
+var metrics = proto.grpc.testing;
+
+function getGauge(call, callback) {
+ /* jshint validthis: true */
+ // Should be bound to a MetricsServer object
+ var name = call.request.name;
+ if (this.gauges.hasOwnProperty(name)) {
+ callback(null, _.assign({name: name}, this.gauges[name]()));
+ } else {
+ callback({code: grpc.status.NOT_FOUND,
+ details: 'No such gauge: ' + name});
+ }
+}
+
+function getAllGauges(call) {
+ /* jshint validthis: true */
+ // Should be bound to a MetricsServer object
+ _.each(this.gauges, function(getter, name) {
+ call.write(_.assign({name: name}, getter()));
+ });
+ call.end();
+}
+
+function MetricsServer(port) {
+ var server = new grpc.Server();
+ server.addProtoService(metrics.MetricsService.service, {
+ getGauge: _.bind(getGauge, this),
+ getAllGauges: _.bind(getAllGauges, this)
+ });
+ server.bind('localhost:' + port, grpc.ServerCredentials.createInsecure());
+ this.server = server;
+ this.gauges = {};
+}
+
+MetricsServer.prototype.start = function() {
+ this.server.start();
+}
+
+MetricsServer.prototype.registerGauge = function(name, getter) {
+ this.gauges[name] = getter;
+};
+
+MetricsServer.prototype.shutdown = function() {
+ this.server.forceShutdown();
+};
+
+module.exports = MetricsServer;
diff --git a/src/node/stress/stress_client.js b/src/node/stress/stress_client.js
new file mode 100644
index 0000000000..8332652e2a
--- /dev/null
+++ b/src/node/stress/stress_client.js
@@ -0,0 +1,126 @@
+/*
+ *
+ * Copyright 2016, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+'use strict';
+
+var _ = require('lodash');
+
+var grpc = require('../../..');
+
+var interop_client = require('../interop/interop_client');
+var MetricsServer = require('./metrics_server');
+
+var running;
+
+var metrics_server;
+
+var start_time;
+var query_count;
+
+function makeCall(client, test_cases) {
+ if (!running) {
+ return;
+ }
+ var test_case = test_cases[_.random(test_cases.length - 1)];
+ interop_client.test_cases[test_case].run(client, function() {
+ query_count += 1;
+ makeCall(client, test_cases);
+ });
+}
+
+function makeCalls(client, test_cases, parallel_calls_per_channel) {
+ _.times(parallel_calls_per_channel, function() {
+ makeCall(client, test_cases);
+ });
+}
+
+function getQps() {
+ var diff = process.hrtime(start_time);
+ var seconds = diff[0] + diff[1] / 1e9;
+ return {long_value: query_count / seconds};
+}
+
+function start(server_addresses, test_cases, channels_per_server,
+ parallel_calls_per_channel, metrics_port) {
+ running = true;
+ /* Assuming that we are not calling unimplemented_method. The client class
+ * used by empty_unary is (currently) the client class used by every interop
+ * test except unimplemented_method */
+ var Client = interop_client.test_cases.empty_unary.Client;
+ /* Make channels_per_server clients connecting to each server address */
+ var channels = _.flatten(_.times(
+ channels_per_server, _.partial(_.map, server_addresses, function(address) {
+ return new Client(address, grpc.credentials.createInsecure());
+ })));
+ metrics_server = new MetricsServer(metrics_port);
+ metrics_server.registerGauge('qps', getQps);
+ start_time = process.hrtime();
+ query_count = 0;
+ _.each(channels, _.partial(makeCalls, _, test_cases,
+ parallel_calls_per_channel));
+ metrics_server.start();
+}
+
+function stop() {
+ running = false;
+ metrics_server.shutdown();
+ console.log('QPS: ' + getQps().long_value);
+}
+
+function main() {
+ var parseArgs = require('minimist');
+ var argv = parseArgs(process.argv, {
+ string: ['server_addresses', 'test_cases', 'metrics_port'],
+ default: {'server_addresses': 'localhost:8080',
+ 'test_duration-secs': -1,
+ 'num_channels_per_server': 1,
+ 'num_stubs_per_channel': 1,
+ 'metrics_port': '8081'}
+ });
+ var server_addresses = argv.server_addresses.split(',');
+ /* Generate an array of test cases, where the number of instances of each name
+ * corresponds to the number given in the argument.
+ * e.g. 'empty_unary:1,large_unary:2' =>
+ * ['empty_unary', 'large_unary', 'large_unary'] */
+ var test_cases = _.flatten(_.map(argv.test_cases.split(','), function(value) {
+ var split = value.split(':');
+ return _.times(split[1], _.constant(split[0]));
+ }));
+ start(server_addresses, test_cases, argv.num_channels_per_server,
+ argv.num_stubs_per_channel, argv.metrics_port);
+ if (argv['test_duration-secs'] > -1) {
+ setTimeout(stop, argv['test_duration-secs'] * 1000);
+ }
+}
+
+main();
diff --git a/src/node/test/call_test.js b/src/node/test/call_test.js
index 2300096d03..eb268603ea 100644
--- a/src/node/test/call_test.js
+++ b/src/node/test/call_test.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/node/test/channel_test.js b/src/node/test/channel_test.js
index c0ae2b769a..0cdb633659 100644
--- a/src/node/test/channel_test.js
+++ b/src/node/test/channel_test.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/node/test/common_test.js b/src/node/test/common_test.js
index 66a4205f82..c57b7388f6 100644
--- a/src/node/test/common_test.js
+++ b/src/node/test/common_test.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/node/test/constant_test.js b/src/node/test/constant_test.js
index 712c70706d..414b1ac9c0 100644
--- a/src/node/test/constant_test.js
+++ b/src/node/test/constant_test.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/node/test/credentials_test.js b/src/node/test/credentials_test.js
index 294600c85a..794215b246 100644
--- a/src/node/test/credentials_test.js
+++ b/src/node/test/credentials_test.js
@@ -398,18 +398,20 @@ describe('client credentials', function() {
metadataUpdater);
});
it('Should update metadata on a unary call', function(done) {
- var call = client.unary({}, function(err, data) {
- assert.ifError(err);
- }, null, {credentials: updater_creds});
+ var call = client.unary({}, {credentials: updater_creds},
+ function(err, data) {
+ assert.ifError(err);
+ });
call.on('metadata', function(metadata) {
assert.deepEqual(metadata.get('plugin_key'), ['plugin_value']);
done();
});
});
it('should update metadata on a client streaming call', function(done) {
- var call = client.clientStream(function(err, data) {
- assert.ifError(err);
- }, null, {credentials: updater_creds});
+ var call = client.clientStream({credentials: updater_creds},
+ function(err, data) {
+ assert.ifError(err);
+ });
call.on('metadata', function(metadata) {
assert.deepEqual(metadata.get('plugin_key'), ['plugin_value']);
done();
@@ -417,7 +419,7 @@ describe('client credentials', function() {
call.end();
});
it('should update metadata on a server streaming call', function(done) {
- var call = client.serverStream({}, null, {credentials: updater_creds});
+ var call = client.serverStream({}, {credentials: updater_creds});
call.on('data', function() {});
call.on('metadata', function(metadata) {
assert.deepEqual(metadata.get('plugin_key'), ['plugin_value']);
@@ -425,7 +427,7 @@ describe('client credentials', function() {
});
});
it('should update metadata on a bidi streaming call', function(done) {
- var call = client.bidiStream(null, {credentials: updater_creds});
+ var call = client.bidiStream({credentials: updater_creds});
call.on('data', function() {});
call.on('metadata', function(metadata) {
assert.deepEqual(metadata.get('plugin_key'), ['plugin_value']);
@@ -443,9 +445,10 @@ describe('client credentials', function() {
altMetadataUpdater);
var combined_updater = grpc.credentials.combineCallCredentials(
updater_creds, alt_updater_creds);
- var call = client.unary({}, function(err, data) {
- assert.ifError(err);
- }, null, {credentials: combined_updater});
+ var call = client.unary({}, {credentials: combined_updater},
+ function(err, data) {
+ assert.ifError(err);
+ });
call.on('metadata', function(metadata) {
assert.deepEqual(metadata.get('plugin_key'), ['plugin_value']);
assert.deepEqual(metadata.get('other_plugin_key'),
diff --git a/src/node/test/echo_service.proto b/src/node/test/echo_service.proto
index 11b4f18c35..fc941a2904 100644
--- a/src/node/test/echo_service.proto
+++ b/src/node/test/echo_service.proto
@@ -1,4 +1,4 @@
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/node/test/end_to_end_test.js b/src/node/test/end_to_end_test.js
index 353c6c761d..f127a41de9 100644
--- a/src/node/test/end_to_end_test.js
+++ b/src/node/test/end_to_end_test.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/node/test/server_test.js b/src/node/test/server_test.js
index 71a9647184..ed311c8605 100644
--- a/src/node/test/server_test.js
+++ b/src/node/test/server_test.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/node/test/surface_test.js b/src/node/test/surface_test.js
index edbfc0a288..b96e8e487c 100644
--- a/src/node/test/surface_test.js
+++ b/src/node/test/surface_test.js
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -404,18 +404,18 @@ describe('Echo metadata', function() {
server.forceShutdown();
});
it('with unary call', function(done) {
- var call = client.unary({}, function(err, data) {
+ var call = client.unary({}, metadata, function(err, data) {
assert.ifError(err);
- }, metadata);
+ });
call.on('metadata', function(metadata) {
assert.deepEqual(metadata.get('key'), ['value']);
done();
});
});
it('with client stream call', function(done) {
- var call = client.clientStream(function(err, data) {
+ var call = client.clientStream(metadata, function(err, data) {
assert.ifError(err);
- }, metadata);
+ });
call.on('metadata', function(metadata) {
assert.deepEqual(metadata.get('key'), ['value']);
done();
@@ -441,8 +441,8 @@ describe('Echo metadata', function() {
});
it('shows the correct user-agent string', function(done) {
var version = require('../../../package.json').version;
- var call = client.unary({}, function(err, data) { assert.ifError(err); },
- metadata);
+ var call = client.unary({}, metadata,
+ function(err, data) { assert.ifError(err); });
call.on('metadata', function(metadata) {
assert(_.startsWith(metadata.get('user-agent')[0],
'grpc-node/' + version));
@@ -452,8 +452,8 @@ describe('Echo metadata', function() {
it('properly handles duplicate values', function(done) {
var dup_metadata = metadata.clone();
dup_metadata.add('key', 'value2');
- var call = client.unary({}, function(err, data) {assert.ifError(err); },
- dup_metadata);
+ var call = client.unary({}, dup_metadata,
+ function(err, data) {assert.ifError(err); });
call.on('metadata', function(resp_metadata) {
// Two arrays are equal iff their symmetric difference is empty
assert.deepEqual(_.xor(dup_metadata.get('key'), resp_metadata.get('key')),
@@ -954,7 +954,7 @@ describe('Call propagation', function() {
done = multiDone(done, 2);
var call;
proxy_impl.unary = function(parent, callback) {
- client.unary(parent.request, function(err, value) {
+ client.unary(parent.request, {parent: parent}, function(err, value) {
try {
assert(err);
assert.strictEqual(err.code, grpc.status.CANCELLED);
@@ -962,7 +962,7 @@ describe('Call propagation', function() {
callback(err, value);
done();
}
- }, null, {parent: parent});
+ });
call.cancel();
};
proxy.addProtoService(test_service, proxy_impl);
@@ -976,7 +976,7 @@ describe('Call propagation', function() {
done = multiDone(done, 2);
var call;
proxy_impl.clientStream = function(parent, callback) {
- client.clientStream(function(err, value) {
+ client.clientStream({parent: parent}, function(err, value) {
try {
assert(err);
assert.strictEqual(err.code, grpc.status.CANCELLED);
@@ -984,7 +984,7 @@ describe('Call propagation', function() {
callback(err, value);
done();
}
- }, null, {parent: parent});
+ });
call.cancel();
};
proxy.addProtoService(test_service, proxy_impl);
@@ -998,8 +998,7 @@ describe('Call propagation', function() {
done = multiDone(done, 2);
var call;
proxy_impl.serverStream = function(parent) {
- var child = client.serverStream(parent.request, null,
- {parent: parent});
+ var child = client.serverStream(parent.request, {parent: parent});
child.on('data', function() {});
child.on('error', function(err) {
assert(err);
@@ -1023,7 +1022,7 @@ describe('Call propagation', function() {
done = multiDone(done, 2);
var call;
proxy_impl.bidiStream = function(parent) {
- var child = client.bidiStream(null, {parent: parent});
+ var child = client.bidiStream({parent: parent});
child.on('data', function() {});
child.on('error', function(err) {
assert(err);
@@ -1051,7 +1050,8 @@ describe('Call propagation', function() {
it('With a client stream call', function(done) {
done = multiDone(done, 2);
proxy_impl.clientStream = function(parent, callback) {
- client.clientStream(function(err, value) {
+ var options = {parent: parent, propagate_flags: deadline_flags};
+ client.clientStream(options, function(err, value) {
try {
assert(err);
assert(err.code === grpc.status.DEADLINE_EXCEEDED ||
@@ -1060,7 +1060,7 @@ describe('Call propagation', function() {
callback(err, value);
done();
}
- }, null, {parent: parent, propagate_flags: deadline_flags});
+ });
};
proxy.addProtoService(test_service, proxy_impl);
var proxy_port = proxy.bind('localhost:0', server_insecure_creds);
@@ -1069,15 +1069,15 @@ describe('Call propagation', function() {
grpc.credentials.createInsecure());
var deadline = new Date();
deadline.setSeconds(deadline.getSeconds() + 1);
- proxy_client.clientStream(function(err, value) {
+ proxy_client.clientStream({deadline: deadline}, function(err, value) {
done();
- }, null, {deadline: deadline});
+ });
});
it('With a bidi stream call', function(done) {
done = multiDone(done, 2);
proxy_impl.bidiStream = function(parent) {
var child = client.bidiStream(
- null, {parent: parent, propagate_flags: deadline_flags});
+ {parent: parent, propagate_flags: deadline_flags});
child.on('data', function() {});
child.on('error', function(err) {
assert(err);
@@ -1093,7 +1093,7 @@ describe('Call propagation', function() {
grpc.credentials.createInsecure());
var deadline = new Date();
deadline.setSeconds(deadline.getSeconds() + 1);
- var call = proxy_client.bidiStream(null, {deadline: deadline});
+ var call = proxy_client.bidiStream({deadline: deadline});
call.on('data', function() {});
call.on('error', function(err) {
done();
diff --git a/src/node/test/test_messages.proto b/src/node/test/test_messages.proto
index 9b8cb875ee..a1a6a32833 100644
--- a/src/node/test/test_messages.proto
+++ b/src/node/test/test_messages.proto
@@ -1,4 +1,4 @@
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/node/test/test_service.proto b/src/node/test/test_service.proto
index 0ac2ae79a7..c86ce51d91 100644
--- a/src/node/test/test_service.proto
+++ b/src/node/test/test_service.proto
@@ -1,4 +1,4 @@
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/objective-c/GRPCClient/GRPCCall.m b/src/objective-c/GRPCClient/GRPCCall.m
index 51263b073c..1847d6016f 100644
--- a/src/objective-c/GRPCClient/GRPCCall.m
+++ b/src/objective-c/GRPCClient/GRPCCall.m
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/objective-c/GRPCClient/private/GRPCChannel.h b/src/objective-c/GRPCClient/private/GRPCChannel.h
index e49a6aca29..73bf8d95e7 100644
--- a/src/objective-c/GRPCClient/private/GRPCChannel.h
+++ b/src/objective-c/GRPCClient/private/GRPCChannel.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/objective-c/GRPCClient/private/GRPCChannel.m b/src/objective-c/GRPCClient/private/GRPCChannel.m
index d7de025e21..926f55048d 100644
--- a/src/objective-c/GRPCClient/private/GRPCChannel.m
+++ b/src/objective-c/GRPCClient/private/GRPCChannel.m
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/objective-c/GRPCClient/private/GRPCCompletionQueue.h b/src/objective-c/GRPCClient/private/GRPCCompletionQueue.h
index 7b66cd4c32..fe3b8f39d1 100644
--- a/src/objective-c/GRPCClient/private/GRPCCompletionQueue.h
+++ b/src/objective-c/GRPCClient/private/GRPCCompletionQueue.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/objective-c/GRPCClient/private/GRPCCompletionQueue.m b/src/objective-c/GRPCClient/private/GRPCCompletionQueue.m
index d89602f7cb..539b5ab83c 100644
--- a/src/objective-c/GRPCClient/private/GRPCCompletionQueue.m
+++ b/src/objective-c/GRPCClient/private/GRPCCompletionQueue.m
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/objective-c/GRPCClient/private/GRPCHost.h b/src/objective-c/GRPCClient/private/GRPCHost.h
index 987d3e9f59..e58bb7a2d9 100644
--- a/src/objective-c/GRPCClient/private/GRPCHost.h
+++ b/src/objective-c/GRPCClient/private/GRPCHost.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/objective-c/GRPCClient/private/GRPCHost.m b/src/objective-c/GRPCClient/private/GRPCHost.m
index 508cb20644..739d808c53 100644
--- a/src/objective-c/GRPCClient/private/GRPCHost.m
+++ b/src/objective-c/GRPCClient/private/GRPCHost.m
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/objective-c/GRPCClient/private/GRPCReachabilityFlagNames.xmacro.h b/src/objective-c/GRPCClient/private/GRPCReachabilityFlagNames.xmacro.h
index 02871d5d02..4b92504b55 100644
--- a/src/objective-c/GRPCClient/private/GRPCReachabilityFlagNames.xmacro.h
+++ b/src/objective-c/GRPCClient/private/GRPCReachabilityFlagNames.xmacro.h
@@ -54,7 +54,9 @@
GRPC_XMACRO_ITEM.
#endif
+#if TARGET_OS_IPHONE
GRPC_XMACRO_ITEM(isCell, IsWWAN)
+#endif
GRPC_XMACRO_ITEM(reachable, Reachable)
GRPC_XMACRO_ITEM(transientConnection, TransientConnection)
GRPC_XMACRO_ITEM(connectionRequired, ConnectionRequired)
diff --git a/src/objective-c/GRPCClient/private/GRPCWrappedCall.m b/src/objective-c/GRPCClient/private/GRPCWrappedCall.m
index f6527e283c..16e5bff7ff 100644
--- a/src/objective-c/GRPCClient/private/GRPCWrappedCall.m
+++ b/src/objective-c/GRPCClient/private/GRPCWrappedCall.m
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/objective-c/ProtoRPC/ProtoMethod.m b/src/objective-c/ProtoRPC/ProtoMethod.m
index 75e5efc23e..4b7ed63123 100644
--- a/src/objective-c/ProtoRPC/ProtoMethod.m
+++ b/src/objective-c/ProtoRPC/ProtoMethod.m
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/objective-c/RxLibrary/GRXWriteable.m b/src/objective-c/RxLibrary/GRXWriteable.m
index 028ba9b551..c15ccb17fb 100644
--- a/src/objective-c/RxLibrary/GRXWriteable.m
+++ b/src/objective-c/RxLibrary/GRXWriteable.m
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/objective-c/examples/Sample/Sample/ViewController.m b/src/objective-c/examples/Sample/Sample/ViewController.m
index a2bb3ee329..433a8a2ba3 100644
--- a/src/objective-c/examples/Sample/Sample/ViewController.m
+++ b/src/objective-c/examples/Sample/Sample/ViewController.m
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/objective-c/tests/GRPCClientTests.m b/src/objective-c/tests/GRPCClientTests.m
index 7dd6873c80..9a8d425324 100644
--- a/src/objective-c/tests/GRPCClientTests.m
+++ b/src/objective-c/tests/GRPCClientTests.m
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/objective-c/tests/InteropTestsLocalSSL.m b/src/objective-c/tests/InteropTestsLocalSSL.m
index 155e334ecb..f0f4b1d71f 100644
--- a/src/objective-c/tests/InteropTestsLocalSSL.m
+++ b/src/objective-c/tests/InteropTestsLocalSSL.m
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/objective-c/tests/InteropTestsRemote.m b/src/objective-c/tests/InteropTestsRemote.m
index 00eadc25bc..758cc9346a 100644
--- a/src/objective-c/tests/InteropTestsRemote.m
+++ b/src/objective-c/tests/InteropTestsRemote.m
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/objective-c/tests/RxLibraryUnitTests.m b/src/objective-c/tests/RxLibraryUnitTests.m
index ae9465f58c..62fbdfcdf6 100644
--- a/src/objective-c/tests/RxLibraryUnitTests.m
+++ b/src/objective-c/tests/RxLibraryUnitTests.m
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/php/ext/grpc/LICENSE b/src/php/ext/grpc/LICENSE
index a8c47a2081..0c651a0287 100644
--- a/src/php/ext/grpc/LICENSE
+++ b/src/php/ext/grpc/LICENSE
@@ -1,4 +1,4 @@
-Copyright 2015-2016, Google Inc.
+Copyright 2015, Google Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
diff --git a/src/php/ext/grpc/call.c b/src/php/ext/grpc/call.c
index 4f48d6f2e2..024ab70571 100644
--- a/src/php/ext/grpc/call.c
+++ b/src/php/ext/grpc/call.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/php/ext/grpc/channel.c b/src/php/ext/grpc/channel.c
index b7e7c26c10..eba2c81424 100644
--- a/src/php/ext/grpc/channel.c
+++ b/src/php/ext/grpc/channel.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/php/tests/generated_code/AbstractGeneratedCodeTest.php b/src/php/tests/generated_code/AbstractGeneratedCodeTest.php
index f70525ef15..75922d4cf7 100644
--- a/src/php/tests/generated_code/AbstractGeneratedCodeTest.php
+++ b/src/php/tests/generated_code/AbstractGeneratedCodeTest.php
@@ -1,7 +1,7 @@
<?php
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/php/tests/generated_code/math_client.php b/src/php/tests/generated_code/math_client.php
index 2085560d19..b8652ceb08 100644
--- a/src/php/tests/generated_code/math_client.php
+++ b/src/php/tests/generated_code/math_client.php
@@ -1,7 +1,7 @@
<?php
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/php/tests/unit_tests/CallCredentials2Test.php b/src/php/tests/unit_tests/CallCredentials2Test.php
index 1282db6eed..a57e2b9b4e 100644
--- a/src/php/tests/unit_tests/CallCredentials2Test.php
+++ b/src/php/tests/unit_tests/CallCredentials2Test.php
@@ -1,7 +1,7 @@
<?php
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/php/tests/unit_tests/CallCredentials3Test.php b/src/php/tests/unit_tests/CallCredentials3Test.php
index a458f1d322..6d98815d16 100644
--- a/src/php/tests/unit_tests/CallCredentials3Test.php
+++ b/src/php/tests/unit_tests/CallCredentials3Test.php
@@ -1,7 +1,7 @@
<?php
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/php/tests/unit_tests/CallCredentialsTest.php b/src/php/tests/unit_tests/CallCredentialsTest.php
index 287024839d..5fec06cd13 100644
--- a/src/php/tests/unit_tests/CallCredentialsTest.php
+++ b/src/php/tests/unit_tests/CallCredentialsTest.php
@@ -1,7 +1,7 @@
<?php
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/php/tests/unit_tests/CallTest.php b/src/php/tests/unit_tests/CallTest.php
index a2522fb120..1170a440fa 100755
--- a/src/php/tests/unit_tests/CallTest.php
+++ b/src/php/tests/unit_tests/CallTest.php
@@ -1,7 +1,7 @@
<?php
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/php/tests/unit_tests/ChannelCredentialsTest.php b/src/php/tests/unit_tests/ChannelCredentialsTest.php
index 6d472dc876..1a42d69428 100644
--- a/src/php/tests/unit_tests/ChannelCredentialsTest.php
+++ b/src/php/tests/unit_tests/ChannelCredentialsTest.php
@@ -1,7 +1,7 @@
<?php
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/php/tests/unit_tests/ChannelTest.php b/src/php/tests/unit_tests/ChannelTest.php
index acb8a0a70d..b6eac3109a 100644
--- a/src/php/tests/unit_tests/ChannelTest.php
+++ b/src/php/tests/unit_tests/ChannelTest.php
@@ -1,7 +1,7 @@
<?php
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/php/tests/unit_tests/EndToEndTest.php b/src/php/tests/unit_tests/EndToEndTest.php
index 45f6708b1f..3fa92c950b 100755
--- a/src/php/tests/unit_tests/EndToEndTest.php
+++ b/src/php/tests/unit_tests/EndToEndTest.php
@@ -1,7 +1,7 @@
<?php
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/php/tests/unit_tests/ServerTest.php b/src/php/tests/unit_tests/ServerTest.php
index cde6a9a8f7..d18f9abe9b 100644
--- a/src/php/tests/unit_tests/ServerTest.php
+++ b/src/php/tests/unit_tests/ServerTest.php
@@ -1,7 +1,7 @@
<?php
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/php/tests/unit_tests/TimevalTest.php b/src/php/tests/unit_tests/TimevalTest.php
index 9e4bc294da..43abba126a 100755
--- a/src/php/tests/unit_tests/TimevalTest.php
+++ b/src/php/tests/unit_tests/TimevalTest.php
@@ -1,7 +1,7 @@
<?php
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/proto/gen_build_yaml.py b/src/proto/gen_build_yaml.py
index e243d0defc..8e66939699 100755
--- a/src/proto/gen_build_yaml.py
+++ b/src/proto/gen_build_yaml.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python2.7
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/proto/grpc/health/v1/health.proto b/src/proto/grpc/health/v1/health.proto
index 6e27606d1b..4ab30a0256 100644
--- a/src/proto/grpc/health/v1/health.proto
+++ b/src/proto/grpc/health/v1/health.proto
@@ -1,4 +1,4 @@
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/proto/grpc/testing/control.proto b/src/proto/grpc/testing/control.proto
index cc365cafe1..11e752a74b 100644
--- a/src/proto/grpc/testing/control.proto
+++ b/src/proto/grpc/testing/control.proto
@@ -1,4 +1,4 @@
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/proto/grpc/testing/duplicate/echo_duplicate.proto b/src/proto/grpc/testing/duplicate/echo_duplicate.proto
index 9d84de108e..94130ea767 100644
--- a/src/proto/grpc/testing/duplicate/echo_duplicate.proto
+++ b/src/proto/grpc/testing/duplicate/echo_duplicate.proto
@@ -1,5 +1,5 @@
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/proto/grpc/testing/echo.proto b/src/proto/grpc/testing/echo.proto
index 06c3bafbad..0eef53a92a 100644
--- a/src/proto/grpc/testing/echo.proto
+++ b/src/proto/grpc/testing/echo.proto
@@ -1,5 +1,5 @@
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/proto/grpc/testing/echo_messages.proto b/src/proto/grpc/testing/echo_messages.proto
index 5ce0a1fd64..1be1966f10 100644
--- a/src/proto/grpc/testing/echo_messages.proto
+++ b/src/proto/grpc/testing/echo_messages.proto
@@ -1,5 +1,5 @@
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/proto/grpc/testing/metrics.proto b/src/proto/grpc/testing/metrics.proto
index df719afd99..0cc4b60239 100644
--- a/src/proto/grpc/testing/metrics.proto
+++ b/src/proto/grpc/testing/metrics.proto
@@ -1,4 +1,4 @@
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/proto/grpc/testing/services.proto b/src/proto/grpc/testing/services.proto
index a2c5fda47e..f71dae34ee 100644
--- a/src/proto/grpc/testing/services.proto
+++ b/src/proto/grpc/testing/services.proto
@@ -1,4 +1,4 @@
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/commands.py b/src/python/grpcio/commands.py
index 1d43547419..9e745701c1 100644
--- a/src/python/grpcio/commands.py
+++ b/src/python/grpcio/commands.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/_adapter/_low.py b/src/python/grpcio/grpc/_adapter/_low.py
index 62fd52ab40..b13d8dd9dd 100644
--- a/src/python/grpcio/grpc/_adapter/_low.py
+++ b/src/python/grpcio/grpc/_adapter/_low.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/_adapter/_types.py b/src/python/grpcio/grpc/_adapter/_types.py
index f9e18f0bb3..8ca7ff4b60 100644
--- a/src/python/grpcio/grpc/_adapter/_types.py
+++ b/src/python/grpcio/grpc/_adapter/_types.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi
index d1b9c98ffc..1bfe6344e0 100644
--- a/src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi
+++ b/src/python/grpcio/grpc/_cython/_cygrpc/call.pyx.pxi
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi
index d612c90791..c26bc083cf 100644
--- a/src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi
+++ b/src/python/grpcio/grpc/_cython/_cygrpc/channel.pyx.pxi
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pxd.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pxd.pxi
index 305475c006..a67c963684 100644
--- a/src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pxd.pxi
+++ b/src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pxd.pxi
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi
index 09e47d4222..cdae39d519 100644
--- a/src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi
+++ b/src/python/grpcio/grpc/_cython/_cygrpc/completion_queue.pyx.pxi
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi
index 1d7adca23e..842635f56b 100644
--- a/src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi
+++ b/src/python/grpcio/grpc/_cython/_cygrpc/credentials.pyx.pxi
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi
index 61165cb021..7696f8c7f7 100644
--- a/src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi
+++ b/src/python/grpcio/grpc/_cython/_cygrpc/grpc.pxi
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi
index 6ecdcf7222..c2202bdab2 100644
--- a/src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi
+++ b/src/python/grpcio/grpc/_cython/_cygrpc/records.pyx.pxi
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/server.pxd.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/server.pxd.pxi
index a344230be4..a35eb5ea77 100644
--- a/src/python/grpcio/grpc/_cython/_cygrpc/server.pxd.pxi
+++ b/src/python/grpcio/grpc/_cython/_cygrpc/server.pxd.pxi
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi b/src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi
index a098f11da2..8419a59068 100644
--- a/src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi
+++ b/src/python/grpcio/grpc/_cython/_cygrpc/server.pyx.pxi
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/_cython/cygrpc.pxd b/src/python/grpcio/grpc/_cython/cygrpc.pxd
index 61b0fa788f..9779534e38 100644
--- a/src/python/grpcio/grpc/_cython/cygrpc.pxd
+++ b/src/python/grpcio/grpc/_cython/cygrpc.pxd
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/_cython/cygrpc.pyx b/src/python/grpcio/grpc/_cython/cygrpc.pyx
index 8a0f171ee7..8823ea5ef5 100644
--- a/src/python/grpcio/grpc/_cython/cygrpc.pyx
+++ b/src/python/grpcio/grpc/_cython/cygrpc.pyx
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/_cython/imports.generated.h b/src/python/grpcio/grpc/_cython/imports.generated.h
index 4d18369e1f..adcd8e954a 100644
--- a/src/python/grpcio/grpc/_cython/imports.generated.h
+++ b/src/python/grpcio/grpc/_cython/imports.generated.h
@@ -283,7 +283,7 @@ extern grpc_call_destroy_type grpc_call_destroy_import;
typedef grpc_call_error(*grpc_server_request_call_type)(grpc_server *server, grpc_call **call, grpc_call_details *details, grpc_metadata_array *request_metadata, grpc_completion_queue *cq_bound_to_call, grpc_completion_queue *cq_for_notification, void *tag_new);
extern grpc_server_request_call_type grpc_server_request_call_import;
#define grpc_server_request_call grpc_server_request_call_import
-typedef void *(*grpc_server_register_method_type)(grpc_server *server, const char *method, const char *host);
+typedef void *(*grpc_server_register_method_type)(grpc_server *server, const char *method, const char *host, uint32_t flags);
extern grpc_server_register_method_type grpc_server_register_method_import;
#define grpc_server_register_method grpc_server_register_method_import
typedef grpc_call_error(*grpc_server_request_registered_call_type)(grpc_server *server, void *registered_method, grpc_call **call, gpr_timespec *deadline, grpc_metadata_array *request_metadata, grpc_byte_buffer **optional_payload, grpc_completion_queue *cq_bound_to_call, grpc_completion_queue *cq_for_notification, void *tag_new);
diff --git a/src/python/grpcio/grpc/_links/invocation.py b/src/python/grpcio/grpc/_links/invocation.py
index 672e3e4cc8..003653e1c8 100644
--- a/src/python/grpcio/grpc/_links/invocation.py
+++ b/src/python/grpcio/grpc/_links/invocation.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/_links/service.py b/src/python/grpcio/grpc/_links/service.py
index e0f26a5b0f..11310e2240 100644
--- a/src/python/grpcio/grpc/_links/service.py
+++ b/src/python/grpcio/grpc/_links/service.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/beta/_server.py b/src/python/grpcio/grpc/beta/_server.py
index 12d16e6c18..eb0aadb42f 100644
--- a/src/python/grpcio/grpc/beta/_server.py
+++ b/src/python/grpcio/grpc/beta/_server.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/beta/implementations.py b/src/python/grpcio/grpc/beta/implementations.py
index a0ca330d2c..06ee7aa26e 100644
--- a/src/python/grpcio/grpc/beta/implementations.py
+++ b/src/python/grpcio/grpc/beta/implementations.py
@@ -1,4 +1,4 @@
-# Copyright 2015, Google Inc.
+# Copyright 2015-2016, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -61,15 +61,16 @@ class ChannelCredentials(object):
self._low_credentials = low_credentials
-def ssl_channel_credentials(root_certificates, private_key, certificate_chain):
+def ssl_channel_credentials(root_certificates=None, private_key=None,
+ certificate_chain=None):
"""Creates a ChannelCredentials for use with an SSL-enabled Channel.
Args:
- root_certificates: The PEM-encoded root certificates or None to ask for
+ root_certificates: The PEM-encoded root certificates or unset to ask for
them to be retrieved from a default location.
- private_key: The PEM-encoded private key to use or None if no private key
+ private_key: The PEM-encoded private key to use or unset if no private key
should be used.
- certificate_chain: The PEM-encoded certificate chain to use or None if no
+ certificate_chain: The PEM-encoded certificate chain to use or unset if no
certificate chain should be used.
Returns:
diff --git a/src/python/grpcio/grpc/beta/interfaces.py b/src/python/grpcio/grpc/beta/interfaces.py
index e29a5b3379..33ca45ac5b 100644
--- a/src/python/grpcio/grpc/beta/interfaces.py
+++ b/src/python/grpcio/grpc/beta/interfaces.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/alpha/_face_utilities.py b/src/python/grpcio/grpc/framework/alpha/_face_utilities.py
index b5e4133cad..15c47d5c92 100644
--- a/src/python/grpcio/grpc/framework/alpha/_face_utilities.py
+++ b/src/python/grpcio/grpc/framework/alpha/_face_utilities.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/alpha/_reexport.py b/src/python/grpcio/grpc/framework/alpha/_reexport.py
index 4ea0e94d80..e027077a77 100644
--- a/src/python/grpcio/grpc/framework/alpha/_reexport.py
+++ b/src/python/grpcio/grpc/framework/alpha/_reexport.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/alpha/exceptions.py b/src/python/grpcio/grpc/framework/alpha/exceptions.py
index 8ec260488e..09359c5e94 100644
--- a/src/python/grpcio/grpc/framework/alpha/exceptions.py
+++ b/src/python/grpcio/grpc/framework/alpha/exceptions.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/alpha/interfaces.py b/src/python/grpcio/grpc/framework/alpha/interfaces.py
index cb6d58bb2e..48f144f614 100644
--- a/src/python/grpcio/grpc/framework/alpha/interfaces.py
+++ b/src/python/grpcio/grpc/framework/alpha/interfaces.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/base/_ingestion.py b/src/python/grpcio/grpc/framework/base/_ingestion.py
index 090cb158c9..c9b10acb77 100644
--- a/src/python/grpcio/grpc/framework/base/_ingestion.py
+++ b/src/python/grpcio/grpc/framework/base/_ingestion.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/base/_interfaces.py b/src/python/grpcio/grpc/framework/base/_interfaces.py
index c0cc866cad..6bb9837c4a 100644
--- a/src/python/grpcio/grpc/framework/base/_interfaces.py
+++ b/src/python/grpcio/grpc/framework/base/_interfaces.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/base/_reception.py b/src/python/grpcio/grpc/framework/base/_reception.py
index 2bee3947f0..a59c5165f9 100644
--- a/src/python/grpcio/grpc/framework/base/_reception.py
+++ b/src/python/grpcio/grpc/framework/base/_reception.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/base/_transmission.py b/src/python/grpcio/grpc/framework/base/_transmission.py
index 398faaf314..e2a25626f1 100644
--- a/src/python/grpcio/grpc/framework/base/_transmission.py
+++ b/src/python/grpcio/grpc/framework/base/_transmission.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/base/interfaces.py b/src/python/grpcio/grpc/framework/base/interfaces.py
index 7c58a23ce0..995b51cd5b 100644
--- a/src/python/grpcio/grpc/framework/base/interfaces.py
+++ b/src/python/grpcio/grpc/framework/base/interfaces.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/core/_end.py b/src/python/grpcio/grpc/framework/core/_end.py
index dc2f48589a..009d27c915 100644
--- a/src/python/grpcio/grpc/framework/core/_end.py
+++ b/src/python/grpcio/grpc/framework/core/_end.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/core/_ingestion.py b/src/python/grpcio/grpc/framework/core/_ingestion.py
index 1e1fd73ce4..f2767c981b 100644
--- a/src/python/grpcio/grpc/framework/core/_ingestion.py
+++ b/src/python/grpcio/grpc/framework/core/_ingestion.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/core/_interfaces.py b/src/python/grpcio/grpc/framework/core/_interfaces.py
index 985e5e8550..63ac82f80e 100644
--- a/src/python/grpcio/grpc/framework/core/_interfaces.py
+++ b/src/python/grpcio/grpc/framework/core/_interfaces.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/core/_termination.py b/src/python/grpcio/grpc/framework/core/_termination.py
index e8c4ec60a3..fff3a3fc14 100644
--- a/src/python/grpcio/grpc/framework/core/_termination.py
+++ b/src/python/grpcio/grpc/framework/core/_termination.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/crust/_control.py b/src/python/grpcio/grpc/framework/crust/_control.py
index c27fc9106d..9b4167bda0 100644
--- a/src/python/grpcio/grpc/framework/crust/_control.py
+++ b/src/python/grpcio/grpc/framework/crust/_control.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/crust/implementations.py b/src/python/grpcio/grpc/framework/crust/implementations.py
index d0ecafcaf6..2d3ab733b6 100644
--- a/src/python/grpcio/grpc/framework/crust/implementations.py
+++ b/src/python/grpcio/grpc/framework/crust/implementations.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/face/_control.py b/src/python/grpcio/grpc/framework/face/_control.py
index ec43203a25..539615efa1 100644
--- a/src/python/grpcio/grpc/framework/face/_control.py
+++ b/src/python/grpcio/grpc/framework/face/_control.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/face/exceptions.py b/src/python/grpcio/grpc/framework/face/exceptions.py
index c272ac75ab..f95455604d 100644
--- a/src/python/grpcio/grpc/framework/face/exceptions.py
+++ b/src/python/grpcio/grpc/framework/face/exceptions.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/face/implementations.py b/src/python/grpcio/grpc/framework/face/implementations.py
index 9c75a5faf4..96055b4130 100644
--- a/src/python/grpcio/grpc/framework/face/implementations.py
+++ b/src/python/grpcio/grpc/framework/face/implementations.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/face/interfaces.py b/src/python/grpcio/grpc/framework/face/interfaces.py
index 9fc18d73bc..e9a25c17e1 100644
--- a/src/python/grpcio/grpc/framework/face/interfaces.py
+++ b/src/python/grpcio/grpc/framework/face/interfaces.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/foundation/activated.py b/src/python/grpcio/grpc/framework/foundation/activated.py
index 9b49b6363c..8b8e4f45b5 100644
--- a/src/python/grpcio/grpc/framework/foundation/activated.py
+++ b/src/python/grpcio/grpc/framework/foundation/activated.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/foundation/callable_util.py b/src/python/grpcio/grpc/framework/foundation/callable_util.py
index e0a4cab738..4f029f97bb 100644
--- a/src/python/grpcio/grpc/framework/foundation/callable_util.py
+++ b/src/python/grpcio/grpc/framework/foundation/callable_util.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/foundation/future.py b/src/python/grpcio/grpc/framework/foundation/future.py
index bb8ee3ad87..9210616150 100644
--- a/src/python/grpcio/grpc/framework/foundation/future.py
+++ b/src/python/grpcio/grpc/framework/foundation/future.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/foundation/logging_pool.py b/src/python/grpcio/grpc/framework/foundation/logging_pool.py
index f82c7f7fba..9b469a1452 100644
--- a/src/python/grpcio/grpc/framework/foundation/logging_pool.py
+++ b/src/python/grpcio/grpc/framework/foundation/logging_pool.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/foundation/relay.py b/src/python/grpcio/grpc/framework/foundation/relay.py
index ff4e2275ae..20f41b2738 100644
--- a/src/python/grpcio/grpc/framework/foundation/relay.py
+++ b/src/python/grpcio/grpc/framework/foundation/relay.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/foundation/stream.py b/src/python/grpcio/grpc/framework/foundation/stream.py
index 32a2e52aed..ddd6cc496a 100644
--- a/src/python/grpcio/grpc/framework/foundation/stream.py
+++ b/src/python/grpcio/grpc/framework/foundation/stream.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/foundation/stream_util.py b/src/python/grpcio/grpc/framework/foundation/stream_util.py
index 7d5977fbbd..a6f234f1fe 100644
--- a/src/python/grpcio/grpc/framework/foundation/stream_util.py
+++ b/src/python/grpcio/grpc/framework/foundation/stream_util.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/interfaces/base/base.py b/src/python/grpcio/grpc/framework/interfaces/base/base.py
index 69be37e7ab..a2ddd9c474 100644
--- a/src/python/grpcio/grpc/framework/interfaces/base/base.py
+++ b/src/python/grpcio/grpc/framework/interfaces/base/base.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/interfaces/face/face.py b/src/python/grpcio/grpc/framework/interfaces/face/face.py
index b994acecac..4826e7fff6 100644
--- a/src/python/grpcio/grpc/framework/interfaces/face/face.py
+++ b/src/python/grpcio/grpc/framework/interfaces/face/face.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc/framework/interfaces/links/links.py b/src/python/grpcio/grpc/framework/interfaces/links/links.py
index 808167935f..9631b19078 100644
--- a/src/python/grpcio/grpc/framework/interfaces/links/links.py
+++ b/src/python/grpcio/grpc/framework/interfaces/links/links.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py
index a5bc18af5e..875ff49d30 100644
--- a/src/python/grpcio/grpc_core_dependencies.py
+++ b/src/python/grpcio/grpc_core_dependencies.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -74,9 +74,46 @@ CORE_SOURCE_FILES = [
'src/core/lib/support/tmpfile_posix.c',
'src/core/lib/support/tmpfile_win32.c',
'src/core/lib/support/wrap_memcpy.c',
- 'src/core/lib/census/grpc_context.c',
- 'src/core/lib/census/grpc_filter.c',
- 'src/core/lib/census/grpc_plugin.c',
+ 'src/core/ext/census/context.c',
+ 'src/core/ext/census/grpc_context.c',
+ 'src/core/ext/census/grpc_filter.c',
+ 'src/core/ext/census/grpc_plugin.c',
+ 'src/core/ext/census/initialize.c',
+ 'src/core/ext/census/mlog.c',
+ 'src/core/ext/census/operation.c',
+ 'src/core/ext/census/placeholders.c',
+ 'src/core/ext/census/tracing.c',
+ 'src/core/ext/lb_policy/grpclb/load_balancer_api.c',
+ 'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c',
+ 'src/core/ext/lb_policy/pick_first/pick_first.c',
+ 'src/core/ext/lb_policy/round_robin/round_robin.c',
+ 'src/core/ext/resolver/dns/native/dns_resolver.c',
+ 'src/core/ext/resolver/sockaddr/sockaddr_resolver.c',
+ 'src/core/ext/transport/chttp2/client/insecure/channel_create.c',
+ 'src/core/ext/transport/chttp2/client/secure/secure_channel_create.c',
+ 'src/core/ext/transport/chttp2/server/insecure/server_chttp2.c',
+ 'src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c',
+ 'src/core/ext/transport/chttp2/transport/alpn.c',
+ 'src/core/ext/transport/chttp2/transport/bin_encoder.c',
+ 'src/core/ext/transport/chttp2/transport/chttp2_transport.c',
+ 'src/core/ext/transport/chttp2/transport/frame_data.c',
+ 'src/core/ext/transport/chttp2/transport/frame_goaway.c',
+ 'src/core/ext/transport/chttp2/transport/frame_ping.c',
+ 'src/core/ext/transport/chttp2/transport/frame_rst_stream.c',
+ 'src/core/ext/transport/chttp2/transport/frame_settings.c',
+ 'src/core/ext/transport/chttp2/transport/frame_window_update.c',
+ 'src/core/ext/transport/chttp2/transport/hpack_encoder.c',
+ 'src/core/ext/transport/chttp2/transport/hpack_parser.c',
+ 'src/core/ext/transport/chttp2/transport/hpack_table.c',
+ 'src/core/ext/transport/chttp2/transport/huffsyms.c',
+ 'src/core/ext/transport/chttp2/transport/incoming_metadata.c',
+ 'src/core/ext/transport/chttp2/transport/parsing.c',
+ 'src/core/ext/transport/chttp2/transport/status_conversion.c',
+ 'src/core/ext/transport/chttp2/transport/stream_lists.c',
+ 'src/core/ext/transport/chttp2/transport/stream_map.c',
+ 'src/core/ext/transport/chttp2/transport/timeout_encoding.c',
+ 'src/core/ext/transport/chttp2/transport/varint.c',
+ 'src/core/ext/transport/chttp2/transport/writing.c',
'src/core/lib/channel/channel_args.c',
'src/core/lib/channel/channel_stack.c',
'src/core/lib/channel/channel_stack_builder.c',
@@ -90,17 +127,12 @@ CORE_SOURCE_FILES = [
'src/core/lib/client_config/connector.c',
'src/core/lib/client_config/default_initial_connect_string.c',
'src/core/lib/client_config/initial_connect_string.c',
- 'src/core/lib/client_config/lb_policies/load_balancer_api.c',
- 'src/core/lib/client_config/lb_policies/pick_first.c',
- 'src/core/lib/client_config/lb_policies/round_robin.c',
'src/core/lib/client_config/lb_policy.c',
'src/core/lib/client_config/lb_policy_factory.c',
'src/core/lib/client_config/lb_policy_registry.c',
'src/core/lib/client_config/resolver.c',
'src/core/lib/client_config/resolver_factory.c',
'src/core/lib/client_config/resolver_registry.c',
- 'src/core/lib/client_config/resolvers/dns_resolver.c',
- 'src/core/lib/client_config/resolvers/sockaddr_resolver.c',
'src/core/lib/client_config/subchannel.c',
'src/core/lib/client_config/subchannel_factory.c',
'src/core/lib/client_config/subchannel_index.c',
@@ -110,22 +142,20 @@ CORE_SOURCE_FILES = [
'src/core/lib/debug/trace.c',
'src/core/lib/http/format_request.c',
'src/core/lib/http/httpcli.c',
+ 'src/core/lib/http/httpcli_security_connector.c',
'src/core/lib/http/parser.c',
'src/core/lib/iomgr/closure.c',
'src/core/lib/iomgr/endpoint.c',
'src/core/lib/iomgr/endpoint_pair_posix.c',
'src/core/lib/iomgr/endpoint_pair_windows.c',
+ 'src/core/lib/iomgr/ev_poll_and_epoll_posix.c',
+ 'src/core/lib/iomgr/ev_posix.c',
'src/core/lib/iomgr/exec_ctx.c',
'src/core/lib/iomgr/executor.c',
- 'src/core/lib/iomgr/fd_posix.c',
'src/core/lib/iomgr/iocp_windows.c',
'src/core/lib/iomgr/iomgr.c',
'src/core/lib/iomgr/iomgr_posix.c',
'src/core/lib/iomgr/iomgr_windows.c',
- 'src/core/lib/iomgr/pollset_multipoller_with_epoll.c',
- 'src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c',
- 'src/core/lib/iomgr/pollset_posix.c',
- 'src/core/lib/iomgr/pollset_set_posix.c',
'src/core/lib/iomgr/pollset_set_windows.c',
'src/core/lib/iomgr/pollset_windows.c',
'src/core/lib/iomgr/resolve_address_posix.c',
@@ -157,7 +187,20 @@ CORE_SOURCE_FILES = [
'src/core/lib/json/json_reader.c',
'src/core/lib/json/json_string.c',
'src/core/lib/json/json_writer.c',
- 'src/core/lib/proto/grpc/lb/v0/load_balancer.pb.c',
+ 'src/core/lib/security/b64.c',
+ 'src/core/lib/security/client_auth_filter.c',
+ 'src/core/lib/security/credentials.c',
+ 'src/core/lib/security/credentials_metadata.c',
+ 'src/core/lib/security/credentials_posix.c',
+ 'src/core/lib/security/credentials_win32.c',
+ 'src/core/lib/security/google_default_credentials.c',
+ 'src/core/lib/security/handshake.c',
+ 'src/core/lib/security/json_token.c',
+ 'src/core/lib/security/jwt_verifier.c',
+ 'src/core/lib/security/secure_endpoint.c',
+ 'src/core/lib/security/security_connector.c',
+ 'src/core/lib/security/security_context.c',
+ 'src/core/lib/security/server_auth_filter.c',
'src/core/lib/surface/alarm.c',
'src/core/lib/surface/api_trace.c',
'src/core/lib/surface/byte_buffer.c',
@@ -167,74 +210,29 @@ CORE_SOURCE_FILES = [
'src/core/lib/surface/call_log_batch.c',
'src/core/lib/surface/channel.c',
'src/core/lib/surface/channel_connectivity.c',
- 'src/core/lib/surface/channel_create.c',
'src/core/lib/surface/channel_init.c',
'src/core/lib/surface/channel_ping.c',
'src/core/lib/surface/channel_stack_type.c',
'src/core/lib/surface/completion_queue.c',
'src/core/lib/surface/event_string.c',
'src/core/lib/surface/init.c',
+ 'src/core/lib/surface/init_secure.c',
'src/core/lib/surface/lame_client.c',
'src/core/lib/surface/metadata_array.c',
'src/core/lib/surface/server.c',
- 'src/core/lib/surface/server_chttp2.c',
'src/core/lib/surface/validate_metadata.c',
'src/core/lib/surface/version.c',
'src/core/lib/transport/byte_stream.c',
- 'src/core/lib/transport/chttp2/alpn.c',
- 'src/core/lib/transport/chttp2/bin_encoder.c',
- 'src/core/lib/transport/chttp2/frame_data.c',
- 'src/core/lib/transport/chttp2/frame_goaway.c',
- 'src/core/lib/transport/chttp2/frame_ping.c',
- 'src/core/lib/transport/chttp2/frame_rst_stream.c',
- 'src/core/lib/transport/chttp2/frame_settings.c',
- 'src/core/lib/transport/chttp2/frame_window_update.c',
- 'src/core/lib/transport/chttp2/hpack_encoder.c',
- 'src/core/lib/transport/chttp2/hpack_parser.c',
- 'src/core/lib/transport/chttp2/hpack_table.c',
- 'src/core/lib/transport/chttp2/huffsyms.c',
- 'src/core/lib/transport/chttp2/incoming_metadata.c',
- 'src/core/lib/transport/chttp2/parsing.c',
- 'src/core/lib/transport/chttp2/status_conversion.c',
- 'src/core/lib/transport/chttp2/stream_lists.c',
- 'src/core/lib/transport/chttp2/stream_map.c',
- 'src/core/lib/transport/chttp2/timeout_encoding.c',
- 'src/core/lib/transport/chttp2/varint.c',
- 'src/core/lib/transport/chttp2/writing.c',
- 'src/core/lib/transport/chttp2_transport.c',
'src/core/lib/transport/connectivity_state.c',
'src/core/lib/transport/metadata.c',
'src/core/lib/transport/metadata_batch.c',
'src/core/lib/transport/static_metadata.c',
'src/core/lib/transport/transport.c',
'src/core/lib/transport/transport_op_string.c',
- 'src/core/lib/http/httpcli_security_connector.c',
- 'src/core/lib/security/b64.c',
- 'src/core/lib/security/client_auth_filter.c',
- 'src/core/lib/security/credentials.c',
- 'src/core/lib/security/credentials_metadata.c',
- 'src/core/lib/security/credentials_posix.c',
- 'src/core/lib/security/credentials_win32.c',
- 'src/core/lib/security/google_default_credentials.c',
- 'src/core/lib/security/handshake.c',
- 'src/core/lib/security/json_token.c',
- 'src/core/lib/security/jwt_verifier.c',
- 'src/core/lib/security/secure_endpoint.c',
- 'src/core/lib/security/security_connector.c',
- 'src/core/lib/security/security_context.c',
- 'src/core/lib/security/server_auth_filter.c',
- 'src/core/lib/security/server_secure_chttp2.c',
- 'src/core/lib/surface/init_secure.c',
- 'src/core/lib/surface/secure_channel_create.c',
'src/core/lib/tsi/fake_transport_security.c',
'src/core/lib/tsi/ssl_transport_security.c',
'src/core/lib/tsi/transport_security.c',
- 'src/core/lib/census/context.c',
- 'src/core/lib/census/initialize.c',
- 'src/core/lib/census/mlog.c',
- 'src/core/lib/census/operation.c',
- 'src/core/lib/census/placeholders.c',
- 'src/core/lib/census/tracing.c',
+ 'src/core/plugin_registry/grpc_plugin_registry.c',
'third_party/nanopb/pb_common.c',
'third_party/nanopb/pb_decode.c',
'third_party/nanopb/pb_encode.c',
diff --git a/src/python/grpcio/grpc_version.py b/src/python/grpcio/grpc_version.py
index 75b88cfd61..873b4e2a91 100644
--- a/src/python/grpcio/grpc_version.py
+++ b/src/python/grpcio/grpc_version.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/precompiled.py b/src/python/grpcio/precompiled.py
index d34250b02c..b6aa7fc90e 100644
--- a/src/python/grpcio/precompiled.py
+++ b/src/python/grpcio/precompiled.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -91,6 +91,9 @@ class BuildTaggedExt(setuptools.Command):
def update_setup_arguments(setup_arguments):
+ if not USE_PRECOMPILED_BINARIES:
+ sys.stderr.write('not using precompiled extension')
+ return
url = '{}/{}.so'.format(BINARIES_REPOSITORY, _tagged_ext_name('cygrpc'))
target_path = os.path.join(PYTHON_STEM, 'grpc/_cython/cygrpc.so')
try:
diff --git a/src/python/grpcio/tests/__init__.py b/src/python/grpcio/tests/__init__.py
index c3b80d766d..a70a1b1f1d 100644
--- a/src/python/grpcio/tests/__init__.py
+++ b/src/python/grpcio/tests/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/_loader.py b/src/python/grpcio/tests/_loader.py
index 2f9e5c660e..c2f097f6c6 100644
--- a/src/python/grpcio/tests/_loader.py
+++ b/src/python/grpcio/tests/_loader.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/_result.py b/src/python/grpcio/tests/_result.py
index 18b0f43963..1acec6a9b5 100644
--- a/src/python/grpcio/tests/_result.py
+++ b/src/python/grpcio/tests/_result.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/_runner.py b/src/python/grpcio/tests/_runner.py
index 173a170409..f0718573e2 100644
--- a/src/python/grpcio/tests/_runner.py
+++ b/src/python/grpcio/tests/_runner.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/interop/_secure_interop_test.py b/src/python/grpcio/tests/interop/_secure_interop_test.py
index 7e3061133f..1a1a063a6f 100644
--- a/src/python/grpcio/tests/interop/_secure_interop_test.py
+++ b/src/python/grpcio/tests/interop/_secure_interop_test.py
@@ -1,4 +1,4 @@
-# Copyright 2015, Google Inc.
+# Copyright 2015-2016, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -56,7 +56,7 @@ class SecureInteropTest(
self.stub = test_pb2.beta_create_TestService_stub(
test_utilities.not_really_secure_channel(
'[::]', port, implementations.ssl_channel_credentials(
- resources.test_root_certificates(), None, None),
+ resources.test_root_certificates()),
_SERVER_HOST_OVERRIDE))
def tearDown(self):
diff --git a/src/python/grpcio/tests/interop/client.py b/src/python/grpcio/tests/interop/client.py
index 573ec2bd71..02a37cc6bc 100644
--- a/src/python/grpcio/tests/interop/client.py
+++ b/src/python/grpcio/tests/interop/client.py
@@ -1,4 +1,4 @@
-# Copyright 2015, Google Inc.
+# Copyright 2015-2016, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -94,7 +94,7 @@ def _stub(args):
channel = test_utilities.not_really_secure_channel(
args.server_host, args.server_port,
- implementations.ssl_channel_credentials(root_certificates, None, None),
+ implementations.ssl_channel_credentials(root_certificates),
args.server_host_override)
stub = test_pb2.beta_create_TestService_stub(
channel, metadata_transformer=metadata_transformer)
diff --git a/src/python/grpcio/tests/interop/methods.py b/src/python/grpcio/tests/interop/methods.py
index 7f42b4a005..03810338ed 100644
--- a/src/python/grpcio/tests/interop/methods.py
+++ b/src/python/grpcio/tests/interop/methods.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/protoc_plugin/beta_python_plugin_test.py b/src/python/grpcio/tests/protoc_plugin/beta_python_plugin_test.py
index 230ec6487d..6fba3d4271 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
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/_adapter/_intermediary_low_test.py b/src/python/grpcio/tests/unit/_adapter/_intermediary_low_test.py
index 06bfc34977..22d4b019c7 100644
--- a/src/python/grpcio/tests/unit/_adapter/_intermediary_low_test.py
+++ b/src/python/grpcio/tests/unit/_adapter/_intermediary_low_test.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/_adapter/_proto_scenarios.py b/src/python/grpcio/tests/unit/_adapter/_proto_scenarios.py
index c9f36636b5..7a90eacf77 100644
--- a/src/python/grpcio/tests/unit/_adapter/_proto_scenarios.py
+++ b/src/python/grpcio/tests/unit/_adapter/_proto_scenarios.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/_core_over_links_base_interface_test.py b/src/python/grpcio/tests/unit/_core_over_links_base_interface_test.py
index 881633754c..2b8981c752 100644
--- a/src/python/grpcio/tests/unit/_core_over_links_base_interface_test.py
+++ b/src/python/grpcio/tests/unit/_core_over_links_base_interface_test.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/_crust_over_core_over_links_face_interface_test.py b/src/python/grpcio/tests/unit/_crust_over_core_over_links_face_interface_test.py
index 3be3b051fb..50b9a5a824 100644
--- a/src/python/grpcio/tests/unit/_crust_over_core_over_links_face_interface_test.py
+++ b/src/python/grpcio/tests/unit/_crust_over_core_over_links_face_interface_test.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/_links/_proto_scenarios.py b/src/python/grpcio/tests/unit/_links/_proto_scenarios.py
index acd4891390..50661085f9 100644
--- a/src/python/grpcio/tests/unit/_links/_proto_scenarios.py
+++ b/src/python/grpcio/tests/unit/_links/_proto_scenarios.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/beta/_beta_features_test.py b/src/python/grpcio/tests/unit/beta/_beta_features_test.py
index ebdedcc11e..b8b77a96c1 100644
--- a/src/python/grpcio/tests/unit/beta/_beta_features_test.py
+++ b/src/python/grpcio/tests/unit/beta/_beta_features_test.py
@@ -183,7 +183,7 @@ class BetaFeaturesTest(unittest.TestCase):
port = self._server.add_secure_port('[::]:0', server_credentials)
self._server.start()
self._channel_credentials = implementations.ssl_channel_credentials(
- resources.test_root_certificates(), None, None)
+ resources.test_root_certificates())
self._call_credentials = implementations.metadata_call_credentials(
_metadata_plugin)
channel = test_utilities.not_really_secure_channel(
@@ -296,7 +296,7 @@ class ContextManagementAndLifecycleTest(unittest.TestCase):
self._server_credentials = implementations.ssl_server_credentials(
[(resources.private_key(), resources.certificate_chain(),),])
self._channel_credentials = implementations.ssl_channel_credentials(
- resources.test_root_certificates(), None, None)
+ resources.test_root_certificates())
self._stub_options = implementations.stub_options(
thread_pool_size=test_constants.POOL_SIZE)
diff --git a/src/python/grpcio/tests/unit/beta/_face_interface_test.py b/src/python/grpcio/tests/unit/beta/_face_interface_test.py
index cb302bbf68..ea19ee47ae 100644
--- a/src/python/grpcio/tests/unit/beta/_face_interface_test.py
+++ b/src/python/grpcio/tests/unit/beta/_face_interface_test.py
@@ -94,7 +94,7 @@ class _Implementation(test_interfaces.Implementation):
port = server.add_secure_port('[::]:0', server_credentials)
server.start()
channel_credentials = implementations.ssl_channel_credentials(
- resources.test_root_certificates(), None, None)
+ resources.test_root_certificates())
channel = test_utilities.not_really_secure_channel(
'localhost', port, channel_credentials, _SERVER_HOST_OVERRIDE)
stub_options = implementations.stub_options(
diff --git a/src/python/grpcio/tests/unit/beta/_implementations_test.py b/src/python/grpcio/tests/unit/beta/_implementations_test.py
index 6b32305af7..26be670c45 100644
--- a/src/python/grpcio/tests/unit/beta/_implementations_test.py
+++ b/src/python/grpcio/tests/unit/beta/_implementations_test.py
@@ -38,14 +38,13 @@ from tests.unit import resources
class ChannelCredentialsTest(unittest.TestCase):
def test_runtime_provided_root_certificates(self):
- channel_credentials = implementations.ssl_channel_credentials(
- None, None, None)
+ channel_credentials = implementations.ssl_channel_credentials()
self.assertIsInstance(
channel_credentials, implementations.ChannelCredentials)
def test_application_provided_root_certificates(self):
channel_credentials = implementations.ssl_channel_credentials(
- resources.test_root_certificates(), None, None)
+ resources.test_root_certificates())
self.assertIsInstance(
channel_credentials, implementations.ChannelCredentials)
diff --git a/src/python/grpcio/tests/unit/framework/_crust_over_core_face_interface_test.py b/src/python/grpcio/tests/unit/framework/_crust_over_core_face_interface_test.py
index fd2d4298f9..43457be362 100644
--- a/src/python/grpcio/tests/unit/framework/_crust_over_core_face_interface_test.py
+++ b/src/python/grpcio/tests/unit/framework/_crust_over_core_face_interface_test.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/framework/common/test_constants.py b/src/python/grpcio/tests/unit/framework/common/test_constants.py
index 9f1fb8471c..8d89101e09 100644
--- a/src/python/grpcio/tests/unit/framework/common/test_constants.py
+++ b/src/python/grpcio/tests/unit/framework/common/test_constants.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/framework/common/test_control.py b/src/python/grpcio/tests/unit/framework/common/test_control.py
index 0387668b11..ca5ba3a854 100644
--- a/src/python/grpcio/tests/unit/framework/common/test_control.py
+++ b/src/python/grpcio/tests/unit/framework/common/test_control.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/framework/common/test_coverage.py b/src/python/grpcio/tests/unit/framework/common/test_coverage.py
index 184621fb5c..ea2d2812ce 100644
--- a/src/python/grpcio/tests/unit/framework/common/test_coverage.py
+++ b/src/python/grpcio/tests/unit/framework/common/test_coverage.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/framework/face/testing/base_util.py b/src/python/grpcio/tests/unit/framework/face/testing/base_util.py
index 60ab5bc0fe..59652b3e90 100644
--- a/src/python/grpcio/tests/unit/framework/face/testing/base_util.py
+++ b/src/python/grpcio/tests/unit/framework/face/testing/base_util.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/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
index b0b00bfa81..2ebe1a32a4 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/framework/face/testing/control.py b/src/python/grpcio/tests/unit/framework/face/testing/control.py
index 0d40331e19..8425affcc9 100644
--- a/src/python/grpcio/tests/unit/framework/face/testing/control.py
+++ b/src/python/grpcio/tests/unit/framework/face/testing/control.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/framework/face/testing/coverage.py b/src/python/grpcio/tests/unit/framework/face/testing/coverage.py
index 9f5381069d..3c88b7841a 100644
--- a/src/python/grpcio/tests/unit/framework/face/testing/coverage.py
+++ b/src/python/grpcio/tests/unit/framework/face/testing/coverage.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/framework/face/testing/digest.py b/src/python/grpcio/tests/unit/framework/face/testing/digest.py
index 100067cc83..2b45aded20 100644
--- a/src/python/grpcio/tests/unit/framework/face/testing/digest.py
+++ b/src/python/grpcio/tests/unit/framework/face/testing/digest.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/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
index db901cfe4e..98b61e492c 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/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
index d8706aa39e..cae791af97 100644
--- 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
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/framework/face/testing/interfaces.py b/src/python/grpcio/tests/unit/framework/face/testing/interfaces.py
index 87be836e2d..8a25f89c88 100644
--- a/src/python/grpcio/tests/unit/framework/face/testing/interfaces.py
+++ b/src/python/grpcio/tests/unit/framework/face/testing/interfaces.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/framework/face/testing/service.py b/src/python/grpcio/tests/unit/framework/face/testing/service.py
index dc0f204c04..3e4228cc07 100644
--- a/src/python/grpcio/tests/unit/framework/face/testing/service.py
+++ b/src/python/grpcio/tests/unit/framework/face/testing/service.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/framework/face/testing/test_case.py b/src/python/grpcio/tests/unit/framework/face/testing/test_case.py
index 5be9330a77..f29d400844 100644
--- a/src/python/grpcio/tests/unit/framework/face/testing/test_case.py
+++ b/src/python/grpcio/tests/unit/framework/face/testing/test_case.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/framework/foundation/_logging_pool_test.py b/src/python/grpcio/tests/unit/framework/foundation/_logging_pool_test.py
index 0521e1c102..330e445d43 100644
--- a/src/python/grpcio/tests/unit/framework/foundation/_logging_pool_test.py
+++ b/src/python/grpcio/tests/unit/framework/foundation/_logging_pool_test.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/framework/interfaces/base/_control.py b/src/python/grpcio/tests/unit/framework/interfaces/base/_control.py
index 94bcc1428e..0eb38abf22 100644
--- a/src/python/grpcio/tests/unit/framework/interfaces/base/_control.py
+++ b/src/python/grpcio/tests/unit/framework/interfaces/base/_control.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/framework/interfaces/base/test_interfaces.py b/src/python/grpcio/tests/unit/framework/interfaces/base/test_interfaces.py
index 0594cfeb31..5eba475ba8 100644
--- a/src/python/grpcio/tests/unit/framework/interfaces/base/test_interfaces.py
+++ b/src/python/grpcio/tests/unit/framework/interfaces/base/test_interfaces.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/framework/interfaces/face/_blocking_invocation_inline_service.py b/src/python/grpcio/tests/unit/framework/interfaces/face/_blocking_invocation_inline_service.py
index 936b87f597..649892463a 100644
--- a/src/python/grpcio/tests/unit/framework/interfaces/face/_blocking_invocation_inline_service.py
+++ b/src/python/grpcio/tests/unit/framework/interfaces/face/_blocking_invocation_inline_service.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/framework/interfaces/face/_digest.py b/src/python/grpcio/tests/unit/framework/interfaces/face/_digest.py
index 40c03f9e71..f0befb0b27 100644
--- a/src/python/grpcio/tests/unit/framework/interfaces/face/_digest.py
+++ b/src/python/grpcio/tests/unit/framework/interfaces/face/_digest.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/framework/interfaces/face/_future_invocation_asynchronous_event_service.py b/src/python/grpcio/tests/unit/framework/interfaces/face/_future_invocation_asynchronous_event_service.py
index 401b52f614..c3813d5f3a 100644
--- a/src/python/grpcio/tests/unit/framework/interfaces/face/_future_invocation_asynchronous_event_service.py
+++ b/src/python/grpcio/tests/unit/framework/interfaces/face/_future_invocation_asynchronous_event_service.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/framework/interfaces/face/_invocation.py b/src/python/grpcio/tests/unit/framework/interfaces/face/_invocation.py
index ff38dc2ece..ac487bed4f 100644
--- a/src/python/grpcio/tests/unit/framework/interfaces/face/_invocation.py
+++ b/src/python/grpcio/tests/unit/framework/interfaces/face/_invocation.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/framework/interfaces/face/_receiver.py b/src/python/grpcio/tests/unit/framework/interfaces/face/_receiver.py
index 42a7f4e3b8..48f31fc677 100644
--- a/src/python/grpcio/tests/unit/framework/interfaces/face/_receiver.py
+++ b/src/python/grpcio/tests/unit/framework/interfaces/face/_receiver.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/framework/interfaces/face/_service.py b/src/python/grpcio/tests/unit/framework/interfaces/face/_service.py
index bec8d5113c..f13dff0558 100644
--- a/src/python/grpcio/tests/unit/framework/interfaces/face/_service.py
+++ b/src/python/grpcio/tests/unit/framework/interfaces/face/_service.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/framework/interfaces/face/test_cases.py b/src/python/grpcio/tests/unit/framework/interfaces/face/test_cases.py
index 06b9d77e52..71de9d835e 100644
--- a/src/python/grpcio/tests/unit/framework/interfaces/face/test_cases.py
+++ b/src/python/grpcio/tests/unit/framework/interfaces/face/test_cases.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/framework/interfaces/face/test_interfaces.py b/src/python/grpcio/tests/unit/framework/interfaces/face/test_interfaces.py
index a5e28b7942..40f38e68ba 100644
--- a/src/python/grpcio/tests/unit/framework/interfaces/face/test_interfaces.py
+++ b/src/python/grpcio/tests/unit/framework/interfaces/face/test_interfaces.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/framework/interfaces/links/test_cases.py b/src/python/grpcio/tests/unit/framework/interfaces/links/test_cases.py
index 2283e79f0a..608e64119e 100644
--- a/src/python/grpcio/tests/unit/framework/interfaces/links/test_cases.py
+++ b/src/python/grpcio/tests/unit/framework/interfaces/links/test_cases.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio/tests/unit/test_common.py b/src/python/grpcio/tests/unit/test_common.py
index 824f1cbd16..7b4d20dccb 100644
--- a/src/python/grpcio/tests/unit/test_common.py
+++ b/src/python/grpcio/tests/unit/test_common.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio_health_checking/grpc/health/v1/__init__.py b/src/python/grpcio_health_checking/grpc/health/v1/__init__.py
index 13aac79160..7086519106 100644
--- a/src/python/grpcio_health_checking/grpc/health/v1/__init__.py
+++ b/src/python/grpcio_health_checking/grpc/health/v1/__init__.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio_health_checking/grpc/health/v1/health.proto b/src/python/grpcio_health_checking/grpc/health/v1/health.proto
index de10719b6c..b0bac54be9 100644
--- a/src/python/grpcio_health_checking/grpc/health/v1/health.proto
+++ b/src/python/grpcio_health_checking/grpc/health/v1/health.proto
@@ -1,4 +1,4 @@
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/src/python/grpcio_health_checking/grpc/health/v1/health.py b/src/python/grpcio_health_checking/grpc/health/v1/health.py
index 60cbd64433..4b5af15aa6 100644
--- a/src/python/grpcio_health_checking/grpc/health/v1/health.py
+++ b/src/python/grpcio_health_checking/grpc/health/v1/health.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/ruby/ext/grpc/extconf.rb b/src/ruby/ext/grpc/extconf.rb
index 6b7001a489..82b6d313c8 100644
--- a/src/ruby/ext/grpc/extconf.rb
+++ b/src/ruby/ext/grpc/extconf.rb
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/ruby/ext/grpc/rb_byte_buffer.c b/src/ruby/ext/grpc/rb_byte_buffer.c
index db7cac363a..cba910d832 100644
--- a/src/ruby/ext/grpc/rb_byte_buffer.c
+++ b/src/ruby/ext/grpc/rb_byte_buffer.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -50,21 +50,18 @@ grpc_byte_buffer* grpc_rb_s_to_byte_buffer(char *string, size_t length) {
}
VALUE grpc_rb_byte_buffer_to_s(grpc_byte_buffer *buffer) {
- size_t length = 0;
- char *string = NULL;
- size_t offset = 0;
+ VALUE rb_string;
grpc_byte_buffer_reader reader;
gpr_slice next;
if (buffer == NULL) {
return Qnil;
-
}
- length = grpc_byte_buffer_length(buffer);
- string = xmalloc(length + 1);
+ rb_string = rb_str_buf_new(grpc_byte_buffer_length(buffer));
grpc_byte_buffer_reader_init(&reader, buffer);
while (grpc_byte_buffer_reader_next(&reader, &next) != 0) {
- memcpy(string + offset, GPR_SLICE_START_PTR(next), GPR_SLICE_LENGTH(next));
- offset += GPR_SLICE_LENGTH(next);
+ rb_str_cat(rb_string, (const char *) GPR_SLICE_START_PTR(next),
+ GPR_SLICE_LENGTH(next));
+ gpr_slice_unref(next);
}
- return rb_str_new(string, length);
+ return rb_string;
}
diff --git a/src/ruby/ext/grpc/rb_call.c b/src/ruby/ext/grpc/rb_call.c
index cd0aa6aaf2..dc80d18b45 100644
--- a/src/ruby/ext/grpc/rb_call.c
+++ b/src/ruby/ext/grpc/rb_call.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -551,13 +551,26 @@ static void grpc_run_batch_stack_init(run_batch_stack *st,
/* grpc_run_batch_stack_cleanup ensures the run_batch_stack is properly
* cleaned up */
static void grpc_run_batch_stack_cleanup(run_batch_stack *st) {
+ size_t i = 0;
+
grpc_metadata_array_destroy(&st->send_metadata);
grpc_metadata_array_destroy(&st->send_trailing_metadata);
grpc_metadata_array_destroy(&st->recv_metadata);
grpc_metadata_array_destroy(&st->recv_trailing_metadata);
+
if (st->recv_status_details != NULL) {
gpr_free(st->recv_status_details);
}
+
+ if (st->recv_message != NULL) {
+ grpc_byte_buffer_destroy(st->recv_message);
+ }
+
+ for (i = 0; i < st->op_num; i++) {
+ if (st->ops[i].op == GRPC_OP_SEND_MESSAGE) {
+ grpc_byte_buffer_destroy(st->ops[i].data.send_message);
+ }
+ }
}
/* grpc_run_batch_stack_fill_ops fills the run_batch_stack ops array from
@@ -643,7 +656,6 @@ static VALUE grpc_run_batch_stack_build_result(run_batch_stack *st) {
break;
case GRPC_OP_SEND_MESSAGE:
rb_struct_aset(result, sym_send_message, Qtrue);
- grpc_byte_buffer_destroy(st->ops[i].data.send_message);
break;
case GRPC_OP_SEND_CLOSE_FROM_CLIENT:
rb_struct_aset(result, sym_send_close, Qtrue);
diff --git a/src/ruby/ext/grpc/rb_call_credentials.c b/src/ruby/ext/grpc/rb_call_credentials.c
index 2b978fcdd0..38bf1f7710 100644
--- a/src/ruby/ext/grpc/rb_call_credentials.c
+++ b/src/ruby/ext/grpc/rb_call_credentials.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/ruby/ext/grpc/rb_channel.c b/src/ruby/ext/grpc/rb_channel.c
index e1aaa539db..984afad107 100644
--- a/src/ruby/ext/grpc/rb_channel.c
+++ b/src/ruby/ext/grpc/rb_channel.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/ruby/ext/grpc/rb_channel_args.c b/src/ruby/ext/grpc/rb_channel_args.c
index 69827cea1c..2ffb8f41da 100644
--- a/src/ruby/ext/grpc/rb_channel_args.c
+++ b/src/ruby/ext/grpc/rb_channel_args.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/ruby/ext/grpc/rb_channel_credentials.c b/src/ruby/ext/grpc/rb_channel_credentials.c
index f649084311..10391bc963 100644
--- a/src/ruby/ext/grpc/rb_channel_credentials.c
+++ b/src/ruby/ext/grpc/rb_channel_credentials.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/ruby/ext/grpc/rb_completion_queue.c b/src/ruby/ext/grpc/rb_completion_queue.c
index 1eb5a28750..2a2eee190c 100644
--- a/src/ruby/ext/grpc/rb_completion_queue.c
+++ b/src/ruby/ext/grpc/rb_completion_queue.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/ruby/ext/grpc/rb_grpc.c b/src/ruby/ext/grpc/rb_grpc.c
index 0f9b18fa21..acb47b0055 100644
--- a/src/ruby/ext/grpc/rb_grpc.c
+++ b/src/ruby/ext/grpc/rb_grpc.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/ruby/ext/grpc/rb_grpc_imports.generated.h b/src/ruby/ext/grpc/rb_grpc_imports.generated.h
index 3bf81af8fb..22ea84c750 100644
--- a/src/ruby/ext/grpc/rb_grpc_imports.generated.h
+++ b/src/ruby/ext/grpc/rb_grpc_imports.generated.h
@@ -283,7 +283,7 @@ extern grpc_call_destroy_type grpc_call_destroy_import;
typedef grpc_call_error(*grpc_server_request_call_type)(grpc_server *server, grpc_call **call, grpc_call_details *details, grpc_metadata_array *request_metadata, grpc_completion_queue *cq_bound_to_call, grpc_completion_queue *cq_for_notification, void *tag_new);
extern grpc_server_request_call_type grpc_server_request_call_import;
#define grpc_server_request_call grpc_server_request_call_import
-typedef void *(*grpc_server_register_method_type)(grpc_server *server, const char *method, const char *host);
+typedef void *(*grpc_server_register_method_type)(grpc_server *server, const char *method, const char *host, uint32_t flags);
extern grpc_server_register_method_type grpc_server_register_method_import;
#define grpc_server_register_method grpc_server_register_method_import
typedef grpc_call_error(*grpc_server_request_registered_call_type)(grpc_server *server, void *registered_method, grpc_call **call, gpr_timespec *deadline, grpc_metadata_array *request_metadata, grpc_byte_buffer **optional_payload, grpc_completion_queue *cq_bound_to_call, grpc_completion_queue *cq_for_notification, void *tag_new);
diff --git a/src/ruby/ext/grpc/rb_server.c b/src/ruby/ext/grpc/rb_server.c
index 37cc55a651..96e60c6776 100644
--- a/src/ruby/ext/grpc/rb_server.c
+++ b/src/ruby/ext/grpc/rb_server.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/ruby/ext/grpc/rb_server_credentials.c b/src/ruby/ext/grpc/rb_server_credentials.c
index 4ea59b6b27..33b8372850 100644
--- a/src/ruby/ext/grpc/rb_server_credentials.c
+++ b/src/ruby/ext/grpc/rb_server_credentials.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/ruby/lib/grpc.rb b/src/ruby/lib/grpc.rb
index 1671ba3550..4e23cd7af2 100644
--- a/src/ruby/lib/grpc.rb
+++ b/src/ruby/lib/grpc.rb
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/ruby/lib/grpc/core/time_consts.rb b/src/ruby/lib/grpc/core/time_consts.rb
index c8eae7806b..3b8c2daa07 100644
--- a/src/ruby/lib/grpc/core/time_consts.rb
+++ b/src/ruby/lib/grpc/core/time_consts.rb
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/ruby/lib/grpc/errors.rb b/src/ruby/lib/grpc/errors.rb
index 2227ee1f12..1d7588c18d 100644
--- a/src/ruby/lib/grpc/errors.rb
+++ b/src/ruby/lib/grpc/errors.rb
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/ruby/lib/grpc/generic/bidi_call.rb b/src/ruby/lib/grpc/generic/bidi_call.rb
index 213176bd48..6b9b785693 100644
--- a/src/ruby/lib/grpc/generic/bidi_call.rb
+++ b/src/ruby/lib/grpc/generic/bidi_call.rb
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/ruby/lib/grpc/generic/client_stub.rb b/src/ruby/lib/grpc/generic/client_stub.rb
index 4da9ff086a..98e83a8396 100644
--- a/src/ruby/lib/grpc/generic/client_stub.rb
+++ b/src/ruby/lib/grpc/generic/client_stub.rb
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/ruby/lib/grpc/generic/rpc_desc.rb b/src/ruby/lib/grpc/generic/rpc_desc.rb
index 526b2ba5b6..dd90d8d91d 100644
--- a/src/ruby/lib/grpc/generic/rpc_desc.rb
+++ b/src/ruby/lib/grpc/generic/rpc_desc.rb
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/ruby/lib/grpc/generic/rpc_server.rb b/src/ruby/lib/grpc/generic/rpc_server.rb
index b30d19dd2b..4b5578b018 100644
--- a/src/ruby/lib/grpc/generic/rpc_server.rb
+++ b/src/ruby/lib/grpc/generic/rpc_server.rb
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/ruby/lib/grpc/grpc.rb b/src/ruby/lib/grpc/grpc.rb
index d8a4947494..250f6dd30d 100644
--- a/src/ruby/lib/grpc/grpc.rb
+++ b/src/ruby/lib/grpc/grpc.rb
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/ruby/lib/grpc/version.rb b/src/ruby/lib/grpc/version.rb
index ef0876159d..67c6a5d5a1 100644
--- a/src/ruby/lib/grpc/version.rb
+++ b/src/ruby/lib/grpc/version.rb
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/ruby/pb/generate_proto_ruby.sh b/src/ruby/pb/generate_proto_ruby.sh
index 86c082099d..82dad18ad0 100755
--- a/src/ruby/pb/generate_proto_ruby.sh
+++ b/src/ruby/pb/generate_proto_ruby.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -40,11 +40,18 @@ $PROTOC -I src/proto src/proto/grpc/health/v1/health.proto \
--ruby_out=src/ruby/pb \
--plugin=$PLUGIN
-$PROTOC -I . test/proto/{messages,test,empty}.proto \
+$PROTOC -I . \
+ src/proto/grpc/testing/{messages,test,empty}.proto \
--grpc_out=src/ruby/pb \
--ruby_out=src/ruby/pb \
--plugin=$PLUGIN
+$PROTOC -I . \
+ src/proto/grpc/testing/{messages,payloads,stats,services,control}.proto \
+ --grpc_out=src/ruby/qps \
+ --ruby_out=src/ruby/qps \
+ --plugin=$PLUGIN
+
$PROTOC -I src/proto/math src/proto/math/math.proto \
--grpc_out=src/ruby/bin \
--ruby_out=src/ruby/bin \
diff --git a/src/ruby/pb/grpc/health/checker.rb b/src/ruby/pb/grpc/health/checker.rb
index 9f1ee65c41..f7310d9289 100644
--- a/src/ruby/pb/grpc/health/checker.rb
+++ b/src/ruby/pb/grpc/health/checker.rb
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/ruby/pb/test/client.rb b/src/ruby/pb/test/client.rb
index 684ee80771..2f83e67c52 100755
--- a/src/ruby/pb/test/client.rb
+++ b/src/ruby/pb/test/client.rb
@@ -1,6 +1,6 @@
#!/usr/bin/env ruby
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/ruby/qps/client.rb b/src/ruby/qps/client.rb
new file mode 100644
index 0000000000..d04f707479
--- /dev/null
+++ b/src/ruby/qps/client.rb
@@ -0,0 +1,164 @@
+#!/usr/bin/env ruby
+
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Worker and worker service implementation
+
+this_dir = File.expand_path(File.dirname(__FILE__))
+lib_dir = File.join(File.dirname(this_dir), 'lib')
+$LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
+$LOAD_PATH.unshift(this_dir) unless $LOAD_PATH.include?(this_dir)
+
+require 'grpc'
+require 'histogram'
+require 'src/proto/grpc/testing/services_services'
+
+class Poisson
+ def interarrival
+ @lambda_recip * (-Math.log(1.0-rand))
+ end
+ def advance
+ t = @next_time
+ @next_time += interarrival
+ t
+ end
+ def initialize(lambda)
+ @lambda_recip = 1.0/lambda
+ @next_time = Time.now + interarrival
+ end
+end
+
+class BenchmarkClient
+ def initialize(config)
+ opts = {}
+ if config.security_params
+ if config.security_params.use_test_ca
+ certs = load_test_certs
+ cred = GRPC::Core::ChannelCredentials.new(certs[0])
+ else
+ cred = GRPC::Core::ChannelCredentials.new()
+ end
+ if config.security_params.server_host_override
+ opts[GRPC::Core::Channel::SSL_TARGET] =
+ config.security_params.server_host_override
+ end
+ else
+ cred = :this_channel_is_insecure
+ end
+ @histres = config.histogram_params.resolution
+ @histmax = config.histogram_params.max_possible
+ @start_time = Time.now
+ @histogram = Histogram.new(@histres, @histmax)
+ @done = false
+
+ gtsr = Grpc::Testing::SimpleRequest
+ gtpt = Grpc::Testing::PayloadType
+ gtp = Grpc::Testing::Payload
+ simple_params = config.payload_config.simple_params
+ req = gtsr.new(response_type: gtpt::COMPRESSABLE,
+ response_size: simple_params.resp_size,
+ payload: gtp.new(type: gtpt::COMPRESSABLE,
+ body: nulls(simple_params.req_size)))
+
+ (0..config.client_channels-1).each do |chan|
+ gtbss = Grpc::Testing::BenchmarkService::Stub
+ st = config.server_targets
+ stub = gtbss.new(st[chan % st.length], cred, **opts)
+ (0..config.outstanding_rpcs_per_channel-1).each do |r|
+ Thread.new {
+ case config.load_params.load.to_s
+ when 'closed_loop'
+ waiter = nil
+ when 'poisson'
+ waiter = Poisson.new(config.load_params.poisson.offered_load /
+ (config.client_channels *
+ config.outstanding_rpcs_per_channel))
+ end
+ case config.rpc_type
+ when :UNARY
+ unary_ping_ponger(req,stub,config,waiter)
+ when :STREAMING
+ streaming_ping_ponger(req,stub,config,waiter)
+ end
+ }
+ end
+ end
+ end
+ def wait_to_issue(waiter)
+ if waiter
+ delay = waiter.advance-Time.now
+ sleep delay if delay > 0
+ end
+ end
+ def unary_ping_ponger(req, stub, config,waiter)
+ while !@done
+ wait_to_issue(waiter)
+ start = Time.now
+ resp = stub.unary_call(req)
+ @histogram.add((Time.now-start)*1e9)
+ end
+ end
+ def streaming_ping_ponger(req, stub, config, waiter)
+ q = EnumeratorQueue.new(self)
+ resp = stub.streaming_call(q.each_item)
+ start = Time.now
+ q.push(req)
+ resp.each do |r|
+ @histogram.add((Time.now-start)*1e9)
+ if !@done
+ wait_to_issue(waiter)
+ start = Time.now
+ q.push(req)
+ else
+ q.push(self)
+ break
+ end
+ end
+ end
+ def mark(reset)
+ lat = Grpc::Testing::HistogramData.new(
+ bucket: @histogram.contents,
+ min_seen: @histogram.minimum,
+ max_seen: @histogram.maximum,
+ sum: @histogram.sum,
+ sum_of_squares: @histogram.sum_of_squares,
+ count: @histogram.count
+ )
+ elapsed = Time.now-@start_time
+ if reset
+ @start_time = Time.now
+ @histogram = Histogram.new(@histres, @histmax)
+ end
+ Grpc::Testing::ClientStats.new(latencies: lat, time_elapsed: elapsed)
+ end
+ def shutdown
+ @done = true
+ end
+end
diff --git a/src/ruby/qps/histogram.rb b/src/ruby/qps/histogram.rb
new file mode 100644
index 0000000000..bf7a89ac46
--- /dev/null
+++ b/src/ruby/qps/histogram.rb
@@ -0,0 +1,88 @@
+#!/usr/bin/env ruby
+
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Histogram class for use in performance testing and measurement
+
+class Histogram
+ # Determine the bucket index for a given value
+ # @param {number} value The value to check
+ # @return {number} The bucket index
+ def bucket_for(value)
+ (Math.log(value)/Math.log(@multiplier)).to_i
+ end
+ # Initialize an empty histogram
+ # @param {number} resolution The resolution of the histogram
+ # @param {number} max_possible The maximum value for the histogram
+ def initialize(resolution, max_possible)
+ @resolution=resolution
+ @max_possible=max_possible
+ @sum=0
+ @sum_of_squares=0
+ @multiplier=1+resolution
+ @count=0
+ @min_seen=max_possible
+ @max_seen=0
+ @buckets=Array.new(bucket_for(max_possible)+1, 0)
+ end
+ # Add a value to the histogram. This updates all statistics with the new
+ # value. Those statistics should not be modified except with this function
+ # @param {number} value The value to add
+ def add(value)
+ @sum += value
+ @sum_of_squares += value * value
+ @count += 1
+ if value < @min_seen
+ @min_seen = value
+ end
+ if value > @max_seen
+ @max_seen = value
+ end
+ @buckets[bucket_for(value)] += 1
+ end
+ def minimum
+ @min_seen
+ end
+ def maximum
+ @max_seen
+ end
+ def sum
+ @sum
+ end
+ def sum_of_squares
+ @sum_of_squares
+ end
+ def count
+ @count
+ end
+ def contents
+ @buckets
+ end
+end
diff --git a/src/ruby/qps/qps-common.rb b/src/ruby/qps/qps-common.rb
new file mode 100644
index 0000000000..4119d600b1
--- /dev/null
+++ b/src/ruby/qps/qps-common.rb
@@ -0,0 +1,76 @@
+#!/usr/bin/env ruby
+
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Worker and worker service implementation
+
+this_dir = File.expand_path(File.dirname(__FILE__))
+lib_dir = File.join(File.dirname(this_dir), 'lib')
+$LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
+$LOAD_PATH.unshift(this_dir) unless $LOAD_PATH.include?(this_dir)
+
+require 'grpc'
+
+# produces a string of null chars (\0 aka pack 'x') of length l.
+def nulls(l)
+ fail 'requires #{l} to be +ve' if l < 0
+ [].pack('x' * l).force_encoding('ascii-8bit')
+end
+
+# load the test-only certificates
+def load_test_certs
+ this_dir = File.expand_path(File.dirname(__FILE__))
+ data_dir = File.join(File.dirname(this_dir), 'spec/testdata')
+ files = ['ca.pem', 'server1.key', 'server1.pem']
+ files.map { |f| File.open(File.join(data_dir, f)).read }
+end
+
+# A EnumeratorQueue wraps a Queue yielding the items added to it via each_item.
+class EnumeratorQueue
+ extend Forwardable
+ def_delegators :@q, :push
+
+ def initialize(sentinel)
+ @q = Queue.new
+ @sentinel = sentinel
+ end
+
+ def each_item
+ return enum_for(:each_item) unless block_given?
+ loop do
+ r = @q.pop
+ break if r.equal?(@sentinel)
+ fail r if r.is_a? Exception
+ yield r
+ end
+ end
+end
+
+
diff --git a/src/ruby/qps/server.rb b/src/ruby/qps/server.rb
new file mode 100644
index 0000000000..26f46a3140
--- /dev/null
+++ b/src/ruby/qps/server.rb
@@ -0,0 +1,91 @@
+#!/usr/bin/env ruby
+
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Worker and worker service implementation
+
+this_dir = File.expand_path(File.dirname(__FILE__))
+lib_dir = File.join(File.dirname(this_dir), 'lib')
+$LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
+$LOAD_PATH.unshift(this_dir) unless $LOAD_PATH.include?(this_dir)
+
+require 'grpc'
+require 'qps-common'
+require 'src/proto/grpc/testing/messages'
+require 'src/proto/grpc/testing/services_services'
+require 'src/proto/grpc/testing/stats'
+
+class BenchmarkServiceImpl < Grpc::Testing::BenchmarkService::Service
+ def unary_call(req, _call)
+ sr = Grpc::Testing::SimpleResponse
+ pl = Grpc::Testing::Payload
+ sr.new(payload: pl.new(body: nulls(req.response_size)))
+ end
+ def streaming_call(reqs)
+ q = EnumeratorQueue.new(self)
+ Thread.new {
+ sr = Grpc::Testing::SimpleResponse
+ pl = Grpc::Testing::Payload
+ reqs.each do |req|
+ q.push(sr.new(payload: pl.new(body: nulls(req.response_size))))
+ end
+ q.push(self)
+ }
+ q.each_item
+ end
+end
+
+class BenchmarkServer
+ def initialize(config, port)
+ if config.security_params
+ certs = load_test_certs
+ cred = GRPC::Core::ServerCredentials.new(
+ nil, [{private_key: certs[1], cert_chain: certs[2]}], false)
+ else
+ cred = :this_port_is_insecure
+ end
+ @server = GRPC::RpcServer.new
+ @port = @server.add_http2_port("0.0.0.0:" + port.to_s, cred)
+ @server.handle(BenchmarkServiceImpl.new)
+ @start_time = Time.now
+ Thread.new {
+ @server.run
+ }
+ end
+ def mark(reset)
+ s = Grpc::Testing::ServerStats.new(time_elapsed:
+ (Time.now-@start_time).to_f)
+ @start_time = Time.now if reset
+ s
+ end
+ def get_port
+ @port
+ end
+end
diff --git a/src/ruby/qps/src/proto/grpc/testing/control.rb b/src/ruby/qps/src/proto/grpc/testing/control.rb
new file mode 100644
index 0000000000..d007123f26
--- /dev/null
+++ b/src/ruby/qps/src/proto/grpc/testing/control.rb
@@ -0,0 +1,129 @@
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: src/proto/grpc/testing/control.proto
+
+require 'google/protobuf'
+
+require 'src/proto/grpc/testing/payloads'
+require 'src/proto/grpc/testing/stats'
+Google::Protobuf::DescriptorPool.generated_pool.build do
+ add_message "grpc.testing.PoissonParams" do
+ optional :offered_load, :double, 1
+ end
+ add_message "grpc.testing.UniformParams" do
+ optional :interarrival_lo, :double, 1
+ optional :interarrival_hi, :double, 2
+ end
+ add_message "grpc.testing.DeterministicParams" do
+ optional :offered_load, :double, 1
+ end
+ add_message "grpc.testing.ParetoParams" do
+ optional :interarrival_base, :double, 1
+ optional :alpha, :double, 2
+ end
+ add_message "grpc.testing.ClosedLoopParams" do
+ end
+ add_message "grpc.testing.LoadParams" do
+ oneof :load do
+ optional :closed_loop, :message, 1, "grpc.testing.ClosedLoopParams"
+ optional :poisson, :message, 2, "grpc.testing.PoissonParams"
+ optional :uniform, :message, 3, "grpc.testing.UniformParams"
+ optional :determ, :message, 4, "grpc.testing.DeterministicParams"
+ optional :pareto, :message, 5, "grpc.testing.ParetoParams"
+ end
+ end
+ add_message "grpc.testing.SecurityParams" do
+ optional :use_test_ca, :bool, 1
+ optional :server_host_override, :string, 2
+ end
+ add_message "grpc.testing.ClientConfig" do
+ repeated :server_targets, :string, 1
+ optional :client_type, :enum, 2, "grpc.testing.ClientType"
+ optional :security_params, :message, 3, "grpc.testing.SecurityParams"
+ optional :outstanding_rpcs_per_channel, :int32, 4
+ optional :client_channels, :int32, 5
+ optional :async_client_threads, :int32, 7
+ optional :rpc_type, :enum, 8, "grpc.testing.RpcType"
+ optional :load_params, :message, 10, "grpc.testing.LoadParams"
+ optional :payload_config, :message, 11, "grpc.testing.PayloadConfig"
+ optional :histogram_params, :message, 12, "grpc.testing.HistogramParams"
+ repeated :core_list, :int32, 13
+ optional :core_limit, :int32, 14
+ end
+ add_message "grpc.testing.ClientStatus" do
+ optional :stats, :message, 1, "grpc.testing.ClientStats"
+ end
+ add_message "grpc.testing.Mark" do
+ optional :reset, :bool, 1
+ end
+ add_message "grpc.testing.ClientArgs" do
+ oneof :argtype do
+ optional :setup, :message, 1, "grpc.testing.ClientConfig"
+ optional :mark, :message, 2, "grpc.testing.Mark"
+ end
+ end
+ add_message "grpc.testing.ServerConfig" do
+ optional :server_type, :enum, 1, "grpc.testing.ServerType"
+ optional :security_params, :message, 2, "grpc.testing.SecurityParams"
+ optional :port, :int32, 4
+ optional :async_server_threads, :int32, 7
+ optional :core_limit, :int32, 8
+ optional :payload_config, :message, 9, "grpc.testing.PayloadConfig"
+ repeated :core_list, :int32, 10
+ end
+ add_message "grpc.testing.ServerArgs" do
+ oneof :argtype do
+ optional :setup, :message, 1, "grpc.testing.ServerConfig"
+ optional :mark, :message, 2, "grpc.testing.Mark"
+ end
+ end
+ add_message "grpc.testing.ServerStatus" do
+ optional :stats, :message, 1, "grpc.testing.ServerStats"
+ optional :port, :int32, 2
+ optional :cores, :int32, 3
+ end
+ add_message "grpc.testing.CoreRequest" do
+ end
+ add_message "grpc.testing.CoreResponse" do
+ optional :cores, :int32, 1
+ end
+ add_message "grpc.testing.Void" do
+ end
+ add_enum "grpc.testing.ClientType" do
+ value :SYNC_CLIENT, 0
+ value :ASYNC_CLIENT, 1
+ end
+ add_enum "grpc.testing.ServerType" do
+ value :SYNC_SERVER, 0
+ value :ASYNC_SERVER, 1
+ value :ASYNC_GENERIC_SERVER, 2
+ end
+ add_enum "grpc.testing.RpcType" do
+ value :UNARY, 0
+ value :STREAMING, 1
+ end
+end
+
+module Grpc
+ module Testing
+ PoissonParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.PoissonParams").msgclass
+ UniformParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.UniformParams").msgclass
+ DeterministicParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.DeterministicParams").msgclass
+ ParetoParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ParetoParams").msgclass
+ ClosedLoopParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ClosedLoopParams").msgclass
+ LoadParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.LoadParams").msgclass
+ SecurityParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.SecurityParams").msgclass
+ ClientConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ClientConfig").msgclass
+ ClientStatus = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ClientStatus").msgclass
+ Mark = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.Mark").msgclass
+ ClientArgs = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ClientArgs").msgclass
+ ServerConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ServerConfig").msgclass
+ ServerArgs = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ServerArgs").msgclass
+ ServerStatus = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ServerStatus").msgclass
+ CoreRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.CoreRequest").msgclass
+ CoreResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.CoreResponse").msgclass
+ Void = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.Void").msgclass
+ ClientType = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ClientType").enummodule
+ ServerType = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ServerType").enummodule
+ RpcType = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.RpcType").enummodule
+ end
+end
diff --git a/src/ruby/qps/src/proto/grpc/testing/messages.rb b/src/ruby/qps/src/proto/grpc/testing/messages.rb
new file mode 100644
index 0000000000..b9c32dbef5
--- /dev/null
+++ b/src/ruby/qps/src/proto/grpc/testing/messages.rb
@@ -0,0 +1,80 @@
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: src/proto/grpc/testing/messages.proto
+
+require 'google/protobuf'
+
+Google::Protobuf::DescriptorPool.generated_pool.build do
+ add_message "grpc.testing.Payload" do
+ optional :type, :enum, 1, "grpc.testing.PayloadType"
+ optional :body, :bytes, 2
+ end
+ add_message "grpc.testing.EchoStatus" do
+ optional :code, :int32, 1
+ optional :message, :string, 2
+ end
+ add_message "grpc.testing.SimpleRequest" do
+ optional :response_type, :enum, 1, "grpc.testing.PayloadType"
+ optional :response_size, :int32, 2
+ optional :payload, :message, 3, "grpc.testing.Payload"
+ optional :fill_username, :bool, 4
+ optional :fill_oauth_scope, :bool, 5
+ optional :response_compression, :enum, 6, "grpc.testing.CompressionType"
+ optional :response_status, :message, 7, "grpc.testing.EchoStatus"
+ end
+ add_message "grpc.testing.SimpleResponse" do
+ optional :payload, :message, 1, "grpc.testing.Payload"
+ optional :username, :string, 2
+ optional :oauth_scope, :string, 3
+ end
+ add_message "grpc.testing.StreamingInputCallRequest" do
+ optional :payload, :message, 1, "grpc.testing.Payload"
+ end
+ add_message "grpc.testing.StreamingInputCallResponse" do
+ optional :aggregated_payload_size, :int32, 1
+ end
+ add_message "grpc.testing.ResponseParameters" do
+ optional :size, :int32, 1
+ optional :interval_us, :int32, 2
+ end
+ add_message "grpc.testing.StreamingOutputCallRequest" do
+ optional :response_type, :enum, 1, "grpc.testing.PayloadType"
+ repeated :response_parameters, :message, 2, "grpc.testing.ResponseParameters"
+ optional :payload, :message, 3, "grpc.testing.Payload"
+ optional :response_compression, :enum, 6, "grpc.testing.CompressionType"
+ optional :response_status, :message, 7, "grpc.testing.EchoStatus"
+ end
+ add_message "grpc.testing.StreamingOutputCallResponse" do
+ optional :payload, :message, 1, "grpc.testing.Payload"
+ end
+ add_message "grpc.testing.ReconnectInfo" do
+ optional :passed, :bool, 1
+ repeated :backoff_ms, :int32, 2
+ end
+ add_enum "grpc.testing.PayloadType" do
+ value :COMPRESSABLE, 0
+ value :UNCOMPRESSABLE, 1
+ value :RANDOM, 2
+ end
+ add_enum "grpc.testing.CompressionType" do
+ value :NONE, 0
+ value :GZIP, 1
+ value :DEFLATE, 2
+ end
+end
+
+module Grpc
+ module Testing
+ Payload = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.Payload").msgclass
+ EchoStatus = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.EchoStatus").msgclass
+ SimpleRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.SimpleRequest").msgclass
+ SimpleResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.SimpleResponse").msgclass
+ StreamingInputCallRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.StreamingInputCallRequest").msgclass
+ StreamingInputCallResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.StreamingInputCallResponse").msgclass
+ ResponseParameters = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ResponseParameters").msgclass
+ StreamingOutputCallRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.StreamingOutputCallRequest").msgclass
+ StreamingOutputCallResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.StreamingOutputCallResponse").msgclass
+ ReconnectInfo = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ReconnectInfo").msgclass
+ PayloadType = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.PayloadType").enummodule
+ CompressionType = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.CompressionType").enummodule
+ end
+end
diff --git a/src/ruby/qps/src/proto/grpc/testing/payloads.rb b/src/ruby/qps/src/proto/grpc/testing/payloads.rb
new file mode 100644
index 0000000000..ae8855f685
--- /dev/null
+++ b/src/ruby/qps/src/proto/grpc/testing/payloads.rb
@@ -0,0 +1,33 @@
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: src/proto/grpc/testing/payloads.proto
+
+require 'google/protobuf'
+
+Google::Protobuf::DescriptorPool.generated_pool.build do
+ add_message "grpc.testing.ByteBufferParams" do
+ optional :req_size, :int32, 1
+ optional :resp_size, :int32, 2
+ end
+ add_message "grpc.testing.SimpleProtoParams" do
+ optional :req_size, :int32, 1
+ optional :resp_size, :int32, 2
+ end
+ add_message "grpc.testing.ComplexProtoParams" do
+ end
+ add_message "grpc.testing.PayloadConfig" do
+ oneof :payload do
+ optional :bytebuf_params, :message, 1, "grpc.testing.ByteBufferParams"
+ optional :simple_params, :message, 2, "grpc.testing.SimpleProtoParams"
+ optional :complex_params, :message, 3, "grpc.testing.ComplexProtoParams"
+ end
+ end
+end
+
+module Grpc
+ module Testing
+ ByteBufferParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ByteBufferParams").msgclass
+ SimpleProtoParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.SimpleProtoParams").msgclass
+ ComplexProtoParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ComplexProtoParams").msgclass
+ PayloadConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.PayloadConfig").msgclass
+ end
+end
diff --git a/src/ruby/qps/src/proto/grpc/testing/services.rb b/src/ruby/qps/src/proto/grpc/testing/services.rb
new file mode 100644
index 0000000000..b2675c2afe
--- /dev/null
+++ b/src/ruby/qps/src/proto/grpc/testing/services.rb
@@ -0,0 +1,14 @@
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: src/proto/grpc/testing/services.proto
+
+require 'google/protobuf'
+
+require 'src/proto/grpc/testing/messages'
+require 'src/proto/grpc/testing/control'
+Google::Protobuf::DescriptorPool.generated_pool.build do
+end
+
+module Grpc
+ module Testing
+ end
+end
diff --git a/src/ruby/qps/src/proto/grpc/testing/services_services.rb b/src/ruby/qps/src/proto/grpc/testing/services_services.rb
new file mode 100644
index 0000000000..3fd9f20f47
--- /dev/null
+++ b/src/ruby/qps/src/proto/grpc/testing/services_services.rb
@@ -0,0 +1,46 @@
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# Source: src/proto/grpc/testing/services.proto for package 'grpc.testing'
+
+require 'grpc'
+require 'src/proto/grpc/testing/services'
+
+module Grpc
+ module Testing
+ module BenchmarkService
+
+ # TODO: add proto service documentation here
+ class Service
+
+ include GRPC::GenericService
+
+ self.marshal_class_method = :encode
+ self.unmarshal_class_method = :decode
+ self.service_name = 'grpc.testing.BenchmarkService'
+
+ rpc :UnaryCall, SimpleRequest, SimpleResponse
+ rpc :StreamingCall, stream(SimpleRequest), stream(SimpleResponse)
+ end
+
+ Stub = Service.rpc_stub_class
+ end
+ module WorkerService
+
+ # TODO: add proto service documentation here
+ class Service
+
+ include GRPC::GenericService
+
+ self.marshal_class_method = :encode
+ self.unmarshal_class_method = :decode
+ self.service_name = 'grpc.testing.WorkerService'
+
+ rpc :RunServer, stream(ServerArgs), stream(ServerStatus)
+ rpc :RunClient, stream(ClientArgs), stream(ClientStatus)
+ rpc :CoreCount, CoreRequest, CoreResponse
+ rpc :QuitWorker, Void, Void
+ end
+
+ Stub = Service.rpc_stub_class
+ end
+ end
+end
diff --git a/src/ruby/qps/src/proto/grpc/testing/stats.rb b/src/ruby/qps/src/proto/grpc/testing/stats.rb
new file mode 100644
index 0000000000..41f75bedf0
--- /dev/null
+++ b/src/ruby/qps/src/proto/grpc/testing/stats.rb
@@ -0,0 +1,39 @@
+# Generated by the protocol buffer compiler. DO NOT EDIT!
+# source: src/proto/grpc/testing/stats.proto
+
+require 'google/protobuf'
+
+Google::Protobuf::DescriptorPool.generated_pool.build do
+ add_message "grpc.testing.ServerStats" do
+ optional :time_elapsed, :double, 1
+ optional :time_user, :double, 2
+ optional :time_system, :double, 3
+ end
+ add_message "grpc.testing.HistogramParams" do
+ optional :resolution, :double, 1
+ optional :max_possible, :double, 2
+ end
+ add_message "grpc.testing.HistogramData" do
+ repeated :bucket, :uint32, 1
+ optional :min_seen, :double, 2
+ optional :max_seen, :double, 3
+ optional :sum, :double, 4
+ optional :sum_of_squares, :double, 5
+ optional :count, :double, 6
+ end
+ add_message "grpc.testing.ClientStats" do
+ optional :latencies, :message, 1, "grpc.testing.HistogramData"
+ optional :time_elapsed, :double, 2
+ optional :time_user, :double, 3
+ optional :time_system, :double, 4
+ end
+end
+
+module Grpc
+ module Testing
+ ServerStats = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ServerStats").msgclass
+ HistogramParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.HistogramParams").msgclass
+ HistogramData = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.HistogramData").msgclass
+ ClientStats = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ClientStats").msgclass
+ end
+end
diff --git a/src/ruby/qps/worker.rb b/src/ruby/qps/worker.rb
new file mode 100755
index 0000000000..7c29204cc2
--- /dev/null
+++ b/src/ruby/qps/worker.rb
@@ -0,0 +1,128 @@
+#!/usr/bin/env ruby
+
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Worker and worker service implementation
+
+this_dir = File.expand_path(File.dirname(__FILE__))
+lib_dir = File.join(File.dirname(this_dir), 'lib')
+$LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
+$LOAD_PATH.unshift(this_dir) unless $LOAD_PATH.include?(this_dir)
+
+require 'grpc'
+require 'optparse'
+require 'histogram'
+require 'etc'
+require 'facter'
+require 'client'
+require 'qps-common'
+require 'server'
+require 'src/proto/grpc/testing/services_services'
+
+class WorkerServiceImpl < Grpc::Testing::WorkerService::Service
+ def cpu_cores
+ Facter.value('processors')['count']
+ end
+ def run_server(reqs)
+ q = EnumeratorQueue.new(self)
+ Thread.new {
+ bms = ''
+ gtss = Grpc::Testing::ServerStatus
+ reqs.each do |req|
+ case req.argtype.to_s
+ when 'setup'
+ bms = BenchmarkServer.new(req.setup, @server_port)
+ q.push(gtss.new(stats: bms.mark(false), port: bms.get_port))
+ when 'mark'
+ q.push(gtss.new(stats: bms.mark(req.mark.reset), cores: cpu_cores))
+ end
+ end
+ q.push(self)
+ bms.stop
+ }
+ q.each_item
+ end
+ def run_client(reqs)
+ q = EnumeratorQueue.new(self)
+ Thread.new {
+ client = ''
+ reqs.each do |req|
+ case req.argtype.to_s
+ when 'setup'
+ client = BenchmarkClient.new(req.setup)
+ q.push(Grpc::Testing::ClientStatus.new(stats: client.mark(false)))
+ when 'mark'
+ q.push(Grpc::Testing::ClientStatus.new(stats:
+ client.mark(req.mark.reset)))
+ end
+ end
+ q.push(self)
+ client.shutdown
+ }
+ q.each_item
+ end
+ def core_count(_args, _call)
+ Grpc::Testing::CoreResponse.new(cores: cpu_cores)
+ end
+ def quit_worker(_args, _call)
+ Thread.new {
+ sleep 3
+ @server.stop
+ }
+ Grpc::Testing::Void.new
+ end
+ def initialize(s, sp)
+ @server = s
+ @server_port = sp
+ end
+end
+
+def main
+ options = {
+ 'driver_port' => 0,
+ 'server_port' => 0
+ }
+ OptionParser.new do |opts|
+ opts.banner = 'Usage: [--driver_port <port>] [--server_port <port>]'
+ opts.on('--driver_port PORT', '<port>') do |v|
+ options['driver_port'] = v
+ end
+ opts.on('--server_port PORT', '<port>') do |v|
+ options['server_port'] = v
+ end
+ end.parse!
+ s = GRPC::RpcServer.new
+ s.add_http2_port("0.0.0.0:" + options['driver_port'].to_s,
+ :this_port_is_insecure)
+ s.handle(WorkerServiceImpl.new(s, options['server_port'].to_i))
+ s.run
+end
+
+main
diff --git a/src/ruby/spec/client_server_spec.rb b/src/ruby/spec/client_server_spec.rb
index 7ef534571f..aedeca272d 100644
--- a/src/ruby/spec/client_server_spec.rb
+++ b/src/ruby/spec/client_server_spec.rb
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/ruby/spec/generic/rpc_server_spec.rb b/src/ruby/spec/generic/rpc_server_spec.rb
index dfaec6d6ed..e16ba60387 100644
--- a/src/ruby/spec/generic/rpc_server_spec.rb
+++ b/src/ruby/spec/generic/rpc_server_spec.rb
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/ruby/spec/pb/health/checker_spec.rb b/src/ruby/spec/pb/health/checker_spec.rb
index 9bb79bb4ca..5523347f45 100644
--- a/src/ruby/spec/pb/health/checker_spec.rb
+++ b/src/ruby/spec/pb/health/checker_spec.rb
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/src/zlib/gen_build_yaml.py b/src/zlib/gen_build_yaml.py
index 4bd557367a..0692edb753 100755
--- a/src/zlib/gen_build_yaml.py
+++ b/src/zlib/gen_build_yaml.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python2.7
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/BUILD.template b/templates/BUILD.template
index 54dc697125..23a656c360 100644
--- a/templates/BUILD.template
+++ b/templates/BUILD.template
@@ -49,7 +49,9 @@
]
if target_dict.get('build', None) == 'protoc':
deps.append("//external:protobuf_compiler")
- if target_dict['name'] == 'grpc++_unsecure' or target_dict['name'] == 'grpc++':
+ if (target_dict['name'] == 'grpc++_unsecure' or
+ target_dict['name'] == 'grpc++' or
+ target_dict['name'] == 'grpc++_codegen_lib'):
deps.append("//external:protobuf_clib")
elif target_dict['name'] == 'grpc':
deps.append("//external:zlib")
@@ -60,7 +62,7 @@
deps.append(':%s' % (d))
return deps
%>
-
+
% for lib in libs:
% if lib.build in ("all", "protoc"):
${cc_library(lib)}
@@ -80,13 +82,19 @@
% endfor
<%def name="cc_library(lib)">
+ <%
+ lib_hdrs = lib.get("headers", [])
+ hdrs = [h for h in lib_hdrs if not h.startswith('third_party/nanopb')]
+ srcs = [s for s in lib.src if not s.startswith('third_party/nanopb')]
+ uses_nanopb = len(lib_hdrs) != len(hdrs) or len(srcs) != len(lib.src)
+ %>
cc_library(
name = "${lib.name}",
srcs = [
- % for hdr in lib.get("headers", []):
+ % for hdr in hdrs:
"${hdr}",
% endfor
- % for src in lib.src:
+ % for src in srcs:
"${src}",
% endfor
],
@@ -103,6 +111,9 @@
% for dep in get_deps(lib):
"${dep}",
% endfor
+ % if uses_nanopb:
+ "//external:nanopb",
+ % endif
],
% if lib.name in ("grpc", "grpc_unsecure"):
copts = [
@@ -113,10 +124,16 @@
</%def>
<%def name="objc_library(lib)">
+ <%
+ lib_hdrs = lib.get("headers", [])
+ hdrs = [h for h in lib_hdrs if not h.startswith('third_party/nanopb')]
+ srcs = [s for s in lib.src if not s.startswith('third_party/nanopb')]
+ uses_nanopb = len(lib_hdrs) != len(hdrs) or len(srcs) != len(lib.src)
+ %>
objc_library(
name = "${lib.name}_objc",
srcs = [
- % for src in lib.src:
+ % for src in srcs:
"${src}",
% endfor
],
@@ -124,7 +141,7 @@
% for hdr in lib.get("public_headers", []):
"${hdr}",
% endfor
- % for hdr in lib.get("headers", []):
+ % for hdr in hdrs:
"${hdr}",
% endfor
],
@@ -139,6 +156,9 @@
% if lib.get('secure', False):
"//external:libssl_objc",
% endif
+ % if uses_nanopb:
+ "//external:nanopb",
+ % endif
],
% if lib.get("baselib", false):
sdk_dylibs = ["libz"],
diff --git a/templates/Makefile.template b/templates/Makefile.template
index c54c146620..e84ceebf22 100644
--- a/templates/Makefile.template
+++ b/templates/Makefile.template
@@ -7,7 +7,7 @@
# This file can be regenerated from the template by running
# tools/buildgen/generate_projects.sh
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -1737,7 +1737,7 @@
$(LIBDIR)/$(CONFIG)/lib${dep}.a\
% endfor
- % if tgt.language == "c++" or tgt.boringssl:
+ % if tgt.language == "c++" or tgt.boringssl or tgt.build == 'fuzzer':
## C++ targets specificies.
% if tgt.build == 'protoc':
$(E) "[HOSTLD] Linking $@"
@@ -1791,6 +1791,9 @@
% elif tgt.language == 'c++' and tgt.build == 'benchmark':
$(GTEST_LIB)\
% endif
+ % if tgt.build == 'fuzzer':
+ -lFuzzer\
+ % endif
-o $(BINDIR)/$(CONFIG)/${tgt.name}
% if tgt.build == 'protoc' or tgt.language == 'c++':
diff --git a/templates/binding.gyp.template b/templates/binding.gyp.template
index 3ffbc06643..40d430f792 100644
--- a/templates/binding.gyp.template
+++ b/templates/binding.gyp.template
@@ -7,7 +7,7 @@
# This file can be regenerated from the template by running
# tools/buildgen/generate_projects.sh
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/package.json.template b/templates/package.json.template
index 99e8287b35..9085740f98 100644
--- a/templates/package.json.template
+++ b/templates/package.json.template
@@ -29,6 +29,7 @@
},
"bundledDependencies": ["node-pre-gyp"],
"dependencies": {
+ "arguejs": "^0.2.3",
"lodash": "^3.9.3",
"nan": "^2.0.0",
"protobufjs": "^4.0.0"
diff --git a/templates/src/core/lib/surface/version.c.template b/templates/src/core/lib/surface/version.c.template
index f2b3cfdc58..5f0273e49d 100644
--- a/templates/src/core/lib/surface/version.c.template
+++ b/templates/src/core/lib/surface/version.c.template
@@ -2,7 +2,7 @@
--- |
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/templates/src/core/plugin_registry.template b/templates/src/core/plugin_registry.template
new file mode 100644
index 0000000000..352682c3f0
--- /dev/null
+++ b/templates/src/core/plugin_registry.template
@@ -0,0 +1,52 @@
+%YAML 1.2
+---
+foreach: libs
+cond: selected.get('generate_plugin_registry', False)
+output_name: ${selected.name}_plugin_registry.c
+template: |
+ /*
+ *
+ * Copyright 2016, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+ #include <grpc/grpc.h>
+
+ %for plugin in selected.plugins:
+ extern void ${plugin}_init(void);
+ extern void ${plugin}_shutdown(void);
+ %endfor
+
+ void grpc_register_built_in_plugins(void) {
+ %for plugin in selected.plugins:
+ grpc_register_plugin(${plugin}_init,
+ ${plugin}_shutdown);
+ %endfor
+ }
diff --git a/templates/src/csharp/Grpc.Core/VersionInfo.cs.template b/templates/src/csharp/Grpc.Core/VersionInfo.cs.template
index 59864fa058..3ca111e72b 100644
--- a/templates/src/csharp/Grpc.Core/VersionInfo.cs.template
+++ b/templates/src/csharp/Grpc.Core/VersionInfo.cs.template
@@ -2,7 +2,7 @@
--- |
#region Copyright notice and license
- // Copyright 2015-2016, Google Inc.
+ // Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/templates/src/python/grpcio/grpc_core_dependencies.py.template b/templates/src/python/grpcio/grpc_core_dependencies.py.template
index 2fc7a03f18..01770a9e91 100644
--- a/templates/src/python/grpcio/grpc_core_dependencies.py.template
+++ b/templates/src/python/grpcio/grpc_core_dependencies.py.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/src/python/grpcio/grpc_version.py.template b/templates/src/python/grpcio/grpc_version.py.template
index aaacab1a50..39a6932ebb 100644
--- a/templates/src/python/grpcio/grpc_version.py.template
+++ b/templates/src/python/grpcio/grpc_version.py.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/src/ruby/lib/grpc/version.rb.template b/templates/src/ruby/lib/grpc/version.rb.template
index 6488614aed..9c7bc13f6c 100644
--- a/templates/src/ruby/lib/grpc/version.rb.template
+++ b/templates/src/ruby/lib/grpc/version.rb.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/test/core/end2end/end2end_defs.include b/templates/test/core/end2end/end2end_defs.include
index 461c8eb698..fb44271158 100644
--- a/templates/test/core/end2end/end2end_defs.include
+++ b/templates/test/core/end2end/end2end_defs.include
@@ -1,7 +1,7 @@
<%def name="end2end_selector(tests)">
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/templates/tools/dockerfile/clang_update.include b/templates/tools/dockerfile/clang_update.include
index 83ab3e0bbb..4f827c8dc2 100644
--- a/templates/tools/dockerfile/clang_update.include
+++ b/templates/tools/dockerfile/clang_update.include
@@ -1,5 +1,5 @@
#=================
-# Update clang to a version with improved tsan
+# Update clang to a version with improved tsan and fuzzing capabilities
RUN apt-get update && apt-get -y install python cmake && apt-get clean
@@ -29,4 +29,4 @@ RUN cd llvm-build && cmake ${'\\'}
-DCMAKE_INSTALL_PREFIX:STRING=/usr ${'\\'}
-DLLVM_TARGETS_TO_BUILD:STRING=X86 ${'\\'}
../llvm
-RUN make -C llvm-build && make -C llvm-build install && rm -rf llvm-build
+RUN make -C llvm-build -j 12 && make -C llvm-build install && rm -rf llvm-build
diff --git a/templates/tools/dockerfile/gcp_api_libraries.include b/templates/tools/dockerfile/gcp_api_libraries.include
new file mode 100644
index 0000000000..669b0f887c
--- /dev/null
+++ b/templates/tools/dockerfile/gcp_api_libraries.include
@@ -0,0 +1,4 @@
+# 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
+
diff --git a/templates/tools/dockerfile/grpc_interop_stress_cxx/Dockerfile.template b/templates/tools/dockerfile/grpc_interop_stress_cxx/Dockerfile.template
new file mode 100644
index 0000000000..5dd0da1a62
--- /dev/null
+++ b/templates/tools/dockerfile/grpc_interop_stress_cxx/Dockerfile.template
@@ -0,0 +1,40 @@
+%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="../clang_update.include"/>
+ # Define the default command.
+ CMD ["bash"]
diff --git a/templates/tools/dockerfile/test/csharp_jessie_x64/Dockerfile.template b/templates/tools/dockerfile/test/csharp_jessie_x64/Dockerfile.template
index 1c01deac3d..4cb8d3b088 100644
--- a/templates/tools/dockerfile/test/csharp_jessie_x64/Dockerfile.template
+++ b/templates/tools/dockerfile/test/csharp_jessie_x64/Dockerfile.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/tools/dockerfile/test/cxx_jessie_x64/Dockerfile.template b/templates/tools/dockerfile/test/cxx_jessie_x64/Dockerfile.template
index eb11ce352c..04abf9f741 100644
--- a/templates/tools/dockerfile/test/cxx_jessie_x64/Dockerfile.template
+++ b/templates/tools/dockerfile/test/cxx_jessie_x64/Dockerfile.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/tools/dockerfile/test/cxx_jessie_x86/Dockerfile.template b/templates/tools/dockerfile/test/cxx_jessie_x86/Dockerfile.template
index 4e95cdd65e..7f43e759fc 100644
--- a/templates/tools/dockerfile/test/cxx_jessie_x86/Dockerfile.template
+++ b/templates/tools/dockerfile/test/cxx_jessie_x86/Dockerfile.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/tools/dockerfile/test/cxx_ubuntu1404_x64/Dockerfile.template b/templates/tools/dockerfile/test/cxx_ubuntu1404_x64/Dockerfile.template
index d824220afe..fbed53930b 100644
--- a/templates/tools/dockerfile/test/cxx_ubuntu1404_x64/Dockerfile.template
+++ b/templates/tools/dockerfile/test/cxx_ubuntu1404_x64/Dockerfile.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/tools/dockerfile/test/cxx_ubuntu1604_x64/Dockerfile.template b/templates/tools/dockerfile/test/cxx_ubuntu1604_x64/Dockerfile.template
index 6b30274892..c11cefd283 100644
--- a/templates/tools/dockerfile/test/cxx_ubuntu1604_x64/Dockerfile.template
+++ b/templates/tools/dockerfile/test/cxx_ubuntu1604_x64/Dockerfile.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/tools/dockerfile/test/fuzzer/Dockerfile.template b/templates/tools/dockerfile/test/fuzzer/Dockerfile.template
new file mode 100644
index 0000000000..33df275908
--- /dev/null
+++ b/templates/tools/dockerfile/test/fuzzer/Dockerfile.template
@@ -0,0 +1,43 @@
+%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="../../clang_update.include"/>
+ <%include file="../../run_tests_addons.include"/>
+ RUN clang++ -c -g -O2 -std=c++11 llvm/lib/Fuzzer/*.cpp -IFuzzer
+ RUN ar ruv libFuzzer.a Fuzzer*.o
+ RUN mv libFuzzer.a /usr/lib
+ RUN rm -f Fuzzer*.o
+ # Define the default command.
+ CMD ["bash"]
diff --git a/templates/tools/dockerfile/test/node_jessie_x64/Dockerfile.template b/templates/tools/dockerfile/test/node_jessie_x64/Dockerfile.template
index 10551a574e..5a6233343e 100644
--- a/templates/tools/dockerfile/test/node_jessie_x64/Dockerfile.template
+++ b/templates/tools/dockerfile/test/node_jessie_x64/Dockerfile.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/tools/dockerfile/test/php_jessie_x64/Dockerfile.template b/templates/tools/dockerfile/test/php_jessie_x64/Dockerfile.template
index d7172398a9..fffac89efc 100644
--- a/templates/tools/dockerfile/test/php_jessie_x64/Dockerfile.template
+++ b/templates/tools/dockerfile/test/php_jessie_x64/Dockerfile.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/tools/dockerfile/test/python_jessie_x64/Dockerfile.template b/templates/tools/dockerfile/test/python_jessie_x64/Dockerfile.template
index 9e68b3ef91..46fb84ba83 100644
--- a/templates/tools/dockerfile/test/python_jessie_x64/Dockerfile.template
+++ b/templates/tools/dockerfile/test/python_jessie_x64/Dockerfile.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/tools/dockerfile/test/ruby_jessie_x64/Dockerfile.template b/templates/tools/dockerfile/test/ruby_jessie_x64/Dockerfile.template
index db777bebb4..70baddffbf 100644
--- a/templates/tools/dockerfile/test/ruby_jessie_x64/Dockerfile.template
+++ b/templates/tools/dockerfile/test/ruby_jessie_x64/Dockerfile.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/tools/dockerfile/test/sanity/Dockerfile.template b/templates/tools/dockerfile/test/sanity/Dockerfile.template
index 8265c09afc..1baa9c896b 100644
--- a/templates/tools/dockerfile/test/sanity/Dockerfile.template
+++ b/templates/tools/dockerfile/test/sanity/Dockerfile.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/tools/fuzzer/runners.template b/templates/tools/fuzzer/runners.template
new file mode 100644
index 0000000000..aa81a6545d
--- /dev/null
+++ b/templates/tools/fuzzer/runners.template
@@ -0,0 +1,44 @@
+%YAML 1.2
+---
+foreach: targets
+cond: selected.build == 'fuzzer'
+output_name: ${selected.name}.sh
+template: |
+ #!/bin/bash
+ # Copyright 2016, Google Inc.
+ # All rights reserved.
+ #
+ # Redistribution and use in source and binary forms, with or without
+ # modification, are permitted provided that the following conditions are
+ # met:
+ #
+ # * Redistributions of source code must retain the above copyright
+ # notice, this list of conditions and the following disclaimer.
+ # * Redistributions in binary form must reproduce the above
+ # copyright notice, this list of conditions and the following disclaimer
+ # in the documentation and/or other materials provided with the
+ # distribution.
+ # * Neither the name of Google Inc. nor the names of its
+ # contributors may be used to endorse or promote products derived from
+ # this software without specific prior written permission.
+ #
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ #
+
+ flags="-max_total_time=3600 -jobs=3 -workers=3"
+ if [ "$config" == "asan-trace-cmp" ]
+ then
+ flags="-use_traces=1 $flags"
+ fi
+
+ bins/$config/${selected.name} $flags fuzzer_output ${' '.join(selected.corpus_dirs)}
diff --git a/templates/tools/openssl/use_openssl.sh.template b/templates/tools/openssl/use_openssl.sh.template
index 5fb377154a..237a92b02f 100644
--- a/templates/tools/openssl/use_openssl.sh.template
+++ b/templates/tools/openssl/use_openssl.sh.template
@@ -2,7 +2,7 @@
--- |
#!/bin/bash
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/vsprojects/buildtests_c.sln.template b/templates/vsprojects/buildtests_c.sln.template
index a985fea64d..21312ab79a 100644
--- a/templates/vsprojects/buildtests_c.sln.template
+++ b/templates/vsprojects/buildtests_c.sln.template
@@ -2,6 +2,6 @@
--- |
<%namespace file="sln_defs.include" import="gen_solution"/>\
<%
- solution_projects = [p for p in vsprojects if p.build != 'protoc' and p.language == 'c' and not p.boringssl and not p.zlib]
+ solution_projects = [p for p in vsprojects if p.build not in ['protoc', 'fuzzer'] and p.language == 'c' and not p.boringssl and not p.zlib]
%>\
${gen_solution(solution_projects, use_dlls='yes')}
diff --git a/templates/vsprojects/grpc.sln.template b/templates/vsprojects/grpc.sln.template
index dbbb2c2ad1..ded98383da 100644
--- a/templates/vsprojects/grpc.sln.template
+++ b/templates/vsprojects/grpc.sln.template
@@ -2,6 +2,6 @@
--- |
<%namespace file="sln_defs.include" import="gen_solution"/>\
<%
- solution_projects = [p for p in vsprojects if p.build not in ['protoc', 'test'] and p.language in ['c', 'c++'] and p.vs_proj_dir == '.' and not (p.build == 'private' and p.language == 'c++')]
+ solution_projects = [p for p in vsprojects if p.build not in ['protoc', 'test', 'fuzzer'] and p.language in ['c', 'c++'] and p.vs_proj_dir == '.' and not (p.build == 'private' and p.language == 'c++')]
%>\
${gen_solution(solution_projects, use_dlls='yes')}
diff --git a/templates/vsprojects/vcxproj.template b/templates/vsprojects/vcxproj.template
index ecf113b4a8..0bb208f443 100644
--- a/templates/vsprojects/vcxproj.template
+++ b/templates/vsprojects/vcxproj.template
@@ -2,12 +2,14 @@
---
foreach: vsprojects
output_name: ${selected.vs_proj_dir}/${selected.name}/${selected.name}.vcxproj
+cond: selected.build not in ['fuzzer']
template: |
<%namespace file="vcxproj_defs.include" import="gen_project"/>\
${gen_project(selected.name, vsprojects)}
---
foreach: vsprojects
output_name: ${selected.vs_proj_dir}/${selected.name}/${selected.name}.vcxproj.filters
+cond: selected.build not in ['fuzzer']
template: |
<%namespace file="vcxproj.filters_defs.include" import="gen_filters"/>\
${gen_filters(selected.name, vsprojects)}
diff --git a/test/core/bad_client/bad_client.c b/test/core/bad_client/bad_client.c
index 2e9623e5ec..433ecf69df 100644
--- a/test/core/bad_client/bad_client.c
+++ b/test/core/bad_client/bad_client.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -33,17 +33,16 @@
#include "test/core/bad_client/bad_client.h"
+#include <grpc/support/alloc.h>
+#include <grpc/support/sync.h>
+#include <grpc/support/thd.h>
+#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/channel/http_server_filter.h"
#include "src/core/lib/iomgr/endpoint_pair.h"
#include "src/core/lib/support/string.h"
#include "src/core/lib/surface/completion_queue.h"
#include "src/core/lib/surface/server.h"
-#include "src/core/lib/transport/chttp2_transport.h"
-
-#include <grpc/support/alloc.h>
-#include <grpc/support/sync.h>
-#include <grpc/support/thd.h>
typedef struct {
grpc_server *server;
@@ -110,7 +109,7 @@ void grpc_run_bad_client_test(grpc_bad_client_server_side_validator validator,
grpc_server_register_completion_queue(a.server, a.cq, NULL);
a.registered_method =
grpc_server_register_method(a.server, GRPC_BAD_CLIENT_REGISTERED_METHOD,
- GRPC_BAD_CLIENT_REGISTERED_HOST);
+ GRPC_BAD_CLIENT_REGISTERED_HOST, 0);
grpc_server_start(a.server);
transport = grpc_create_chttp2_transport(&exec_ctx, NULL, sfd.server, 0);
server_setup_transport(&a, transport);
diff --git a/test/core/bad_client/gen_build_yaml.py b/test/core/bad_client/gen_build_yaml.py
index c538bffd71..ca26eda170 100755
--- a/test/core/bad_client/gen_build_yaml.py
+++ b/test/core/bad_client/gen_build_yaml.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python2.7
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/test/core/bad_client/tests/badreq.c b/test/core/bad_client/tests/badreq.c
index fd3d13f908..b17e3b35ee 100644
--- a/test/core/bad_client/tests/badreq.c
+++ b/test/core/bad_client/tests/badreq.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/bad_client/tests/connection_prefix.c b/test/core/bad_client/tests/connection_prefix.c
index 87826afa2c..9a30aad0e9 100644
--- a/test/core/bad_client/tests/connection_prefix.c
+++ b/test/core/bad_client/tests/connection_prefix.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/bad_client/tests/headers.c b/test/core/bad_client/tests/headers.c
index f66f14d8aa..4c1a76743e 100644
--- a/test/core/bad_client/tests/headers.c
+++ b/test/core/bad_client/tests/headers.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/bad_client/tests/initial_settings_frame.c b/test/core/bad_client/tests/initial_settings_frame.c
index b303f033f1..63a770df91 100644
--- a/test/core/bad_client/tests/initial_settings_frame.c
+++ b/test/core/bad_client/tests/initial_settings_frame.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/bad_client/tests/server_registered_method.c b/test/core/bad_client/tests/server_registered_method.c
index c35457c3f8..60d3b890b2 100644
--- a/test/core/bad_client/tests/server_registered_method.c
+++ b/test/core/bad_client/tests/server_registered_method.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/bad_client/tests/simple_request.c b/test/core/bad_client/tests/simple_request.c
index 6cb44ee273..ac0fdde876 100644
--- a/test/core/bad_client/tests/simple_request.c
+++ b/test/core/bad_client/tests/simple_request.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/bad_client/tests/unknown_frame.c b/test/core/bad_client/tests/unknown_frame.c
index 44d1e35299..f3870a1813 100644
--- a/test/core/bad_client/tests/unknown_frame.c
+++ b/test/core/bad_client/tests/unknown_frame.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/bad_client/tests/window_overflow.c b/test/core/bad_client/tests/window_overflow.c
index b6d0101c80..16f11e7dd0 100644
--- a/test/core/bad_client/tests/window_overflow.c
+++ b/test/core/bad_client/tests/window_overflow.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/bad_ssl/bad_ssl_test.c b/test/core/bad_ssl/bad_ssl_test.c
index 013b8eaf13..12c7710af6 100644
--- a/test/core/bad_ssl/bad_ssl_test.c
+++ b/test/core/bad_ssl/bad_ssl_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/bad_ssl/gen_build_yaml.py b/test/core/bad_ssl/gen_build_yaml.py
index e2a3febe5d..69f921989c 100755
--- a/test/core/bad_ssl/gen_build_yaml.py
+++ b/test/core/bad_ssl/gen_build_yaml.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python2.7
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/test/core/bad_ssl/server_common.c b/test/core/bad_ssl/server_common.c
index cde844a552..14b1892c2e 100644
--- a/test/core/bad_ssl/server_common.c
+++ b/test/core/bad_ssl/server_common.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/bad_ssl/server_common.h b/test/core/bad_ssl/server_common.h
index 2566c25905..8ec7755503 100644
--- a/test/core/bad_ssl/server_common.h
+++ b/test/core/bad_ssl/server_common.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/bad_ssl/servers/alpn.c b/test/core/bad_ssl/servers/alpn.c
index 98dcd1c0ca..8b69140fba 100644
--- a/test/core/bad_ssl/servers/alpn.c
+++ b/test/core/bad_ssl/servers/alpn.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -38,7 +38,7 @@
#include <grpc/support/log.h>
#include <grpc/support/useful.h>
-#include "src/core/lib/transport/chttp2/alpn.h"
+#include "src/core/ext/transport/chttp2/transport/alpn.h"
#include "test/core/bad_ssl/server_common.h"
#include "test/core/end2end/data/ssl_test_data.h"
diff --git a/test/core/bad_ssl/servers/cert.c b/test/core/bad_ssl/servers/cert.c
index 7307682821..bd11efd314 100644
--- a/test/core/bad_ssl/servers/cert.c
+++ b/test/core/bad_ssl/servers/cert.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/census/context_test.c b/test/core/census/context_test.c
index ad4c337465..e7a65380fb 100644
--- a/test/core/census/context_test.c
+++ b/test/core/census/context_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/census/mlog_test.c b/test/core/census/mlog_test.c
index a1fadc2290..36e8a492fd 100644
--- a/test/core/census/mlog_test.c
+++ b/test/core/census/mlog_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/census/mlog.h"
+#include "src/core/ext/census/mlog.h"
#include <grpc/support/cpu.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
diff --git a/test/core/channel/channel_args_test.c b/test/core/channel/channel_args_test.c
index 352dfa045e..c7fc25960c 100644
--- a/test/core/channel/channel_args_test.c
+++ b/test/core/channel/channel_args_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/channel/channel_stack_test.c b/test/core/channel/channel_stack_test.c
index 49e9c7e969..81e3927a00 100644
--- a/test/core/channel/channel_stack_test.c
+++ b/test/core/channel/channel_stack_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/client_config/lb_policies_test.c b/test/core/client_config/lb_policies_test.c
index bae3e7d18c..b819f2bc60 100644
--- a/test/core/client_config/lb_policies_test.c
+++ b/test/core/client_config/lb_policies_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -43,7 +43,6 @@
#include "src/core/lib/channel/channel_stack.h"
#include "src/core/lib/channel/client_channel.h"
-#include "src/core/lib/client_config/lb_policies/round_robin.h"
#include "src/core/lib/client_config/lb_policy_registry.h"
#include "src/core/lib/support/string.h"
#include "src/core/lib/surface/channel.h"
@@ -873,6 +872,7 @@ static void verify_rebirth_round_robin(const servers_fixture *f,
}
int main(int argc, char **argv) {
+ grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
test_spec *spec;
size_t i;
const size_t NUM_ITERS = 10;
@@ -880,11 +880,11 @@ int main(int argc, char **argv) {
grpc_test_init(argc, argv);
grpc_init();
- grpc_lb_round_robin_trace = 1;
+ grpc_tracer_set_enabled("round_robin", 1);
- GPR_ASSERT(grpc_lb_policy_create("this-lb-policy-does-not-exist", NULL) ==
- NULL);
- GPR_ASSERT(grpc_lb_policy_create(NULL, NULL) == NULL);
+ GPR_ASSERT(grpc_lb_policy_create(&exec_ctx, "this-lb-policy-does-not-exist",
+ NULL) == NULL);
+ GPR_ASSERT(grpc_lb_policy_create(&exec_ctx, NULL, NULL) == NULL);
spec = test_spec_create(NUM_ITERS, NUM_SERVERS);
/* everything is fine, all servers stay up the whole time and life's peachy */
@@ -936,6 +936,7 @@ int main(int argc, char **argv) {
test_pending_calls(4);
test_ping();
+ grpc_exec_ctx_finish(&exec_ctx);
grpc_shutdown();
return 0;
}
diff --git a/test/core/client_config/resolvers/dns_resolver_connectivity_test.c b/test/core/client_config/resolvers/dns_resolver_connectivity_test.c
index dc6a614d55..b7c3b78fe1 100644
--- a/test/core/client_config/resolvers/dns_resolver_connectivity_test.c
+++ b/test/core/client_config/resolvers/dns_resolver_connectivity_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,13 +31,12 @@
*
*/
-#include "src/core/lib/client_config/resolvers/dns_resolver.h"
-
#include <string.h>
#include <grpc/grpc.h>
#include <grpc/support/alloc.h>
+#include "src/core/lib/client_config/resolver_registry.h"
#include "src/core/lib/iomgr/resolve_address.h"
#include "src/core/lib/iomgr/timer.h"
#include "test/core/util/test_config.h"
@@ -79,7 +78,7 @@ static grpc_resolved_addresses *my_resolve_address(const char *name,
}
static grpc_resolver *create_resolver(const char *name) {
- grpc_resolver_factory *factory = grpc_dns_resolver_factory_create();
+ grpc_resolver_factory *factory = grpc_resolver_factory_lookup("dns");
grpc_uri *uri = grpc_uri_parse(name, 0);
GPR_ASSERT(uri);
grpc_resolver_args args;
diff --git a/test/core/client_config/resolvers/dns_resolver_test.c b/test/core/client_config/resolvers/dns_resolver_test.c
index 6c7a6b27e4..0e8a3b13dd 100644
--- a/test/core/client_config/resolvers/dns_resolver_test.c
+++ b/test/core/client_config/resolvers/dns_resolver_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,13 +31,11 @@
*
*/
-#include "src/core/lib/client_config/resolvers/dns_resolver.h"
-
#include <string.h>
#include <grpc/support/log.h>
-#include "src/core/lib/client_config/resolver.h"
+#include "src/core/lib/client_config/resolver_registry.h"
#include "test/core/util/test_config.h"
static void subchannel_factory_ref(grpc_subchannel_factory *scv) {}
@@ -92,8 +90,9 @@ static void test_fails(grpc_resolver_factory *factory, const char *string) {
int main(int argc, char **argv) {
grpc_resolver_factory *dns;
grpc_test_init(argc, argv);
+ grpc_init();
- dns = grpc_dns_resolver_factory_create();
+ dns = grpc_resolver_factory_lookup("dns");
test_succeeds(dns, "dns:10.2.1.1");
test_succeeds(dns, "dns:10.2.1.1:1234");
@@ -101,6 +100,7 @@ int main(int argc, char **argv) {
test_fails(dns, "ipv4://8.8.8.8/8.8.8.8:8888");
grpc_resolver_factory_unref(dns);
+ grpc_shutdown();
return 0;
}
diff --git a/test/core/client_config/resolvers/sockaddr_resolver_test.c b/test/core/client_config/resolvers/sockaddr_resolver_test.c
index fafddfd166..b2c4c63b79 100644
--- a/test/core/client_config/resolvers/sockaddr_resolver_test.c
+++ b/test/core/client_config/resolvers/sockaddr_resolver_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,13 +31,11 @@
*
*/
-#include "src/core/lib/client_config/resolvers/sockaddr_resolver.h"
-
#include <string.h>
#include <grpc/support/log.h>
-#include "src/core/lib/client_config/resolver.h"
+#include "src/core/lib/client_config/resolver_registry.h"
#include "test/core/util/test_config.h"
static void subchannel_factory_ref(grpc_subchannel_factory *scv) {}
@@ -92,12 +90,14 @@ static void test_fails(grpc_resolver_factory *factory, const char *string) {
int main(int argc, char **argv) {
grpc_resolver_factory *ipv4, *ipv6;
grpc_test_init(argc, argv);
+ grpc_init();
- ipv4 = grpc_ipv4_resolver_factory_create();
- ipv6 = grpc_ipv6_resolver_factory_create();
+ ipv4 = grpc_resolver_factory_lookup("ipv4");
+ ipv6 = grpc_resolver_factory_lookup("ipv6");
test_fails(ipv4, "ipv4:10.2.1.1");
test_succeeds(ipv4, "ipv4:10.2.1.1:1234");
+ test_succeeds(ipv4, "ipv4:10.2.1.1:1234,127.0.0.1:4321");
test_fails(ipv4, "ipv4:10.2.1.1:123456");
test_fails(ipv4, "ipv4:www.google.com");
test_fails(ipv4, "ipv4:[");
@@ -111,6 +111,7 @@ int main(int argc, char **argv) {
grpc_resolver_factory_unref(ipv4);
grpc_resolver_factory_unref(ipv6);
+ grpc_shutdown();
return 0;
}
diff --git a/test/core/client_config/set_initial_connect_string_test.c b/test/core/client_config/set_initial_connect_string_test.c
index 7fd92a079e..3ca037355c 100644
--- a/test/core/client_config/set_initial_connect_string_test.c
+++ b/test/core/client_config/set_initial_connect_string_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/client_config/uri_corpus/042dc4512fa3d391c5170cf3aa61e6a638f84342 b/test/core/client_config/uri_corpus/042dc4512fa3d391c5170cf3aa61e6a638f84342
new file mode 100644
index 0000000000..597a6db294
--- /dev/null
+++ b/test/core/client_config/uri_corpus/042dc4512fa3d391c5170cf3aa61e6a638f84342
@@ -0,0 +1 @@
+i \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/0e9bbe975f2027e8c39c89f85f667530368e7d11 b/test/core/client_config/uri_corpus/0e9bbe975f2027e8c39c89f85f667530368e7d11
new file mode 100644
index 0000000000..d56b8fc6c8
--- /dev/null
+++ b/test/core/client_config/uri_corpus/0e9bbe975f2027e8c39c89f85f667530368e7d11
@@ -0,0 +1 @@
+:iiiÐ?+n!ij \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/14b57bcbf1e17b1db1de491ef2ba3768f704b7dc b/test/core/client_config/uri_corpus/14b57bcbf1e17b1db1de491ef2ba3768f704b7dc
new file mode 100644
index 0000000000..3936e8964c
--- /dev/null
+++ b/test/core/client_config/uri_corpus/14b57bcbf1e17b1db1de491ef2ba3768f704b7dc
@@ -0,0 +1 @@
+:‡i?=niI_!';ñ \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/1794310671a060eead6e5ee66ac978a18ec7e84f b/test/core/client_config/uri_corpus/1794310671a060eead6e5ee66ac978a18ec7e84f
new file mode 100644
index 0000000000..a94c4cf58d
--- /dev/null
+++ b/test/core/client_config/uri_corpus/1794310671a060eead6e5ee66ac978a18ec7e84f
@@ -0,0 +1,2 @@
+~ipip~6::1
+v:Ð:1
diff --git a/test/core/client_config/uri_corpus/1d30b2a79afbaf2828ff42b9a9647e942ba1ab80 b/test/core/client_config/uri_corpus/1d30b2a79afbaf2828ff42b9a9647e942ba1ab80
new file mode 100644
index 0000000000..875ac2a4f9
--- /dev/null
+++ b/test/core/client_config/uri_corpus/1d30b2a79afbaf2828ff42b9a9647e942ba1ab80
@@ -0,0 +1 @@
+:il0P/8?n!$i: \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/1fcf5d9c333b70596cf5ba04d1f7affdf445b971 b/test/core/client_config/uri_corpus/1fcf5d9c333b70596cf5ba04d1f7affdf445b971
new file mode 100644
index 0000000000..59469af528
--- /dev/null
+++ b/test/core/client_config/uri_corpus/1fcf5d9c333b70596cf5ba04d1f7affdf445b971
@@ -0,0 +1,3 @@
+iiP*v:::pip~6:::0
+v:::11
+
diff --git a/test/core/client_config/uri_corpus/23162c8a8936e20b195404c21337ee734d02a6bc b/test/core/client_config/uri_corpus/23162c8a8936e20b195404c21337ee734d02a6bc
new file mode 100644
index 0000000000..2f902351bd
--- /dev/null
+++ b/test/core/client_config/uri_corpus/23162c8a8936e20b195404c21337ee734d02a6bc
@@ -0,0 +1 @@
+:ii/i?n!%i* \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/23f3198b815ca60bdadcaae682b9f965dda387f1 b/test/core/client_config/uri_corpus/23f3198b815ca60bdadcaae682b9f965dda387f1
new file mode 100644
index 0000000000..4bdc3f60c0
--- /dev/null
+++ b/test/core/client_config/uri_corpus/23f3198b815ca60bdadcaae682b9f965dda387f1
@@ -0,0 +1 @@
+uni::.i?n(!ipR6/ \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/2ef3893b43f1f60b77b59ce06a6bce9815d78eaf b/test/core/client_config/uri_corpus/2ef3893b43f1f60b77b59ce06a6bce9815d78eaf
new file mode 100644
index 0000000000..fb7665d0cc
--- /dev/null
+++ b/test/core/client_config/uri_corpus/2ef3893b43f1f60b77b59ce06a6bce9815d78eaf
@@ -0,0 +1,2 @@
+:/i?n!ipv6:./::abc.*
+
diff --git a/test/core/client_config/uri_corpus/356c3c129e203b5c74550b4209764d74b9caefce b/test/core/client_config/uri_corpus/356c3c129e203b5c74550b4209764d74b9caefce
new file mode 100644
index 0000000000..6c1e22fa32
--- /dev/null
+++ b/test/core/client_config/uri_corpus/356c3c129e203b5c74550b4209764d74b9caefce
@@ -0,0 +1 @@
+unix://ii:#v6i?n! \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/3b58860f3451d3e7aad99690a8d39782ca5116fc b/test/core/client_config/uri_corpus/3b58860f3451d3e7aad99690a8d39782ca5116fc
new file mode 100644
index 0000000000..725b2086c5
--- /dev/null
+++ b/test/core/client_config/uri_corpus/3b58860f3451d3e7aad99690a8d39782ca5116fc
@@ -0,0 +1,4 @@
+i:i?nip~&2./:::abipip~6c.*
+
+::1
+v:Ð:1
diff --git a/test/core/client_config/uri_corpus/47b5228404451fc9d4071fa69192514bb4ce33c1 b/test/core/client_config/uri_corpus/47b5228404451fc9d4071fa69192514bb4ce33c1
new file mode 100644
index 0000000000..23d52e19a8
--- /dev/null
+++ b/test/core/client_config/uri_corpus/47b5228404451fc9d4071fa69192514bb4ce33c1
@@ -0,0 +1 @@
+:iiP/i?n!'i* \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/636c5606fc23713a1bae88c8899c0541cfad4fd8 b/test/core/client_config/uri_corpus/636c5606fc23713a1bae88c8899c0541cfad4fd8
new file mode 100644
index 0000000000..1dc4931ac6
--- /dev/null
+++ b/test/core/client_config/uri_corpus/636c5606fc23713a1bae88c8899c0541cfad4fd8
@@ -0,0 +1,4 @@
+:i?n!ip~f2:./::abipip~6c.*
+
+::1
+v:Ð:1
diff --git a/test/core/client_config/uri_corpus/63fe493b270b17426d77a27cbf3abac5b2c2794a b/test/core/client_config/uri_corpus/63fe493b270b17426d77a27cbf3abac5b2c2794a
new file mode 100644
index 0000000000..7b9532914e
--- /dev/null
+++ b/test/core/client_config/uri_corpus/63fe493b270b17426d77a27cbf3abac5b2c2794a
@@ -0,0 +1 @@
+:‡i?=niI!';ñ \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/655300a902b62662296a8e46bfb04fbcb07182cb b/test/core/client_config/uri_corpus/655300a902b62662296a8e46bfb04fbcb07182cb
new file mode 100644
index 0000000000..4eaca39265
--- /dev/null
+++ b/test/core/client_config/uri_corpus/655300a902b62662296a8e46bfb04fbcb07182cb
@@ -0,0 +1 @@
+unix://ii:pv6i?n! \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/6b70979a70a038ff6607d6cf85485ee95baf58e6 b/test/core/client_config/uri_corpus/6b70979a70a038ff6607d6cf85485ee95baf58e6
new file mode 100644
index 0000000000..57cbd72dbc
--- /dev/null
+++ b/test/core/client_config/uri_corpus/6b70979a70a038ff6607d6cf85485ee95baf58e6
@@ -0,0 +1 @@
+uni::/i?n!ipR6/ \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/7314ab3545a7535a26e0e8aad67caea5534d68b1 b/test/core/client_config/uri_corpus/7314ab3545a7535a26e0e8aad67caea5534d68b1
new file mode 100644
index 0000000000..e13cf5a8e6
--- /dev/null
+++ b/test/core/client_config/uri_corpus/7314ab3545a7535a26e0e8aad67caea5534d68b1
@@ -0,0 +1,2 @@
+ipip~6:::1
+v:::1
diff --git a/test/core/client_config/uri_corpus/884dcaee2908ffe5f12b65b8eba81016099c4266 b/test/core/client_config/uri_corpus/884dcaee2908ffe5f12b65b8eba81016099c4266
new file mode 100644
index 0000000000..58ecc7e2af
--- /dev/null
+++ b/test/core/client_config/uri_corpus/884dcaee2908ffe5f12b65b8eba81016099c4266
@@ -0,0 +1 @@
+ip*v:::1
diff --git a/test/core/client_config/uri_corpus/96c8d266b7dc037288ef305c996608270f72e7fb b/test/core/client_config/uri_corpus/96c8d266b7dc037288ef305c996608270f72e7fb
new file mode 100644
index 0000000000..efb392b7d9
--- /dev/null
+++ b/test/core/client_config/uri_corpus/96c8d266b7dc037288ef305c996608270f72e7fb
@@ -0,0 +1,2 @@
+:/i/n!ipv6:::/a.b.c1
+
diff --git a/test/core/client_config/uri_corpus/975536c71ade4800415a7e9c2f1b45c35a6d5ea8 b/test/core/client_config/uri_corpus/975536c71ade4800415a7e9c2f1b45c35a6d5ea8
new file mode 100644
index 0000000000..7155222547
--- /dev/null
+++ b/test/core/client_config/uri_corpus/975536c71ade4800415a7e9c2f1b45c35a6d5ea8
@@ -0,0 +1 @@
+ilP.i;?n!#i!; \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/99750aa67d30beaea8af565c829d4999aa8cb91b b/test/core/client_config/uri_corpus/99750aa67d30beaea8af565c829d4999aa8cb91b
new file mode 100644
index 0000000000..4061e02189
--- /dev/null
+++ b/test/core/client_config/uri_corpus/99750aa67d30beaea8af565c829d4999aa8cb91b
@@ -0,0 +1 @@
+unix::/i?n!ipv6/ \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/a1f0f9b75bb354eb063d7cba4fcfa2d0b88d63de b/test/core/client_config/uri_corpus/a1f0f9b75bb354eb063d7cba4fcfa2d0b88d63de
new file mode 100644
index 0000000000..736e63e7e7
--- /dev/null
+++ b/test/core/client_config/uri_corpus/a1f0f9b75bb354eb063d7cba4fcfa2d0b88d63de
@@ -0,0 +1 @@
+:¢ilP/i;n!#i: \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/a296eb3d1d436ed7df7195b10aa3c4de3896f98d b/test/core/client_config/uri_corpus/a296eb3d1d436ed7df7195b10aa3c4de3896f98d
new file mode 100644
index 0000000000..dff2f8920d
--- /dev/null
+++ b/test/core/client_config/uri_corpus/a296eb3d1d436ed7df7195b10aa3c4de3896f98d
@@ -0,0 +1 @@
+u+ni::/i?n!ipR3/ \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/a8b8e66050b424f1b8c07d46f868199fb7f60e38 b/test/core/client_config/uri_corpus/a8b8e66050b424f1b8c07d46f868199fb7f60e38
new file mode 100644
index 0000000000..13a115481d
--- /dev/null
+++ b/test/core/client_config/uri_corpus/a8b8e66050b424f1b8c07d46f868199fb7f60e38
@@ -0,0 +1 @@
+uni::pi:miP/?ni.!(Ri?)8/n!'i* \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/af55baf8c8855e563befdf1eefbcbd46c5ddb8d2 b/test/core/client_config/uri_corpus/af55baf8c8855e563befdf1eefbcbd46c5ddb8d2
new file mode 100644
index 0000000000..fe019fc409
--- /dev/null
+++ b/test/core/client_config/uri_corpus/af55baf8c8855e563befdf1eefbcbd46c5ddb8d2
@@ -0,0 +1 @@
+uni::.i!in:/i/n!ipv6ž:?(pR;::/a.2b \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/b3c0bf66c2bf5d24ef1daf4cc5a9d6d5bd0e8bfd b/test/core/client_config/uri_corpus/b3c0bf66c2bf5d24ef1daf4cc5a9d6d5bd0e8bfd
new file mode 100644
index 0000000000..6e12167b52
--- /dev/null
+++ b/test/core/client_config/uri_corpus/b3c0bf66c2bf5d24ef1daf4cc5a9d6d5bd0e8bfd
@@ -0,0 +1 @@
+:ii/iilP.i;?n?n!#i!;!%* \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/ceb4e2264ba7a8d5be47d276b37ec09489e00245 b/test/core/client_config/uri_corpus/ceb4e2264ba7a8d5be47d276b37ec09489e00245
new file mode 100644
index 0000000000..b5655220d7
--- /dev/null
+++ b/test/core/client_config/uri_corpus/ceb4e2264ba7a8d5be47d276b37ec09489e00245
@@ -0,0 +1 @@
+:‡i?P-niI!'iñ \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/cf4395958f5bfb46fd6f535a39657d016c75114c b/test/core/client_config/uri_corpus/cf4395958f5bfb46fd6f535a39657d016c75114c
new file mode 100644
index 0000000000..a7656724f5
--- /dev/null
+++ b/test/core/client_config/uri_corpus/cf4395958f5bfb46fd6f535a39657d016c75114c
@@ -0,0 +1 @@
+unix://ipv6::: \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/d46668372b7e20154a89409a7430a28e642afdca b/test/core/client_config/uri_corpus/d46668372b7e20154a89409a7430a28e642afdca
new file mode 100644
index 0000000000..d658fb8ee0
--- /dev/null
+++ b/test/core/client_config/uri_corpus/d46668372b7e20154a89409a7430a28e642afdca
@@ -0,0 +1 @@
+:ilP/i?n!#i: \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/d6fe7412a0a1d1c733160246f3fa425f4f97682a b/test/core/client_config/uri_corpus/d6fe7412a0a1d1c733160246f3fa425f4f97682a
new file mode 100644
index 0000000000..6d37b5fd45
--- /dev/null
+++ b/test/core/client_config/uri_corpus/d6fe7412a0a1d1c733160246f3fa425f4f97682a
@@ -0,0 +1 @@
+:ilP/i?n,!#i: \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/dns.txt b/test/core/client_config/uri_corpus/dns.txt
new file mode 100644
index 0000000000..577e1054e4
--- /dev/null
+++ b/test/core/client_config/uri_corpus/dns.txt
@@ -0,0 +1 @@
+dns:10.2.1.1
diff --git a/test/core/client_config/uri_corpus/ea02d9fea9bad5b89cf353a0169238f584177e71 b/test/core/client_config/uri_corpus/ea02d9fea9bad5b89cf353a0169238f584177e71
new file mode 100644
index 0000000000..52f5a2382a
--- /dev/null
+++ b/test/core/client_config/uri_corpus/ea02d9fea9bad5b89cf353a0169238f584177e71
@@ -0,0 +1,4 @@
+i:i?n!ip~f2.:/::abipip~6c.*
+
+::1
+v:Ð:1
diff --git a/test/core/client_config/uri_corpus/ec4731dddf94ed3ea92ae4d5a71f145ab6e3f6ee b/test/core/client_config/uri_corpus/ec4731dddf94ed3ea92ae4d5a71f145ab6e3f6ee
new file mode 100644
index 0000000000..c3c93fed6a
--- /dev/null
+++ b/test/core/client_config/uri_corpus/ec4731dddf94ed3ea92ae4d5a71f145ab6e3f6ee
@@ -0,0 +1 @@
+ii-i?n!%* \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/ed2f78646f19fc47dd85ff0877c232b71913ece2 b/test/core/client_config/uri_corpus/ed2f78646f19fc47dd85ff0877c232b71913ece2
new file mode 100644
index 0000000000..45065e2f00
--- /dev/null
+++ b/test/core/client_config/uri_corpus/ed2f78646f19fc47dd85ff0877c232b71913ece2
@@ -0,0 +1 @@
+:ii/i?n!%* \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/f6889f4a6350fea1596a3adea5cdac02bd5d1ff3 b/test/core/client_config/uri_corpus/f6889f4a6350fea1596a3adea5cdac02bd5d1ff3
new file mode 100644
index 0000000000..02151c8b6a
--- /dev/null
+++ b/test/core/client_config/uri_corpus/f6889f4a6350fea1596a3adea5cdac02bd5d1ff3
@@ -0,0 +1,2 @@
+:ipip~6:::1
+vii/:::iunix:?n/1/ipv6!% \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/f6f3bd030f0d321efe7c51ca3f057de23509af67 b/test/core/client_config/uri_corpus/f6f3bd030f0d321efe7c51ca3f057de23509af67
new file mode 100644
index 0000000000..8034e133d7
--- /dev/null
+++ b/test/core/client_config/uri_corpus/f6f3bd030f0d321efe7c51ca3f057de23509af67
@@ -0,0 +1 @@
+:iiP/i?n!i* \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/f97598cff03306af3c70400608fec47268b5075d b/test/core/client_config/uri_corpus/f97598cff03306af3c70400608fec47268b5075d
new file mode 100644
index 0000000000..240946dbaa
--- /dev/null
+++ b/test/core/client_config/uri_corpus/f97598cff03306af3c70400608fec47268b5075d
@@ -0,0 +1,2 @@
+unix://ipv6:::/a.b.c1
+
diff --git a/test/core/client_config/uri_corpus/f9e1ec1fc642b575bc9955618b7065747f56b101 b/test/core/client_config/uri_corpus/f9e1ec1fc642b575bc9955618b7065747f56b101
new file mode 100644
index 0000000000..d089a59346
--- /dev/null
+++ b/test/core/client_config/uri_corpus/f9e1ec1fc642b575bc9955618b7065747f56b101
@@ -0,0 +1 @@
+:ilP.i;?n!#i; \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/fe0630a3aeed2ec6f474f362e4c839478290d5c4 b/test/core/client_config/uri_corpus/fe0630a3aeed2ec6f474f362e4c839478290d5c4
new file mode 100644
index 0000000000..66eefbcc14
--- /dev/null
+++ b/test/core/client_config/uri_corpus/fe0630a3aeed2ec6f474f362e4c839478290d5c4
@@ -0,0 +1 @@
+:miP/i?)n!'i* \ No newline at end of file
diff --git a/test/core/client_config/uri_corpus/ipv4.txt b/test/core/client_config/uri_corpus/ipv4.txt
new file mode 100644
index 0000000000..fe29486b6e
--- /dev/null
+++ b/test/core/client_config/uri_corpus/ipv4.txt
@@ -0,0 +1 @@
+ipv4:10.2.1.1
diff --git a/test/core/client_config/uri_corpus/ipv6.txt b/test/core/client_config/uri_corpus/ipv6.txt
new file mode 100644
index 0000000000..7b6932be00
--- /dev/null
+++ b/test/core/client_config/uri_corpus/ipv6.txt
@@ -0,0 +1 @@
+ipv6:::1
diff --git a/test/core/client_config/uri_corpus/unix.txt b/test/core/client_config/uri_corpus/unix.txt
new file mode 100644
index 0000000000..7a0997ec9a
--- /dev/null
+++ b/test/core/client_config/uri_corpus/unix.txt
@@ -0,0 +1 @@
+unix:///a.b.c
diff --git a/src/core/lib/client_config/resolvers/dns_resolver.h b/test/core/client_config/uri_fuzzer_test.c
index eb46e41c77..d50a05db20 100644
--- a/src/core/lib/client_config/resolvers/dns_resolver.h
+++ b/test/core/client_config/uri_fuzzer_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,12 +31,22 @@
*
*/
-#ifndef GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVERS_DNS_RESOLVER_H
-#define GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVERS_DNS_RESOLVER_H
+#include <stdint.h>
+#include <string.h>
-#include "src/core/lib/client_config/resolver_factory.h"
+#include <grpc/support/alloc.h>
-/** Create a dns resolver factory */
-grpc_resolver_factory *grpc_dns_resolver_factory_create(void);
+#include "src/core/lib/client_config/uri_parser.h"
-#endif /* GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVERS_DNS_RESOLVER_H */
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ char *s = gpr_malloc(size + 1);
+ memcpy(s, data, size);
+ s[size] = 0;
+
+ grpc_uri *x;
+ if ((x = grpc_uri_parse(s, 1))) {
+ grpc_uri_destroy(x);
+ }
+ gpr_free(s);
+ return 0;
+}
diff --git a/test/core/client_config/uri_parser_test.c b/test/core/client_config/uri_parser_test.c
index c7f7726380..f87aa81ee6 100644
--- a/test/core/client_config/uri_parser_test.c
+++ b/test/core/client_config/uri_parser_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -56,6 +56,73 @@ static void test_fails(const char *uri_text) {
GPR_ASSERT(NULL == grpc_uri_parse(uri_text, 0));
}
+static void test_query_parts() {
+ {
+ const char *uri_text = "http://foo/path?a&b=B&c=&#frag";
+ grpc_uri *uri = grpc_uri_parse(uri_text, 0);
+ GPR_ASSERT(uri);
+
+ GPR_ASSERT(0 == strcmp("http", uri->scheme));
+ GPR_ASSERT(0 == strcmp("foo", uri->authority));
+ GPR_ASSERT(0 == strcmp("/path", uri->path));
+ GPR_ASSERT(0 == strcmp("a&b=B&c=&", uri->query));
+ GPR_ASSERT(4 == uri->num_query_parts);
+
+ GPR_ASSERT(0 == strcmp("a", uri->query_parts[0]));
+ GPR_ASSERT(NULL == uri->query_parts_values[0]);
+
+ GPR_ASSERT(0 == strcmp("b", uri->query_parts[1]));
+ GPR_ASSERT(0 == strcmp("B", uri->query_parts_values[1]));
+
+ GPR_ASSERT(0 == strcmp("c", uri->query_parts[2]));
+ GPR_ASSERT(0 == strcmp("", uri->query_parts_values[2]));
+
+ GPR_ASSERT(0 == strcmp("", uri->query_parts[3]));
+ GPR_ASSERT(NULL == uri->query_parts_values[3]);
+
+ GPR_ASSERT(NULL == grpc_uri_get_query_arg(uri, "a"));
+ GPR_ASSERT(0 == strcmp("B", grpc_uri_get_query_arg(uri, "b")));
+ GPR_ASSERT(0 == strcmp("", grpc_uri_get_query_arg(uri, "c")));
+ GPR_ASSERT(NULL == grpc_uri_get_query_arg(uri, ""));
+
+ GPR_ASSERT(0 == strcmp("frag", uri->fragment));
+ grpc_uri_destroy(uri);
+ }
+ {
+ /* test the current behavior of multiple query part values */
+ const char *uri_text = "http://auth/path?foo=bar=baz&foobar==";
+ grpc_uri *uri = grpc_uri_parse(uri_text, 0);
+ GPR_ASSERT(uri);
+
+ GPR_ASSERT(0 == strcmp("http", uri->scheme));
+ GPR_ASSERT(0 == strcmp("auth", uri->authority));
+ GPR_ASSERT(0 == strcmp("/path", uri->path));
+ GPR_ASSERT(0 == strcmp("foo=bar=baz&foobar==", uri->query));
+ GPR_ASSERT(2 == uri->num_query_parts);
+
+ GPR_ASSERT(0 == strcmp("bar", grpc_uri_get_query_arg(uri, "foo")));
+ GPR_ASSERT(0 == strcmp("", grpc_uri_get_query_arg(uri, "foobar")));
+
+ grpc_uri_destroy(uri);
+ }
+ {
+ /* empty query */
+ const char *uri_text = "http://foo/path";
+ grpc_uri *uri = grpc_uri_parse(uri_text, 0);
+ GPR_ASSERT(uri);
+
+ GPR_ASSERT(0 == strcmp("http", uri->scheme));
+ GPR_ASSERT(0 == strcmp("foo", uri->authority));
+ GPR_ASSERT(0 == strcmp("/path", uri->path));
+ GPR_ASSERT(0 == strcmp("", uri->query));
+ GPR_ASSERT(0 == uri->num_query_parts);
+ GPR_ASSERT(NULL == uri->query_parts);
+ GPR_ASSERT(NULL == uri->query_parts_values);
+ GPR_ASSERT(0 == strcmp("", uri->fragment));
+ grpc_uri_destroy(uri);
+ }
+}
+
int main(int argc, char **argv) {
grpc_test_init(argc, argv);
test_succeeds("http://www.google.com", "http", "www.google.com", "", "", "");
@@ -82,5 +149,6 @@ int main(int argc, char **argv) {
test_fails("http://foo?x[bar]");
test_fails("http://foo?bar#lol#");
+ test_query_parts();
return 0;
}
diff --git a/test/core/compression/algorithm_test.c b/test/core/compression/algorithm_test.c
index 937eb66903..bdee748ae6 100644
--- a/test/core/compression/algorithm_test.c
+++ b/test/core/compression/algorithm_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/compression/compression_test.c b/test/core/compression/compression_test.c
index 5d8231fd7f..4c43746e33 100644
--- a/test/core/compression/compression_test.c
+++ b/test/core/compression/compression_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/compression/message_compress_test.c b/test/core/compression/message_compress_test.c
index 378badca28..1a93903346 100644
--- a/test/core/compression/message_compress_test.c
+++ b/test/core/compression/message_compress_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/cq_verifier.c b/test/core/end2end/cq_verifier.c
index baf8e8ed18..77afe588d7 100644
--- a/test/core/end2end/cq_verifier.c
+++ b/test/core/end2end/cq_verifier.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/dualstack_socket_test.c b/test/core/end2end/dualstack_socket_test.c
index 7501df98dc..8568bb1a86 100644
--- a/test/core/end2end/dualstack_socket_test.c
+++ b/test/core/end2end/dualstack_socket_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/end2end_nosec_tests.c b/test/core/end2end/end2end_nosec_tests.c
index b8934512c6..deb73395e0 100644
--- a/test/core/end2end/end2end_nosec_tests.c
+++ b/test/core/end2end/end2end_nosec_tests.c
@@ -1,7 +1,7 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -56,6 +56,7 @@ extern void empty_batch(grpc_end2end_test_config config);
extern void graceful_server_shutdown(grpc_end2end_test_config config);
extern void high_initial_seqno(grpc_end2end_test_config config);
extern void hpack_size(grpc_end2end_test_config config);
+extern void idempotent_request(grpc_end2end_test_config config);
extern void invoke_large_request(grpc_end2end_test_config config);
extern void large_metadata(grpc_end2end_test_config config);
extern void max_concurrent_streams(grpc_end2end_test_config config);
@@ -97,6 +98,7 @@ void grpc_end2end_tests(int argc, char **argv,
graceful_server_shutdown(config);
high_initial_seqno(config);
hpack_size(config);
+ idempotent_request(config);
invoke_large_request(config);
large_metadata(config);
max_concurrent_streams(config);
@@ -184,6 +186,10 @@ void grpc_end2end_tests(int argc, char **argv,
hpack_size(config);
continue;
}
+ if (0 == strcmp("idempotent_request", argv[i])) {
+ idempotent_request(config);
+ continue;
+ }
if (0 == strcmp("invoke_large_request", argv[i])) {
invoke_large_request(config);
continue;
diff --git a/test/core/end2end/end2end_tests.c b/test/core/end2end/end2end_tests.c
index f0969794c6..dd7f6a2a31 100644
--- a/test/core/end2end/end2end_tests.c
+++ b/test/core/end2end/end2end_tests.c
@@ -1,7 +1,7 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -57,6 +57,7 @@ extern void empty_batch(grpc_end2end_test_config config);
extern void graceful_server_shutdown(grpc_end2end_test_config config);
extern void high_initial_seqno(grpc_end2end_test_config config);
extern void hpack_size(grpc_end2end_test_config config);
+extern void idempotent_request(grpc_end2end_test_config config);
extern void invoke_large_request(grpc_end2end_test_config config);
extern void large_metadata(grpc_end2end_test_config config);
extern void max_concurrent_streams(grpc_end2end_test_config config);
@@ -99,6 +100,7 @@ void grpc_end2end_tests(int argc, char **argv,
graceful_server_shutdown(config);
high_initial_seqno(config);
hpack_size(config);
+ idempotent_request(config);
invoke_large_request(config);
large_metadata(config);
max_concurrent_streams(config);
@@ -190,6 +192,10 @@ void grpc_end2end_tests(int argc, char **argv,
hpack_size(config);
continue;
}
+ if (0 == strcmp("idempotent_request", argv[i])) {
+ idempotent_request(config);
+ continue;
+ }
if (0 == strcmp("invoke_large_request", argv[i])) {
invoke_large_request(config);
continue;
diff --git a/test/core/end2end/fixtures/h2_census.c b/test/core/end2end/fixtures/h2_census.c
index 8d504e4598..9d41ff2dbb 100644
--- a/test/core/end2end/fixtures/h2_census.c
+++ b/test/core/end2end/fixtures/h2_census.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -41,13 +41,13 @@
#include <grpc/support/sync.h>
#include <grpc/support/thd.h>
#include <grpc/support/useful.h>
+#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/client_channel.h"
#include "src/core/lib/channel/connected_channel.h"
#include "src/core/lib/channel/http_server_filter.h"
#include "src/core/lib/surface/channel.h"
#include "src/core/lib/surface/server.h"
-#include "src/core/lib/transport/chttp2_transport.h"
#include "test/core/util/port.h"
#include "test/core/util/test_config.h"
diff --git a/test/core/end2end/fixtures/h2_compress.c b/test/core/end2end/fixtures/h2_compress.c
index a45c27af7a..55355b58dd 100644
--- a/test/core/end2end/fixtures/h2_compress.c
+++ b/test/core/end2end/fixtures/h2_compress.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -41,13 +41,13 @@
#include <grpc/support/sync.h>
#include <grpc/support/thd.h>
#include <grpc/support/useful.h>
+#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
#include "src/core/lib/channel/channel_args.h"
#include "src/core/lib/channel/client_channel.h"
#include "src/core/lib/channel/connected_channel.h"
#include "src/core/lib/channel/http_server_filter.h"
#include "src/core/lib/surface/channel.h"
#include "src/core/lib/surface/server.h"
-#include "src/core/lib/transport/chttp2_transport.h"
#include "test/core/util/port.h"
#include "test/core/util/test_config.h"
diff --git a/test/core/end2end/fixtures/h2_fakesec.c b/test/core/end2end/fixtures/h2_fakesec.c
index 7386691bdc..a312585946 100644
--- a/test/core/end2end/fixtures/h2_fakesec.c
+++ b/test/core/end2end/fixtures/h2_fakesec.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/fixtures/h2_full+pipe.c b/test/core/end2end/fixtures/h2_full+pipe.c
index def5efaa42..a3e2196bf6 100644
--- a/test/core/end2end/fixtures/h2_full+pipe.c
+++ b/test/core/end2end/fixtures/h2_full+pipe.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -41,13 +41,13 @@
#include <grpc/support/sync.h>
#include <grpc/support/thd.h>
#include <grpc/support/useful.h>
+#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
#include "src/core/lib/channel/client_channel.h"
#include "src/core/lib/channel/connected_channel.h"
#include "src/core/lib/channel/http_server_filter.h"
#include "src/core/lib/iomgr/wakeup_fd_posix.h"
#include "src/core/lib/surface/channel.h"
#include "src/core/lib/surface/server.h"
-#include "src/core/lib/transport/chttp2_transport.h"
#include "test/core/util/port.h"
#include "test/core/util/test_config.h"
diff --git a/test/core/end2end/fixtures/h2_full+poll+pipe.c b/test/core/end2end/fixtures/h2_full+poll+pipe.c
deleted file mode 100644
index 0584b81448..0000000000
--- a/test/core/end2end/fixtures/h2_full+poll+pipe.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- *
- * Copyright 2015-2016, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#include "test/core/end2end/end2end_tests.h"
-
-#include <string.h>
-
-#include <grpc/support/alloc.h>
-#include <grpc/support/host_port.h>
-#include <grpc/support/log.h>
-#include <grpc/support/sync.h>
-#include <grpc/support/thd.h>
-#include <grpc/support/useful.h>
-
-#include "src/core/lib/channel/client_channel.h"
-#include "src/core/lib/channel/connected_channel.h"
-#include "src/core/lib/channel/http_server_filter.h"
-#include "src/core/lib/iomgr/pollset_posix.h"
-#include "src/core/lib/iomgr/wakeup_fd_posix.h"
-#include "src/core/lib/surface/channel.h"
-#include "src/core/lib/surface/server.h"
-#include "src/core/lib/transport/chttp2_transport.h"
-#include "test/core/util/port.h"
-#include "test/core/util/test_config.h"
-
-typedef struct fullstack_fixture_data {
- char *localaddr;
-} fullstack_fixture_data;
-
-static grpc_end2end_test_fixture chttp2_create_fixture_fullstack(
- grpc_channel_args *client_args, grpc_channel_args *server_args) {
- grpc_end2end_test_fixture f;
- int port = grpc_pick_unused_port_or_die();
- fullstack_fixture_data *ffd = gpr_malloc(sizeof(fullstack_fixture_data));
- memset(&f, 0, sizeof(f));
-
- gpr_join_host_port(&ffd->localaddr, "localhost", port);
-
- f.fixture_data = ffd;
- f.cq = grpc_completion_queue_create(NULL);
-
- return f;
-}
-
-void chttp2_init_client_fullstack(grpc_end2end_test_fixture *f,
- grpc_channel_args *client_args) {
- fullstack_fixture_data *ffd = f->fixture_data;
- f->client = grpc_insecure_channel_create(ffd->localaddr, client_args, NULL);
-}
-
-void chttp2_init_server_fullstack(grpc_end2end_test_fixture *f,
- grpc_channel_args *server_args) {
- fullstack_fixture_data *ffd = f->fixture_data;
- if (f->server) {
- grpc_server_destroy(f->server);
- }
- f->server = grpc_server_create(server_args, NULL);
- grpc_server_register_completion_queue(f->server, f->cq, NULL);
- GPR_ASSERT(grpc_server_add_insecure_http2_port(f->server, ffd->localaddr));
- grpc_server_start(f->server);
-}
-
-void chttp2_tear_down_fullstack(grpc_end2end_test_fixture *f) {
- fullstack_fixture_data *ffd = f->fixture_data;
- gpr_free(ffd->localaddr);
- gpr_free(ffd);
-}
-
-/* All test configurations */
-static grpc_end2end_test_config configs[] = {
- {"chttp2/fullstack", FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION,
- chttp2_create_fixture_fullstack, chttp2_init_client_fullstack,
- chttp2_init_server_fullstack, chttp2_tear_down_fullstack},
-};
-
-int main(int argc, char **argv) {
- size_t i;
-
- grpc_allow_specialized_wakeup_fd = 0;
- grpc_platform_become_multipoller = grpc_poll_become_multipoller;
-
- grpc_test_init(argc, argv);
- grpc_init();
-
- for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {
- grpc_end2end_tests(argc, argv, configs[i]);
- }
-
- grpc_shutdown();
-
- return 0;
-}
diff --git a/test/core/end2end/fixtures/h2_full+poll.c b/test/core/end2end/fixtures/h2_full+poll.c
deleted file mode 100644
index 8576e3ee90..0000000000
--- a/test/core/end2end/fixtures/h2_full+poll.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- *
- * Copyright 2015-2016, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#include "test/core/end2end/end2end_tests.h"
-
-#include <string.h>
-
-#include <grpc/support/alloc.h>
-#include <grpc/support/host_port.h>
-#include <grpc/support/log.h>
-#include <grpc/support/sync.h>
-#include <grpc/support/thd.h>
-#include <grpc/support/useful.h>
-
-#include "src/core/lib/channel/client_channel.h"
-#include "src/core/lib/channel/connected_channel.h"
-#include "src/core/lib/channel/http_server_filter.h"
-#include "src/core/lib/iomgr/pollset_posix.h"
-#include "src/core/lib/surface/channel.h"
-#include "src/core/lib/surface/server.h"
-#include "src/core/lib/transport/chttp2_transport.h"
-#include "test/core/util/port.h"
-#include "test/core/util/test_config.h"
-
-typedef struct fullstack_fixture_data {
- char *localaddr;
-} fullstack_fixture_data;
-
-static grpc_end2end_test_fixture chttp2_create_fixture_fullstack(
- grpc_channel_args *client_args, grpc_channel_args *server_args) {
- grpc_end2end_test_fixture f;
- int port = grpc_pick_unused_port_or_die();
- fullstack_fixture_data *ffd = gpr_malloc(sizeof(fullstack_fixture_data));
- memset(&f, 0, sizeof(f));
-
- gpr_join_host_port(&ffd->localaddr, "localhost", port);
-
- f.fixture_data = ffd;
- f.cq = grpc_completion_queue_create(NULL);
-
- return f;
-}
-
-void chttp2_init_client_fullstack(grpc_end2end_test_fixture *f,
- grpc_channel_args *client_args) {
- fullstack_fixture_data *ffd = f->fixture_data;
- f->client = grpc_insecure_channel_create(ffd->localaddr, client_args, NULL);
-}
-
-void chttp2_init_server_fullstack(grpc_end2end_test_fixture *f,
- grpc_channel_args *server_args) {
- fullstack_fixture_data *ffd = f->fixture_data;
- if (f->server) {
- grpc_server_destroy(f->server);
- }
- f->server = grpc_server_create(server_args, NULL);
- grpc_server_register_completion_queue(f->server, f->cq, NULL);
- GPR_ASSERT(grpc_server_add_insecure_http2_port(f->server, ffd->localaddr));
- grpc_server_start(f->server);
-}
-
-void chttp2_tear_down_fullstack(grpc_end2end_test_fixture *f) {
- fullstack_fixture_data *ffd = f->fixture_data;
- gpr_free(ffd->localaddr);
- gpr_free(ffd);
-}
-
-/* All test configurations */
-static grpc_end2end_test_config configs[] = {
- {"chttp2/fullstack", FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION,
- chttp2_create_fixture_fullstack, chttp2_init_client_fullstack,
- chttp2_init_server_fullstack, chttp2_tear_down_fullstack},
-};
-
-int main(int argc, char **argv) {
- size_t i;
-
- grpc_platform_become_multipoller = grpc_poll_become_multipoller;
-
- grpc_test_init(argc, argv);
- grpc_init();
-
- for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {
- grpc_end2end_tests(argc, argv, configs[i]);
- }
-
- grpc_shutdown();
-
- return 0;
-}
diff --git a/test/core/end2end/fixtures/h2_full+trace.c b/test/core/end2end/fixtures/h2_full+trace.c
index 0d531565f2..986a06bd01 100644
--- a/test/core/end2end/fixtures/h2_full+trace.c
+++ b/test/core/end2end/fixtures/h2_full+trace.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -41,13 +41,13 @@
#include <grpc/support/sync.h>
#include <grpc/support/thd.h>
#include <grpc/support/useful.h>
+#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
#include "src/core/lib/channel/client_channel.h"
#include "src/core/lib/channel/connected_channel.h"
#include "src/core/lib/channel/http_server_filter.h"
#include "src/core/lib/support/env.h"
#include "src/core/lib/surface/channel.h"
#include "src/core/lib/surface/server.h"
-#include "src/core/lib/transport/chttp2_transport.h"
#include "test/core/util/port.h"
#include "test/core/util/test_config.h"
diff --git a/test/core/end2end/fixtures/h2_full.c b/test/core/end2end/fixtures/h2_full.c
index 4eae620935..d0797e0a64 100644
--- a/test/core/end2end/fixtures/h2_full.c
+++ b/test/core/end2end/fixtures/h2_full.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -41,12 +41,12 @@
#include <grpc/support/sync.h>
#include <grpc/support/thd.h>
#include <grpc/support/useful.h>
+#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
#include "src/core/lib/channel/client_channel.h"
#include "src/core/lib/channel/connected_channel.h"
#include "src/core/lib/channel/http_server_filter.h"
#include "src/core/lib/surface/channel.h"
#include "src/core/lib/surface/server.h"
-#include "src/core/lib/transport/chttp2_transport.h"
#include "test/core/util/port.h"
#include "test/core/util/test_config.h"
diff --git a/test/core/end2end/fixtures/h2_oauth2.c b/test/core/end2end/fixtures/h2_oauth2.c
index ee188cc174..9e7d8d3125 100644
--- a/test/core/end2end/fixtures/h2_oauth2.c
+++ b/test/core/end2end/fixtures/h2_oauth2.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/fixtures/h2_proxy.c b/test/core/end2end/fixtures/h2_proxy.c
index 39ecd89293..4650da98e3 100644
--- a/test/core/end2end/fixtures/h2_proxy.c
+++ b/test/core/end2end/fixtures/h2_proxy.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -41,12 +41,12 @@
#include <grpc/support/sync.h>
#include <grpc/support/thd.h>
#include <grpc/support/useful.h>
+#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
#include "src/core/lib/channel/client_channel.h"
#include "src/core/lib/channel/connected_channel.h"
#include "src/core/lib/channel/http_server_filter.h"
#include "src/core/lib/surface/channel.h"
#include "src/core/lib/surface/server.h"
-#include "src/core/lib/transport/chttp2_transport.h"
#include "test/core/end2end/fixtures/proxy.h"
#include "test/core/util/port.h"
#include "test/core/util/test_config.h"
diff --git a/test/core/end2end/fixtures/h2_sockpair+trace.c b/test/core/end2end/fixtures/h2_sockpair+trace.c
index 374390fb29..9fdceabbaf 100644
--- a/test/core/end2end/fixtures/h2_sockpair+trace.c
+++ b/test/core/end2end/fixtures/h2_sockpair+trace.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -40,6 +40,7 @@
#include <grpc/support/sync.h>
#include <grpc/support/thd.h>
#include <grpc/support/useful.h>
+#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
#include "src/core/lib/channel/client_channel.h"
#include "src/core/lib/channel/compress_filter.h"
#include "src/core/lib/channel/connected_channel.h"
@@ -50,7 +51,6 @@
#include "src/core/lib/support/env.h"
#include "src/core/lib/surface/channel.h"
#include "src/core/lib/surface/server.h"
-#include "src/core/lib/transport/chttp2_transport.h"
#include "test/core/util/port.h"
#include "test/core/util/test_config.h"
diff --git a/test/core/end2end/fixtures/h2_sockpair.c b/test/core/end2end/fixtures/h2_sockpair.c
index c11a528116..84777158b6 100644
--- a/test/core/end2end/fixtures/h2_sockpair.c
+++ b/test/core/end2end/fixtures/h2_sockpair.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -40,6 +40,7 @@
#include <grpc/support/sync.h>
#include <grpc/support/thd.h>
#include <grpc/support/useful.h>
+#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
#include "src/core/lib/channel/client_channel.h"
#include "src/core/lib/channel/compress_filter.h"
#include "src/core/lib/channel/connected_channel.h"
@@ -49,7 +50,6 @@
#include "src/core/lib/iomgr/iomgr.h"
#include "src/core/lib/surface/channel.h"
#include "src/core/lib/surface/server.h"
-#include "src/core/lib/transport/chttp2_transport.h"
#include "test/core/util/port.h"
#include "test/core/util/test_config.h"
diff --git a/test/core/end2end/fixtures/h2_sockpair_1byte.c b/test/core/end2end/fixtures/h2_sockpair_1byte.c
index 6a504c6a9c..6b6ca19885 100644
--- a/test/core/end2end/fixtures/h2_sockpair_1byte.c
+++ b/test/core/end2end/fixtures/h2_sockpair_1byte.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -40,6 +40,7 @@
#include <grpc/support/sync.h>
#include <grpc/support/thd.h>
#include <grpc/support/useful.h>
+#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
#include "src/core/lib/channel/client_channel.h"
#include "src/core/lib/channel/compress_filter.h"
#include "src/core/lib/channel/connected_channel.h"
@@ -49,7 +50,6 @@
#include "src/core/lib/iomgr/iomgr.h"
#include "src/core/lib/surface/channel.h"
#include "src/core/lib/surface/server.h"
-#include "src/core/lib/transport/chttp2_transport.h"
#include "test/core/util/port.h"
#include "test/core/util/test_config.h"
diff --git a/test/core/end2end/fixtures/h2_ssl+poll.c b/test/core/end2end/fixtures/h2_ssl+poll.c
deleted file mode 100644
index e93b4361ac..0000000000
--- a/test/core/end2end/fixtures/h2_ssl+poll.c
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- *
- * Copyright 2015-2016, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#include "test/core/end2end/end2end_tests.h"
-
-#include <stdio.h>
-#include <string.h>
-
-#include <grpc/support/alloc.h>
-#include <grpc/support/host_port.h>
-#include <grpc/support/log.h>
-
-#include "src/core/lib/channel/channel_args.h"
-#include "src/core/lib/iomgr/pollset_posix.h"
-#include "src/core/lib/security/credentials.h"
-#include "src/core/lib/support/env.h"
-#include "src/core/lib/support/string.h"
-#include "src/core/lib/support/tmpfile.h"
-#include "test/core/end2end/data/ssl_test_data.h"
-#include "test/core/util/port.h"
-#include "test/core/util/test_config.h"
-
-typedef struct fullstack_secure_fixture_data {
- char *localaddr;
-} fullstack_secure_fixture_data;
-
-static grpc_end2end_test_fixture chttp2_create_fixture_secure_fullstack(
- grpc_channel_args *client_args, grpc_channel_args *server_args) {
- grpc_end2end_test_fixture f;
- int port = grpc_pick_unused_port_or_die();
- fullstack_secure_fixture_data *ffd =
- gpr_malloc(sizeof(fullstack_secure_fixture_data));
- memset(&f, 0, sizeof(f));
-
- gpr_join_host_port(&ffd->localaddr, "localhost", port);
-
- f.fixture_data = ffd;
- f.cq = grpc_completion_queue_create(NULL);
-
- return f;
-}
-
-static void process_auth_failure(void *state, grpc_auth_context *ctx,
- const grpc_metadata *md, size_t md_count,
- grpc_process_auth_metadata_done_cb cb,
- void *user_data) {
- GPR_ASSERT(state == NULL);
- cb(user_data, NULL, 0, NULL, 0, GRPC_STATUS_UNAUTHENTICATED, NULL);
-}
-
-static void chttp2_init_client_secure_fullstack(
- grpc_end2end_test_fixture *f, grpc_channel_args *client_args,
- grpc_channel_credentials *creds) {
- fullstack_secure_fixture_data *ffd = f->fixture_data;
- f->client =
- grpc_secure_channel_create(creds, ffd->localaddr, client_args, NULL);
- GPR_ASSERT(f->client != NULL);
- grpc_channel_credentials_release(creds);
-}
-
-static void chttp2_init_server_secure_fullstack(
- grpc_end2end_test_fixture *f, grpc_channel_args *server_args,
- grpc_server_credentials *server_creds) {
- fullstack_secure_fixture_data *ffd = f->fixture_data;
- if (f->server) {
- grpc_server_destroy(f->server);
- }
- f->server = grpc_server_create(server_args, NULL);
- grpc_server_register_completion_queue(f->server, f->cq, NULL);
- GPR_ASSERT(grpc_server_add_secure_http2_port(f->server, ffd->localaddr,
- server_creds));
- grpc_server_credentials_release(server_creds);
- grpc_server_start(f->server);
-}
-
-void chttp2_tear_down_secure_fullstack(grpc_end2end_test_fixture *f) {
- fullstack_secure_fixture_data *ffd = f->fixture_data;
- gpr_free(ffd->localaddr);
- gpr_free(ffd);
-}
-
-static void chttp2_init_client_simple_ssl_secure_fullstack(
- grpc_end2end_test_fixture *f, grpc_channel_args *client_args) {
- grpc_channel_credentials *ssl_creds =
- grpc_ssl_credentials_create(NULL, NULL, NULL);
- grpc_arg ssl_name_override = {GRPC_ARG_STRING,
- GRPC_SSL_TARGET_NAME_OVERRIDE_ARG,
- {"foo.test.google.fr"}};
- grpc_channel_args *new_client_args =
- grpc_channel_args_copy_and_add(client_args, &ssl_name_override, 1);
- chttp2_init_client_secure_fullstack(f, new_client_args, ssl_creds);
- grpc_channel_args_destroy(new_client_args);
-}
-
-static int fail_server_auth_check(grpc_channel_args *server_args) {
- size_t i;
- if (server_args == NULL) return 0;
- for (i = 0; i < server_args->num_args; i++) {
- if (strcmp(server_args->args[i].key, FAIL_AUTH_CHECK_SERVER_ARG_NAME) ==
- 0) {
- return 1;
- }
- }
- return 0;
-}
-
-static void chttp2_init_server_simple_ssl_secure_fullstack(
- grpc_end2end_test_fixture *f, grpc_channel_args *server_args) {
- grpc_ssl_pem_key_cert_pair pem_cert_key_pair = {test_server1_key,
- test_server1_cert};
- grpc_server_credentials *ssl_creds =
- grpc_ssl_server_credentials_create(NULL, &pem_cert_key_pair, 1, 0, NULL);
- if (fail_server_auth_check(server_args)) {
- grpc_auth_metadata_processor processor = {process_auth_failure, NULL, NULL};
- grpc_server_credentials_set_auth_metadata_processor(ssl_creds, processor);
- }
- chttp2_init_server_secure_fullstack(f, server_args, ssl_creds);
-}
-
-/* All test configurations */
-
-static grpc_end2end_test_config configs[] = {
- {"chttp2/simple_ssl_fullstack",
- FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION |
- FEATURE_MASK_SUPPORTS_PER_CALL_CREDENTIALS,
- chttp2_create_fixture_secure_fullstack,
- chttp2_init_client_simple_ssl_secure_fullstack,
- chttp2_init_server_simple_ssl_secure_fullstack,
- chttp2_tear_down_secure_fullstack},
-};
-
-int main(int argc, char **argv) {
- size_t i;
- FILE *roots_file;
- size_t roots_size = strlen(test_root_cert);
- char *roots_filename;
-
- grpc_platform_become_multipoller = grpc_poll_become_multipoller;
-
- grpc_test_init(argc, argv);
-
- /* Set the SSL roots env var. */
- roots_file = gpr_tmpfile("chttp2_simple_ssl_with_poll_fullstack_test",
- &roots_filename);
- GPR_ASSERT(roots_filename != NULL);
- GPR_ASSERT(roots_file != NULL);
- GPR_ASSERT(fwrite(test_root_cert, 1, roots_size, roots_file) == roots_size);
- fclose(roots_file);
- gpr_setenv(GRPC_DEFAULT_SSL_ROOTS_FILE_PATH_ENV_VAR, roots_filename);
-
- grpc_init();
-
- for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {
- grpc_end2end_tests(argc, argv, configs[i]);
- }
-
- grpc_shutdown();
-
- /* Cleanup. */
- remove(roots_filename);
- gpr_free(roots_filename);
-
- return 0;
-}
diff --git a/test/core/end2end/fixtures/h2_ssl.c b/test/core/end2end/fixtures/h2_ssl.c
index fecd03f6a7..e5a255f7c3 100644
--- a/test/core/end2end/fixtures/h2_ssl.c
+++ b/test/core/end2end/fixtures/h2_ssl.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/fixtures/h2_ssl_proxy.c b/test/core/end2end/fixtures/h2_ssl_proxy.c
index bfbc735742..9edc8a0c23 100644
--- a/test/core/end2end/fixtures/h2_ssl_proxy.c
+++ b/test/core/end2end/fixtures/h2_ssl_proxy.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/fixtures/h2_uds+poll.c b/test/core/end2end/fixtures/h2_uds+poll.c
deleted file mode 100644
index e431ef37ed..0000000000
--- a/test/core/end2end/fixtures/h2_uds+poll.c
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- *
- * Copyright 2015-2016, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#include "test/core/end2end/end2end_tests.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <grpc/support/alloc.h>
-#include <grpc/support/host_port.h>
-#include <grpc/support/log.h>
-#include <grpc/support/string_util.h>
-#include <grpc/support/sync.h>
-#include <grpc/support/thd.h>
-#include <grpc/support/useful.h>
-
-#include "src/core/lib/channel/client_channel.h"
-#include "src/core/lib/channel/connected_channel.h"
-#include "src/core/lib/channel/http_server_filter.h"
-#include "src/core/lib/iomgr/pollset_posix.h"
-#include "src/core/lib/support/string.h"
-#include "src/core/lib/surface/channel.h"
-#include "src/core/lib/surface/server.h"
-#include "src/core/lib/transport/chttp2_transport.h"
-#include "test/core/util/port.h"
-#include "test/core/util/test_config.h"
-
-typedef struct fullstack_fixture_data {
- char *localaddr;
-} fullstack_fixture_data;
-
-static int unique = 1;
-
-static grpc_end2end_test_fixture chttp2_create_fixture_fullstack(
- grpc_channel_args *client_args, grpc_channel_args *server_args) {
- grpc_end2end_test_fixture f;
- fullstack_fixture_data *ffd = gpr_malloc(sizeof(fullstack_fixture_data));
- memset(&f, 0, sizeof(f));
-
- gpr_asprintf(&ffd->localaddr, "unix:/tmp/grpc_fullstack_test.%d.%d", getpid(),
- unique++);
-
- f.fixture_data = ffd;
- f.cq = grpc_completion_queue_create(NULL);
-
- return f;
-}
-
-void chttp2_init_client_fullstack(grpc_end2end_test_fixture *f,
- grpc_channel_args *client_args) {
- fullstack_fixture_data *ffd = f->fixture_data;
- f->client = grpc_insecure_channel_create(ffd->localaddr, client_args, NULL);
-}
-
-void chttp2_init_server_fullstack(grpc_end2end_test_fixture *f,
- grpc_channel_args *server_args) {
- fullstack_fixture_data *ffd = f->fixture_data;
- if (f->server) {
- grpc_server_destroy(f->server);
- }
- f->server = grpc_server_create(server_args, NULL);
- grpc_server_register_completion_queue(f->server, f->cq, NULL);
- GPR_ASSERT(grpc_server_add_insecure_http2_port(f->server, ffd->localaddr));
- grpc_server_start(f->server);
-}
-
-void chttp2_tear_down_fullstack(grpc_end2end_test_fixture *f) {
- fullstack_fixture_data *ffd = f->fixture_data;
- gpr_free(ffd->localaddr);
- gpr_free(ffd);
-}
-
-/* All test configurations */
-static grpc_end2end_test_config configs[] = {
- {"chttp2/fullstack_uds", FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION,
- chttp2_create_fixture_fullstack, chttp2_init_client_fullstack,
- chttp2_init_server_fullstack, chttp2_tear_down_fullstack},
-};
-
-int main(int argc, char **argv) {
- size_t i;
-
- grpc_platform_become_multipoller = grpc_poll_become_multipoller;
-
- grpc_test_init(argc, argv);
- grpc_init();
-
- for (i = 0; i < sizeof(configs) / sizeof(*configs); i++) {
- grpc_end2end_tests(argc, argv, configs[i]);
- }
-
- grpc_shutdown();
-
- return 0;
-}
diff --git a/test/core/end2end/fixtures/h2_uds.c b/test/core/end2end/fixtures/h2_uds.c
index 1bdcdef8de..9216860a64 100644
--- a/test/core/end2end/fixtures/h2_uds.c
+++ b/test/core/end2end/fixtures/h2_uds.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -44,13 +44,13 @@
#include <grpc/support/sync.h>
#include <grpc/support/thd.h>
#include <grpc/support/useful.h>
+#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
#include "src/core/lib/channel/client_channel.h"
#include "src/core/lib/channel/connected_channel.h"
#include "src/core/lib/channel/http_server_filter.h"
#include "src/core/lib/support/string.h"
#include "src/core/lib/surface/channel.h"
#include "src/core/lib/surface/server.h"
-#include "src/core/lib/transport/chttp2_transport.h"
#include "test/core/util/port.h"
#include "test/core/util/test_config.h"
diff --git a/test/core/end2end/fixtures/proxy.c b/test/core/end2end/fixtures/proxy.c
index 434e75dd15..1ca53cdad9 100644
--- a/test/core/end2end/fixtures/proxy.c
+++ b/test/core/end2end/fixtures/proxy.c
@@ -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
@@ -338,10 +338,10 @@ static void on_new_call(void *arg, int success) {
proxy->new_call_details.deadline, NULL);
gpr_ref_init(&pc->refs, 1);
- op.flags = 0;
op.reserved = NULL;
op.op = GRPC_OP_RECV_INITIAL_METADATA;
+ op.flags = 0;
op.data.recv_initial_metadata = &pc->p2s_initial_metadata;
refpc(pc, "on_p2s_recv_initial_metadata");
err = grpc_call_start_batch(
@@ -349,6 +349,7 @@ static void on_new_call(void *arg, int success) {
GPR_ASSERT(err == GRPC_CALL_OK);
op.op = GRPC_OP_SEND_INITIAL_METADATA;
+ op.flags = proxy->new_call_details.flags;
op.data.send_initial_metadata.count = pc->c2p_initial_metadata.count;
op.data.send_initial_metadata.metadata = pc->c2p_initial_metadata.metadata;
refpc(pc, "on_p2s_sent_initial_metadata");
@@ -357,6 +358,7 @@ static void on_new_call(void *arg, int success) {
GPR_ASSERT(err == GRPC_CALL_OK);
op.op = GRPC_OP_RECV_MESSAGE;
+ op.flags = 0;
op.data.recv_message = &pc->c2p_msg;
refpc(pc, "on_c2p_recv_msg");
err = grpc_call_start_batch(pc->c2p, &op, 1,
@@ -364,6 +366,7 @@ static void on_new_call(void *arg, int success) {
GPR_ASSERT(err == GRPC_CALL_OK);
op.op = GRPC_OP_RECV_MESSAGE;
+ op.flags = 0;
op.data.recv_message = &pc->p2s_msg;
refpc(pc, "on_p2s_recv_msg");
err = grpc_call_start_batch(pc->p2s, &op, 1,
@@ -371,6 +374,7 @@ static void on_new_call(void *arg, int success) {
GPR_ASSERT(err == GRPC_CALL_OK);
op.op = GRPC_OP_RECV_STATUS_ON_CLIENT;
+ op.flags = 0;
op.data.recv_status_on_client.trailing_metadata =
&pc->p2s_trailing_metadata;
op.data.recv_status_on_client.status = &pc->p2s_status;
@@ -383,6 +387,7 @@ static void on_new_call(void *arg, int success) {
GPR_ASSERT(err == GRPC_CALL_OK);
op.op = GRPC_OP_RECV_CLOSE_ON_SERVER;
+ op.flags = 0;
op.data.recv_close_on_server.cancelled = &pc->c2p_server_cancelled;
refpc(pc, "on_c2p_closed");
err = grpc_call_start_batch(pc->c2p, &op, 1, new_closure(on_c2p_closed, pc),
diff --git a/test/core/end2end/gen_build_yaml.py b/test/core/end2end/gen_build_yaml.py
index 93b48c331c..43ad22e714 100755
--- a/test/core/end2end/gen_build_yaml.py
+++ b/test/core/end2end/gen_build_yaml.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python2.7
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -53,12 +53,8 @@ END2END_FIXTURES = {
'h2_census': default_unsecure_fixture_options,
'h2_fakesec': default_secure_fixture_options._replace(ci_mac=False),
'h2_full': default_unsecure_fixture_options,
- 'h2_full+poll': default_unsecure_fixture_options._replace(
- platforms=['linux']),
'h2_full+pipe': default_unsecure_fixture_options._replace(
platforms=['linux']),
- 'h2_full+poll+pipe': default_unsecure_fixture_options._replace(
- platforms=['linux']),
'h2_full+trace': default_unsecure_fixture_options._replace(tracing=True),
'h2_oauth2': default_secure_fixture_options._replace(ci_mac=False),
'h2_proxy': default_unsecure_fixture_options._replace(includes_proxy=True,
@@ -69,10 +65,8 @@ END2END_FIXTURES = {
'h2_sockpair+trace': socketpair_unsecure_fixture_options._replace(
ci_mac=False, tracing=True),
'h2_ssl': default_secure_fixture_options,
- 'h2_ssl+poll': default_secure_fixture_options._replace(platforms=['linux']),
'h2_ssl_proxy': default_secure_fixture_options._replace(includes_proxy=True,
ci_mac=False),
- 'h2_uds+poll': uds_fixture_options._replace(platforms=['linux']),
'h2_uds': uds_fixture_options,
}
@@ -104,6 +98,7 @@ END2END_TESTS = {
'hpack_size': default_test_options._replace(proxyable=False,
traceable=False),
'high_initial_seqno': default_test_options,
+ 'idempotent_request': default_test_options,
'invoke_large_request': default_test_options,
'large_metadata': default_test_options,
'max_concurrent_streams': default_test_options._replace(proxyable=False),
diff --git a/test/core/end2end/goaway_server_test.c b/test/core/end2end/goaway_server_test.c
new file mode 100644
index 0000000000..5f8c2641e7
--- /dev/null
+++ b/test/core/end2end/goaway_server_test.c
@@ -0,0 +1,301 @@
+/*
+ *
+ * Copyright 2016, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include <grpc/grpc.h>
+#include <grpc/support/alloc.h>
+#include <grpc/support/log.h>
+#include <grpc/support/string_util.h>
+#include <string.h>
+#include "src/core/lib/iomgr/resolve_address.h"
+#include "src/core/lib/iomgr/sockaddr.h"
+#include "test/core/end2end/cq_verifier.h"
+#include "test/core/util/port.h"
+#include "test/core/util/test_config.h"
+
+static void *tag(intptr_t i) { return (void *)i; }
+
+static gpr_mu g_mu;
+static int g_resolve_port = -1;
+static grpc_resolved_addresses *(*iomgr_resolve_address)(
+ const char *name, const char *default_port);
+
+static void set_resolve_port(int port) {
+ gpr_mu_lock(&g_mu);
+ g_resolve_port = port;
+ gpr_mu_unlock(&g_mu);
+}
+
+static grpc_resolved_addresses *my_resolve_address(const char *name,
+ const char *addr) {
+ if (0 != strcmp(name, "test")) {
+ return iomgr_resolve_address(name, addr);
+ }
+
+ gpr_mu_lock(&g_mu);
+ if (g_resolve_port < 0) {
+ gpr_mu_unlock(&g_mu);
+ return NULL;
+ } else {
+ grpc_resolved_addresses *addrs = gpr_malloc(sizeof(*addrs));
+ addrs->naddrs = 1;
+ addrs->addrs = gpr_malloc(sizeof(*addrs->addrs));
+ memset(addrs->addrs, 0, sizeof(*addrs->addrs));
+ struct sockaddr_in *sa = (struct sockaddr_in *)addrs->addrs[0].addr;
+ sa->sin_family = AF_INET;
+ sa->sin_addr.s_addr = htonl(0x7f000001);
+ sa->sin_port = htons((uint16_t)g_resolve_port);
+ addrs->addrs[0].len = sizeof(*sa);
+ gpr_mu_unlock(&g_mu);
+ return addrs;
+ }
+}
+
+int main(int argc, char **argv) {
+ grpc_completion_queue *cq;
+ cq_verifier *cqv;
+ grpc_op ops[6];
+ grpc_op *op;
+
+ grpc_test_init(argc, argv);
+
+ gpr_mu_init(&g_mu);
+ iomgr_resolve_address = grpc_blocking_resolve_address;
+ grpc_blocking_resolve_address = my_resolve_address;
+ grpc_init();
+
+ int was_cancelled1;
+ int was_cancelled2;
+
+ grpc_metadata_array trailing_metadata_recv1;
+ grpc_metadata_array request_metadata1;
+ grpc_call_details request_details1;
+ grpc_status_code status1;
+ char *details1 = NULL;
+ size_t details_capacity1 = 0;
+ grpc_metadata_array_init(&trailing_metadata_recv1);
+ grpc_metadata_array_init(&request_metadata1);
+ grpc_call_details_init(&request_details1);
+
+ grpc_metadata_array trailing_metadata_recv2;
+ grpc_metadata_array request_metadata2;
+ grpc_call_details request_details2;
+ grpc_status_code status2;
+ char *details2 = NULL;
+ size_t details_capacity2 = 0;
+ grpc_metadata_array_init(&trailing_metadata_recv2);
+ grpc_metadata_array_init(&request_metadata2);
+ grpc_call_details_init(&request_details2);
+
+ cq = grpc_completion_queue_create(NULL);
+ cqv = cq_verifier_create(cq);
+
+ /* reserve two ports */
+ int port1 = grpc_pick_unused_port_or_die();
+ int port2 = grpc_pick_unused_port_or_die();
+
+ char *addr;
+
+ /* create a channel that picks first amongst the servers */
+ grpc_channel *chan = grpc_insecure_channel_create("test", NULL, NULL);
+ /* and an initial call to them */
+ grpc_call *call1 = grpc_channel_create_call(
+ chan, NULL, GRPC_PROPAGATE_DEFAULTS, cq, "/foo", "127.0.0.1",
+ GRPC_TIMEOUT_SECONDS_TO_DEADLINE(20), NULL);
+ /* send initial metadata to probe connectivity */
+ op = ops;
+ op->op = GRPC_OP_SEND_INITIAL_METADATA;
+ op->data.send_initial_metadata.count = 0;
+ op->flags = 0;
+ op->reserved = NULL;
+ op++;
+ GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call1, ops,
+ (size_t)(op - ops),
+ tag(0x101), NULL));
+ /* and receive status to probe termination */
+ op = ops;
+ op->op = GRPC_OP_RECV_STATUS_ON_CLIENT;
+ op->data.recv_status_on_client.trailing_metadata = &trailing_metadata_recv1;
+ op->data.recv_status_on_client.status = &status1;
+ op->data.recv_status_on_client.status_details = &details1;
+ op->data.recv_status_on_client.status_details_capacity = &details_capacity1;
+ op->flags = 0;
+ op->reserved = NULL;
+ op++;
+ GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call1, ops,
+ (size_t)(op - ops),
+ tag(0x102), NULL));
+
+ /* bring a server up on the first port */
+ grpc_server *server1 = grpc_server_create(NULL, NULL);
+ gpr_asprintf(&addr, "127.0.0.1:%d", port1);
+ grpc_server_add_insecure_http2_port(server1, addr);
+ grpc_server_register_completion_queue(server1, cq, NULL);
+ gpr_free(addr);
+ grpc_server_start(server1);
+
+ /* request a call to the server */
+ grpc_call *server_call1;
+ GPR_ASSERT(GRPC_CALL_OK ==
+ grpc_server_request_call(server1, &server_call1, &request_details1,
+ &request_metadata1, cq, cq, tag(0x301)));
+
+ set_resolve_port(port1);
+
+ /* first call should now start */
+ cq_expect_completion(cqv, tag(0x101), 1);
+ cq_expect_completion(cqv, tag(0x301), 1);
+ cq_verify(cqv);
+
+ GPR_ASSERT(GRPC_CHANNEL_READY ==
+ grpc_channel_check_connectivity_state(chan, 0));
+ grpc_channel_watch_connectivity_state(chan, GRPC_CHANNEL_READY,
+ gpr_inf_future(GPR_CLOCK_REALTIME), cq,
+ tag(0x9999));
+
+ /* listen for close on the server call to probe for finishing */
+ op = ops;
+ op->op = GRPC_OP_RECV_CLOSE_ON_SERVER;
+ op->data.recv_close_on_server.cancelled = &was_cancelled1;
+ op->flags = 0;
+ op++;
+ GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(server_call1, ops,
+ (size_t)(op - ops),
+ tag(0x302), NULL));
+
+ /* shutdown first server:
+ * we should see a connectivity change and then nothing */
+ set_resolve_port(-1);
+ grpc_server_shutdown_and_notify(server1, cq, tag(0xdead1));
+ cq_expect_completion(cqv, tag(0x9999), 1);
+ cq_verify(cqv);
+ cq_verify_empty(cqv);
+
+ /* and a new call: should go through to server2 when we start it */
+ grpc_call *call2 = grpc_channel_create_call(
+ chan, NULL, GRPC_PROPAGATE_DEFAULTS, cq, "/foo", "127.0.0.1",
+ GRPC_TIMEOUT_SECONDS_TO_DEADLINE(20), NULL);
+ /* send initial metadata to probe connectivity */
+ op = ops;
+ op->op = GRPC_OP_SEND_INITIAL_METADATA;
+ op->data.send_initial_metadata.count = 0;
+ op->flags = 0;
+ op->reserved = NULL;
+ op++;
+ GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call2, ops,
+ (size_t)(op - ops),
+ tag(0x201), NULL));
+ /* and receive status to probe termination */
+ op = ops;
+ op->op = GRPC_OP_RECV_STATUS_ON_CLIENT;
+ op->data.recv_status_on_client.trailing_metadata = &trailing_metadata_recv2;
+ op->data.recv_status_on_client.status = &status2;
+ op->data.recv_status_on_client.status_details = &details2;
+ op->data.recv_status_on_client.status_details_capacity = &details_capacity2;
+ op->flags = 0;
+ op->reserved = NULL;
+ op++;
+ GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(call2, ops,
+ (size_t)(op - ops),
+ tag(0x202), NULL));
+
+ /* and bring up second server */
+ set_resolve_port(port2);
+ grpc_server *server2 = grpc_server_create(NULL, NULL);
+ gpr_asprintf(&addr, "127.0.0.1:%d", port2);
+ grpc_server_add_insecure_http2_port(server2, addr);
+ grpc_server_register_completion_queue(server2, cq, NULL);
+ gpr_free(addr);
+ grpc_server_start(server2);
+
+ /* request a call to the server */
+ grpc_call *server_call2;
+ GPR_ASSERT(GRPC_CALL_OK ==
+ grpc_server_request_call(server2, &server_call2, &request_details2,
+ &request_metadata2, cq, cq, tag(0x401)));
+
+ /* second call should now start */
+ cq_expect_completion(cqv, tag(0x201), 1);
+ cq_expect_completion(cqv, tag(0x401), 1);
+ cq_verify(cqv);
+
+ /* listen for close on the server call to probe for finishing */
+ op = ops;
+ op->op = GRPC_OP_RECV_CLOSE_ON_SERVER;
+ op->data.recv_close_on_server.cancelled = &was_cancelled2;
+ op->flags = 0;
+ op++;
+ GPR_ASSERT(GRPC_CALL_OK == grpc_call_start_batch(server_call2, ops,
+ (size_t)(op - ops),
+ tag(0x402), NULL));
+
+ /* shutdown second server: we should see nothing */
+ grpc_server_shutdown_and_notify(server2, cq, tag(0xdead2));
+ cq_verify_empty(cqv);
+
+ grpc_call_cancel(call1, NULL);
+ grpc_call_cancel(call2, NULL);
+
+ /* now everything else should finish */
+ cq_expect_completion(cqv, tag(0x102), 1);
+ cq_expect_completion(cqv, tag(0x202), 1);
+ cq_expect_completion(cqv, tag(0x302), 1);
+ cq_expect_completion(cqv, tag(0x402), 1);
+ cq_expect_completion(cqv, tag(0xdead1), 1);
+ cq_expect_completion(cqv, tag(0xdead2), 1);
+ cq_verify(cqv);
+
+ grpc_call_destroy(call1);
+ grpc_call_destroy(call2);
+ grpc_call_destroy(server_call1);
+ grpc_call_destroy(server_call2);
+ grpc_server_destroy(server1);
+ grpc_server_destroy(server2);
+ grpc_channel_destroy(chan);
+
+ grpc_metadata_array_destroy(&trailing_metadata_recv1);
+ grpc_metadata_array_destroy(&request_metadata1);
+ grpc_call_details_destroy(&request_details1);
+ gpr_free(details1);
+ grpc_metadata_array_destroy(&trailing_metadata_recv2);
+ grpc_metadata_array_destroy(&request_metadata2);
+ grpc_call_details_destroy(&request_details2);
+ gpr_free(details2);
+
+ cq_verifier_destroy(cqv);
+ grpc_completion_queue_destroy(cq);
+
+ grpc_shutdown();
+ gpr_mu_destroy(&g_mu);
+
+ return 0;
+}
diff --git a/test/core/end2end/invalid_call_argument_test.c b/test/core/end2end/invalid_call_argument_test.c
index 642b044ed8..cf42e92a1a 100644
--- a/test/core/end2end/invalid_call_argument_test.c
+++ b/test/core/end2end/invalid_call_argument_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/no_server_test.c b/test/core/end2end/no_server_test.c
index c1be55df13..7a5cd2335f 100644
--- a/test/core/end2end/no_server_test.c
+++ b/test/core/end2end/no_server_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/bad_hostname.c b/test/core/end2end/tests/bad_hostname.c
index df3f6be431..eb1fa46de3 100644
--- a/test/core/end2end/tests/bad_hostname.c
+++ b/test/core/end2end/tests/bad_hostname.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -152,7 +152,7 @@ static void simple_request_body(grpc_end2end_test_fixture f) {
cq_expect_completion(cqv, tag(1), 1);
cq_verify(cqv);
- GPR_ASSERT(status == GRPC_STATUS_INVALID_ARGUMENT);
+ GPR_ASSERT(status == GRPC_STATUS_INTERNAL);
gpr_free(details);
grpc_metadata_array_destroy(&initial_metadata_recv);
diff --git a/test/core/end2end/tests/binary_metadata.c b/test/core/end2end/tests/binary_metadata.c
index a4f4afac65..54583b09bc 100644
--- a/test/core/end2end/tests/binary_metadata.c
+++ b/test/core/end2end/tests/binary_metadata.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/call_creds.c b/test/core/end2end/tests/call_creds.c
index f749a60979..a3f86a76c7 100644
--- a/test/core/end2end/tests/call_creds.c
+++ b/test/core/end2end/tests/call_creds.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/cancel_after_accept.c b/test/core/end2end/tests/cancel_after_accept.c
index 2025f1191f..08d0ef6e51 100644
--- a/test/core/end2end/tests/cancel_after_accept.c
+++ b/test/core/end2end/tests/cancel_after_accept.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/cancel_after_client_done.c b/test/core/end2end/tests/cancel_after_client_done.c
index bc958a6ff3..f85ffad118 100644
--- a/test/core/end2end/tests/cancel_after_client_done.c
+++ b/test/core/end2end/tests/cancel_after_client_done.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/cancel_after_invoke.c b/test/core/end2end/tests/cancel_after_invoke.c
index 5bab10e030..e7d6e0098a 100644
--- a/test/core/end2end/tests/cancel_after_invoke.c
+++ b/test/core/end2end/tests/cancel_after_invoke.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/cancel_before_invoke.c b/test/core/end2end/tests/cancel_before_invoke.c
index 8c0becd1c8..a4f47f01fa 100644
--- a/test/core/end2end/tests/cancel_before_invoke.c
+++ b/test/core/end2end/tests/cancel_before_invoke.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/cancel_in_a_vacuum.c b/test/core/end2end/tests/cancel_in_a_vacuum.c
index 7bea7d7e65..73a6fc452a 100644
--- a/test/core/end2end/tests/cancel_in_a_vacuum.c
+++ b/test/core/end2end/tests/cancel_in_a_vacuum.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/cancel_with_status.c b/test/core/end2end/tests/cancel_with_status.c
index e5a1556019..aa73d48891 100644
--- a/test/core/end2end/tests/cancel_with_status.c
+++ b/test/core/end2end/tests/cancel_with_status.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/compressed_payload.c b/test/core/end2end/tests/compressed_payload.c
index 9c258858cb..d5cf9a7858 100644
--- a/test/core/end2end/tests/compressed_payload.c
+++ b/test/core/end2end/tests/compressed_payload.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/connectivity.c b/test/core/end2end/tests/connectivity.c
index 975c620731..edef2ff68b 100644
--- a/test/core/end2end/tests/connectivity.c
+++ b/test/core/end2end/tests/connectivity.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/default_host.c b/test/core/end2end/tests/default_host.c
index 576d81e395..105f4e68f0 100644
--- a/test/core/end2end/tests/default_host.c
+++ b/test/core/end2end/tests/default_host.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/empty_batch.c b/test/core/end2end/tests/empty_batch.c
index 7f56313fa0..95df93ac5b 100644
--- a/test/core/end2end/tests/empty_batch.c
+++ b/test/core/end2end/tests/empty_batch.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/high_initial_seqno.c b/test/core/end2end/tests/high_initial_seqno.c
index 2196fbd343..8b6e50bdd8 100644
--- a/test/core/end2end/tests/high_initial_seqno.c
+++ b/test/core/end2end/tests/high_initial_seqno.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/hpack_size.c b/test/core/end2end/tests/hpack_size.c
index 2774e50627..15efcd23bf 100644
--- a/test/core/end2end/tests/hpack_size.c
+++ b/test/core/end2end/tests/hpack_size.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/idempotent_request.c b/test/core/end2end/tests/idempotent_request.c
new file mode 100644
index 0000000000..485a854441
--- /dev/null
+++ b/test/core/end2end/tests/idempotent_request.c
@@ -0,0 +1,248 @@
+/*
+ *
+ * Copyright 2015-2016, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include "test/core/end2end/end2end_tests.h"
+
+#include <stdio.h>
+#include <string.h>
+
+#include <grpc/byte_buffer.h>
+#include <grpc/grpc.h>
+#include <grpc/support/alloc.h>
+#include <grpc/support/log.h>
+#include <grpc/support/time.h>
+#include <grpc/support/useful.h>
+#include "src/core/lib/support/string.h"
+#include "test/core/end2end/cq_verifier.h"
+
+enum { TIMEOUT = 200000 };
+
+static void *tag(intptr_t t) { return (void *)t; }
+
+static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
+ const char *test_name,
+ grpc_channel_args *client_args,
+ grpc_channel_args *server_args) {
+ grpc_end2end_test_fixture f;
+ gpr_log(GPR_INFO, "%s/%s", test_name, config.name);
+ f = config.create_fixture(client_args, server_args);
+ config.init_server(&f, server_args);
+ config.init_client(&f, client_args);
+ return f;
+}
+
+static gpr_timespec n_seconds_time(int n) {
+ return GRPC_TIMEOUT_SECONDS_TO_DEADLINE(n);
+}
+
+static gpr_timespec five_seconds_time(void) { return n_seconds_time(5); }
+
+static void drain_cq(grpc_completion_queue *cq) {
+ grpc_event ev;
+ do {
+ ev = grpc_completion_queue_next(cq, five_seconds_time(), NULL);
+ } while (ev.type != GRPC_QUEUE_SHUTDOWN);
+}
+
+static void shutdown_server(grpc_end2end_test_fixture *f) {
+ if (!f->server) return;
+ grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
+ GPR_ASSERT(grpc_completion_queue_pluck(
+ f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
+ .type == GRPC_OP_COMPLETE);
+ grpc_server_destroy(f->server);
+ f->server = NULL;
+}
+
+static void shutdown_client(grpc_end2end_test_fixture *f) {
+ if (!f->client) return;
+ grpc_channel_destroy(f->client);
+ f->client = NULL;
+}
+
+static void end_test(grpc_end2end_test_fixture *f) {
+ shutdown_server(f);
+ shutdown_client(f);
+
+ grpc_completion_queue_shutdown(f->cq);
+ drain_cq(f->cq);
+ grpc_completion_queue_destroy(f->cq);
+}
+
+static void simple_request_body(grpc_end2end_test_fixture f) {
+ grpc_call *c;
+ grpc_call *s;
+ gpr_timespec deadline = five_seconds_time();
+ cq_verifier *cqv = cq_verifier_create(f.cq);
+ grpc_op ops[6];
+ grpc_op *op;
+ grpc_metadata_array initial_metadata_recv;
+ grpc_metadata_array trailing_metadata_recv;
+ grpc_metadata_array request_metadata_recv;
+ grpc_call_details call_details;
+ grpc_status_code status;
+ grpc_call_error error;
+ char *details = NULL;
+ size_t details_capacity = 0;
+ int was_cancelled = 2;
+ char *peer;
+
+ c = grpc_channel_create_call(f.client, NULL, GRPC_PROPAGATE_DEFAULTS, f.cq,
+ "/foo", "foo.test.google.fr:1234", deadline,
+ NULL);
+ GPR_ASSERT(c);
+
+ peer = grpc_call_get_peer(c);
+ GPR_ASSERT(peer != NULL);
+ gpr_log(GPR_DEBUG, "client_peer_before_call=%s", peer);
+ gpr_free(peer);
+
+ grpc_metadata_array_init(&initial_metadata_recv);
+ grpc_metadata_array_init(&trailing_metadata_recv);
+ grpc_metadata_array_init(&request_metadata_recv);
+ grpc_call_details_init(&call_details);
+
+ op = ops;
+ op->op = GRPC_OP_SEND_INITIAL_METADATA;
+ op->data.send_initial_metadata.count = 0;
+ op->flags = GRPC_INITIAL_METADATA_IDEMPOTENT_REQUEST;
+ op->reserved = NULL;
+ op++;
+ op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT;
+ op->flags = 0;
+ op->reserved = NULL;
+ op++;
+ op->op = GRPC_OP_RECV_INITIAL_METADATA;
+ op->data.recv_initial_metadata = &initial_metadata_recv;
+ op->flags = 0;
+ op->reserved = NULL;
+ op++;
+ op->op = GRPC_OP_RECV_STATUS_ON_CLIENT;
+ op->data.recv_status_on_client.trailing_metadata = &trailing_metadata_recv;
+ op->data.recv_status_on_client.status = &status;
+ op->data.recv_status_on_client.status_details = &details;
+ op->data.recv_status_on_client.status_details_capacity = &details_capacity;
+ op->flags = 0;
+ op->reserved = NULL;
+ op++;
+ error = grpc_call_start_batch(c, ops, (size_t)(op - ops), tag(1), NULL);
+ GPR_ASSERT(GRPC_CALL_OK == error);
+
+ error =
+ grpc_server_request_call(f.server, &s, &call_details,
+ &request_metadata_recv, f.cq, f.cq, tag(101));
+ GPR_ASSERT(GRPC_CALL_OK == error);
+ cq_expect_completion(cqv, tag(101), 1);
+ cq_verify(cqv);
+
+ peer = grpc_call_get_peer(s);
+ GPR_ASSERT(peer != NULL);
+ gpr_log(GPR_DEBUG, "server_peer=%s", peer);
+ gpr_free(peer);
+ peer = grpc_call_get_peer(c);
+ GPR_ASSERT(peer != NULL);
+ gpr_log(GPR_DEBUG, "client_peer=%s", peer);
+ gpr_free(peer);
+
+ op = ops;
+ op->op = GRPC_OP_SEND_INITIAL_METADATA;
+ op->data.send_initial_metadata.count = 0;
+ op->flags = 0;
+ op->reserved = NULL;
+ op++;
+ op->op = GRPC_OP_SEND_STATUS_FROM_SERVER;
+ op->data.send_status_from_server.trailing_metadata_count = 0;
+ op->data.send_status_from_server.status = GRPC_STATUS_UNIMPLEMENTED;
+ op->data.send_status_from_server.status_details = "xyz";
+ op->flags = 0;
+ op->reserved = NULL;
+ op++;
+ op->op = GRPC_OP_RECV_CLOSE_ON_SERVER;
+ op->data.recv_close_on_server.cancelled = &was_cancelled;
+ op->flags = 0;
+ op->reserved = NULL;
+ op++;
+ error = grpc_call_start_batch(s, ops, (size_t)(op - ops), tag(102), NULL);
+ GPR_ASSERT(GRPC_CALL_OK == error);
+
+ cq_expect_completion(cqv, tag(102), 1);
+ cq_expect_completion(cqv, tag(1), 1);
+ cq_verify(cqv);
+
+ GPR_ASSERT(status == GRPC_STATUS_UNIMPLEMENTED);
+ GPR_ASSERT(0 == strcmp(details, "xyz"));
+ GPR_ASSERT(0 == strcmp(call_details.method, "/foo"));
+ GPR_ASSERT(0 == strcmp(call_details.host, "foo.test.google.fr:1234"));
+ GPR_ASSERT(GRPC_INITIAL_METADATA_IDEMPOTENT_REQUEST == call_details.flags);
+ GPR_ASSERT(was_cancelled == 1);
+
+ gpr_free(details);
+ grpc_metadata_array_destroy(&initial_metadata_recv);
+ grpc_metadata_array_destroy(&trailing_metadata_recv);
+ grpc_metadata_array_destroy(&request_metadata_recv);
+ grpc_call_details_destroy(&call_details);
+
+ grpc_call_destroy(c);
+ grpc_call_destroy(s);
+
+ cq_verifier_destroy(cqv);
+}
+
+static void test_invoke_simple_request(grpc_end2end_test_config config) {
+ grpc_end2end_test_fixture f;
+
+ f = begin_test(config, "test_invoke_simple_request", NULL, NULL);
+ simple_request_body(f);
+ end_test(&f);
+ config.tear_down_data(&f);
+}
+
+static void test_invoke_10_simple_requests(grpc_end2end_test_config config) {
+ int i;
+ grpc_end2end_test_fixture f =
+ begin_test(config, "test_invoke_10_simple_requests", NULL, NULL);
+ for (i = 0; i < 10; i++) {
+ simple_request_body(f);
+ gpr_log(GPR_INFO, "Passed simple request %d", i);
+ }
+ end_test(&f);
+ config.tear_down_data(&f);
+}
+
+void idempotent_request(grpc_end2end_test_config config) {
+ int i;
+ for (i = 0; i < 10; i++) {
+ test_invoke_simple_request(config);
+ }
+ test_invoke_10_simple_requests(config);
+}
diff --git a/test/core/end2end/tests/invoke_large_request.c b/test/core/end2end/tests/invoke_large_request.c
index 7f03ebbc6f..28c0e36461 100644
--- a/test/core/end2end/tests/invoke_large_request.c
+++ b/test/core/end2end/tests/invoke_large_request.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/large_metadata.c b/test/core/end2end/tests/large_metadata.c
index 4b77974470..173c20996e 100644
--- a/test/core/end2end/tests/large_metadata.c
+++ b/test/core/end2end/tests/large_metadata.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/max_concurrent_streams.c b/test/core/end2end/tests/max_concurrent_streams.c
index 05472bf19e..60e9ecd7d8 100644
--- a/test/core/end2end/tests/max_concurrent_streams.c
+++ b/test/core/end2end/tests/max_concurrent_streams.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/max_message_length.c b/test/core/end2end/tests/max_message_length.c
index 2202306325..00a83ecb33 100644
--- a/test/core/end2end/tests/max_message_length.c
+++ b/test/core/end2end/tests/max_message_length.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/negative_deadline.c b/test/core/end2end/tests/negative_deadline.c
index e5031af59a..0cc68a33a1 100644
--- a/test/core/end2end/tests/negative_deadline.c
+++ b/test/core/end2end/tests/negative_deadline.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/no_op.c b/test/core/end2end/tests/no_op.c
index efcd496071..9dda569cb9 100644
--- a/test/core/end2end/tests/no_op.c
+++ b/test/core/end2end/tests/no_op.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/payload.c b/test/core/end2end/tests/payload.c
index 74af28ddc3..e9272b6bce 100644
--- a/test/core/end2end/tests/payload.c
+++ b/test/core/end2end/tests/payload.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/ping.c b/test/core/end2end/tests/ping.c
index f85df63de7..f42f186502 100644
--- a/test/core/end2end/tests/ping.c
+++ b/test/core/end2end/tests/ping.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/ping_pong_streaming.c b/test/core/end2end/tests/ping_pong_streaming.c
index 7af01497c5..ac4e810573 100644
--- a/test/core/end2end/tests/ping_pong_streaming.c
+++ b/test/core/end2end/tests/ping_pong_streaming.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/registered_call.c b/test/core/end2end/tests/registered_call.c
index 09f452f6e5..a67df863d5 100644
--- a/test/core/end2end/tests/registered_call.c
+++ b/test/core/end2end/tests/registered_call.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/request_with_flags.c b/test/core/end2end/tests/request_with_flags.c
index 433622e2da..9d01ddc94c 100644
--- a/test/core/end2end/tests/request_with_flags.c
+++ b/test/core/end2end/tests/request_with_flags.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/request_with_payload.c b/test/core/end2end/tests/request_with_payload.c
index 07f9993d24..9866d39000 100644
--- a/test/core/end2end/tests/request_with_payload.c
+++ b/test/core/end2end/tests/request_with_payload.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/server_finishes_request.c b/test/core/end2end/tests/server_finishes_request.c
index d3ac2d5d61..2a26c98916 100644
--- a/test/core/end2end/tests/server_finishes_request.c
+++ b/test/core/end2end/tests/server_finishes_request.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/simple_delayed_request.c b/test/core/end2end/tests/simple_delayed_request.c
index e9f5a38c76..bb9d462cef 100644
--- a/test/core/end2end/tests/simple_delayed_request.c
+++ b/test/core/end2end/tests/simple_delayed_request.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/simple_metadata.c b/test/core/end2end/tests/simple_metadata.c
index 0e214e3770..084c0df817 100644
--- a/test/core/end2end/tests/simple_metadata.c
+++ b/test/core/end2end/tests/simple_metadata.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/end2end/tests/simple_request.c b/test/core/end2end/tests/simple_request.c
index bc634ef83a..68db58d225 100644
--- a/test/core/end2end/tests/simple_request.c
+++ b/test/core/end2end/tests/simple_request.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -203,6 +203,7 @@ static void simple_request_body(grpc_end2end_test_fixture f) {
GPR_ASSERT(0 == strcmp(details, "xyz"));
GPR_ASSERT(0 == strcmp(call_details.method, "/foo"));
GPR_ASSERT(0 == strcmp(call_details.host, "foo.test.google.fr:1234"));
+ GPR_ASSERT(0 == call_details.flags);
GPR_ASSERT(was_cancelled == 1);
gpr_free(details);
diff --git a/test/core/end2end/tests/trailing_metadata.c b/test/core/end2end/tests/trailing_metadata.c
index 03f4f3e79b..99e1e2264a 100644
--- a/test/core/end2end/tests/trailing_metadata.c
+++ b/test/core/end2end/tests/trailing_metadata.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/fling/client.c b/test/core/fling/client.c
index 6a4eb1c6e3..81562277ec 100644
--- a/test/core/fling/client.c
+++ b/test/core/fling/client.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/fling/fling_stream_test.c b/test/core/fling/fling_stream_test.c
index 2807504976..7e4daaa84f 100644
--- a/test/core/fling/fling_stream_test.c
+++ b/test/core/fling/fling_stream_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/fling/fling_test.c b/test/core/fling/fling_test.c
index 46456a2901..6663ad3507 100644
--- a/test/core/fling/fling_test.c
+++ b/test/core/fling/fling_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/fling/server.c b/test/core/fling/server.c
index 4fef21f51d..fd446f1128 100644
--- a/test/core/fling/server.c
+++ b/test/core/fling/server.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/http/corpus/0299ca2580e4398d170c4a336e0c33eb2cd9d427 b/test/core/http/corpus/0299ca2580e4398d170c4a336e0c33eb2cd9d427
new file mode 100644
index 0000000000..3d6face56a
--- /dev/null
+++ b/test/core/http/corpus/0299ca2580e4398d170c4a336e0c33eb2cd9d427
@@ -0,0 +1,2 @@
+HTTP/1.1 …200 OKH
+tes \ No newline at end of file
diff --git a/test/core/http/corpus/05e613853d64a9669ea3cf41b0de777dc24931ba b/test/core/http/corpus/05e613853d64a9669ea3cf41b0de777dc24931ba
new file mode 100644
index 0000000000..5cbaf2e460
--- /dev/null
+++ b/test/core/http/corpus/05e613853d64a9669ea3cf41b0de777dc24931ba
@@ -0,0 +1,2 @@
+HTTP/1.1 8) pMKH
+tes \ No newline at end of file
diff --git a/test/core/http/corpus/069352518a1d1baa05f317c677d275cefda2ac97 b/test/core/http/corpus/069352518a1d1baa05f317c677d275cefda2ac97
new file mode 100644
index 0000000000..8831f0786b
--- /dev/null
+++ b/test/core/http/corpus/069352518a1d1baa05f317c677d275cefda2ac97
@@ -0,0 +1,2 @@
+HTTP/1.1 80) OKH
+tes \ No newline at end of file
diff --git a/test/core/http/corpus/0925527c9358b1e10ec0f0387cd99f35204d9a34 b/test/core/http/corpus/0925527c9358b1e10ec0f0387cd99f35204d9a34
new file mode 100644
index 0000000000..10967d975c
--- /dev/null
+++ b/test/core/http/corpus/0925527c9358b1e10ec0f0387cd99f35204d9a34
@@ -0,0 +1,2 @@
+„HTT/21. 200 HT!TP/1OKH.1HTTP 200 OKH
+tHT//1T0P.1y 2001. \ No newline at end of file
diff --git a/test/core/http/corpus/0c5b7c2569410b526605e308309a7f36574e530d b/test/core/http/corpus/0c5b7c2569410b526605e308309a7f36574e530d
new file mode 100644
index 0000000000..c79e456904
--- /dev/null
+++ b/test/core/http/corpus/0c5b7c2569410b526605e308309a7f36574e530d
@@ -0,0 +1,4 @@
+H TTP/16.1 200 OK
+test: h!ello
+
+abcd
diff --git a/test/core/http/corpus/0ef3d0a84360bb5ad66274f1226f5cb273ecdbcf b/test/core/http/corpus/0ef3d0a84360bb5ad66274f1226f5cb273ecdbcf
new file mode 100644
index 0000000000..7b979b5e10
--- /dev/null
+++ b/test/core/http/corpus/0ef3d0a84360bb5ad66274f1226f5cb273ecdbcf
@@ -0,0 +1,3 @@
+HTTP/1.1 200 OKH
+tHTTP/01.021 Oes,H
+tes \ No newline at end of file
diff --git a/test/core/http/corpus/1e1273f90187fdf5df3625764245610f86af6aa4 b/test/core/http/corpus/1e1273f90187fdf5df3625764245610f86af6aa4
new file mode 100644
index 0000000000..67382b4f3a
--- /dev/null
+++ b/test/core/http/corpus/1e1273f90187fdf5df3625764245610f86af6aa4
@@ -0,0 +1,3 @@
+HTTP/1.1 200 OKHHTTP‰/1.200 OKH
+
+tHTHTTP/0 20T:tes/01. \ No newline at end of file
diff --git a/test/core/http/corpus/1fbc57d118f3733287e9a9d808bb8947b3260e55 b/test/core/http/corpus/1fbc57d118f3733287e9a9d808bb8947b3260e55
new file mode 100644
index 0000000000..deb8265a30
--- /dev/null
+++ b/test/core/http/corpus/1fbc57d118f3733287e9a9d808bb8947b3260e55
@@ -0,0 +1,3 @@
+JHTT/21. 2è0 HTTP/1.1 200 OKHHTTP‰/1.200 OKH
+
+tHTHTHTJHTTPT \ No newline at end of file
diff --git a/test/core/http/corpus/24756c396bc72894fd720092bb6f9c03e66b469f b/test/core/http/corpus/24756c396bc72894fd720092bb6f9c03e66b469f
new file mode 100644
index 0000000000..9f2e0e4a25
--- /dev/null
+++ b/test/core/http/corpus/24756c396bc72894fd720092bb6f9c03e66b469f
@@ -0,0 +1,2 @@
+JHTT/21. 200œHTT/0OKH.1 HTTP/200 OKH
+tH1.T \ No newline at end of file
diff --git a/test/core/http/corpus/276def41311933421ae7a9ee42e906c85b6a4d3f b/test/core/http/corpus/276def41311933421ae7a9ee42e906c85b6a4d3f
new file mode 100644
index 0000000000..4db04b260a
--- /dev/null
+++ b/test/core/http/corpus/276def41311933421ae7a9ee42e906c85b6a4d3f
@@ -0,0 +1,2 @@
+ITTP/11 …20O HTTP/11 2*0 OKH
+ HTDP/01.021 : OesHK ,H
diff --git a/test/core/http/corpus/29daa75432381937fd005cb25e314e328de6e9f9 b/test/core/http/corpus/29daa75432381937fd005cb25e314e328de6e9f9
new file mode 100644
index 0000000000..cee70bfe71
--- /dev/null
+++ b/test/core/http/corpus/29daa75432381937fd005cb25e314e328de6e9f9
@@ -0,0 +1,2 @@
+JHTT¹21. 200HTT/0OKH1 HTTP/100 OKH
+tH1.T \ No newline at end of file
diff --git a/test/core/http/corpus/2a75204bc492084ad853682f8de3fb137d5907bc b/test/core/http/corpus/2a75204bc492084ad853682f8de3fb137d5907bc
new file mode 100644
index 0000000000..e76b00e34c
--- /dev/null
+++ b/test/core/http/corpus/2a75204bc492084ad853682f8de3fb137d5907bc
@@ -0,0 +1,2 @@
+GET / HTTHTTP/1.1 200 OKH
+t10H \ No newline at end of file
diff --git a/test/core/http/corpus/2d34ba249b755a880525cf53c665633a5e359305 b/test/core/http/corpus/2d34ba249b755a880525cf53c665633a5e359305
new file mode 100644
index 0000000000..7435f52ea5
--- /dev/null
+++ b/test/core/http/corpus/2d34ba249b755a880525cf53c665633a5e359305
@@ -0,0 +1,2 @@
+ITTP/11 …20O HTTP/22 2*0 OKH
+ HTDP/01.021 : OesHK ,H
diff --git a/test/core/http/corpus/33f4ea0c7ea27c37d8f95cfa64d282370efdafd2 b/test/core/http/corpus/33f4ea0c7ea27c37d8f95cfa64d282370efdafd2
new file mode 100644
index 0000000000..cce8ded71a
--- /dev/null
+++ b/test/core/http/corpus/33f4ea0c7ea27c37d8f95cfa64d282370efdafd2
@@ -0,0 +1,2 @@
+HTTP/1*9y 200 OKm
+tes \ No newline at end of file
diff --git a/test/core/http/corpus/35554617ea6418bd43161fe9a2c337ed82d7ec5b b/test/core/http/corpus/35554617ea6418bd43161fe9a2c337ed82d7ec5b
new file mode 100644
index 0000000000..57efa3cabc
--- /dev/null
+++ b/test/core/http/corpus/35554617ea6418bd43161fe9a2c337ed82d7ec5b
@@ -0,0 +1,4 @@
+JHTT/21. 200 HTTP/0OKH.1 200 OKH
+tHTTP/01.021 Oes,H
+t
+t \ No newline at end of file
diff --git a/test/core/http/corpus/35f0c561297cfc840ddaeebb9fc61091f4eadece b/test/core/http/corpus/35f0c561297cfc840ddaeebb9fc61091f4eadece
new file mode 100644
index 0000000000..8df43e4dce
--- /dev/null
+++ b/test/core/http/corpus/35f0c561297cfc840ddaeebb9fc61091f4eadece
@@ -0,0 +1,2 @@
+HTTP/1.9y 200 OKH
+tes \ No newline at end of file
diff --git a/test/core/http/corpus/3953688866ccb3b4f371f1a858570d6afdb6452d b/test/core/http/corpus/3953688866ccb3b4f371f1a858570d6afdb6452d
new file mode 100644
index 0000000000..f85f1df035
--- /dev/null
+++ b/test/core/http/corpus/3953688866ccb3b4f371f1a858570d6afdb6452d
@@ -0,0 +1,3 @@
+žHTTP/1.1 200 HH
+OK TDP/01.021 : Oe:,H
+tes \ No newline at end of file
diff --git a/test/core/http/corpus/39b19c41ba537f37511eff7727733715db432e76 b/test/core/http/corpus/39b19c41ba537f37511eff7727733715db432e76
new file mode 100644
index 0000000000..fefa4512a8
--- /dev/null
+++ b/test/core/http/corpus/39b19c41ba537f37511eff7727733715db432e76
@@ -0,0 +1,2 @@
+HTTP/1.1 000 OKH
+tes \ No newline at end of file
diff --git a/test/core/http/corpus/3e3c4756d5e40b5aa250954cbac86b826e70a7ac b/test/core/http/corpus/3e3c4756d5e40b5aa250954cbac86b826e70a7ac
new file mode 100644
index 0000000000..b967b57614
--- /dev/null
+++ b/test/core/http/corpus/3e3c4756d5e40b5aa250954cbac86b826e70a7ac
@@ -0,0 +1,3 @@
+HTTP/1.1 200 OKH
+tHTTP/01.021 : Oes,H
+tes \ No newline at end of file
diff --git a/test/core/http/corpus/3f03265921120c6ffa61b944e213e062a5538d4b b/test/core/http/corpus/3f03265921120c6ffa61b944e213e062a5538d4b
new file mode 100644
index 0000000000..8af90071c3
--- /dev/null
+++ b/test/core/http/corpus/3f03265921120c6ffa61b944e213e062a5538d4b
@@ -0,0 +1,2 @@
+@TTP/1.1y 002ÿOKH
+ves \ No newline at end of file
diff --git a/test/core/http/corpus/3fb034e66ee5494a67acae1b4e6ff64ba92a2046 b/test/core/http/corpus/3fb034e66ee5494a67acae1b4e6ff64ba92a2046
new file mode 100644
index 0000000000..7d20266703
--- /dev/null
+++ b/test/core/http/corpus/3fb034e66ee5494a67acae1b4e6ff64ba92a2046
@@ -0,0 +1,2 @@
+HTTP/1.1y 200 OKH
+tes \ No newline at end of file
diff --git a/test/core/http/corpus/466059ed07a0d55d6ad5e522c7d367cbf278eaf9 b/test/core/http/corpus/466059ed07a0d55d6ad5e522c7d367cbf278eaf9
new file mode 100644
index 0000000000..5996b9a75c
--- /dev/null
+++ b/test/core/http/corpus/466059ed07a0d55d6ad5e522c7d367cbf278eaf9
@@ -0,0 +1,4 @@
+JHTTP/1.1 +00 HTTP/1.1 200 OKHHTTPOKH ‰/1.
+200 OKtH
+
+tHTH \ No newline at end of file
diff --git a/test/core/http/corpus/487725eb38511c79a9340bf4560a1411061fa6fa b/test/core/http/corpus/487725eb38511c79a9340bf4560a1411061fa6fa
new file mode 100644
index 0000000000..c59c4d2246
--- /dev/null
+++ b/test/core/http/corpus/487725eb38511c79a9340bf4560a1411061fa6fa
@@ -0,0 +1,2 @@
+HTTP/01.021 O,H
+tes \ No newline at end of file
diff --git a/test/core/http/corpus/48b9b205cae8ac21512a3f26f49fd53e21ee13c5 b/test/core/http/corpus/48b9b205cae8ac21512a3f26f49fd53e21ee13c5
new file mode 100644
index 0000000000..8ac7ceb2d5
--- /dev/null
+++ b/test/core/http/corpus/48b9b205cae8ac21512a3f26f49fd53e21ee13c5
@@ -0,0 +1,2 @@
+ITTP/11 …20O HK
+tes \ No newline at end of file
diff --git a/test/core/http/corpus/4b1f1f79a0bfa3f942479dd5f8edb59a7c257c55 b/test/core/http/corpus/4b1f1f79a0bfa3f942479dd5f8edb59a7c257c55
new file mode 100644
index 0000000000..49d1c8f1d2
--- /dev/null
+++ b/test/core/http/corpus/4b1f1f79a0bfa3f942479dd5f8edb59a7c257c55
@@ -0,0 +1,2 @@
+HTTP/1.1 200 OKH
+tes \ No newline at end of file
diff --git a/test/core/http/corpus/5028c56a5116a186b7343ff59567b47347a0796d b/test/core/http/corpus/5028c56a5116a186b7343ff59567b47347a0796d
new file mode 100644
index 0000000000..5f2c4dfef0
--- /dev/null
+++ b/test/core/http/corpus/5028c56a5116a186b7343ff59567b47347a0796d
@@ -0,0 +1,3 @@
+HTTP/1.1 200 OKH
+ HTDP/01.021 : Oes,H
+tes \ No newline at end of file
diff --git a/test/core/http/corpus/533f62b3f495ce704babf3ee8d840f196a714dff b/test/core/http/corpus/533f62b3f495ce704babf3ee8d840f196a714dff
new file mode 100644
index 0000000000..6313cd967a
--- /dev/null
+++ b/test/core/http/corpus/533f62b3f495ce704babf3ee8d840f196a714dff
@@ -0,0 +1,4 @@
+JHTT/21. 200 HTTP/1OKH.1 200 OKH
+tHTTP/01.021 Oes,H
+t
+t \ No newline at end of file
diff --git a/test/core/http/corpus/5892cbb284771fc9761caae37b19cd6e27dbc104 b/test/core/http/corpus/5892cbb284771fc9761caae37b19cd6e27dbc104
new file mode 100644
index 0000000000..fee5512152
--- /dev/null
+++ b/test/core/http/corpus/5892cbb284771fc9761caae37b19cd6e27dbc104
@@ -0,0 +1,2 @@
+JÏHTTP‰/1.200:OKHHTã/21. 2è0 HTTP/
+1.1 200 OKHHTtTP‰ \ No newline at end of file
diff --git a/test/core/http/corpus/5aeab6e4f7c2a1c09d4ac0dbdb3beac4893607ee b/test/core/http/corpus/5aeab6e4f7c2a1c09d4ac0dbdb3beac4893607ee
new file mode 100644
index 0000000000..bd7e239537
--- /dev/null
+++ b/test/core/http/corpus/5aeab6e4f7c2a1c09d4ac0dbdb3beac4893607ee
@@ -0,0 +1,2 @@
+ITTP/11 …20O HTTP/11 2*0 OKH
+ HTDP/01.021 : OesHK ,H
diff --git a/test/core/http/corpus/5b6292bdf009b0daecbc90b85cca30a88c36eec5 b/test/core/http/corpus/5b6292bdf009b0daecbc90b85cca30a88c36eec5
new file mode 100644
index 0000000000..9a15ab025f
--- /dev/null
+++ b/test/core/http/corpus/5b6292bdf009b0daecbc90b85cca30a88c36eec5
@@ -0,0 +1,2 @@
+HTTP/1. 200 OKH
+tes \ No newline at end of file
diff --git a/test/core/http/corpus/5c1659b77678b41faa4fa13df7772dae3238d1c0 b/test/core/http/corpus/5c1659b77678b41faa4fa13df7772dae3238d1c0
new file mode 100644
index 0000000000..480708e033
--- /dev/null
+++ b/test/core/http/corpus/5c1659b77678b41faa4fa13df7772dae3238d1c0
@@ -0,0 +1,2 @@
+@TTP/1.1y 00'JHTTP/1.1 +00ÿOïH HTTP/
+ve1.1 200s \ No newline at end of file
diff --git a/test/core/http/corpus/5c81f61621e29ec9c6a64ac3af9b3b216141618e b/test/core/http/corpus/5c81f61621e29ec9c6a64ac3af9b3b216141618e
new file mode 100644
index 0000000000..0ed0dfadec
--- /dev/null
+++ b/test/core/http/corpus/5c81f61621e29ec9c6a64ac3af9b3b216141618e
@@ -0,0 +1,2 @@
+ITTP/11 …20O HTTP/1.1 200 OKH
+ HTDP/01.021 : OesHK ,H
diff --git a/test/core/http/corpus/657368df512ca6294b9df16adf935a3f374a8be2 b/test/core/http/corpus/657368df512ca6294b9df16adf935a3f374a8be2
new file mode 100644
index 0000000000..1f14f69103
--- /dev/null
+++ b/test/core/http/corpus/657368df512ca6294b9df16adf935a3f374a8be2
@@ -0,0 +1,3 @@
+HTT
+/1.1 201 OKH
+des \ No newline at end of file
diff --git a/test/core/http/corpus/7fc4520094902ce2c760d70eaad5b674d2817337 b/test/core/http/corpus/7fc4520094902ce2c760d70eaad5b674d2817337
new file mode 100644
index 0000000000..8fc481d92b
--- /dev/null
+++ b/test/core/http/corpus/7fc4520094902ce2c760d70eaad5b674d2817337
@@ -0,0 +1,5 @@
+JHTTP/1.GET / HTTP/1.0
+1 200 OKH
+
+
+t \ No newline at end of file
diff --git a/test/core/http/corpus/81f59a12b458ec3604035cb962165c604d1355e6 b/test/core/http/corpus/81f59a12b458ec3604035cb962165c604d1355e6
new file mode 100644
index 0000000000..d4223ccf81
--- /dev/null
+++ b/test/core/http/corpus/81f59a12b458ec3604035cb962165c604d1355e6
@@ -0,0 +1,2 @@
+HTTP/1.1 8p) )MKH
+tes \ No newline at end of file
diff --git a/test/core/http/corpus/8f41c50e88ee8c17ecad3d41d63d38fb12aca0b9 b/test/core/http/corpus/8f41c50e88ee8c17ecad3d41d63d38fb12aca0b9
new file mode 100644
index 0000000000..99e2c48bbd
--- /dev/null
+++ b/test/core/http/corpus/8f41c50e88ee8c17ecad3d41d63d38fb12aca0b9
@@ -0,0 +1,4 @@
+HTTP/1.1 200 OKH
+tHTHTTP/1. 20TP/01.020(: Oes,H0 OKH
+
+tteses \ No newline at end of file
diff --git a/test/core/http/corpus/97c16de7fe3c390a2e6c09ff5c28f17d5c67542c b/test/core/http/corpus/97c16de7fe3c390a2e6c09ff5c28f17d5c67542c
new file mode 100644
index 0000000000..776253d750
--- /dev/null
+++ b/test/core/http/corpus/97c16de7fe3c390a2e6c09ff5c28f17d5c67542c
@@ -0,0 +1,2 @@
+ITTp/11 …20O HTTP/*1.1 200 OKH
+ HTDP/02.021 : OesHK ,H
diff --git a/test/core/http/corpus/97e4499d450c95660de86747f527e670f2012548 b/test/core/http/corpus/97e4499d450c95660de86747f527e670f2012548
new file mode 100644
index 0000000000..b1927fbf63
--- /dev/null
+++ b/test/core/http/corpus/97e4499d450c95660de86747f527e670f2012548
@@ -0,0 +1,3 @@
+HTHHTT`TT
+/1.1 201 P*/OKH
+des1.1 2T \ No newline at end of file
diff --git a/test/core/http/corpus/9a996857196e0998a1278994a9bab3d35526e7f1 b/test/core/http/corpus/9a996857196e0998a1278994a9bab3d35526e7f1
new file mode 100644
index 0000000000..0eb2c0da3a
--- /dev/null
+++ b/test/core/http/corpus/9a996857196e0998a1278994a9bab3d35526e7f1
@@ -0,0 +1,2 @@
+@TTP/1.1y 002ÿOKH
+ves \ No newline at end of file
diff --git a/test/core/http/corpus/9b7e00049ec356ecd84b1747e4e1941140139ae8 b/test/core/http/corpus/9b7e00049ec356ecd84b1747e4e1941140139ae8
new file mode 100644
index 0000000000..f93b9a08e3
--- /dev/null
+++ b/test/core/http/corpus/9b7e00049ec356ecd84b1747e4e1941140139ae8
@@ -0,0 +1,3 @@
+„HTT/21. 200 HTTP/1.1 HT!TP/1OKH.1HTTP 200 OKH
+tHT/:/80 OKH
+1 \ No newline at end of file
diff --git a/test/core/http/corpus/9f0c38ec455cc363369b3674a2d32bc21c206de1 b/test/core/http/corpus/9f0c38ec455cc363369b3674a2d32bc21c206de1
new file mode 100644
index 0000000000..4ea07dc137
--- /dev/null
+++ b/test/core/http/corpus/9f0c38ec455cc363369b3674a2d32bc21c206de1
@@ -0,0 +1,5 @@
+JHTTP/1>GET / HTTP/2.0
+1 200 OKH
+
+
+t \ No newline at end of file
diff --git a/test/core/http/corpus/a1dc7bc235e46eb21d91084d7b52d5ff9f45df85 b/test/core/http/corpus/a1dc7bc235e46eb21d91084d7b52d5ff9f45df85
new file mode 100644
index 0000000000..2e95bac35c
--- /dev/null
+++ b/test/core/http/corpus/a1dc7bc235e46eb21d91084d7b52d5ff9f45df85
@@ -0,0 +1,3 @@
+„HTT/21. 200 HTTP/1.1 HT!TP/1OKH.1HTTP 200 OKH
+tHT//80) OKH
+1 \ No newline at end of file
diff --git a/test/core/http/corpus/aa3bbb876eafa8ad8ca4ff2eabc6dd94341d2441 b/test/core/http/corpus/aa3bbb876eafa8ad8ca4ff2eabc6dd94341d2441
new file mode 100644
index 0000000000..837449dda3
--- /dev/null
+++ b/test/core/http/corpus/aa3bbb876eafa8ad8ca4ff2eabc6dd94341d2441
@@ -0,0 +1,2 @@
+HTTP/1.1 80î OH
+tes \ No newline at end of file
diff --git a/test/core/http/corpus/b04fea5c041c707db0ad9c09a81672557b52cc47 b/test/core/http/corpus/b04fea5c041c707db0ad9c09a81672557b52cc47
new file mode 100644
index 0000000000..10905bed39
--- /dev/null
+++ b/test/core/http/corpus/b04fea5c041c707db0ad9c09a81672557b52cc47
@@ -0,0 +1,2 @@
+JHTTP/1.1 200 OKH
+tes \ No newline at end of file
diff --git a/test/core/http/corpus/c4acff8aa2ff886f35439f72625d05002990c940 b/test/core/http/corpus/c4acff8aa2ff886f35439f72625d05002990c940
new file mode 100644
index 0000000000..4539d9f012
--- /dev/null
+++ b/test/core/http/corpus/c4acff8aa2ff886f35439f72625d05002990c940
@@ -0,0 +1,4 @@
+JHTT/21. 200 HTTP/2OKH.1 200 OKH
+tHTTP/01.021 Oes,H
+t
+t \ No newline at end of file
diff --git a/test/core/http/corpus/c55ce9995b002e88a102ae2891a71e8bacb346c8 b/test/core/http/corpus/c55ce9995b002e88a102ae2891a71e8bacb346c8
new file mode 100644
index 0000000000..2704e4fb39
--- /dev/null
+++ b/test/core/http/corpus/c55ce9995b002e88a102ae2891a71e8bacb346c8
@@ -0,0 +1,2 @@
+HTTP/1.1 767) OKH
+tes \ No newline at end of file
diff --git a/test/core/http/corpus/ca5a0c00b8969310acb73d15ad0d0c602f1bd0c2 b/test/core/http/corpus/ca5a0c00b8969310acb73d15ad0d0c602f1bd0c2
new file mode 100644
index 0000000000..f5cbbc69e7
--- /dev/null
+++ b/test/core/http/corpus/ca5a0c00b8969310acb73d15ad0d0c602f1bd0c2
@@ -0,0 +1,3 @@
+HJHTHHTT`TT
+/1.1 201 P*HHTT/T1/OKH
+des1.1 2.1T 20T1 \ No newline at end of file
diff --git a/test/core/http/corpus/cce734f1b263de6994f7950e0df7bf0c81449f70 b/test/core/http/corpus/cce734f1b263de6994f7950e0df7bf0c81449f70
new file mode 100644
index 0000000000..f6ea09c41b
--- /dev/null
+++ b/test/core/http/corpus/cce734f1b263de6994f7950e0df7bf0c81449f70
@@ -0,0 +1,3 @@
+JHTT/21. 200 HTTPHTTP/1.1 80î OH/1OKH.0 200 OKH
+tHTTP/0
+te \ No newline at end of file
diff --git a/test/core/http/corpus/d4c3e4cf5d035596433c30eaabbd2b2925f4b453 b/test/core/http/corpus/d4c3e4cf5d035596433c30eaabbd2b2925f4b453
new file mode 100644
index 0000000000..be33d81102
--- /dev/null
+++ b/test/core/http/corpus/d4c3e4cf5d035596433c30eaabbd2b2925f4b453
@@ -0,0 +1,3 @@
+HTTP/1.1 200 OKH
+ HTTP/01.021 : Oes,H
+tes \ No newline at end of file
diff --git a/test/core/http/corpus/d51f7fcc089f269c7afecaaca51966bab5fde629 b/test/core/http/corpus/d51f7fcc089f269c7afecaaca51966bab5fde629
new file mode 100644
index 0000000000..e81a59f30b
--- /dev/null
+++ b/test/core/http/corpus/d51f7fcc089f269c7afecaaca51966bab5fde629
@@ -0,0 +1,2 @@
+ÏHTTP‰/1.200:OKH
+tes \ No newline at end of file
diff --git a/test/core/http/corpus/d936dad71c129cf659097dc3db64550c4dd467f4 b/test/core/http/corpus/d936dad71c129cf659097dc3db64550c4dd467f4
new file mode 100644
index 0000000000..ccf918751d
--- /dev/null
+++ b/test/core/http/corpus/d936dad71c129cf659097dc3db64550c4dd467f4
@@ -0,0 +1,2 @@
+HTTP‰/1.200 OKH
+tes \ No newline at end of file
diff --git a/test/core/http/corpus/e275b0466a8fb8d9e0e15856e343ddc7112ae66b b/test/core/http/corpus/e275b0466a8fb8d9e0e15856e343ddc7112ae66b
new file mode 100644
index 0000000000..b6fc095920
--- /dev/null
+++ b/test/core/http/corpus/e275b0466a8fb8d9e0e15856e343ddc7112ae66b
@@ -0,0 +1,3 @@
+JHTT/21. 200 HTTRHTTP/1.1 0î OL/1OKH.0 200 OKH
+tHTTP/0
+te \ No newline at end of file
diff --git a/test/core/http/corpus/e5c364b205855a2991ce07482aebb2a3a6147089 b/test/core/http/corpus/e5c364b205855a2991ce07482aebb2a3a6147089
new file mode 100644
index 0000000000..98b5f62b2a
--- /dev/null
+++ b/test/core/http/corpus/e5c364b205855a2991ce07482aebb2a3a6147089
@@ -0,0 +1,2 @@
+TTHP‰/1.200 OKH
+tes \ No newline at end of file
diff --git a/test/core/http/corpus/ee2077e08c3cfccd9bd82adb574ac4fc7d429afb b/test/core/http/corpus/ee2077e08c3cfccd9bd82adb574ac4fc7d429afb
new file mode 100644
index 0000000000..78b36c913b
--- /dev/null
+++ b/test/core/http/corpus/ee2077e08c3cfccd9bd82adb574ac4fc7d429afb
@@ -0,0 +1,2 @@
+ITHTTTPHT/12 …2S HTKP/1.1 767) OKH
+tes \ No newline at end of file
diff --git a/test/core/http/corpus/fc5d4b9117ba9e87388174aee4f4970bdfe8d066 b/test/core/http/corpus/fc5d4b9117ba9e87388174aee4f4970bdfe8d066
new file mode 100644
index 0000000000..06f1a3b800
--- /dev/null
+++ b/test/core/http/corpus/fc5d4b9117ba9e87388174aee4f4970bdfe8d066
@@ -0,0 +1 @@
+HH \ No newline at end of file
diff --git a/test/core/http/corpus/fdeb2c7daa9e7704f67e141106384e6dd0042c0b b/test/core/http/corpus/fdeb2c7daa9e7704f67e141106384e6dd0042c0b
new file mode 100644
index 0000000000..eb63d31fa5
--- /dev/null
+++ b/test/core/http/corpus/fdeb2c7daa9e7704f67e141106384e6dd0042c0b
@@ -0,0 +1,2 @@
+ITTP/11 …20O HTTP/1.1 200 OKH
+HT DP/01021 : OesHK ,H
diff --git a/test/core/http/corpus/request1.txt b/test/core/http/corpus/request1.txt
new file mode 100644
index 0000000000..16a750fbf9
--- /dev/null
+++ b/test/core/http/corpus/request1.txt
@@ -0,0 +1,3 @@
+GET / HTTP/1.0
+
+
diff --git a/test/core/http/corpus/request2.txt b/test/core/http/corpus/request2.txt
new file mode 100644
index 0000000000..897a28406c
--- /dev/null
+++ b/test/core/http/corpus/request2.txt
@@ -0,0 +1,3 @@
+GET / HTTP/1.0
+Content-Length: 128
+
diff --git a/test/core/http/corpus/request3.txt b/test/core/http/corpus/request3.txt
new file mode 100644
index 0000000000..aaa75bbb52
--- /dev/null
+++ b/test/core/http/corpus/request3.txt
@@ -0,0 +1,3 @@
+GET / HTTP/1.1
+Content-Length: 128
+
diff --git a/test/core/http/corpus/request4.txt b/test/core/http/corpus/request4.txt
new file mode 100644
index 0000000000..593f6fa7b6
--- /dev/null
+++ b/test/core/http/corpus/request4.txt
@@ -0,0 +1,3 @@
+GET /foo.bar HTTP/1.1
+Content-Length: 128
+
diff --git a/test/core/http/corpus/request5.txt b/test/core/http/corpus/request5.txt
new file mode 100644
index 0000000000..19fb244355
--- /dev/null
+++ b/test/core/http/corpus/request5.txt
@@ -0,0 +1,3 @@
+POST / HTTP/1.0
+
+asdlfkjadsfl;akdjsfasdf
diff --git a/test/core/http/corpus/response1.txt b/test/core/http/corpus/response1.txt
new file mode 100644
index 0000000000..a17139982e
--- /dev/null
+++ b/test/core/http/corpus/response1.txt
@@ -0,0 +1,4 @@
+HTTP/1.1 200 OK
+test: hello
+
+abcd
diff --git a/test/core/http/corpus/response2.txt b/test/core/http/corpus/response2.txt
new file mode 100644
index 0000000000..1b86449bb6
--- /dev/null
+++ b/test/core/http/corpus/response2.txt
@@ -0,0 +1,4 @@
+HTTP/0.9 200 OK
+test: hello
+
+abcd
diff --git a/test/core/http/corpus/response3.txt b/test/core/http/corpus/response3.txt
new file mode 100644
index 0000000000..9e5b046c59
--- /dev/null
+++ b/test/core/http/corpus/response3.txt
@@ -0,0 +1,5 @@
+HTTP/0.9 200 OK
+test: hello
+content-length: 102384398
+
+abcd
diff --git a/test/core/http/corpus/response4.txt b/test/core/http/corpus/response4.txt
new file mode 100644
index 0000000000..b237b01fe0
--- /dev/null
+++ b/test/core/http/corpus/response4.txt
@@ -0,0 +1,2 @@
+HTTP/1.1 404 Not Found
+
diff --git a/test/core/http/corpus/response5.txt b/test/core/http/corpus/response5.txt
new file mode 100644
index 0000000000..2630595713
--- /dev/null
+++ b/test/core/http/corpus/response5.txt
@@ -0,0 +1,5 @@
+HTTP/0.9 200 OK
+test: hello
+content-length: 4
+
+abcd
diff --git a/test/core/http/corpus/response6.txt b/test/core/http/corpus/response6.txt
new file mode 100644
index 0000000000..797b6ee773
--- /dev/null
+++ b/test/core/http/corpus/response6.txt
@@ -0,0 +1,5 @@
+HTTP/0.9 200 OK
+test: hello
+content-length: 6
+
+abcd
diff --git a/test/core/http/corpus/toolong.txt b/test/core/http/corpus/toolong.txt
new file mode 100644
index 0000000000..9a9d5e2fc3
--- /dev/null
+++ b/test/core/http/corpus/toolong.txt
@@ -0,0 +1,2 @@
+GET / HTTP/1.1
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa: bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
diff --git a/test/core/http/format_request_test.c b/test/core/http/format_request_test.c
index a676420b70..0d21e1200b 100644
--- a/test/core/http/format_request_test.c
+++ b/test/core/http/format_request_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/client_config/lb_policies/pick_first.h b/test/core/http/fuzzer.c
index dba86ea7ad..7e4f4eb993 100644
--- a/src/core/lib/client_config/lb_policies/pick_first.h
+++ b/test/core/http/fuzzer.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,13 +31,20 @@
*
*/
-#ifndef GRPC_CORE_LIB_CLIENT_CONFIG_LB_POLICIES_PICK_FIRST_H
-#define GRPC_CORE_LIB_CLIENT_CONFIG_LB_POLICIES_PICK_FIRST_H
+#include <stdint.h>
+#include <string.h>
-#include "src/core/lib/client_config/lb_policy_factory.h"
+#include <grpc/support/alloc.h>
-/** Returns a load balancing factory for the pick first policy, which picks up
- * the first subchannel from \a subchannels to succesfully connect */
-grpc_lb_policy_factory *grpc_pick_first_lb_factory_create();
+#include "src/core/lib/http/parser.h"
-#endif /* GRPC_CORE_LIB_CLIENT_CONFIG_LB_POLICIES_PICK_FIRST_H */
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ grpc_http_parser parser;
+ grpc_http_parser_init(&parser);
+ gpr_slice slice = gpr_slice_from_copied_buffer((const char *)data, size);
+ grpc_http_parser_parse(&parser, slice);
+ grpc_http_parser_eof(&parser);
+ gpr_slice_unref(slice);
+ grpc_http_parser_destroy(&parser);
+ return 0;
+}
diff --git a/test/core/http/httpcli_test.c b/test/core/http/httpcli_test.c
index 1fdbcd0800..d3a68d0eb8 100644
--- a/test/core/http/httpcli_test.c
+++ b/test/core/http/httpcli_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/http/httpscli_test.c b/test/core/http/httpscli_test.c
index 71db3e72bf..d807336904 100644
--- a/test/core/http/httpscli_test.c
+++ b/test/core/http/httpscli_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/http/parser_test.c b/test/core/http/parser_test.c
index eeb4de7f30..10936754d9 100644
--- a/test/core/http/parser_test.c
+++ b/test/core/http/parser_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -178,6 +178,37 @@ static void test_fails(grpc_slice_split_mode split_mode, char *response) {
gpr_free(slices);
}
+static const uint8_t failed_test1[] = {
+ 0x9e, 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x4a,
+ 0x48, 0x54, 0x54, 0x30, 0x32, 0x16, 0xa, 0x2f, 0x48, 0x20,
+ 0x31, 0x2e, 0x31, 0x20, 0x32, 0x30, 0x31, 0x54, 0x54, 0xb9,
+ 0x32, 0x31, 0x2e, 0x20, 0x32, 0x30, 0x20,
+};
+
+typedef struct {
+ const char *name;
+ const uint8_t *data;
+ size_t length;
+} failed_test;
+
+#define FAILED_TEST(name) \
+ { #name, name, sizeof(name) }
+
+failed_test failed_tests[] = {
+ FAILED_TEST(failed_test1),
+};
+
+static void test_doesnt_crash(failed_test t) {
+ gpr_log(GPR_DEBUG, "Run previously failed test: %s", t.name);
+ grpc_http_parser p;
+ grpc_http_parser_init(&p);
+ gpr_slice slice =
+ gpr_slice_from_copied_buffer((const char *)t.data, t.length);
+ grpc_http_parser_parse(&p, slice);
+ gpr_slice_unref(slice);
+ grpc_http_parser_destroy(&p);
+}
+
int main(int argc, char **argv) {
size_t i;
const grpc_slice_split_mode split_modes[] = {GRPC_SLICE_SPLIT_IDENTITY,
@@ -186,6 +217,10 @@ int main(int argc, char **argv) {
grpc_test_init(argc, argv);
+ for (i = 0; i < GPR_ARRAY_SIZE(failed_tests); i++) {
+ test_doesnt_crash(failed_tests[i]);
+ }
+
for (i = 0; i < GPR_ARRAY_SIZE(split_modes); i++) {
test_succeeds(split_modes[i],
"HTTP/1.0 200 OK\r\n"
diff --git a/test/core/http/test_server.py b/test/core/http/test_server.py
index 9f8d052cea..86c2fe96bf 100755
--- a/test/core/http/test_server.py
+++ b/test/core/http/test_server.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python2.7
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/test/core/internal_api_canaries/iomgr.c b/test/core/internal_api_canaries/iomgr.c
new file mode 100644
index 0000000000..04d66994cd
--- /dev/null
+++ b/test/core/internal_api_canaries/iomgr.c
@@ -0,0 +1,115 @@
+/*
+ *
+ * Copyright 2015-2016, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include "src/core/lib/iomgr/iomgr.h"
+#include "src/core/lib/iomgr/closure.h"
+#include "src/core/lib/iomgr/endpoint.h"
+#include "src/core/lib/iomgr/exec_ctx.h"
+#include "src/core/lib/iomgr/executor.h"
+
+/*******************************************************************************
+ * NOTE: If this test fails to compile, then the api changes are likely to cause
+ * merge failures downstream. Please pay special attention to reviewing
+ * these changes, and solicit help as appropriate when merging downstream.
+ *
+ * This test is NOT expected to be run directly.
+ ******************************************************************************/
+
+static void test_code(void) {
+ /* iomgr.h */
+ grpc_iomgr_init();
+ grpc_iomgr_shutdown();
+
+ /* closure.h */
+ grpc_closure closure;
+ closure.cb = NULL;
+ closure.cb_arg = NULL;
+ closure.final_data = 0;
+
+ grpc_closure_list closure_list = GRPC_CLOSURE_LIST_INIT;
+ closure_list.head = NULL;
+ closure_list.tail = NULL;
+
+ grpc_closure_init(&closure, NULL, NULL);
+
+ grpc_closure_create(NULL, NULL);
+
+ grpc_closure_list_move(NULL, NULL);
+ grpc_closure_list_add(NULL, NULL, true);
+ bool x = grpc_closure_list_empty(closure_list);
+ grpc_closure_next(&closure);
+
+ /* exec_ctx.h */
+ grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
+ grpc_exec_ctx_flush(&exec_ctx);
+ grpc_exec_ctx_finish(&exec_ctx);
+ grpc_exec_ctx_enqueue(&exec_ctx, &closure, x, NULL);
+ grpc_exec_ctx_enqueue_list(&exec_ctx, &closure_list, NULL);
+
+ /* endpoint.h */
+ grpc_endpoint endpoint;
+ grpc_endpoint_vtable vtable = {
+ grpc_endpoint_read, grpc_endpoint_write,
+ grpc_endpoint_add_to_pollset, grpc_endpoint_add_to_pollset_set,
+ grpc_endpoint_shutdown, grpc_endpoint_destroy,
+ grpc_endpoint_get_peer};
+ endpoint.vtable = &vtable;
+
+ grpc_endpoint_read(&exec_ctx, &endpoint, NULL, NULL);
+ grpc_endpoint_get_peer(&endpoint);
+ grpc_endpoint_write(&exec_ctx, &endpoint, NULL, NULL);
+ grpc_endpoint_shutdown(&exec_ctx, &endpoint);
+ grpc_endpoint_destroy(&exec_ctx, &endpoint);
+ grpc_endpoint_add_to_pollset(&exec_ctx, &endpoint, NULL);
+ grpc_endpoint_add_to_pollset_set(&exec_ctx, &endpoint, NULL);
+
+ /* executor.h */
+ grpc_executor_init();
+ grpc_executor_enqueue(&closure, x);
+ grpc_executor_shutdown();
+
+ /* pollset.h */
+ grpc_pollset_size();
+ grpc_pollset_init(NULL, NULL);
+ grpc_pollset_shutdown(NULL, NULL, NULL);
+ grpc_pollset_reset(NULL);
+ grpc_pollset_destroy(NULL);
+ grpc_pollset_work(NULL, NULL, NULL, gpr_now(GPR_CLOCK_REALTIME),
+ gpr_now(GPR_CLOCK_MONOTONIC));
+ grpc_pollset_kick(NULL, NULL);
+}
+
+int main(void) {
+ if (false) test_code();
+ return 0;
+}
diff --git a/test/core/internal_api_canaries/support.c b/test/core/internal_api_canaries/support.c
new file mode 100644
index 0000000000..7e00e0d2ff
--- /dev/null
+++ b/test/core/internal_api_canaries/support.c
@@ -0,0 +1,58 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+/*******************************************************************************
+ * NOTE: If this test fails to compile, then the api changes are likely to cause
+ * merge failures downstream. Please pay special attention to reviewing
+ * these changes, and solicit help as appropriate when merging downstream.
+ *
+ * This test is NOT expected to be run directly.
+ ******************************************************************************/
+
+#include "src/core/lib/support/env.h"
+#include "src/core/lib/support/load_file.h"
+#include "src/core/lib/support/tmpfile.h"
+
+static void test_code(void) {
+ /* env.h */
+ gpr_set_env("abc", gpr_getenv("xyz"));
+ /* load_file.h */
+ gpr_load_file("abc", 1, NULL);
+ /* tmpfile.h */
+ fclose(gpr_tmpfile("foo", NULL));
+}
+
+int main(void) {
+ if (false) test_code();
+ return 0;
+}
diff --git a/test/core/internal_api_canaries/transport.c b/test/core/internal_api_canaries/transport.c
new file mode 100644
index 0000000000..01daabaa56
--- /dev/null
+++ b/test/core/internal_api_canaries/transport.c
@@ -0,0 +1,81 @@
+/*
+ *
+ * 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.
+ *
+ */
+
+/*******************************************************************************
+ * NOTE: If this test fails to compile, then the api changes are likely to cause
+ * merge failures downstream. Please pay special attention to reviewing
+ * these changes, and solicit help as appropriate when merging downstream.
+ *
+ * This test is NOT expected to be run directly.
+ ******************************************************************************/
+
+#include "src/core/lib/transport/transport.h"
+#include "src/core/lib/transport/transport_impl.h"
+
+static void test_code(void) {
+ /* transport_impl.h */
+ grpc_transport transport;
+ grpc_transport_vtable vtable = {12345,
+ grpc_transport_init_stream,
+ grpc_transport_set_pollset,
+ grpc_transport_perform_stream_op,
+ grpc_transport_perform_op,
+ grpc_transport_destroy_stream,
+ grpc_transport_destroy,
+ grpc_transport_get_peer};
+ transport.vtable = &vtable;
+
+ /* transport.h */
+ GRPC_STREAM_REF_INIT(NULL, 0, NULL, NULL, "xyz");
+ GPR_ASSERT(0 == grpc_transport_stream_size(NULL));
+ GPR_ASSERT(grpc_transport_init_stream(&transport, NULL, NULL, NULL, NULL));
+ grpc_transport_set_pollset(&transport, NULL, NULL, NULL);
+ grpc_transport_destroy_stream(&transport, NULL, NULL);
+ grpc_transport_stream_op_finish_with_failure(NULL, NULL);
+ grpc_transport_stream_op_add_cancellation(NULL, GRPC_STATUS_UNAVAILABLE);
+ grpc_transport_stream_op_add_close(NULL, GRPC_STATUS_UNAVAILABLE,
+ grpc_transport_op_string(NULL));
+ grpc_transport_perform_stream_op(&transport, NULL, NULL, NULL);
+ grpc_transport_perform_op(&transport, NULL, NULL);
+ grpc_transport_ping(&transport, NULL);
+ grpc_transport_goaway(&transport, GRPC_STATUS_UNAVAILABLE,
+ gpr_slice_malloc(0));
+ grpc_transport_close(&transport);
+ grpc_transport_destroy(&transport, NULL);
+ GPR_ASSERT("xyz" == grpc_transport_get_peer(&transport, NULL));
+}
+
+int main(void) {
+ if (false) test_code();
+ return 0;
+}
diff --git a/test/core/iomgr/endpoint_pair_test.c b/test/core/iomgr/endpoint_pair_test.c
index a91a9a7084..0df94a878f 100644
--- a/test/core/iomgr/endpoint_pair_test.c
+++ b/test/core/iomgr/endpoint_pair_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,14 +31,12 @@
*
*/
-#include "src/core/lib/iomgr/tcp_posix.h"
-
+#include "src/core/lib/iomgr/endpoint_pair.h"
#include <grpc/grpc.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/time.h>
#include <grpc/support/useful.h>
-#include "src/core/lib/iomgr/endpoint_pair.h"
#include "test/core/iomgr/endpoint_tests.h"
#include "test/core/util/test_config.h"
diff --git a/test/core/iomgr/endpoint_tests.c b/test/core/iomgr/endpoint_tests.c
index cb23f58eca..52082c3c6b 100644
--- a/test/core/iomgr/endpoint_tests.c
+++ b/test/core/iomgr/endpoint_tests.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/iomgr/endpoint_tests.h b/test/core/iomgr/endpoint_tests.h
index c7542a03e3..586010c863 100644
--- a/test/core/iomgr/endpoint_tests.h
+++ b/test/core/iomgr/endpoint_tests.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/iomgr/fd_conservation_posix_test.c b/test/core/iomgr/fd_conservation_posix_test.c
index aae94e71b2..bbb3f46497 100644
--- a/test/core/iomgr/fd_conservation_posix_test.c
+++ b/test/core/iomgr/fd_conservation_posix_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/iomgr/fd_posix_test.c b/test/core/iomgr/fd_posix_test.c
index 203e1e3899..f97f33712e 100644
--- a/test/core/iomgr/fd_posix_test.c
+++ b/test/core/iomgr/fd_posix_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/iomgr/fd_posix.h"
+#include "src/core/lib/iomgr/ev_posix.h"
#include <ctype.h>
#include <errno.h>
@@ -50,7 +50,8 @@
#include <grpc/support/sync.h>
#include <grpc/support/time.h>
-#include "src/core/lib/iomgr/pollset_posix.h"
+#include "src/core/lib/iomgr/ev_posix.h"
+#include "src/core/lib/iomgr/iomgr.h"
#include "test/core/util/test_config.h"
static gpr_mu *g_mu;
@@ -134,7 +135,7 @@ static void session_shutdown_cb(grpc_exec_ctx *exec_ctx, void *arg, /*session */
static void session_read_cb(grpc_exec_ctx *exec_ctx, void *arg, /*session */
bool success) {
session *se = arg;
- int fd = se->em_fd->fd;
+ int fd = grpc_fd_wrapped_fd(se->em_fd);
ssize_t read_once = 0;
ssize_t read_total = 0;
@@ -204,7 +205,7 @@ static void listen_cb(grpc_exec_ctx *exec_ctx, void *arg, /*=sv_arg*/
return;
}
- fd = accept(listen_em_fd->fd, (struct sockaddr *)&ss, &slen);
+ fd = accept(grpc_fd_wrapped_fd(listen_em_fd), (struct sockaddr *)&ss, &slen);
GPR_ASSERT(fd >= 0);
GPR_ASSERT(fd < FD_SETSIZE);
flags = fcntl(fd, F_GETFL, 0);
@@ -306,7 +307,7 @@ static void client_session_shutdown_cb(grpc_exec_ctx *exec_ctx,
static void client_session_write(grpc_exec_ctx *exec_ctx, void *arg, /*client */
bool success) {
client *cl = arg;
- int fd = cl->em_fd->fd;
+ int fd = grpc_fd_wrapped_fd(cl->em_fd);
ssize_t write_once = 0;
if (!success) {
diff --git a/test/core/iomgr/resolve_address_test.c b/test/core/iomgr/resolve_address_test.c
index 7aec91a85e..a66edc9df2 100644
--- a/test/core/iomgr/resolve_address_test.c
+++ b/test/core/iomgr/resolve_address_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/iomgr/sockaddr_utils_test.c b/test/core/iomgr/sockaddr_utils_test.c
index 19bee9a399..a330314443 100644
--- a/test/core/iomgr/sockaddr_utils_test.c
+++ b/test/core/iomgr/sockaddr_utils_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/iomgr/socket_utils_test.c b/test/core/iomgr/socket_utils_test.c
index 8238a9c33f..85c027a978 100644
--- a/test/core/iomgr/socket_utils_test.c
+++ b/test/core/iomgr/socket_utils_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/iomgr/tcp_client_posix_test.c b/test/core/iomgr/tcp_client_posix_test.c
index d798bf241d..22dc9366c3 100644
--- a/test/core/iomgr/tcp_client_posix_test.c
+++ b/test/core/iomgr/tcp_client_posix_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -45,6 +45,7 @@
#include <grpc/support/time.h>
#include "src/core/lib/iomgr/iomgr.h"
+#include "src/core/lib/iomgr/pollset_set.h"
#include "src/core/lib/iomgr/socket_utils_posix.h"
#include "src/core/lib/iomgr/timer.h"
#include "test/core/util/test_config.h"
diff --git a/test/core/iomgr/tcp_posix_test.c b/test/core/iomgr/tcp_posix_test.c
index 1aa3637099..7a98fa0e50 100644
--- a/test/core/iomgr/tcp_posix_test.c
+++ b/test/core/iomgr/tcp_posix_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/iomgr/tcp_server_posix_test.c b/test/core/iomgr/tcp_server_posix_test.c
index cde147d30e..266d2396af 100644
--- a/test/core/iomgr/tcp_server_posix_test.c
+++ b/test/core/iomgr/tcp_server_posix_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/iomgr/time_averaged_stats_test.c b/test/core/iomgr/time_averaged_stats_test.c
index a49d899e30..72f8559d66 100644
--- a/test/core/iomgr/time_averaged_stats_test.c
+++ b/test/core/iomgr/time_averaged_stats_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/iomgr/timer_heap_test.c b/test/core/iomgr/timer_heap_test.c
index d230c831ca..d1cb0047f2 100644
--- a/test/core/iomgr/timer_heap_test.c
+++ b/test/core/iomgr/timer_heap_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/iomgr/timer_list_test.c b/test/core/iomgr/timer_list_test.c
index 0333a75059..2e0f5c8701 100644
--- a/test/core/iomgr/timer_list_test.c
+++ b/test/core/iomgr/timer_list_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/iomgr/udp_server_test.c b/test/core/iomgr/udp_server_test.c
index 0c55ef08b4..463d40a46b 100644
--- a/test/core/iomgr/udp_server_test.c
+++ b/test/core/iomgr/udp_server_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -36,8 +36,8 @@
#include <grpc/support/log.h>
#include <grpc/support/sync.h>
#include <grpc/support/time.h>
+#include "src/core/lib/iomgr/ev_posix.h"
#include "src/core/lib/iomgr/iomgr.h"
-#include "src/core/lib/iomgr/pollset_posix.h"
#include "test/core/util/test_config.h"
#include <netinet/in.h>
diff --git a/test/core/iomgr/workqueue_test.c b/test/core/iomgr/workqueue_test.c
index 2d9b5d0d55..874e696fc2 100644
--- a/test/core/iomgr/workqueue_test.c
+++ b/test/core/iomgr/workqueue_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/json/corpus/006d552e952c42b5340baaeb85c2cb80c81e78dd b/test/core/json/corpus/006d552e952c42b5340baaeb85c2cb80c81e78dd
new file mode 100644
index 0000000000..762064c7a4
--- /dev/null
+++ b/test/core/json/corpus/006d552e952c42b5340baaeb85c2cb80c81e78dd
@@ -0,0 +1 @@
+1e9 \ No newline at end of file
diff --git a/test/core/json/corpus/007eb985c44b6089a34995a7d9ebf349f1c2bf18 b/test/core/json/corpus/007eb985c44b6089a34995a7d9ebf349f1c2bf18
new file mode 100644
index 0000000000..8affa52ec5
--- /dev/null
+++ b/test/core/json/corpus/007eb985c44b6089a34995a7d9ebf349f1c2bf18
@@ -0,0 +1 @@
+{}3[ \ No newline at end of file
diff --git a/test/core/json/corpus/03b74a08f23734691512cb12d0b38d189a8df905 b/test/core/json/corpus/03b74a08f23734691512cb12d0b38d189a8df905
new file mode 100644
index 0000000000..7ffe3f3e08
--- /dev/null
+++ b/test/core/json/corpus/03b74a08f23734691512cb12d0b38d189a8df905
@@ -0,0 +1 @@
+0.6991 \ No newline at end of file
diff --git a/test/core/json/corpus/0495693af07325fb0d52eafd2d4c4d802c6457c6 b/test/core/json/corpus/0495693af07325fb0d52eafd2d4c4d802c6457c6
new file mode 100644
index 0000000000..f7752eeee7
--- /dev/null
+++ b/test/core/json/corpus/0495693af07325fb0d52eafd2d4c4d802c6457c6
@@ -0,0 +1 @@
+0.83282 \ No newline at end of file
diff --git a/test/core/json/corpus/05454ab015cf74e9c3e8574d995517e05dd56751 b/test/core/json/corpus/05454ab015cf74e9c3e8574d995517e05dd56751
new file mode 100644
index 0000000000..8377c554f7
--- /dev/null
+++ b/test/core/json/corpus/05454ab015cf74e9c3e8574d995517e05dd56751
@@ -0,0 +1 @@
+21.595» \ No newline at end of file
diff --git a/test/core/json/corpus/0716d9708d321ffb6a00818614779e779925365c b/test/core/json/corpus/0716d9708d321ffb6a00818614779e779925365c
new file mode 100644
index 0000000000..8e2afd3427
--- /dev/null
+++ b/test/core/json/corpus/0716d9708d321ffb6a00818614779e779925365c
@@ -0,0 +1 @@
+17 \ No newline at end of file
diff --git a/test/core/json/corpus/0a9b3522a8e711e3bd53e2c2eb9d28b34a003acc b/test/core/json/corpus/0a9b3522a8e711e3bd53e2c2eb9d28b34a003acc
new file mode 100644
index 0000000000..d249eb2e13
--- /dev/null
+++ b/test/core/json/corpus/0a9b3522a8e711e3bd53e2c2eb9d28b34a003acc
@@ -0,0 +1 @@
+[2.1e "ˆÃ796;]3* \ No newline at end of file
diff --git a/test/core/json/corpus/0ade7c2cf97f75d009975f4d720d1fa6c19f4897 b/test/core/json/corpus/0ade7c2cf97f75d009975f4d720d1fa6c19f4897
new file mode 100644
index 0000000000..f11c82a4cb
--- /dev/null
+++ b/test/core/json/corpus/0ade7c2cf97f75d009975f4d720d1fa6c19f4897
@@ -0,0 +1 @@
+9 \ No newline at end of file
diff --git a/test/core/json/corpus/0b1fcf0ac07e1e50cfe27316c7e1c8cc997f1318 b/test/core/json/corpus/0b1fcf0ac07e1e50cfe27316c7e1c8cc997f1318
new file mode 100644
index 0000000000..b66d61bb14
--- /dev/null
+++ b/test/core/json/corpus/0b1fcf0ac07e1e50cfe27316c7e1c8cc997f1318
@@ -0,0 +1 @@
+{"'5E885,!\u065E{ \ No newline at end of file
diff --git a/test/core/json/corpus/0bc13548356d08009703d35e9c8d74397367bdfb b/test/core/json/corpus/0bc13548356d08009703d35e9c8d74397367bdfb
new file mode 100644
index 0000000000..2c23914282
--- /dev/null
+++ b/test/core/json/corpus/0bc13548356d08009703d35e9c8d74397367bdfb
@@ -0,0 +1 @@
+nu,*: \ No newline at end of file
diff --git a/test/core/json/corpus/0ea9a160c57f2c705dce037196e360bf9be739c5 b/test/core/json/corpus/0ea9a160c57f2c705dce037196e360bf9be739c5
new file mode 100644
index 0000000000..f92893d1da
--- /dev/null
+++ b/test/core/json/corpus/0ea9a160c57f2c705dce037196e360bf9be739c5
@@ -0,0 +1 @@
+f' \ No newline at end of file
diff --git a/test/core/json/corpus/0f20d9c46991c0e97419e2cca07c7389f1d6bdf8 b/test/core/json/corpus/0f20d9c46991c0e97419e2cca07c7389f1d6bdf8
new file mode 100644
index 0000000000..05a6fb2444
--- /dev/null
+++ b/test/core/json/corpus/0f20d9c46991c0e97419e2cca07c7389f1d6bdf8
@@ -0,0 +1 @@
+1e "ˆÃ9 \ No newline at end of file
diff --git a/test/core/json/corpus/0f2e2e6346f70c419300b661251754d50f7ca8ea b/test/core/json/corpus/0f2e2e6346f70c419300b661251754d50f7ca8ea
new file mode 100644
index 0000000000..e429f5078e
--- /dev/null
+++ b/test/core/json/corpus/0f2e2e6346f70c419300b661251754d50f7ca8ea
@@ -0,0 +1 @@
+[2.1982 \ No newline at end of file
diff --git a/test/core/json/corpus/108b310facc1a193833fc2971fd83081f775ea0c b/test/core/json/corpus/108b310facc1a193833fc2971fd83081f775ea0c
new file mode 100644
index 0000000000..45be455fdc
--- /dev/null
+++ b/test/core/json/corpus/108b310facc1a193833fc2971fd83081f775ea0c
@@ -0,0 +1 @@
+false) \ No newline at end of file
diff --git a/test/core/json/corpus/108e5bcd69b19ad0df743641085163b84f376fe8 b/test/core/json/corpus/108e5bcd69b19ad0df743641085163b84f376fe8
new file mode 100644
index 0000000000..0973cbb254
--- /dev/null
+++ b/test/core/json/corpus/108e5bcd69b19ad0df743641085163b84f376fe8
@@ -0,0 +1,2 @@
+[{
+"ˆÃ" "ˆÃ" \ No newline at end of file
diff --git a/test/core/json/corpus/10e3ecd5624465020fdf0662a67e0f0885536cae b/test/core/json/corpus/10e3ecd5624465020fdf0662a67e0f0885536cae
new file mode 100644
index 0000000000..5230607b9c
--- /dev/null
+++ b/test/core/json/corpus/10e3ecd5624465020fdf0662a67e0f0885536cae
@@ -0,0 +1 @@
+{"":0,(!Ó'(\'!) \ No newline at end of file
diff --git a/test/core/json/corpus/113c8c97cbb0a2b6176d75eaa9ac9baaa7ccddcc b/test/core/json/corpus/113c8c97cbb0a2b6176d75eaa9ac9baaa7ccddcc
new file mode 100644
index 0000000000..8f04034910
--- /dev/null
+++ b/test/core/json/corpus/113c8c97cbb0a2b6176d75eaa9ac9baaa7ccddcc
@@ -0,0 +1 @@
+1¹ \ No newline at end of file
diff --git a/test/core/json/corpus/11479d936dd006410a5946b6081a94d573bf8efd b/test/core/json/corpus/11479d936dd006410a5946b6081a94d573bf8efd
new file mode 100644
index 0000000000..58cf749566
--- /dev/null
+++ b/test/core/json/corpus/11479d936dd006410a5946b6081a94d573bf8efd
@@ -0,0 +1 @@
+tr¹82 'A\E57;) \ No newline at end of file
diff --git a/test/core/json/corpus/11aa091189b78d1cc35c7ff4907ac16a73aba547 b/test/core/json/corpus/11aa091189b78d1cc35c7ff4907ac16a73aba547
new file mode 100644
index 0000000000..cb88820207
--- /dev/null
+++ b/test/core/json/corpus/11aa091189b78d1cc35c7ff4907ac16a73aba547
@@ -0,0 +1 @@
+[9281.2; \ No newline at end of file
diff --git a/test/core/json/corpus/1227907b2ee5a9492a890beed55332e4560834c8 b/test/core/json/corpus/1227907b2ee5a9492a890beed55332e4560834c8
new file mode 100644
index 0000000000..fd35270ae2
--- /dev/null
+++ b/test/core/json/corpus/1227907b2ee5a9492a890beed55332e4560834c8
@@ -0,0 +1 @@
+2}5 \ No newline at end of file
diff --git a/test/core/json/corpus/134d65130947ec69cf8df8483424b45e99cf04e3 b/test/core/json/corpus/134d65130947ec69cf8df8483424b45e99cf04e3
new file mode 100644
index 0000000000..522a9be402
--- /dev/null
+++ b/test/core/json/corpus/134d65130947ec69cf8df8483424b45e99cf04e3
@@ -0,0 +1 @@
+0.2995 \ No newline at end of file
diff --git a/test/core/json/corpus/13584505caa892d94982a968bbc4391ebcfe0d06 b/test/core/json/corpus/13584505caa892d94982a968bbc4391ebcfe0d06
new file mode 100644
index 0000000000..9fb628a378
--- /dev/null
+++ b/test/core/json/corpus/13584505caa892d94982a968bbc4391ebcfe0d06
@@ -0,0 +1 @@
+{"',!\uA>Š \ No newline at end of file
diff --git a/test/core/json/corpus/137f554ee0f6b903acb81ab4e1f98c11fe92b008 b/test/core/json/corpus/137f554ee0f6b903acb81ab4e1f98c11fe92b008
new file mode 100644
index 0000000000..98232c64fc
--- /dev/null
+++ b/test/core/json/corpus/137f554ee0f6b903acb81ab4e1f98c11fe92b008
@@ -0,0 +1 @@
+{
diff --git a/test/core/json/corpus/1401ea03ec78b8f20dc7be952555004d7147f0f5 b/test/core/json/corpus/1401ea03ec78b8f20dc7be952555004d7147f0f5
new file mode 100644
index 0000000000..595fe02dbc
--- /dev/null
+++ b/test/core/json/corpus/1401ea03ec78b8f20dc7be952555004d7147f0f5
@@ -0,0 +1 @@
+"ˆÃ{)ˆ! \ No newline at end of file
diff --git a/test/core/json/corpus/141d45a59b073aeec4443cd7bcf20f7833ddbc95 b/test/core/json/corpus/141d45a59b073aeec4443cd7bcf20f7833ddbc95
new file mode 100644
index 0000000000..e2e68e8af9
--- /dev/null
+++ b/test/core/json/corpus/141d45a59b073aeec4443cd7bcf20f7833ddbc95
@@ -0,0 +1 @@
+"'',!\u658E{128031:;):ˆ)!Ã5*¾?'ʳ³!!*!à):!*à::)!9:\udbD86' \ No newline at end of file
diff --git a/test/core/json/corpus/15a8f2e7f94aa00b46f1b991416aa015dd633580 b/test/core/json/corpus/15a8f2e7f94aa00b46f1b991416aa015dd633580
new file mode 100644
index 0000000000..7e613e891d
--- /dev/null
+++ b/test/core/json/corpus/15a8f2e7f94aa00b46f1b991416aa015dd633580
@@ -0,0 +1 @@
+{"":21} \ No newline at end of file
diff --git a/test/core/json/corpus/15c9c1284c27c8893559e15c9b2a50cbd5bbb56f b/test/core/json/corpus/15c9c1284c27c8893559e15c9b2a50cbd5bbb56f
new file mode 100644
index 0000000000..21a9555f3b
--- /dev/null
+++ b/test/core/json/corpus/15c9c1284c27c8893559e15c9b2a50cbd5bbb56f
@@ -0,0 +1 @@
+[2,"ˆÃ!{)!:",ˆÃ \ No newline at end of file
diff --git a/test/core/json/corpus/15d1a6cda48ef569b368a0c4627435bc2c80a988 b/test/core/json/corpus/15d1a6cda48ef569b368a0c4627435bc2c80a988
new file mode 100644
index 0000000000..8017a981b4
--- /dev/null
+++ b/test/core/json/corpus/15d1a6cda48ef569b368a0c4627435bc2c80a988
@@ -0,0 +1 @@
+ "ˆÃ " \ No newline at end of file
diff --git a/test/core/json/corpus/17a29f2ac6df774585d7713091b299729738030c b/test/core/json/corpus/17a29f2ac6df774585d7713091b299729738030c
new file mode 100644
index 0000000000..9402a60393
--- /dev/null
+++ b/test/core/json/corpus/17a29f2ac6df774585d7713091b299729738030c
@@ -0,0 +1 @@
+[) \ No newline at end of file
diff --git a/test/core/json/corpus/17b815f1f72cb64481bc40263e91ce063040f739 b/test/core/json/corpus/17b815f1f72cb64481bc40263e91ce063040f739
new file mode 100644
index 0000000000..81b218eb64
--- /dev/null
+++ b/test/core/json/corpus/17b815f1f72cb64481bc40263e91ce063040f739
@@ -0,0 +1 @@
+[tr \ No newline at end of file
diff --git a/test/core/json/corpus/182d57403d2c973a394055017d35b7621aa0aa05 b/test/core/json/corpus/182d57403d2c973a394055017d35b7621aa0aa05
new file mode 100644
index 0000000000..f48f55e59d
--- /dev/null
+++ b/test/core/json/corpus/182d57403d2c973a394055017d35b7621aa0aa05
@@ -0,0 +1 @@
+null*: \ No newline at end of file
diff --git a/test/core/json/corpus/190fbe2da448f6bdec0706c5301ad13363ae3ad9 b/test/core/json/corpus/190fbe2da448f6bdec0706c5301ad13363ae3ad9
new file mode 100644
index 0000000000..37144c716f
--- /dev/null
+++ b/test/core/json/corpus/190fbe2da448f6bdec0706c5301ad13363ae3ad9
@@ -0,0 +1 @@
+1e+2187560 \ No newline at end of file
diff --git a/test/core/json/corpus/1b045a24b8f1f1fd6e8234d5019952ee7713a8b7 b/test/core/json/corpus/1b045a24b8f1f1fd6e8234d5019952ee7713a8b7
new file mode 100644
index 0000000000..04ac543c3c
--- /dev/null
+++ b/test/core/json/corpus/1b045a24b8f1f1fd6e8234d5019952ee7713a8b7
@@ -0,0 +1 @@
+\5 \ No newline at end of file
diff --git a/test/core/json/corpus/1b6453892473a467d07372d45eb05abc2031647a b/test/core/json/corpus/1b6453892473a467d07372d45eb05abc2031647a
new file mode 100644
index 0000000000..bf0d87ab1b
--- /dev/null
+++ b/test/core/json/corpus/1b6453892473a467d07372d45eb05abc2031647a
@@ -0,0 +1 @@
+4 \ No newline at end of file
diff --git a/test/core/json/corpus/1c6463aa2dabcb4fadc8e5441d8b418535e768af b/test/core/json/corpus/1c6463aa2dabcb4fadc8e5441d8b418535e768af
new file mode 100644
index 0000000000..7fa1b2723d
--- /dev/null
+++ b/test/core/json/corpus/1c6463aa2dabcb4fadc8e5441d8b418535e768af
@@ -0,0 +1 @@
+0{:ˆ)!Ã"*¾?'ʳ³!!*!à):!*à:::\udbD8ˆ)Ã!:{!`!?`¾¾!?'!*m,');…'` \ No newline at end of file
diff --git a/test/core/json/corpus/1dea95b5050b766274ef80847505c0e4f47f3ebb b/test/core/json/corpus/1dea95b5050b766274ef80847505c0e4f47f3ebb
new file mode 100644
index 0000000000..1237d77855
--- /dev/null
+++ b/test/core/json/corpus/1dea95b5050b766274ef80847505c0e4f47f3ebb
@@ -0,0 +1 @@
+13e190560 \ No newline at end of file
diff --git a/test/core/json/corpus/1df0754d3e7970b3afe549b11ca128dcd0d4832b b/test/core/json/corpus/1df0754d3e7970b3afe549b11ca128dcd0d4832b
new file mode 100644
index 0000000000..dd9df8833f
--- /dev/null
+++ b/test/core/json/corpus/1df0754d3e7970b3afe549b11ca128dcd0d4832b
@@ -0,0 +1 @@
+{"'5E885,!\u000E{ \ No newline at end of file
diff --git a/test/core/json/corpus/1dfe267b623b20cd97c6e8969d8b9148af9f4a2c b/test/core/json/corpus/1dfe267b623b20cd97c6e8969d8b9148af9f4a2c
new file mode 100644
index 0000000000..7f010a27de
--- /dev/null
+++ b/test/core/json/corpus/1dfe267b623b20cd97c6e8969d8b9148af9f4a2c
@@ -0,0 +1 @@
+6(0 \ No newline at end of file
diff --git a/test/core/json/corpus/1e5c2f367f02e47a8c160cda1cd9d91decbac441 b/test/core/json/corpus/1e5c2f367f02e47a8c160cda1cd9d91decbac441
new file mode 100644
index 0000000000..8e2f0bef13
--- /dev/null
+++ b/test/core/json/corpus/1e5c2f367f02e47a8c160cda1cd9d91decbac441
@@ -0,0 +1 @@
+[ \ No newline at end of file
diff --git a/test/core/json/corpus/20efdba13ca7a3657d071b3d56997aa3b083068a b/test/core/json/corpus/20efdba13ca7a3657d071b3d56997aa3b083068a
new file mode 100644
index 0000000000..5194be3963
--- /dev/null
+++ b/test/core/json/corpus/20efdba13ca7a3657d071b3d56997aa3b083068a
@@ -0,0 +1 @@
+"ˆÃ{)!:*])Ã!:{"*¾?¾;?Xʳ³'!!Ê \ No newline at end of file
diff --git a/test/core/json/corpus/215a956168f77421253e947c2436371d56aa7ea1 b/test/core/json/corpus/215a956168f77421253e947c2436371d56aa7ea1
new file mode 100644
index 0000000000..a0aeede19a
--- /dev/null
+++ b/test/core/json/corpus/215a956168f77421253e947c2436371d56aa7ea1
@@ -0,0 +1 @@
+fa \ No newline at end of file
diff --git a/test/core/json/corpus/2174b9ab6bf4f7c21fe1ed56957f1776ef611959 b/test/core/json/corpus/2174b9ab6bf4f7c21fe1ed56957f1776ef611959
new file mode 100644
index 0000000000..ef32707a4e
--- /dev/null
+++ b/test/core/json/corpus/2174b9ab6bf4f7c21fe1ed56957f1776ef611959
@@ -0,0 +1 @@
+13e5!01860 \ No newline at end of file
diff --git a/test/core/json/corpus/232f4bced4075545bb1469d5c2360f083ec7ec65 b/test/core/json/corpus/232f4bced4075545bb1469d5c2360f083ec7ec65
new file mode 100644
index 0000000000..d4e4ebe1bb
--- /dev/null
+++ b/test/core/json/corpus/232f4bced4075545bb1469d5c2360f083ec7ec65
@@ -0,0 +1 @@
+{"',!\u65E8850{2312;):ˆ)!Ã"*¾?'ʳ³!!*!à):!*à::8!9:\udbD86' \ No newline at end of file
diff --git a/test/core/json/corpus/26aca41ee8f199e7c0c7cf31d979952571c53fc9 b/test/core/json/corpus/26aca41ee8f199e7c0c7cf31d979952571c53fc9
new file mode 100644
index 0000000000..016fe5628b
--- /dev/null
+++ b/test/core/json/corpus/26aca41ee8f199e7c0c7cf31d979952571c53fc9
@@ -0,0 +1 @@
+falsT{2*6»7}]3* \ No newline at end of file
diff --git a/test/core/json/corpus/27d84210636e9e83786be9e9b96b69f70b743b86 b/test/core/json/corpus/27d84210636e9e83786be9e9b96b69f70b743b86
new file mode 100644
index 0000000000..701bd00f30
--- /dev/null
+++ b/test/core/json/corpus/27d84210636e9e83786be9e9b96b69f70b743b86
@@ -0,0 +1 @@
+{"',!\u'Š \ No newline at end of file
diff --git a/test/core/json/corpus/27da426a5883662d19ea78f306d7a992be52f827 b/test/core/json/corpus/27da426a5883662d19ea78f306d7a992be52f827
new file mode 100644
index 0000000000..2e7373e158
--- /dev/null
+++ b/test/core/json/corpus/27da426a5883662d19ea78f306d7a992be52f827
@@ -0,0 +1,2 @@
+2
+P2÷ \ No newline at end of file
diff --git a/test/core/json/corpus/296dcda6f7e6979e68ddef7cbc1206a355084ad3 b/test/core/json/corpus/296dcda6f7e6979e68ddef7cbc1206a355084ad3
new file mode 100644
index 0000000000..e510185137
--- /dev/null
+++ b/test/core/json/corpus/296dcda6f7e6979e68ddef7cbc1206a355084ad3
@@ -0,0 +1 @@
+,ˆÃ"" \ No newline at end of file
diff --git a/test/core/json/corpus/29b08c03ca5a6851fa4604a984cb7ff44433a5a5 b/test/core/json/corpus/29b08c03ca5a6851fa4604a984cb7ff44433a5a5
new file mode 100644
index 0000000000..60ec6c51e9
--- /dev/null
+++ b/test/core/json/corpus/29b08c03ca5a6851fa4604a984cb7ff44433a5a5
@@ -0,0 +1 @@
+3]5 \ No newline at end of file
diff --git a/test/core/json/corpus/2a3d964ec4527ad9f02129fcbf087b67a6ea6444 b/test/core/json/corpus/2a3d964ec4527ad9f02129fcbf087b67a6ea6444
new file mode 100644
index 0000000000..e5e723f2e3
--- /dev/null
+++ b/test/core/json/corpus/2a3d964ec4527ad9f02129fcbf087b67a6ea6444
@@ -0,0 +1 @@
+-w9'Á6 \ No newline at end of file
diff --git a/test/core/json/corpus/2b04974149815b143afb17af4388d751217e54ec b/test/core/json/corpus/2b04974149815b143afb17af4388d751217e54ec
new file mode 100644
index 0000000000..880fb548fa
--- /dev/null
+++ b/test/core/json/corpus/2b04974149815b143afb17af4388d751217e54ec
@@ -0,0 +1 @@
+832E46;) \ No newline at end of file
diff --git a/test/core/json/corpus/2b3b1ad952e3acb566e32a84e2d503acde13eb53 b/test/core/json/corpus/2b3b1ad952e3acb566e32a84e2d503acde13eb53
new file mode 100644
index 0000000000..0f5e2da901
--- /dev/null
+++ b/test/core/json/corpus/2b3b1ad952e3acb566e32a84e2d503acde13eb53
@@ -0,0 +1 @@
+31e8¤560 \ No newline at end of file
diff --git a/test/core/json/corpus/2cc301a6ed7f01e2cd339f02bd0fda20c227a17e b/test/core/json/corpus/2cc301a6ed7f01e2cd339f02bd0fda20c227a17e
new file mode 100644
index 0000000000..f457fd8c48
--- /dev/null
+++ b/test/core/json/corpus/2cc301a6ed7f01e2cd339f02bd0fda20c227a17e
@@ -0,0 +1 @@
+825E132}) \ No newline at end of file
diff --git a/test/core/json/corpus/2d3d5b9275553430b4cfa68114099120ad7809ee b/test/core/json/corpus/2d3d5b9275553430b4cfa68114099120ad7809ee
new file mode 100644
index 0000000000..7e7e3f7a03
--- /dev/null
+++ b/test/core/json/corpus/2d3d5b9275553430b4cfa68114099120ad7809ee
@@ -0,0 +1 @@
+[4* \ No newline at end of file
diff --git a/test/core/json/corpus/2d5dbf403e0c12e2fe21b04ca3daff171c028ab7 b/test/core/json/corpus/2d5dbf403e0c12e2fe21b04ca3daff171c028ab7
new file mode 100644
index 0000000000..42bbdf91aa
--- /dev/null
+++ b/test/core/json/corpus/2d5dbf403e0c12e2fe21b04ca3daff171c028ab7
@@ -0,0 +1 @@
+""919 \ No newline at end of file
diff --git a/test/core/json/corpus/2d7c769bed62004270034b976b1d940a5686106b b/test/core/json/corpus/2d7c769bed62004270034b976b1d940a5686106b
new file mode 100644
index 0000000000..8a2b4335b2
--- /dev/null
+++ b/test/core/json/corpus/2d7c769bed62004270034b976b1d940a5686106b
@@ -0,0 +1 @@
+{"',!\u65E8850{2312;):)ˆ!*?'¾Êѳ³!!ª!À):*!à::8!9:\udbD6\\' \ No newline at end of file
diff --git a/test/core/json/corpus/2db120231eea12d9cdc6a00f30839b3cef2046be b/test/core/json/corpus/2db120231eea12d9cdc6a00f30839b3cef2046be
new file mode 100644
index 0000000000..0cfb6e8489
--- /dev/null
+++ b/test/core/json/corpus/2db120231eea12d9cdc6a00f30839b3cef2046be
@@ -0,0 +1 @@
+0.0 \ No newline at end of file
diff --git a/test/core/json/corpus/2db610e1a230409a205cf22fbad3348a54cbe703 b/test/core/json/corpus/2db610e1a230409a205cf22fbad3348a54cbe703
new file mode 100644
index 0000000000..3541d8d15d
--- /dev/null
+++ b/test/core/json/corpus/2db610e1a230409a205cf22fbad3348a54cbe703
@@ -0,0 +1 @@
+faå \ No newline at end of file
diff --git a/test/core/json/corpus/2df1dd2e2f5d57e7d9d4e60a756a86e603573225 b/test/core/json/corpus/2df1dd2e2f5d57e7d9d4e60a756a86e603573225
new file mode 100644
index 0000000000..390f40900f
--- /dev/null
+++ b/test/core/json/corpus/2df1dd2e2f5d57e7d9d4e60a756a86e603573225
@@ -0,0 +1 @@
+0.9! \ No newline at end of file
diff --git a/test/core/json/corpus/2e32faacd3ea4461ec7aace297b4be6904d9a389 b/test/core/json/corpus/2e32faacd3ea4461ec7aace297b4be6904d9a389
new file mode 100644
index 0000000000..83323c2503
--- /dev/null
+++ b/test/core/json/corpus/2e32faacd3ea4461ec7aace297b4be6904d9a389
@@ -0,0 +1 @@
+[["ˆÃ{)!:*¾;?'ʳ³!!*!à):!*à:::\u1.y2db)8ˆÃ!‡:{!`!.7;? \ No newline at end of file
diff --git a/test/core/json/corpus/2e756d91759d7e74f5b776c0d2a1935292f576d1 b/test/core/json/corpus/2e756d91759d7e74f5b776c0d2a1935292f576d1
new file mode 100644
index 0000000000..037d9ceb5d
--- /dev/null
+++ b/test/core/json/corpus/2e756d91759d7e74f5b776c0d2a1935292f576d1
@@ -0,0 +1 @@
+"ˆÃ{)!:*¾;?'ʳ³!!*!à):!*à::d\r:8))ˆÃ![1.‡97:{ \ No newline at end of file
diff --git a/test/core/json/corpus/2f09b24f9f5fa0af2c29b604b4b0f97fa6163895 b/test/core/json/corpus/2f09b24f9f5fa0af2c29b604b4b0f97fa6163895
new file mode 100644
index 0000000000..f7e8e7b7fe
--- /dev/null
+++ b/test/core/json/corpus/2f09b24f9f5fa0af2c29b604b4b0f97fa6163895
@@ -0,0 +1 @@
+ 9Š \ No newline at end of file
diff --git a/test/core/json/corpus/3027d901361162b38fcaf17f97ba7d9646e32495 b/test/core/json/corpus/3027d901361162b38fcaf17f97ba7d9646e32495
new file mode 100644
index 0000000000..8372b410d6
--- /dev/null
+++ b/test/core/json/corpus/3027d901361162b38fcaf17f97ba7d9646e32495
@@ -0,0 +1 @@
+{} \ No newline at end of file
diff --git a/test/core/json/corpus/30d4467ecb771ece9ed6c78a46adc299072d9db9 b/test/core/json/corpus/30d4467ecb771ece9ed6c78a46adc299072d9db9
new file mode 100644
index 0000000000..e396fbae6e
--- /dev/null
+++ b/test/core/json/corpus/30d4467ecb771ece9ed6c78a46adc299072d9db9
@@ -0,0 +1 @@
+4.9! \ No newline at end of file
diff --git a/test/core/json/corpus/311048bbf4c4bbabcde73607d7e76915cee9312e b/test/core/json/corpus/311048bbf4c4bbabcde73607d7e76915cee9312e
new file mode 100644
index 0000000000..79453e924d
--- /dev/null
+++ b/test/core/json/corpus/311048bbf4c4bbabcde73607d7e76915cee9312e
@@ -0,0 +1 @@
+ "1. { \ No newline at end of file
diff --git a/test/core/json/corpus/323b48969d7bf9a50aacf0912f1b5cb02119e2ab b/test/core/json/corpus/323b48969d7bf9a50aacf0912f1b5cb02119e2ab
new file mode 100644
index 0000000000..b558a9acd2
--- /dev/null
+++ b/test/core/json/corpus/323b48969d7bf9a50aacf0912f1b5cb02119e2ab
@@ -0,0 +1 @@
+"',!\u65E8850{2312;):ˆ)!Ã"*¾?'ʳ³!!*!à):!*à::)!9:\udbD86' \ No newline at end of file
diff --git a/test/core/json/corpus/33400a242baeb5c46ddb1578c28b10d32a9c3cd3 b/test/core/json/corpus/33400a242baeb5c46ddb1578c28b10d32a9c3cd3
new file mode 100644
index 0000000000..ffb93e3c54
--- /dev/null
+++ b/test/core/json/corpus/33400a242baeb5c46ddb1578c28b10d32a9c3cd3
@@ -0,0 +1 @@
+{"',!\ru65E8850{2312;):ˆ)!Ã"*¾{"',!u65E?'8Ê85 \ No newline at end of file
diff --git a/test/core/json/corpus/356a192b7913b04c54574d18c28d46e6395428ab b/test/core/json/corpus/356a192b7913b04c54574d18c28d46e6395428ab
new file mode 100644
index 0000000000..56a6051ca2
--- /dev/null
+++ b/test/core/json/corpus/356a192b7913b04c54574d18c28d46e6395428ab
@@ -0,0 +1 @@
+1 \ No newline at end of file
diff --git a/test/core/json/corpus/35e995c107a71caeb833bb3b79f9f54781b33fa1 b/test/core/json/corpus/35e995c107a71caeb833bb3b79f9f54781b33fa1
new file mode 100644
index 0000000000..e77a96349c
--- /dev/null
+++ b/test/core/json/corpus/35e995c107a71caeb833bb3b79f9f54781b33fa1
@@ -0,0 +1 @@
+73 \ No newline at end of file
diff --git a/test/core/json/corpus/373769c15c145472c8ec3bdde8fc84e85ec79211 b/test/core/json/corpus/373769c15c145472c8ec3bdde8fc84e85ec79211
new file mode 100644
index 0000000000..7f340609ed
--- /dev/null
+++ b/test/core/json/corpus/373769c15c145472c8ec3bdde8fc84e85ec79211
@@ -0,0 +1,2 @@
+{} 2
+,[[2p} \ No newline at end of file
diff --git a/test/core/json/corpus/3795d911970a1fd8416b93649051b418948e3edf b/test/core/json/corpus/3795d911970a1fd8416b93649051b418948e3edf
new file mode 100644
index 0000000000..1df36a5b97
--- /dev/null
+++ b/test/core/json/corpus/3795d911970a1fd8416b93649051b418948e3edf
@@ -0,0 +1 @@
+[[2.76;]3* \ No newline at end of file
diff --git a/test/core/json/corpus/37d3333e1e2a384c3ba14a52682ca29f061d1ac7 b/test/core/json/corpus/37d3333e1e2a384c3ba14a52682ca29f061d1ac7
new file mode 100644
index 0000000000..c37e132d2a
--- /dev/null
+++ b/test/core/json/corpus/37d3333e1e2a384c3ba14a52682ca29f061d1ac7
@@ -0,0 +1 @@
+{"!(!\u' \ No newline at end of file
diff --git a/test/core/json/corpus/38cd33bb390445e35b6514024b1317902cb7ba1b b/test/core/json/corpus/38cd33bb390445e35b6514024b1317902cb7ba1b
new file mode 100644
index 0000000000..83312e5c07
--- /dev/null
+++ b/test/core/json/corpus/38cd33bb390445e35b6514024b1317902cb7ba1b
@@ -0,0 +1 @@
+"ˆÃ!{)!:",ˆÃ \ No newline at end of file
diff --git a/test/core/json/corpus/3a90c688f44447a78efc111872b061a001f04d2b b/test/core/json/corpus/3a90c688f44447a78efc111872b061a001f04d2b
new file mode 100644
index 0000000000..2b729e722b
--- /dev/null
+++ b/test/core/json/corpus/3a90c688f44447a78efc111872b061a001f04d2b
@@ -0,0 +1 @@
+181e32560 \ No newline at end of file
diff --git a/test/core/json/corpus/3b1e7b56ad4465d126ea994d34d20dcecbb3a50a b/test/core/json/corpus/3b1e7b56ad4465d126ea994d34d20dcecbb3a50a
new file mode 100644
index 0000000000..3029e046c6
--- /dev/null
+++ b/test/core/json/corpus/3b1e7b56ad4465d126ea994d34d20dcecbb3a50a
@@ -0,0 +1 @@
+5E882392);) \ No newline at end of file
diff --git a/test/core/json/corpus/3c0a8d6c31edaca124714624eb64cb8ec0cbab13 b/test/core/json/corpus/3c0a8d6c31edaca124714624eb64cb8ec0cbab13
new file mode 100644
index 0000000000..82db9e7887
--- /dev/null
+++ b/test/core/json/corpus/3c0a8d6c31edaca124714624eb64cb8ec0cbab13
@@ -0,0 +1 @@
+{"*]:Ã!{)¾?'ʳ³!!*!à):!*à:::\udbD8ˆ)!{Ã:{!`!?`¾¾"(¡ \ No newline at end of file
diff --git a/test/core/json/corpus/3cc0c9adcf3882f01409c70391c3cd30588ef34c b/test/core/json/corpus/3cc0c9adcf3882f01409c70391c3cd30588ef34c
new file mode 100644
index 0000000000..7a63c8c57c
--- /dev/null
+++ b/test/core/json/corpus/3cc0c9adcf3882f01409c70391c3cd30588ef34c
@@ -0,0 +1 @@
+[{ \ No newline at end of file
diff --git a/test/core/json/corpus/3d0d9878b812ce4634962ba3dd755c0953550200 b/test/core/json/corpus/3d0d9878b812ce4634962ba3dd755c0953550200
new file mode 100644
index 0000000000..8793f1e0ad
--- /dev/null
+++ b/test/core/json/corpus/3d0d9878b812ce4634962ba3dd755c0953550200
@@ -0,0 +1 @@
+[tru[(0.193;]4* \ No newline at end of file
diff --git a/test/core/json/corpus/3d4d5887a2fcdc5dd360b8a6f89dbce6500d8580 b/test/core/json/corpus/3d4d5887a2fcdc5dd360b8a6f89dbce6500d8580
new file mode 100644
index 0000000000..c5246971bc
--- /dev/null
+++ b/test/core/json/corpus/3d4d5887a2fcdc5dd360b8a6f89dbce6500d8580
@@ -0,0 +1 @@
+"'',!\u658E{128031:;):ˆ)!Ã5*¾?'ʳ³!!*!à):!*à::)!9:\udbD8 ' \ No newline at end of file
diff --git a/test/core/json/corpus/3efb5b7ff94c5b9d411c93da9a70e1cc547f4c59 b/test/core/json/corpus/3efb5b7ff94c5b9d411c93da9a70e1cc547f4c59
new file mode 100644
index 0000000000..90a082d8d9
--- /dev/null
+++ b/test/core/json/corpus/3efb5b7ff94c5b9d411c93da9a70e1cc547f4c59
@@ -0,0 +1 @@
+13e290560 \ No newline at end of file
diff --git a/test/core/json/corpus/421b7e8ea86e3c07474af16ab3ccef55d1857205 b/test/core/json/corpus/421b7e8ea86e3c07474af16ab3ccef55d1857205
new file mode 100644
index 0000000000..127471478b
--- /dev/null
+++ b/test/core/json/corpus/421b7e8ea86e3c07474af16ab3ccef55d1857205
@@ -0,0 +1,2 @@
+[2.1
+'{"ˆ"ÈÃ"" \ No newline at end of file
diff --git a/test/core/json/corpus/428d051e437dd260f2a2f7ed920d9734ca34dc90 b/test/core/json/corpus/428d051e437dd260f2a2f7ed920d9734ca34dc90
new file mode 100644
index 0000000000..ad50d48199
--- /dev/null
+++ b/test/core/json/corpus/428d051e437dd260f2a2f7ed920d9734ca34dc90
@@ -0,0 +1 @@
+[2. \ No newline at end of file
diff --git a/test/core/json/corpus/42adc281578ffb1b8684b78b47aa40a16d10b6e7 b/test/core/json/corpus/42adc281578ffb1b8684b78b47aa40a16d10b6e7
new file mode 100644
index 0000000000..59b1709541
--- /dev/null
+++ b/test/core/json/corpus/42adc281578ffb1b8684b78b47aa40a16d10b6e7
@@ -0,0 +1 @@
+363, \ No newline at end of file
diff --git a/test/core/json/corpus/43620ecd2e2fd58fe5650da2e9783f980f29ec07 b/test/core/json/corpus/43620ecd2e2fd58fe5650da2e9783f980f29ec07
new file mode 100644
index 0000000000..f198034ea7
--- /dev/null
+++ b/test/core/json/corpus/43620ecd2e2fd58fe5650da2e9783f980f29ec07
@@ -0,0 +1 @@
+13e109560 \ No newline at end of file
diff --git a/test/core/json/corpus/43b1ffcda49477adb1632822202631990ed3a269 b/test/core/json/corpus/43b1ffcda49477adb1632822202631990ed3a269
new file mode 100644
index 0000000000..19db1d405f
--- /dev/null
+++ b/test/core/json/corpus/43b1ffcda49477adb1632822202631990ed3a269
@@ -0,0 +1 @@
+1e+2,1ˆÃ"x \ No newline at end of file
diff --git a/test/core/json/corpus/45279f85bf2f533a629073caf89403006279fab2 b/test/core/json/corpus/45279f85bf2f533a629073caf89403006279fab2
new file mode 100644
index 0000000000..e6d3d7c28b
--- /dev/null
+++ b/test/core/json/corpus/45279f85bf2f533a629073caf89403006279fab2
@@ -0,0 +1,2 @@
+{
+620 \ No newline at end of file
diff --git a/test/core/json/corpus/455d9bb597f08bf698454157ecd86647b5dec4e0 b/test/core/json/corpus/455d9bb597f08bf698454157ecd86647b5dec4e0
new file mode 100644
index 0000000000..0a601ebe35
--- /dev/null
+++ b/test/core/json/corpus/455d9bb597f08bf698454157ecd86647b5dec4e0
@@ -0,0 +1 @@
+0.3282 \ No newline at end of file
diff --git a/test/core/json/corpus/4561eb5c7e43cae048c06aaaad3d5f5218b376e9 b/test/core/json/corpus/4561eb5c7e43cae048c06aaaad3d5f5218b376e9
new file mode 100644
index 0000000000..1fdd026e41
--- /dev/null
+++ b/test/core/json/corpus/4561eb5c7e43cae048c06aaaad3d5f5218b376e9
@@ -0,0 +1 @@
+fal0%) \ No newline at end of file
diff --git a/test/core/json/corpus/46417b001eeb87c32b642499fd5e1690d5d88c7f b/test/core/json/corpus/46417b001eeb87c32b642499fd5e1690d5d88c7f
new file mode 100644
index 0000000000..f0848407d5
--- /dev/null
+++ b/test/core/json/corpus/46417b001eeb87c32b642499fd5e1690d5d88c7f
@@ -0,0 +1 @@
+825E}321) \ No newline at end of file
diff --git a/test/core/json/corpus/468af040024e96e9878ef33cc52755c5e7f5cbd5 b/test/core/json/corpus/468af040024e96e9878ef33cc52755c5e7f5cbd5
new file mode 100644
index 0000000000..c9ff1a11aa
--- /dev/null
+++ b/test/core/json/corpus/468af040024e96e9878ef33cc52755c5e7f5cbd5
@@ -0,0 +1 @@
+0.72479834e;0.Ü3ï993) \ No newline at end of file
diff --git a/test/core/json/corpus/469e5ed2547e9e55a96e96eb832c615631e3b576 b/test/core/json/corpus/469e5ed2547e9e55a96e96eb832c615631e3b576
new file mode 100644
index 0000000000..97e7cafffb
--- /dev/null
+++ b/test/core/json/corpus/469e5ed2547e9e55a96e96eb832c615631e3b576
@@ -0,0 +1 @@
+[])Ã!:{"*¾?'ʳ³!!*!à):!*à:::\udbD8ˆ){Ã!:{!`!?`¾¾"(¡ \ No newline at end of file
diff --git a/test/core/json/corpus/472b07b9fcf2c2451e8781e944bf5f77cd8457c8 b/test/core/json/corpus/472b07b9fcf2c2451e8781e944bf5f77cd8457c8
new file mode 100644
index 0000000000..b5045cc404
--- /dev/null
+++ b/test/core/json/corpus/472b07b9fcf2c2451e8781e944bf5f77cd8457c8
@@ -0,0 +1 @@
+21 \ No newline at end of file
diff --git a/test/core/json/corpus/486da8aff04083c5e0fe112e733f2ae510e312a1 b/test/core/json/corpus/486da8aff04083c5e0fe112e733f2ae510e312a1
new file mode 100644
index 0000000000..0afcc5fad8
--- /dev/null
+++ b/test/core/json/corpus/486da8aff04083c5e0fe112e733f2ae510e312a1
@@ -0,0 +1 @@
+tru¹82 'A\E60;) \ No newline at end of file
diff --git a/test/core/json/corpus/488a5ed641e340ae51992e04ce6590bdec587218 b/test/core/json/corpus/488a5ed641e340ae51992e04ce6590bdec587218
new file mode 100644
index 0000000000..f0b671befa
--- /dev/null
+++ b/test/core/json/corpus/488a5ed641e340ae51992e04ce6590bdec587218
@@ -0,0 +1 @@
+0.1)¹ \ No newline at end of file
diff --git a/test/core/json/corpus/4a0a19218e082a343a1b17e5333409af9d98f0f5 b/test/core/json/corpus/4a0a19218e082a343a1b17e5333409af9d98f0f5
new file mode 100644
index 0000000000..4d1ae35ba2
--- /dev/null
+++ b/test/core/json/corpus/4a0a19218e082a343a1b17e5333409af9d98f0f5
@@ -0,0 +1 @@
+f \ No newline at end of file
diff --git a/test/core/json/corpus/4a6644a1a3d5218f4bbd60220cab79c0b7bef45e b/test/core/json/corpus/4a6644a1a3d5218f4bbd60220cab79c0b7bef45e
new file mode 100644
index 0000000000..90b4ca3a2c
--- /dev/null
+++ b/test/core/json/corpus/4a6644a1a3d5218f4bbd60220cab79c0b7bef45e
@@ -0,0 +1 @@
+[21.82 \ No newline at end of file
diff --git a/test/core/json/corpus/4b39d4b8a9a04b9469e8fe4016322327fe540882 b/test/core/json/corpus/4b39d4b8a9a04b9469e8fe4016322327fe540882
new file mode 100644
index 0000000000..a7c1d087f7
--- /dev/null
+++ b/test/core/json/corpus/4b39d4b8a9a04b9469e8fe4016322327fe540882
@@ -0,0 +1 @@
+3E8;4) \ No newline at end of file
diff --git a/test/core/json/corpus/4bb0294e14946fb1f64213384097a676d3ef94f0 b/test/core/json/corpus/4bb0294e14946fb1f64213384097a676d3ef94f0
new file mode 100644
index 0000000000..56e2dbcc1b
--- /dev/null
+++ b/test/core/json/corpus/4bb0294e14946fb1f64213384097a676d3ef94f0
@@ -0,0 +1 @@
+363
diff --git a/test/core/json/corpus/4cd66dfabbd964f8c6c4414b07cdb45dae692e19 b/test/core/json/corpus/4cd66dfabbd964f8c6c4414b07cdb45dae692e19
new file mode 100644
index 0000000000..a46c9d2265
--- /dev/null
+++ b/test/core/json/corpus/4cd66dfabbd964f8c6c4414b07cdb45dae692e19
@@ -0,0 +1 @@
+91 \ No newline at end of file
diff --git a/test/core/json/corpus/4d134bc072212ace2df385dae143139da74ec0ef b/test/core/json/corpus/4d134bc072212ace2df385dae143139da74ec0ef
new file mode 100644
index 0000000000..cabf43b5dd
--- /dev/null
+++ b/test/core/json/corpus/4d134bc072212ace2df385dae143139da74ec0ef
@@ -0,0 +1 @@
+24 \ No newline at end of file
diff --git a/test/core/json/corpus/4efa35221b2088e785048d0ff8fd99b03d5316fc b/test/core/json/corpus/4efa35221b2088e785048d0ff8fd99b03d5316fc
new file mode 100644
index 0000000000..ecf2233fc5
--- /dev/null
+++ b/test/core/json/corpus/4efa35221b2088e785048d0ff8fd99b03d5316fc
@@ -0,0 +1 @@
+0.) \ No newline at end of file
diff --git a/test/core/json/corpus/4fa2a4a5a2f7dc4ddbdecae3ee85c787817b4cf8 b/test/core/json/corpus/4fa2a4a5a2f7dc4ddbdecae3ee85c787817b4cf8
new file mode 100644
index 0000000000..17ef43e800
--- /dev/null
+++ b/test/core/json/corpus/4fa2a4a5a2f7dc4ddbdecae3ee85c787817b4cf8
@@ -0,0 +1 @@
+813e128560 \ No newline at end of file
diff --git a/test/core/json/corpus/4fed4bf2dc6259d9de54e9fa7db4fd5a61f2535e b/test/core/json/corpus/4fed4bf2dc6259d9de54e9fa7db4fd5a61f2535e
new file mode 100644
index 0000000000..e9cb9407c9
--- /dev/null
+++ b/test/core/json/corpus/4fed4bf2dc6259d9de54e9fa7db4fd5a61f2535e
@@ -0,0 +1 @@
+2531E117t)*6 \ No newline at end of file
diff --git a/test/core/json/corpus/4ff800de0863adb5851fa26935159aa53b11cba7 b/test/core/json/corpus/4ff800de0863adb5851fa26935159aa53b11cba7
new file mode 100644
index 0000000000..edd3d2bf64
--- /dev/null
+++ b/test/core/json/corpus/4ff800de0863adb5851fa26935159aa53b11cba7
@@ -0,0 +1 @@
+0.82510 \ No newline at end of file
diff --git a/test/core/json/corpus/4ff99a030518a132748c44bc1d836018e5b82cd0 b/test/core/json/corpus/4ff99a030518a132748c44bc1d836018e5b82cd0
new file mode 100644
index 0000000000..bc59462e43
--- /dev/null
+++ b/test/core/json/corpus/4ff99a030518a132748c44bc1d836018e5b82cd0
@@ -0,0 +1 @@
+{"*]:Ã!{)¾?'Ê)“ :*!à):!*à:::\udb81\uDeA12])!{Ã:{!`!? \ No newline at end of file
diff --git a/test/core/json/corpus/531c87b9772e54e3e183ef729f0a7d5a0d584f46 b/test/core/json/corpus/531c87b9772e54e3e183ef729f0a7d5a0d584f46
new file mode 100644
index 0000000000..08f1be3183
--- /dev/null
+++ b/test/core/json/corpus/531c87b9772e54e3e183ef729f0a7d5a0d584f46
@@ -0,0 +1 @@
+{"',!\u65E8850{2312;):ˆ)!*?'¾Ê³³!!ª!à):!*à::8!9:\udbD86' \ No newline at end of file
diff --git a/test/core/json/corpus/534d66e7b0709d1e7692faae9e7f7299c92bba4b b/test/core/json/corpus/534d66e7b0709d1e7692faae9e7f7299c92bba4b
new file mode 100644
index 0000000000..44b3fa0c84
--- /dev/null
+++ b/test/core/json/corpus/534d66e7b0709d1e7692faae9e7f7299c92bba4b
@@ -0,0 +1 @@
+[[2.193]4* \ No newline at end of file
diff --git a/test/core/json/corpus/548775f9d7d13339dba3001f8238b84e9a457533 b/test/core/json/corpus/548775f9d7d13339dba3001f8238b84e9a457533
new file mode 100644
index 0000000000..9fed6d1d0a
--- /dev/null
+++ b/test/core/json/corpus/548775f9d7d13339dba3001f8238b84e9a457533
@@ -0,0 +1 @@
+[1.97; \ No newline at end of file
diff --git a/test/core/json/corpus/54ec3b2d8a9b7a6d8204712eb1b90da703cf8a79 b/test/core/json/corpus/54ec3b2d8a9b7a6d8204712eb1b90da703cf8a79
new file mode 100644
index 0000000000..25984e70ea
--- /dev/null
+++ b/test/core/json/corpus/54ec3b2d8a9b7a6d8204712eb1b90da703cf8a79
@@ -0,0 +1 @@
+"ˆÃ{)!:*¾;?Xʳ³!!*!à):!*à:::\udÃb)ˆ8!‡:{!`!*`¾¾!?'!*m,');…'` \ No newline at end of file
diff --git a/test/core/json/corpus/552cfe1d8958e6d003ec8e883c4983dd67ef255e b/test/core/json/corpus/552cfe1d8958e6d003ec8e883c4983dd67ef255e
new file mode 100644
index 0000000000..1b18370072
--- /dev/null
+++ b/test/core/json/corpus/552cfe1d8958e6d003ec8e883c4983dd67ef255e
@@ -0,0 +1 @@
+nu# \ No newline at end of file
diff --git a/test/core/json/corpus/55f0c61d096a08506076489ded3b868db4086770 b/test/core/json/corpus/55f0c61d096a08506076489ded3b868db4086770
new file mode 100644
index 0000000000..d65b5377ce
--- /dev/null
+++ b/test/core/json/corpus/55f0c61d096a08506076489ded3b868db4086770
@@ -0,0 +1 @@
+0.2]G) \ No newline at end of file
diff --git a/test/core/json/corpus/56cd60743c2cee939f5f357905bd36ec9363f441 b/test/core/json/corpus/56cd60743c2cee939f5f357905bd36ec9363f441
new file mode 100644
index 0000000000..8d53a05e08
--- /dev/null
+++ b/test/core/json/corpus/56cd60743c2cee939f5f357905bd36ec9363f441
@@ -0,0 +1 @@
+{"":21] \ No newline at end of file
diff --git a/test/core/json/corpus/56e5f35e3d08b4e17e3558cacddf9e5ed13a0159 b/test/core/json/corpus/56e5f35e3d08b4e17e3558cacddf9e5ed13a0159
new file mode 100644
index 0000000000..1960fad59a
--- /dev/null
+++ b/test/core/json/corpus/56e5f35e3d08b4e17e3558cacddf9e5ed13a0159
@@ -0,0 +1 @@
+[[[{"ˆÃ{)!:*¾;?'ʳ³!!*!à):!*à:::\u12198.y2db)8ˆÃ!3;!ȇ:!`!.7;? \ No newline at end of file
diff --git a/test/core/json/corpus/580b03c49fba02bb8e399500eb66f2ff0482b22a b/test/core/json/corpus/580b03c49fba02bb8e399500eb66f2ff0482b22a
new file mode 100644
index 0000000000..5c23e6237b
--- /dev/null
+++ b/test/core/json/corpus/580b03c49fba02bb8e399500eb66f2ff0482b22a
@@ -0,0 +1 @@
+2]G)y3 \ No newline at end of file
diff --git a/test/core/json/corpus/5852643fbbcf92b0181327b69b4874c6ba6fa9f4 b/test/core/json/corpus/5852643fbbcf92b0181327b69b4874c6ba6fa9f4
new file mode 100644
index 0000000000..d72c7c7a76
--- /dev/null
+++ b/test/core/json/corpus/5852643fbbcf92b0181327b69b4874c6ba6fa9f4
@@ -0,0 +1 @@
+{"'!\u3@:Š \ No newline at end of file
diff --git a/test/core/json/corpus/58f497e5efaf9f69080f9eef63b0b9dabcfdbc0d b/test/core/json/corpus/58f497e5efaf9f69080f9eef63b0b9dabcfdbc0d
new file mode 100644
index 0000000000..3ed722a2e2
--- /dev/null
+++ b/test/core/json/corpus/58f497e5efaf9f69080f9eef63b0b9dabcfdbc0d
@@ -0,0 +1 @@
+n { \ No newline at end of file
diff --git a/test/core/json/corpus/59129aacfb6cebbe2c52f30ef3424209f7252e82 b/test/core/json/corpus/59129aacfb6cebbe2c52f30ef3424209f7252e82
new file mode 100644
index 0000000000..d1cbcfa540
--- /dev/null
+++ b/test/core/json/corpus/59129aacfb6cebbe2c52f30ef3424209f7252e82
@@ -0,0 +1 @@
+66 \ No newline at end of file
diff --git a/test/core/json/corpus/598a287a3e56caae23ed63abc95d5f3457165eef b/test/core/json/corpus/598a287a3e56caae23ed63abc95d5f3457165eef
new file mode 100644
index 0000000000..7d3db88945
--- /dev/null
+++ b/test/core/json/corpus/598a287a3e56caae23ed63abc95d5f3457165eef
@@ -0,0 +1 @@
+81e6125380 \ No newline at end of file
diff --git a/test/core/json/corpus/5a37a26dd2482226f534f79d321d28e7a615ab72 b/test/core/json/corpus/5a37a26dd2482226f534f79d321d28e7a615ab72
new file mode 100644
index 0000000000..c9b11ff249
--- /dev/null
+++ b/test/core/json/corpus/5a37a26dd2482226f534f79d321d28e7a615ab72
@@ -0,0 +1 @@
+[0.959] \ No newline at end of file
diff --git a/test/core/json/corpus/5a710dcd4c78ca1a74ceb9fbfb011f7ac86a5f7b b/test/core/json/corpus/5a710dcd4c78ca1a74ceb9fbfb011f7ac86a5f7b
new file mode 100644
index 0000000000..a1cd2e728b
--- /dev/null
+++ b/test/core/json/corpus/5a710dcd4c78ca1a74ceb9fbfb011f7ac86a5f7b
@@ -0,0 +1 @@
+[[{}G3 \ No newline at end of file
diff --git a/test/core/json/corpus/5ae7b87f5377d5ffc16fd3f69b4a4aa7be8b1184 b/test/core/json/corpus/5ae7b87f5377d5ffc16fd3f69b4a4aa7be8b1184
new file mode 100644
index 0000000000..a1c1118041
--- /dev/null
+++ b/test/core/json/corpus/5ae7b87f5377d5ffc16fd3f69b4a4aa7be8b1184
@@ -0,0 +1,2 @@
+{
+"ˆ"ÈÃ"" \ No newline at end of file
diff --git a/test/core/json/corpus/5b3fe86d5a309a6ba745881bd220fe1100b271ce b/test/core/json/corpus/5b3fe86d5a309a6ba745881bd220fe1100b271ce
new file mode 100644
index 0000000000..bd45ebfd39
--- /dev/null
+++ b/test/core/json/corpus/5b3fe86d5a309a6ba745881bd220fe1100b271ce
@@ -0,0 +1 @@
+true82 'ANE2(0;) \ No newline at end of file
diff --git a/test/core/json/corpus/5c38b7da113ab4535dbc22777ce8a1480c1c9d1e b/test/core/json/corpus/5c38b7da113ab4535dbc22777ce8a1480c1c9d1e
new file mode 100644
index 0000000000..a135742235
--- /dev/null
+++ b/test/core/json/corpus/5c38b7da113ab4535dbc22777ce8a1480c1c9d1e
@@ -0,0 +1 @@
+{"'!'\u3B:Š \ No newline at end of file
diff --git a/test/core/json/corpus/5ca6c45a8d2e11c782806df43e7668beb4aba8f5 b/test/core/json/corpus/5ca6c45a8d2e11c782806df43e7668beb4aba8f5
new file mode 100644
index 0000000000..ef736fdd7e
--- /dev/null
+++ b/test/core/json/corpus/5ca6c45a8d2e11c782806df43e7668beb4aba8f5
@@ -0,0 +1 @@
+nul \ No newline at end of file
diff --git a/test/core/json/corpus/5da7b543313339f84fd52e96bacf3a73368a1d2c b/test/core/json/corpus/5da7b543313339f84fd52e96bacf3a73368a1d2c
new file mode 100644
index 0000000000..0e44b3ec9b
--- /dev/null
+++ b/test/core/json/corpus/5da7b543313339f84fd52e96bacf3a73368a1d2c
@@ -0,0 +1 @@
+])Ã!:{"*¾?'ʳ³!!*!à):!*à:::\udbD8ˆ)Ã!:{!`!?`¾¾!?'!*m,');…'` \ No newline at end of file
diff --git a/test/core/json/corpus/5e12ae9117668bcc22832640cc626315940aeba8 b/test/core/json/corpus/5e12ae9117668bcc22832640cc626315940aeba8
new file mode 100644
index 0000000000..c1820184ab
--- /dev/null
+++ b/test/core/json/corpus/5e12ae9117668bcc22832640cc626315940aeba8
@@ -0,0 +1 @@
+[":(%'(\n {'! \ No newline at end of file
diff --git a/test/core/json/corpus/5e397439a2680ed827c46704969c6711dabbda84 b/test/core/json/corpus/5e397439a2680ed827c46704969c6711dabbda84
new file mode 100644
index 0000000000..3be1f8657e
--- /dev/null
+++ b/test/core/json/corpus/5e397439a2680ed827c46704969c6711dabbda84
@@ -0,0 +1 @@
+"!!\\'' \ No newline at end of file
diff --git a/test/core/json/corpus/5e629dfb8b7533c7c2d173d4c3d587c88112cc29 b/test/core/json/corpus/5e629dfb8b7533c7c2d173d4c3d587c88112cc29
new file mode 100644
index 0000000000..08b9840484
--- /dev/null
+++ b/test/core/json/corpus/5e629dfb8b7533c7c2d173d4c3d587c88112cc29
@@ -0,0 +1 @@
+1e2188560 \ No newline at end of file
diff --git a/test/core/json/corpus/5e785c7c26813577f3e30ef8f7e37ab2a9ffe39c b/test/core/json/corpus/5e785c7c26813577f3e30ef8f7e37ab2a9ffe39c
new file mode 100644
index 0000000000..134ad52f0d
--- /dev/null
+++ b/test/core/json/corpus/5e785c7c26813577f3e30ef8f7e37ab2a9ffe39c
@@ -0,0 +1 @@
+{"":0,}f'+G{)13(§!(''\! \ No newline at end of file
diff --git a/test/core/json/corpus/5f3394f5058822cc044b92654837625897176480 b/test/core/json/corpus/5f3394f5058822cc044b92654837625897176480
new file mode 100644
index 0000000000..fb460ce022
--- /dev/null
+++ b/test/core/json/corpus/5f3394f5058822cc044b92654837625897176480
@@ -0,0 +1 @@
+813e1622427913e1099560 \ No newline at end of file
diff --git a/test/core/json/corpus/5fb9bcbbb30a377209eab0541d144e44e71508d7 b/test/core/json/corpus/5fb9bcbbb30a377209eab0541d144e44e71508d7
new file mode 100644
index 0000000000..a83c813485
--- /dev/null
+++ b/test/core/json/corpus/5fb9bcbbb30a377209eab0541d144e44e71508d7
@@ -0,0 +1 @@
+,0) \ No newline at end of file
diff --git a/test/core/json/corpus/6008213a61d06b4382b223768530c3452968b7b3 b/test/core/json/corpus/6008213a61d06b4382b223768530c3452968b7b3
new file mode 100644
index 0000000000..46f81353b4
--- /dev/null
+++ b/test/core/json/corpus/6008213a61d06b4382b223768530c3452968b7b3
@@ -0,0 +1 @@
+{"',!u65E8850{2312;):ˆ)!*?'¾Ê³³!ª!à):!*Àà::4!9:\udD86' \ No newline at end of file
diff --git a/test/core/json/corpus/60ba4b2daa4ed4d070fec06687e249e0e6f9ee45 b/test/core/json/corpus/60ba4b2daa4ed4d070fec06687e249e0e6f9ee45
new file mode 100644
index 0000000000..81750b96f9
--- /dev/null
+++ b/test/core/json/corpus/60ba4b2daa4ed4d070fec06687e249e0e6f9ee45
@@ -0,0 +1 @@
+{ \ No newline at end of file
diff --git a/test/core/json/corpus/625ed64c30c8ab2f0b3bc75690f9faa4270f0041 b/test/core/json/corpus/625ed64c30c8ab2f0b3bc75690f9faa4270f0041
new file mode 100644
index 0000000000..a9322d461a
--- /dev/null
+++ b/test/core/json/corpus/625ed64c30c8ab2f0b3bc75690f9faa4270f0041
@@ -0,0 +1 @@
+"ˆÃ{)!:*¾;?'ʳ³!!*!à):!*à::d\b:8))ˆÃ![1.‡97:{ \ No newline at end of file
diff --git a/test/core/json/corpus/6314c2b304d04dc0108a95d29a93515e85e2b0b0 b/test/core/json/corpus/6314c2b304d04dc0108a95d29a93515e85e2b0b0
new file mode 100644
index 0000000000..5981d9b677
--- /dev/null
+++ b/test/core/json/corpus/6314c2b304d04dc0108a95d29a93515e85e2b0b0
@@ -0,0 +1 @@
+{"*]:Ã!{)¾?'ʳ³ :*!à):!*à:::\udbD8\u)!{Ã:{!`!?`¾¾")(¡ \ No newline at end of file
diff --git a/test/core/json/corpus/6462d8079d2ea921617e7d073b85cfab706800d3 b/test/core/json/corpus/6462d8079d2ea921617e7d073b85cfab706800d3
new file mode 100644
index 0000000000..8ecd203c10
--- /dev/null
+++ b/test/core/json/corpus/6462d8079d2ea921617e7d073b85cfab706800d3
@@ -0,0 +1 @@
+null³ \ No newline at end of file
diff --git a/test/core/json/corpus/6474383282788e556aa86f57fc8650137ad264d0 b/test/core/json/corpus/6474383282788e556aa86f57fc8650137ad264d0
new file mode 100644
index 0000000000..9210f64068
--- /dev/null
+++ b/test/core/json/corpus/6474383282788e556aa86f57fc8650137ad264d0
@@ -0,0 +1 @@
+{"!!\/!!\''' \ No newline at end of file
diff --git a/test/core/json/corpus/648c3f58ecc8fb4b8c779e6b11006ab5b1986dad b/test/core/json/corpus/648c3f58ecc8fb4b8c779e6b11006ab5b1986dad
new file mode 100644
index 0000000000..dc9a929793
--- /dev/null
+++ b/test/core/json/corpus/648c3f58ecc8fb4b8c779e6b11006ab5b1986dad
@@ -0,0 +1 @@
+21.498" \ No newline at end of file
diff --git a/test/core/json/corpus/66328e03a2ccd5e54dab23b816182786e6f518b6 b/test/core/json/corpus/66328e03a2ccd5e54dab23b816182786e6f518b6
new file mode 100644
index 0000000000..0d7016ba9e
--- /dev/null
+++ b/test/core/json/corpus/66328e03a2ccd5e54dab23b816182786e6f518b6
@@ -0,0 +1 @@
+[{"ˆÃ\t5{)!:* \ No newline at end of file
diff --git a/test/core/json/corpus/683e9045bc95e0cb5fc16ec64b118433475ba559 b/test/core/json/corpus/683e9045bc95e0cb5fc16ec64b118433475ba559
new file mode 100644
index 0000000000..ab9ecdf660
--- /dev/null
+++ b/test/core/json/corpus/683e9045bc95e0cb5fc16ec64b118433475ba559
Binary files differ
diff --git a/test/core/json/corpus/689f13680f4682303c8aa6828b67955959dc9669 b/test/core/json/corpus/689f13680f4682303c8aa6828b67955959dc9669
new file mode 100644
index 0000000000..e49c89033a
--- /dev/null
+++ b/test/core/json/corpus/689f13680f4682303c8aa6828b67955959dc9669
@@ -0,0 +1 @@
+["*]:Ã!{)¾?'ʳ³!!*!à):!*à:::\udcD8ˆ){Ã!:{!`!?`¾¾"(¡ \ No newline at end of file
diff --git a/test/core/json/corpus/68c6ba7f0602a5410d1fa3c5de24fe264436b993 b/test/core/json/corpus/68c6ba7f0602a5410d1fa3c5de24fe264436b993
new file mode 100644
index 0000000000..05c556cb25
--- /dev/null
+++ b/test/core/json/corpus/68c6ba7f0602a5410d1fa3c5de24fe264436b993
@@ -0,0 +1 @@
+{},[ \ No newline at end of file
diff --git a/test/core/json/corpus/699cafde80b1e1777306f781186d1253f018ab23 b/test/core/json/corpus/699cafde80b1e1777306f781186d1253f018ab23
new file mode 100644
index 0000000000..54a4e1edc4
--- /dev/null
+++ b/test/core/json/corpus/699cafde80b1e1777306f781186d1253f018ab23
@@ -0,0 +1 @@
+[2}5{ \ No newline at end of file
diff --git a/test/core/json/corpus/69ab053b59e235fd6af246c5180f15bd95295113 b/test/core/json/corpus/69ab053b59e235fd6af246c5180f15bd95295113
new file mode 100644
index 0000000000..dc0f5a0aaf
--- /dev/null
+++ b/test/core/json/corpus/69ab053b59e235fd6af246c5180f15bd95295113
@@ -0,0 +1 @@
+{,0)  \ No newline at end of file
diff --git a/test/core/json/corpus/69afa12510b2e653b0af7c7030832647b2d63c37 b/test/core/json/corpus/69afa12510b2e653b0af7c7030832647b2d63c37
new file mode 100644
index 0000000000..5cd5103673
--- /dev/null
+++ b/test/core/json/corpus/69afa12510b2e653b0af7c7030832647b2d63c37
@@ -0,0 +1 @@
+"ˆÃ," \ No newline at end of file
diff --git a/test/core/json/corpus/6b75857f86be5c51b21a97f4a61e69e8bb6cd698 b/test/core/json/corpus/6b75857f86be5c51b21a97f4a61e69e8bb6cd698
new file mode 100644
index 0000000000..890abf258d
--- /dev/null
+++ b/test/core/json/corpus/6b75857f86be5c51b21a97f4a61e69e8bb6cd698
@@ -0,0 +1 @@
+310560 \ No newline at end of file
diff --git a/test/core/json/corpus/6c75e71ecde9f073a7bad89f4831c8cde0bc1830 b/test/core/json/corpus/6c75e71ecde9f073a7bad89f4831c8cde0bc1830
new file mode 100644
index 0000000000..84d8fa5600
--- /dev/null
+++ b/test/core/json/corpus/6c75e71ecde9f073a7bad89f4831c8cde0bc1830
@@ -0,0 +1 @@
+9 3'Á6 \ No newline at end of file
diff --git a/test/core/json/corpus/6ce5170dc4f2eee3b31a875b6a41f2444959f3dd b/test/core/json/corpus/6ce5170dc4f2eee3b31a875b6a41f2444959f3dd
new file mode 100644
index 0000000000..c91aab3f3a
--- /dev/null
+++ b/test/core/json/corpus/6ce5170dc4f2eee3b31a875b6a41f2444959f3dd
@@ -0,0 +1 @@
+0}54 \ No newline at end of file
diff --git a/test/core/json/corpus/6d2859436fbbee637f0a5981ca82e8f88a1d0d28 b/test/core/json/corpus/6d2859436fbbee637f0a5981ca82e8f88a1d0d28
new file mode 100644
index 0000000000..12d7c034b9
--- /dev/null
+++ b/test/core/json/corpus/6d2859436fbbee637f0a5981ca82e8f88a1d0d28
@@ -0,0 +1 @@
+[tr[[0.193;]4* \ No newline at end of file
diff --git a/test/core/json/corpus/6d63e39f56d1d537bab9c2830303cabab3cd9035 b/test/core/json/corpus/6d63e39f56d1d537bab9c2830303cabab3cd9035
new file mode 100644
index 0000000000..6b513824b5
--- /dev/null
+++ b/test/core/json/corpus/6d63e39f56d1d537bab9c2830303cabab3cd9035
@@ -0,0 +1 @@
+{"":}+G{12§(!(''\! \ No newline at end of file
diff --git a/test/core/json/corpus/6e05a0a240fe2974e14527bbe390d294564156e2 b/test/core/json/corpus/6e05a0a240fe2974e14527bbe390d294564156e2
new file mode 100644
index 0000000000..82236fc0e8
--- /dev/null
+++ b/test/core/json/corpus/6e05a0a240fe2974e14527bbe390d294564156e2
@@ -0,0 +1 @@
+[2.1981 \ No newline at end of file
diff --git a/test/core/json/corpus/6e6c9d301adb0f0ddffd79cdf3426a2de99bad48 b/test/core/json/corpus/6e6c9d301adb0f0ddffd79cdf3426a2de99bad48
new file mode 100644
index 0000000000..363c669178
--- /dev/null
+++ b/test/core/json/corpus/6e6c9d301adb0f0ddffd79cdf3426a2de99bad48
@@ -0,0 +1,2 @@
+{
+"ˆÃ" \ No newline at end of file
diff --git a/test/core/json/corpus/6e989edf725ec64849377681ce02641c3d1870e8 b/test/core/json/corpus/6e989edf725ec64849377681ce02641c3d1870e8
new file mode 100644
index 0000000000..45cb64d807
--- /dev/null
+++ b/test/core/json/corpus/6e989edf725ec64849377681ce02641c3d1870e8
@@ -0,0 +1 @@
+2}G)y3 \ No newline at end of file
diff --git a/test/core/json/corpus/70142f66475ae2fb33722d8d4750f386ecfefe7b b/test/core/json/corpus/70142f66475ae2fb33722d8d4750f386ecfefe7b
new file mode 100644
index 0000000000..415b19fc36
--- /dev/null
+++ b/test/core/json/corpus/70142f66475ae2fb33722d8d4750f386ecfefe7b
@@ -0,0 +1 @@
+2.0 \ No newline at end of file
diff --git a/test/core/json/corpus/719edbe667ce2729ac78a22dac29263c91144029 b/test/core/json/corpus/719edbe667ce2729ac78a22dac29263c91144029
new file mode 100644
index 0000000000..fccbca338e
--- /dev/null
+++ b/test/core/json/corpus/719edbe667ce2729ac78a22dac29263c91144029
@@ -0,0 +1 @@
+ 1e-2188560 \ No newline at end of file
diff --git a/test/core/json/corpus/71f99ca2bda6ef2e15b965479a79587f9d794be0 b/test/core/json/corpus/71f99ca2bda6ef2e15b965479a79587f9d794be0
new file mode 100644
index 0000000000..bad49bbd1c
--- /dev/null
+++ b/test/core/json/corpus/71f99ca2bda6ef2e15b965479a79587f9d794be0
@@ -0,0 +1 @@
+834E;) \ No newline at end of file
diff --git a/test/core/json/corpus/743e89b768af4bd591ea7228118550b1bfb8e7d1 b/test/core/json/corpus/743e89b768af4bd591ea7228118550b1bfb8e7d1
new file mode 100644
index 0000000000..b232065b09
--- /dev/null
+++ b/test/core/json/corpus/743e89b768af4bd591ea7228118550b1bfb8e7d1
@@ -0,0 +1 @@
+{"":0}f'+G{)13(§!(''\! \ No newline at end of file
diff --git a/test/core/json/corpus/7714a1a32872442a2eaff472685f3ea69451a732 b/test/core/json/corpus/7714a1a32872442a2eaff472685f3ea69451a732
new file mode 100644
index 0000000000..03a8147cf4
--- /dev/null
+++ b/test/core/json/corpus/7714a1a32872442a2eaff472685f3ea69451a732
@@ -0,0 +1 @@
+8324E685;) \ No newline at end of file
diff --git a/test/core/json/corpus/7719a1c782a1ba91c031a682a0a2f8658209adbf b/test/core/json/corpus/7719a1c782a1ba91c031a682a0a2f8658209adbf
new file mode 100644
index 0000000000..d99e90eb96
--- /dev/null
+++ b/test/core/json/corpus/7719a1c782a1ba91c031a682a0a2f8658209adbf
@@ -0,0 +1 @@
+29 \ No newline at end of file
diff --git a/test/core/json/corpus/775e8ffda1f5d340dba472d06dc7c8bf8159e379 b/test/core/json/corpus/775e8ffda1f5d340dba472d06dc7c8bf8159e379
new file mode 100644
index 0000000000..6f56d403bb
--- /dev/null
+++ b/test/core/json/corpus/775e8ffda1f5d340dba472d06dc7c8bf8159e379
@@ -0,0 +1 @@
+{"":0},f'+G{)23(§!''! \ No newline at end of file
diff --git a/test/core/json/corpus/77de68daecd823babbb58edb1c8e14d7106e83bb b/test/core/json/corpus/77de68daecd823babbb58edb1c8e14d7106e83bb
new file mode 100644
index 0000000000..e440e5c842
--- /dev/null
+++ b/test/core/json/corpus/77de68daecd823babbb58edb1c8e14d7106e83bb
@@ -0,0 +1 @@
+3 \ No newline at end of file
diff --git a/test/core/json/corpus/7957dc9aac31e6a6783fb3a6ee073688fed6cf9d b/test/core/json/corpus/7957dc9aac31e6a6783fb3a6ee073688fed6cf9d
new file mode 100644
index 0000000000..27410a6523
--- /dev/null
+++ b/test/core/json/corpus/7957dc9aac31e6a6783fb3a6ee073688fed6cf9d
@@ -0,0 +1 @@
+fal[2.1982 \ No newline at end of file
diff --git a/test/core/json/corpus/7ae893cbbf9b11ff411640b80985ce618907559c b/test/core/json/corpus/7ae893cbbf9b11ff411640b80985ce618907559c
new file mode 100644
index 0000000000..2306064d1c
--- /dev/null
+++ b/test/core/json/corpus/7ae893cbbf9b11ff411640b80985ce618907559c
@@ -0,0 +1 @@
+[0.29]95 \ No newline at end of file
diff --git a/test/core/json/corpus/7b20ac50954063e3ad00813acab4a98b2bfdb858 b/test/core/json/corpus/7b20ac50954063e3ad00813acab4a98b2bfdb858
new file mode 100644
index 0000000000..0bfbc04aab
--- /dev/null
+++ b/test/core/json/corpus/7b20ac50954063e3ad00813acab4a98b2bfdb858
@@ -0,0 +1 @@
+[2.198 \ No newline at end of file
diff --git a/test/core/json/corpus/7b6273145fb090de1c6163586f884a1da4b5cfbf b/test/core/json/corpus/7b6273145fb090de1c6163586f884a1da4b5cfbf
new file mode 100644
index 0000000000..7e75a5796e
--- /dev/null
+++ b/test/core/json/corpus/7b6273145fb090de1c6163586f884a1da4b5cfbf
@@ -0,0 +1 @@
+n( { \ No newline at end of file
diff --git a/test/core/json/corpus/7cf84b5a78281e6c6b5a9884110f3dbc6a40e310 b/test/core/json/corpus/7cf84b5a78281e6c6b5a9884110f3dbc6a40e310
new file mode 100644
index 0000000000..6409a85fb1
--- /dev/null
+++ b/test/core/json/corpus/7cf84b5a78281e6c6b5a9884110f3dbc6a40e310
@@ -0,0 +1,2 @@
+{
+"ˆ[2":}5ˆÃ["}5""{ \ No newline at end of file
diff --git a/test/core/json/corpus/7ef13b83e6bde582d9000be043e729cd3221c150 b/test/core/json/corpus/7ef13b83e6bde582d9000be043e729cd3221c150
new file mode 100644
index 0000000000..bb690533a8
--- /dev/null
+++ b/test/core/json/corpus/7ef13b83e6bde582d9000be043e729cd3221c150
@@ -0,0 +1 @@
+{"" \!'(\'! \ No newline at end of file
diff --git a/test/core/json/corpus/82059e250904b478f65daa0e647c1647ba6d6a3d b/test/core/json/corpus/82059e250904b478f65daa0e647c1647ba6d6a3d
new file mode 100644
index 0000000000..7912fa5b71
--- /dev/null
+++ b/test/core/json/corpus/82059e250904b478f65daa0e647c1647ba6d6a3d
@@ -0,0 +1 @@
+21.596» \ No newline at end of file
diff --git a/test/core/json/corpus/8207fdf4bd302d6b6b1894990b353944a8716aa7 b/test/core/json/corpus/8207fdf4bd302d6b6b1894990b353944a8716aa7
new file mode 100644
index 0000000000..bbc3e31ed7
--- /dev/null
+++ b/test/core/json/corpus/8207fdf4bd302d6b6b1894990b353944a8716aa7
@@ -0,0 +1 @@
+{"*]:Ã!{)¾?'Ê)“ :*!à):!*à:::\udb81\uD83e12])!{Ã:{!`!? \ No newline at end of file
diff --git a/test/core/json/corpus/831a49ad81b59025c241ac9e58bd88463fd798eb b/test/core/json/corpus/831a49ad81b59025c241ac9e58bd88463fd798eb
new file mode 100644
index 0000000000..8d42875801
--- /dev/null
+++ b/test/core/json/corpus/831a49ad81b59025c241ac9e58bd88463fd798eb
@@ -0,0 +1 @@
+5E8850{2312;):ˆ)!Ã"*¾?'ʳ³!!*!à):!*à::8!9:\udbD8ˆ)Ã!:{!` \ No newline at end of file
diff --git a/test/core/json/corpus/84582c1dbe026475319df14c19967d1dd0bf751f b/test/core/json/corpus/84582c1dbe026475319df14c19967d1dd0bf751f
new file mode 100644
index 0000000000..7f509bf389
--- /dev/null
+++ b/test/core/json/corpus/84582c1dbe026475319df14c19967d1dd0bf751f
@@ -0,0 +1 @@
+560 \ No newline at end of file
diff --git a/test/core/json/corpus/860d4ad0b7c026d1fcf51932b5e46500be7860a6 b/test/core/json/corpus/860d4ad0b7c026d1fcf51932b5e46500be7860a6
new file mode 100644
index 0000000000..6e1ec8552a
--- /dev/null
+++ b/test/core/json/corpus/860d4ad0b7c026d1fcf51932b5e46500be7860a6
@@ -0,0 +1,2 @@
+3
+) \ No newline at end of file
diff --git a/test/core/json/corpus/865c7cf36a4f4499a6242e51b77b58b868a7447b b/test/core/json/corpus/865c7cf36a4f4499a6242e51b77b58b868a7447b
new file mode 100644
index 0000000000..f78c7b5e9d
--- /dev/null
+++ b/test/core/json/corpus/865c7cf36a4f4499a6242e51b77b58b868a7447b
@@ -0,0 +1 @@
+"9![\b \ No newline at end of file
diff --git a/test/core/json/corpus/87a2b80f9272583517c0207af176fc40ea55022c b/test/core/json/corpus/87a2b80f9272583517c0207af176fc40ea55022c
new file mode 100644
index 0000000000..1ba5237e8a
--- /dev/null
+++ b/test/core/json/corpus/87a2b80f9272583517c0207af176fc40ea55022c
@@ -0,0 +1 @@
+0. \ No newline at end of file
diff --git a/test/core/json/corpus/887309d048beef83ad3eabf2a79a64a389ab1c9f b/test/core/json/corpus/887309d048beef83ad3eabf2a79a64a389ab1c9f
new file mode 100644
index 0000000000..978b4e8e51
--- /dev/null
+++ b/test/core/json/corpus/887309d048beef83ad3eabf2a79a64a389ab1c9f
@@ -0,0 +1 @@
+26 \ No newline at end of file
diff --git a/test/core/json/corpus/88d89860ccaf21e5f0f002303a2cd853ecbb2acb b/test/core/json/corpus/88d89860ccaf21e5f0f002303a2cd853ecbb2acb
new file mode 100644
index 0000000000..7fffca893e
--- /dev/null
+++ b/test/core/json/corpus/88d89860ccaf21e5f0f002303a2cd853ecbb2acb
@@ -0,0 +1 @@
+{"":{}+G'(!'(\'! \ No newline at end of file
diff --git a/test/core/json/corpus/88f658400b1870ddf081fb03020c3098b0b1e083 b/test/core/json/corpus/88f658400b1870ddf081fb03020c3098b0b1e083
new file mode 100644
index 0000000000..6c4c53724a
--- /dev/null
+++ b/test/core/json/corpus/88f658400b1870ddf081fb03020c3098b0b1e083
@@ -0,0 +1 @@
+[[])Ã!:{"*¾?'ʳ³!!*!à):!*à:::\udbD{8ˆ){Ã!:{!`!?`¾¾"(¡ \ No newline at end of file
diff --git a/test/core/json/corpus/88f8b0984bb2f081918ad883c8f0ffacb5a8ff0a b/test/core/json/corpus/88f8b0984bb2f081918ad883c8f0ffacb5a8ff0a
new file mode 100644
index 0000000000..e37941d2de
--- /dev/null
+++ b/test/core/json/corpus/88f8b0984bb2f081918ad883c8f0ffacb5a8ff0a
@@ -0,0 +1,2 @@
+2
+ \ No newline at end of file
diff --git a/test/core/json/corpus/89304953495f060c7abd3584d83cb1c8e6d6653b b/test/core/json/corpus/89304953495f060c7abd3584d83cb1c8e6d6653b
new file mode 100644
index 0000000000..fa86cb3a72
--- /dev/null
+++ b/test/core/json/corpus/89304953495f060c7abd3584d83cb1c8e6d6653b
@@ -0,0 +1 @@
+[[["ˆÃ{)!:*¾;?'ʳ³!!*!à)])Ã!:{:!*à:::\"u12*1¾ \ No newline at end of file
diff --git a/test/core/json/corpus/8a5f6dc6873e3fd51fd866854d85258f8aa83a02 b/test/core/json/corpus/8a5f6dc6873e3fd51fd866854d85258f8aa83a02
new file mode 100644
index 0000000000..057adde5d0
--- /dev/null
+++ b/test/core/json/corpus/8a5f6dc6873e3fd51fd866854d85258f8aa83a02
@@ -0,0 +1,2 @@
+{
+"ˆ":ˆÃ"" \ No newline at end of file
diff --git a/test/core/json/corpus/8a87261277c15667e2957dd52c5db6757ebc8e88 b/test/core/json/corpus/8a87261277c15667e2957dd52c5db6757ebc8e88
new file mode 100644
index 0000000000..9d7ee39401
--- /dev/null
+++ b/test/core/json/corpus/8a87261277c15667e2957dd52c5db6757ebc8e88
@@ -0,0 +1 @@
+t"ˆÃ{)!:*¾;?Xʳ³!!*!à):!*à:::\ \ No newline at end of file
diff --git a/test/core/json/corpus/8aa61d8bd260942521bb1ba82cd4cce2324fdbee b/test/core/json/corpus/8aa61d8bd260942521bb1ba82cd4cce2324fdbee
new file mode 100644
index 0000000000..9c93de0d9e
--- /dev/null
+++ b/test/core/json/corpus/8aa61d8bd260942521bb1ba82cd4cce2324fdbee
@@ -0,0 +1 @@
+fal \ No newline at end of file
diff --git a/test/core/json/corpus/8d8874439569824e371a0284460440175cdb8a27 b/test/core/json/corpus/8d8874439569824e371a0284460440175cdb8a27
new file mode 100644
index 0000000000..ba964c2f6a
--- /dev/null
+++ b/test/core/json/corpus/8d8874439569824e371a0284460440175cdb8a27
@@ -0,0 +1 @@
+5E882312;) \ No newline at end of file
diff --git a/test/core/json/corpus/8d952ec2e33b2a6a1c7876898719a610f5546388 b/test/core/json/corpus/8d952ec2e33b2a6a1c7876898719a610f5546388
new file mode 100644
index 0000000000..fb7475be91
--- /dev/null
+++ b/test/core/json/corpus/8d952ec2e33b2a6a1c7876898719a610f5546388
@@ -0,0 +1 @@
+{"":0]f'+G{)13(§!(''\! \ No newline at end of file
diff --git a/test/core/json/corpus/8e6fec8a05b24f221b6e94fdfe205e5bf7709a2c b/test/core/json/corpus/8e6fec8a05b24f221b6e94fdfe205e5bf7709a2c
new file mode 100644
index 0000000000..2146b214c3
--- /dev/null
+++ b/test/core/json/corpus/8e6fec8a05b24f221b6e94fdfe205e5bf7709a2c
@@ -0,0 +1 @@
+[{"[])Ã!:{&*¾ˆÃ\f5{)!?'ʳ³!!*!à):!–à:::\ubD8:ˆ)kÃ!:{!`!?`¾¾"(* \ No newline at end of file
diff --git a/test/core/json/corpus/8e7fda77644ff91578d25243fad51a3cd6d60860 b/test/core/json/corpus/8e7fda77644ff91578d25243fad51a3cd6d60860
new file mode 100644
index 0000000000..538c0cc1ea
--- /dev/null
+++ b/test/core/json/corpus/8e7fda77644ff91578d25243fad51a3cd6d60860
@@ -0,0 +1 @@
+[2.1982; \ No newline at end of file
diff --git a/test/core/json/corpus/8ea6295ff82bb119acd44a91b463b19fedafb226 b/test/core/json/corpus/8ea6295ff82bb119acd44a91b463b19fedafb226
new file mode 100644
index 0000000000..1acdc8e43f
--- /dev/null
+++ b/test/core/json/corpus/8ea6295ff82bb119acd44a91b463b19fedafb226
@@ -0,0 +1 @@
+[[2.6»7]3* \ No newline at end of file
diff --git a/test/core/json/corpus/8ee51caaa2c2f4ee2e5b4b7ef5a89db7df1068d7 b/test/core/json/corpus/8ee51caaa2c2f4ee2e5b4b7ef5a89db7df1068d7
new file mode 100644
index 0000000000..69226f7293
--- /dev/null
+++ b/test/core/json/corpus/8ee51caaa2c2f4ee2e5b4b7ef5a89db7df1068d7
@@ -0,0 +1 @@
+92 \ No newline at end of file
diff --git a/test/core/json/corpus/8ef4dd9f2d0f9d770c937d9a43413d24df83f09b b/test/core/json/corpus/8ef4dd9f2d0f9d770c937d9a43413d24df83f09b
new file mode 100644
index 0000000000..64adcb3277
--- /dev/null
+++ b/test/core/json/corpus/8ef4dd9f2d0f9d770c937d9a43413d24df83f09b
@@ -0,0 +1 @@
+[{"ˆÃ\f5{)!:*]){ \ No newline at end of file
diff --git a/test/core/json/corpus/8efd86fb78a56a5145ed7739dcb00c78581c5375 b/test/core/json/corpus/8efd86fb78a56a5145ed7739dcb00c78581c5375
new file mode 100644
index 0000000000..32f64f4d83
--- /dev/null
+++ b/test/core/json/corpus/8efd86fb78a56a5145ed7739dcb00c78581c5375
@@ -0,0 +1 @@
+t \ No newline at end of file
diff --git a/test/core/json/corpus/8f0ba762c2fed0fc993feb91948902ac397b0919 b/test/core/json/corpus/8f0ba762c2fed0fc993feb91948902ac397b0919
new file mode 100644
index 0000000000..cda6df2258
--- /dev/null
+++ b/test/core/json/corpus/8f0ba762c2fed0fc993feb91948902ac397b0919
@@ -0,0 +1 @@
+["*:Ã!{)¾?'ʳ³!**!à):!*à:::\udbD8,ˆ \ No newline at end of file
diff --git a/test/core/json/corpus/8fe81e450694cac1eb4c4a5c966ffbc56ade3513 b/test/core/json/corpus/8fe81e450694cac1eb4c4a5c966ffbc56ade3513
new file mode 100644
index 0000000000..6b3c0439cc
--- /dev/null
+++ b/test/core/json/corpus/8fe81e450694cac1eb4c4a5c966ffbc56ade3513
@@ -0,0 +1 @@
+0.2497Ü \ No newline at end of file
diff --git a/test/core/json/corpus/902ba3cda1883801594b6e1b452790cc53948fda b/test/core/json/corpus/902ba3cda1883801594b6e1b452790cc53948fda
new file mode 100644
index 0000000000..c7930257df
--- /dev/null
+++ b/test/core/json/corpus/902ba3cda1883801594b6e1b452790cc53948fda
@@ -0,0 +1 @@
+7 \ No newline at end of file
diff --git a/test/core/json/corpus/910a1528b28ebc6ff2f2a4fedb013c86de4103e2 b/test/core/json/corpus/910a1528b28ebc6ff2f2a4fedb013c86de4103e2
new file mode 100644
index 0000000000..1c5bc51f40
--- /dev/null
+++ b/test/core/json/corpus/910a1528b28ebc6ff2f2a4fedb013c86de4103e2
@@ -0,0 +1 @@
+8162E2517;)6 \ No newline at end of file
diff --git a/test/core/json/corpus/92049bf3d8a0ec93c2d1633631c0082e66ca69e7 b/test/core/json/corpus/92049bf3d8a0ec93c2d1633631c0082e66ca69e7
new file mode 100644
index 0000000000..a4e01a762a
--- /dev/null
+++ b/test/core/json/corpus/92049bf3d8a0ec93c2d1633631c0082e66ca69e7
@@ -0,0 +1,2 @@
+0
+ \ No newline at end of file
diff --git a/test/core/json/corpus/920a3c318f3127b9c30ab02a077555c7dfbb6edb b/test/core/json/corpus/920a3c318f3127b9c30ab02a077555c7dfbb6edb
new file mode 100644
index 0000000000..2e7a62e916
--- /dev/null
+++ b/test/core/json/corpus/920a3c318f3127b9c30ab02a077555c7dfbb6edb
@@ -0,0 +1 @@
+[[["ˆÃ{)!:*¾;?'ʳ³!!*!à):!*à:::\u12198.y2db)8ˆÃ!3;!‡:{!`!.7;? \ No newline at end of file
diff --git a/test/core/json/corpus/925fc05dd661aeb4a776dcbc5df3dcb2cefaf0a6 b/test/core/json/corpus/925fc05dd661aeb4a776dcbc5df3dcb2cefaf0a6
new file mode 100644
index 0000000000..22425f2d2c
--- /dev/null
+++ b/test/core/json/corpus/925fc05dd661aeb4a776dcbc5df3dcb2cefaf0a6
@@ -0,0 +1 @@
+{}+G' \ No newline at end of file
diff --git a/test/core/json/corpus/9367ba65affd5bf7aabf79c28e783cc5d93518e8 b/test/core/json/corpus/9367ba65affd5bf7aabf79c28e783cc5d93518e8
new file mode 100644
index 0000000000..8e9c1aa242
--- /dev/null
+++ b/test/core/json/corpus/9367ba65affd5bf7aabf79c28e783cc5d93518e8
@@ -0,0 +1 @@
+[2.11E02 "ˆÁ960 \ No newline at end of file
diff --git a/test/core/json/corpus/939f5049b1eefb91ccbd3fcecaed8cb21ea6b285 b/test/core/json/corpus/939f5049b1eefb91ccbd3fcecaed8cb21ea6b285
new file mode 100644
index 0000000000..20dd34e438
--- /dev/null
+++ b/test/core/json/corpus/939f5049b1eefb91ccbd3fcecaed8cb21ea6b285
@@ -0,0 +1 @@
+"!\' \ No newline at end of file
diff --git a/test/core/json/corpus/9405c2b00eaa5526f71cc78914dbd3ecaf093b6e b/test/core/json/corpus/9405c2b00eaa5526f71cc78914dbd3ecaf093b6e
new file mode 100644
index 0000000000..f996624001
--- /dev/null
+++ b/test/core/json/corpus/9405c2b00eaa5526f71cc78914dbd3ecaf093b6e
@@ -0,0 +1 @@
+"9![\" \ No newline at end of file
diff --git a/test/core/json/corpus/94d3598751569d2a5be258e59665cbbf0692dfbe b/test/core/json/corpus/94d3598751569d2a5be258e59665cbbf0692dfbe
new file mode 100644
index 0000000000..e179cdef5f
--- /dev/null
+++ b/test/core/json/corpus/94d3598751569d2a5be258e59665cbbf0692dfbe
@@ -0,0 +1 @@
+"',!\u65E8850{2312;):ˆ)!*?'¾Ê³0.³!!ª!À):*!à:;8!9:\udbD8\uDe250' \ No newline at end of file
diff --git a/test/core/json/corpus/94f96d95d01e98fd2f04ce26c0913e5f9a882fb4 b/test/core/json/corpus/94f96d95d01e98fd2f04ce26c0913e5f9a882fb4
new file mode 100644
index 0000000000..1de2ca84cc
--- /dev/null
+++ b/test/core/json/corpus/94f96d95d01e98fd2f04ce26c0913e5f9a882fb4
@@ -0,0 +1 @@
+58!9 \ No newline at end of file
diff --git a/test/core/json/corpus/95b54a84db75abab401d282fdb04440a879a9708 b/test/core/json/corpus/95b54a84db75abab401d282fdb04440a879a9708
new file mode 100644
index 0000000000..5b41744456
--- /dev/null
+++ b/test/core/json/corpus/95b54a84db75abab401d282fdb04440a879a9708
@@ -0,0 +1 @@
+{]3[ \ No newline at end of file
diff --git a/test/core/json/corpus/96189202e587ec951d5795da3e03062f2fb5d708 b/test/core/json/corpus/96189202e587ec951d5795da3e03062f2fb5d708
new file mode 100644
index 0000000000..912fa7c4e1
--- /dev/null
+++ b/test/core/json/corpus/96189202e587ec951d5795da3e03062f2fb5d708
@@ -0,0 +1 @@
+{"( \\!§('! \ No newline at end of file
diff --git a/test/core/json/corpus/9711703428704ce2827a719eddb9d54be23a0cb7 b/test/core/json/corpus/9711703428704ce2827a719eddb9d54be23a0cb7
new file mode 100644
index 0000000000..fdb93ea319
--- /dev/null
+++ b/test/core/json/corpus/9711703428704ce2827a719eddb9d54be23a0cb7
@@ -0,0 +1 @@
+{"',!\u65E8850{2312;):ˆ)!*?'¾Ê³³!!ª!à):!*à::8!9:\udbD8,6' \ No newline at end of file
diff --git a/test/core/json/corpus/9734597e96eebe99b2243121a51d178a338ec46f b/test/core/json/corpus/9734597e96eebe99b2243121a51d178a338ec46f
new file mode 100644
index 0000000000..690337689d
--- /dev/null
+++ b/test/core/json/corpus/9734597e96eebe99b2243121a51d178a338ec46f
@@ -0,0 +1 @@
+8162E-13;0.32) \ No newline at end of file
diff --git a/test/core/json/corpus/9747c85a9510011bf87c23a80b029b9f2d04c37d b/test/core/json/corpus/9747c85a9510011bf87c23a80b029b9f2d04c37d
new file mode 100644
index 0000000000..614c91b5ef
--- /dev/null
+++ b/test/core/json/corpus/9747c85a9510011bf87c23a80b029b9f2d04c37d
@@ -0,0 +1 @@
+[0.3629,95 \ No newline at end of file
diff --git a/test/core/json/corpus/97d170e1550eee4afc0af065b78cda302a97674c b/test/core/json/corpus/97d170e1550eee4afc0af065b78cda302a97674c
new file mode 100644
index 0000000000..0637a088a0
--- /dev/null
+++ b/test/core/json/corpus/97d170e1550eee4afc0af065b78cda302a97674c
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/test/core/json/corpus/98e02e7fc96479e8d10ff2cc7610be772e2d6fba b/test/core/json/corpus/98e02e7fc96479e8d10ff2cc7610be772e2d6fba
new file mode 100644
index 0000000000..6bc0fb8fbf
--- /dev/null
+++ b/test/core/json/corpus/98e02e7fc96479e8d10ff2cc7610be772e2d6fba
@@ -0,0 +1 @@
+[[{"\/5nˆ[{+!:* \ No newline at end of file
diff --git a/test/core/json/corpus/996156b191b619eff79b2fcbb7598518a09b06bc b/test/core/json/corpus/996156b191b619eff79b2fcbb7598518a09b06bc
new file mode 100644
index 0000000000..c3f582eff6
--- /dev/null
+++ b/test/core/json/corpus/996156b191b619eff79b2fcbb7598518a09b06bc
@@ -0,0 +1 @@
+2.1498 \ No newline at end of file
diff --git a/test/core/json/corpus/99667fcfa6d583a742fb5450527fc86dfb78ebbf b/test/core/json/corpus/99667fcfa6d583a742fb5450527fc86dfb78ebbf
new file mode 100644
index 0000000000..861ae0275d
--- /dev/null
+++ b/test/core/json/corpus/99667fcfa6d583a742fb5450527fc86dfb78ebbf
@@ -0,0 +1 @@
+[{"ˆÃ{)!:*])Ã!:{"*¾?¾;?Xʳ³'!!Ê \ No newline at end of file
diff --git a/test/core/json/corpus/9b1ead2dbeeb1a3e9a7bebcf6964c3cfbc7e8867 b/test/core/json/corpus/9b1ead2dbeeb1a3e9a7bebcf6964c3cfbc7e8867
new file mode 100644
index 0000000000..d4f8951908
--- /dev/null
+++ b/test/core/json/corpus/9b1ead2dbeeb1a3e9a7bebcf6964c3cfbc7e8867
@@ -0,0 +1 @@
+t \' \ No newline at end of file
diff --git a/test/core/json/corpus/9b7669e201574bfb979d56110539a90da5aca2c0 b/test/core/json/corpus/9b7669e201574bfb979d56110539a90da5aca2c0
new file mode 100644
index 0000000000..0cb3d49316
--- /dev/null
+++ b/test/core/json/corpus/9b7669e201574bfb979d56110539a90da5aca2c0
@@ -0,0 +1 @@
+{""!!\'!!\''' \ No newline at end of file
diff --git a/test/core/json/corpus/9c24b456af3cb51a1ff2780c2d9cbdd7d93f6c76 b/test/core/json/corpus/9c24b456af3cb51a1ff2780c2d9cbdd7d93f6c76
new file mode 100644
index 0000000000..cbf048ba3c
--- /dev/null
+++ b/test/core/json/corpus/9c24b456af3cb51a1ff2780c2d9cbdd7d93f6c76
@@ -0,0 +1 @@
+nuþ*: \ No newline at end of file
diff --git a/test/core/json/corpus/9d0441f23ae7d5a3a5b1140497868ee6eeab656b b/test/core/json/corpus/9d0441f23ae7d5a3a5b1140497868ee6eeab656b
new file mode 100644
index 0000000000..ed8622835d
--- /dev/null
+++ b/test/core/json/corpus/9d0441f23ae7d5a3a5b1140497868ee6eeab656b
@@ -0,0 +1,2 @@
+{
+"ˆÃ \ No newline at end of file
diff --git a/test/core/json/corpus/9d890bd3139a8f9a44d435ff8edfbeb5b072ded0 b/test/core/json/corpus/9d890bd3139a8f9a44d435ff8edfbeb5b072ded0
new file mode 100644
index 0000000000..468bde0442
--- /dev/null
+++ b/test/core/json/corpus/9d890bd3139a8f9a44d435ff8edfbeb5b072ded0
@@ -0,0 +1,2 @@
+ 2
+p \ No newline at end of file
diff --git a/test/core/json/corpus/9e6a55b6b4563e652a23be9d623ca5055c356940 b/test/core/json/corpus/9e6a55b6b4563e652a23be9d623ca5055c356940
new file mode 100644
index 0000000000..25bf17fc5a
--- /dev/null
+++ b/test/core/json/corpus/9e6a55b6b4563e652a23be9d623ca5055c356940
@@ -0,0 +1 @@
+18 \ No newline at end of file
diff --git a/test/core/json/corpus/9ec88420ef0408642f6930996e35f5b9f18ec88c b/test/core/json/corpus/9ec88420ef0408642f6930996e35f5b9f18ec88c
new file mode 100644
index 0000000000..852eeab2f0
--- /dev/null
+++ b/test/core/json/corpus/9ec88420ef0408642f6930996e35f5b9f18ec88c
@@ -0,0 +1 @@
+"ˆÃ" \ No newline at end of file
diff --git a/test/core/json/corpus/9edd067c569315d5e93b0d14c7eac9fa6d81d3cd b/test/core/json/corpus/9edd067c569315d5e93b0d14c7eac9fa6d81d3cd
new file mode 100644
index 0000000000..86d0a11613
--- /dev/null
+++ b/test/core/json/corpus/9edd067c569315d5e93b0d14c7eac9fa6d81d3cd
@@ -0,0 +1 @@
+[0.3629,]95 \ No newline at end of file
diff --git a/test/core/json/corpus/9fbda4f714043d975389b536b4497c6d713452e5 b/test/core/json/corpus/9fbda4f714043d975389b536b4497c6d713452e5
new file mode 100644
index 0000000000..c02cbb56d2
--- /dev/null
+++ b/test/core/json/corpus/9fbda4f714043d975389b536b4497c6d713452e5
@@ -0,0 +1 @@
+[2.4 \ No newline at end of file
diff --git a/test/core/json/corpus/9fc8cb8ab3b05e306e5e81d9d949e69f931244ea b/test/core/json/corpus/9fc8cb8ab3b05e306e5e81d9d949e69f931244ea
new file mode 100644
index 0000000000..c85b1ce1f3
--- /dev/null
+++ b/test/core/json/corpus/9fc8cb8ab3b05e306e5e81d9d949e69f931244ea
Binary files differ
diff --git a/test/core/json/corpus/a02b857f2eff73e8e188f35529dd91f8144b23b9 b/test/core/json/corpus/a02b857f2eff73e8e188f35529dd91f8144b23b9
new file mode 100644
index 0000000000..3d9983adab
--- /dev/null
+++ b/test/core/json/corpus/a02b857f2eff73e8e188f35529dd91f8144b23b9
@@ -0,0 +1 @@
+295 \ No newline at end of file
diff --git a/test/core/json/corpus/a060d5bfd1235cbbe4bcecf332fa3b03bc2282e3 b/test/core/json/corpus/a060d5bfd1235cbbe4bcecf332fa3b03bc2282e3
new file mode 100644
index 0000000000..d6eb38c301
--- /dev/null
+++ b/test/core/json/corpus/a060d5bfd1235cbbe4bcecf332fa3b03bc2282e3
@@ -0,0 +1 @@
+8324E7"!;\' \ No newline at end of file
diff --git a/test/core/json/corpus/a0931fae1d43e7887c1cabde83fdfc52eaeedba8 b/test/core/json/corpus/a0931fae1d43e7887c1cabde83fdfc52eaeedba8
new file mode 100644
index 0000000000..2950be2cd6
--- /dev/null
+++ b/test/core/json/corpus/a0931fae1d43e7887c1cabde83fdfc52eaeedba8
@@ -0,0 +1 @@
+"',!\u65E8850{2312;):ˆ)!*?'¾Ê³³!!ª!À):*!à::8!9:\udbD8\u' \ No newline at end of file
diff --git a/test/core/json/corpus/a0d4af29c6c223b48fe34d6a09b3a7466242f33c b/test/core/json/corpus/a0d4af29c6c223b48fe34d6a09b3a7466242f33c
new file mode 100644
index 0000000000..db616e9f56
--- /dev/null
+++ b/test/core/json/corpus/a0d4af29c6c223b48fe34d6a09b3a7466242f33c
@@ -0,0 +1 @@
+{"":0],f'`+G{-22(§!''! \ No newline at end of file
diff --git a/test/core/json/corpus/a1abe8a785030d475a7350438fd23a05c382c110 b/test/core/json/corpus/a1abe8a785030d475a7350438fd23a05c382c110
new file mode 100644
index 0000000000..bb4e42ed29
--- /dev/null
+++ b/test/core/json/corpus/a1abe8a785030d475a7350438fd23a05c382c110
@@ -0,0 +1,2 @@
+[{
+"ˆÃ" :"ˆÃ!{)!:",}"ˆˆÃ;" \ No newline at end of file
diff --git a/test/core/json/corpus/a1fb86293eac950c2b4f5182d9e4b5d9e0982ef6 b/test/core/json/corpus/a1fb86293eac950c2b4f5182d9e4b5d9e0982ef6
new file mode 100644
index 0000000000..9ab1dd2a64
--- /dev/null
+++ b/test/core/json/corpus/a1fb86293eac950c2b4f5182d9e4b5d9e0982ef6
@@ -0,0 +1 @@
+1e+2,[2}1ˆ5{Ã" \ No newline at end of file
diff --git a/test/core/json/corpus/a2d4e3d6f5ba43c9199d5d2011678f82cfd55afc b/test/core/json/corpus/a2d4e3d6f5ba43c9199d5d2011678f82cfd55afc
new file mode 100644
index 0000000000..cfd23392af
--- /dev/null
+++ b/test/core/json/corpus/a2d4e3d6f5ba43c9199d5d2011678f82cfd55afc
@@ -0,0 +1 @@
+[{"ˆ\\t5{)!:* \ No newline at end of file
diff --git a/test/core/json/corpus/a39653cb3d97c58c44013197f4d7557577700177 b/test/core/json/corpus/a39653cb3d97c58c44013197f4d7557577700177
new file mode 100644
index 0000000000..9e667ccabb
--- /dev/null
+++ b/test/core/json/corpus/a39653cb3d97c58c44013197f4d7557577700177
@@ -0,0 +1 @@
+[true[(0.193;]4* \ No newline at end of file
diff --git a/test/core/json/corpus/a4c74ad56ae0e94e96101a8f2ce9b1e588df5e44 b/test/core/json/corpus/a4c74ad56ae0e94e96101a8f2ce9b1e588df5e44
new file mode 100644
index 0000000000..079936b5b3
--- /dev/null
+++ b/test/core/json/corpus/a4c74ad56ae0e94e96101a8f2ce9b1e588df5e44
@@ -0,0 +1 @@
+{]) \ No newline at end of file
diff --git a/test/core/json/corpus/a6b34b06b00e9226f2bd961483f9da81d8de99a8 b/test/core/json/corpus/a6b34b06b00e9226f2bd961483f9da81d8de99a8
new file mode 100644
index 0000000000..56fbef6446
--- /dev/null
+++ b/test/core/json/corpus/a6b34b06b00e9226f2bd961483f9da81d8de99a8
@@ -0,0 +1 @@
+{"*]:Ã!{)¾?'ʳ³ :!)à!*:*à:::\udbD8\\){!uÃ:{!`!?`¾¾")(¡ \ No newline at end of file
diff --git a/test/core/json/corpus/a72c3b9cc71eb7f0e0e4dabcd2dcd2b997f21c07 b/test/core/json/corpus/a72c3b9cc71eb7f0e0e4dabcd2dcd2b997f21c07
new file mode 100644
index 0000000000..30b2379364
--- /dev/null
+++ b/test/core/json/corpus/a72c3b9cc71eb7f0e0e4dabcd2dcd2b997f21c07
@@ -0,0 +1 @@
+0.9 }G3 \ No newline at end of file
diff --git a/test/core/json/corpus/a749d24bac55bc19465acc92b12244c56ca0f20d b/test/core/json/corpus/a749d24bac55bc19465acc92b12244c56ca0f20d
new file mode 100644
index 0000000000..0fc6abd4ba
--- /dev/null
+++ b/test/core/json/corpus/a749d24bac55bc19465acc92b12244c56ca0f20d
@@ -0,0 +1 @@
+}G3 \ No newline at end of file
diff --git a/test/core/json/corpus/a78009ff8b3f4d722ee0eb84795e857e74a58aea b/test/core/json/corpus/a78009ff8b3f4d722ee0eb84795e857e74a58aea
new file mode 100644
index 0000000000..6f1758e19b
--- /dev/null
+++ b/test/core/json/corpus/a78009ff8b3f4d722ee0eb84795e857e74a58aea
@@ -0,0 +1 @@
+3836278E344;2E;)) \ No newline at end of file
diff --git a/test/core/json/corpus/a7ae4b16677806d78d0016c276b6722eba8eef3c b/test/core/json/corpus/a7ae4b16677806d78d0016c276b6722eba8eef3c
new file mode 100644
index 0000000000..a42916acba
--- /dev/null
+++ b/test/core/json/corpus/a7ae4b16677806d78d0016c276b6722eba8eef3c
@@ -0,0 +1 @@
+0.724790.Ü32996 \ No newline at end of file
diff --git a/test/core/json/corpus/a806f43dd48e35e75c27814c13a2a96c12449bd1 b/test/core/json/corpus/a806f43dd48e35e75c27814c13a2a96c12449bd1
new file mode 100644
index 0000000000..91725dbb7c
--- /dev/null
+++ b/test/core/json/corpus/a806f43dd48e35e75c27814c13a2a96c12449bd1
@@ -0,0 +1 @@
+[2.1491 \ No newline at end of file
diff --git a/test/core/json/corpus/a90a858013f90d2a94e0d62a7156ffd6848bf238 b/test/core/json/corpus/a90a858013f90d2a94e0d62a7156ffd6848bf238
new file mode 100644
index 0000000000..cf6637a355
--- /dev/null
+++ b/test/core/json/corpus/a90a858013f90d2a94e0d62a7156ffd6848bf238
@@ -0,0 +1 @@
+[{"ˆÃ\n5{)!:*]){ \ No newline at end of file
diff --git a/test/core/json/corpus/a94bfbfe16d026b52d7f73cf78fdf7d6a6c5c58b b/test/core/json/corpus/a94bfbfe16d026b52d7f73cf78fdf7d6a6c5c58b
new file mode 100644
index 0000000000..6678fba6c3
--- /dev/null
+++ b/test/core/json/corpus/a94bfbfe16d026b52d7f73cf78fdf7d6a6c5c58b
@@ -0,0 +1 @@
+ ) \ No newline at end of file
diff --git a/test/core/json/corpus/a9718f029d11a9335ef596cbd42794de5b0b18b5 b/test/core/json/corpus/a9718f029d11a9335ef596cbd42794de5b0b18b5
new file mode 100644
index 0000000000..70a969babf
--- /dev/null
+++ b/test/core/json/corpus/a9718f029d11a9335ef596cbd42794de5b0b18b5
@@ -0,0 +1 @@
+0.9 \ No newline at end of file
diff --git a/test/core/json/corpus/aa6e08a488d1ed00aa51f20c2477fc89e7b0a852 b/test/core/json/corpus/aa6e08a488d1ed00aa51f20c2477fc89e7b0a852
new file mode 100644
index 0000000000..9794ac1722
--- /dev/null
+++ b/test/core/json/corpus/aa6e08a488d1ed00aa51f20c2477fc89e7b0a852
@@ -0,0 +1,2 @@
+[{
+"ˆÃ" :"ˆÃ" \ No newline at end of file
diff --git a/test/core/json/corpus/aaa038513c192fec501e4e7302156872ce2fde37 b/test/core/json/corpus/aaa038513c192fec501e4e7302156872ce2fde37
new file mode 100644
index 0000000000..3959c2e793
--- /dev/null
+++ b/test/core/json/corpus/aaa038513c192fec501e4e7302156872ce2fde37
@@ -0,0 +1,2 @@
+-2:
+p}5 \ No newline at end of file
diff --git a/test/core/json/corpus/ac2686c095a5a1c92a1d4209a6c287778720c86d b/test/core/json/corpus/ac2686c095a5a1c92a1d4209a6c287778720c86d
new file mode 100644
index 0000000000..f02f0b834f
--- /dev/null
+++ b/test/core/json/corpus/ac2686c095a5a1c92a1d4209a6c287778720c86d
@@ -0,0 +1 @@
+[2.3 \ No newline at end of file
diff --git a/test/core/json/corpus/ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 b/test/core/json/corpus/ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4
new file mode 100644
index 0000000000..7813681f5b
--- /dev/null
+++ b/test/core/json/corpus/ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4
@@ -0,0 +1 @@
+5 \ No newline at end of file
diff --git a/test/core/json/corpus/ac9231da4082430afe8f4d40127814c613648d8e b/test/core/json/corpus/ac9231da4082430afe8f4d40127814c613648d8e
new file mode 100644
index 0000000000..501a6bbaf1
--- /dev/null
+++ b/test/core/json/corpus/ac9231da4082430afe8f4d40127814c613648d8e
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/test/core/json/corpus/adc83b19e793491b1c6ea0fd8b46cd9f32e592fc b/test/core/json/corpus/adc83b19e793491b1c6ea0fd8b46cd9f32e592fc
new file mode 100644
index 0000000000..8b13789179
--- /dev/null
+++ b/test/core/json/corpus/adc83b19e793491b1c6ea0fd8b46cd9f32e592fc
@@ -0,0 +1 @@
+
diff --git a/test/core/json/corpus/aff25e569bd8c93157e08cd18ebcd896438e34c9 b/test/core/json/corpus/aff25e569bd8c93157e08cd18ebcd896438e34c9
new file mode 100644
index 0000000000..ca4243001b
--- /dev/null
+++ b/test/core/json/corpus/aff25e569bd8c93157e08cd18ebcd896438e34c9
@@ -0,0 +1 @@
+{"( \!'(\'! \ No newline at end of file
diff --git a/test/core/json/corpus/affced8168ec801de89deac663f708f0c96cf1a4 b/test/core/json/corpus/affced8168ec801de89deac663f708f0c96cf1a4
new file mode 100644
index 0000000000..3579fbd382
--- /dev/null
+++ b/test/core/json/corpus/affced8168ec801de89deac663f708f0c96cf1a4
@@ -0,0 +1 @@
+t92 \'862E517;) \ No newline at end of file
diff --git a/test/core/json/corpus/b015dfc2f62b640d7c25adab7b38c5fcb5cb64c8 b/test/core/json/corpus/b015dfc2f62b640d7c25adab7b38c5fcb5cb64c8
new file mode 100644
index 0000000000..d5ffeffa24
--- /dev/null
+++ b/test/core/json/corpus/b015dfc2f62b640d7c25adab7b38c5fcb5cb64c8
@@ -0,0 +1 @@
+58E+³4y;0)ˆ )!Ã \ No newline at end of file
diff --git a/test/core/json/corpus/b021dd7cd98b63092685ea092df0dc01c8f63334 b/test/core/json/corpus/b021dd7cd98b63092685ea092df0dc01c8f63334
new file mode 100644
index 0000000000..43789b2ec3
--- /dev/null
+++ b/test/core/json/corpus/b021dd7cd98b63092685ea092df0dc01c8f63334
@@ -0,0 +1 @@
+{"*]:Ã!{)¾?'ʳ³ :*!à):!*à:::\udbD8\u813e12)!{Ã:{!`!? \ No newline at end of file
diff --git a/test/core/json/corpus/b17485b8bdec8809b3819a83753ca893871df403 b/test/core/json/corpus/b17485b8bdec8809b3819a83753ca893871df403
new file mode 100644
index 0000000000..375ad53fb9
--- /dev/null
+++ b/test/core/json/corpus/b17485b8bdec8809b3819a83753ca893871df403
@@ -0,0 +1 @@
+0,Ó) \ No newline at end of file
diff --git a/test/core/json/corpus/b32ef51eca9c6c658e6fb75fdf96bbba066404e7 b/test/core/json/corpus/b32ef51eca9c6c658e6fb75fdf96bbba066404e7
new file mode 100644
index 0000000000..62837674c2
--- /dev/null
+++ b/test/core/json/corpus/b32ef51eca9c6c658e6fb75fdf96bbba066404e7
@@ -0,0 +1 @@
+fals%) \ No newline at end of file
diff --git a/test/core/json/corpus/b3f0c7f6bb763af1be91d9e74eabfeb199dc1f1f b/test/core/json/corpus/b3f0c7f6bb763af1be91d9e74eabfeb199dc1f1f
new file mode 100644
index 0000000000..dec2bf5d61
--- /dev/null
+++ b/test/core/json/corpus/b3f0c7f6bb763af1be91d9e74eabfeb199dc1f1f
@@ -0,0 +1 @@
+19 \ No newline at end of file
diff --git a/test/core/json/corpus/b45a1635ec526bcc890f9d735976704e516c5f19 b/test/core/json/corpus/b45a1635ec526bcc890f9d735976704e516c5f19
new file mode 100644
index 0000000000..5df3969cc4
--- /dev/null
+++ b/test/core/json/corpus/b45a1635ec526bcc890f9d735976704e516c5f19
@@ -0,0 +1 @@
+{"":(!'(\'! \ No newline at end of file
diff --git a/test/core/json/corpus/b50ce51a7baa28cd298ebd05b4a3b9b70f9d4370 b/test/core/json/corpus/b50ce51a7baa28cd298ebd05b4a3b9b70f9d4370
new file mode 100644
index 0000000000..cb9a114076
--- /dev/null
+++ b/test/core/json/corpus/b50ce51a7baa28cd298ebd05b4a3b9b70f9d4370
@@ -0,0 +1 @@
+832834E4E;6;)) \ No newline at end of file
diff --git a/test/core/json/corpus/b5126721812b925426b30d283d2bb8b6969f230a b/test/core/json/corpus/b5126721812b925426b30d283d2bb8b6969f230a
new file mode 100644
index 0000000000..fdd7734f4a
--- /dev/null
+++ b/test/core/json/corpus/b5126721812b925426b30d283d2bb8b6969f230a
@@ -0,0 +1 @@
+5E9 3'Á8)232;)6 \ No newline at end of file
diff --git a/test/core/json/corpus/b57af943a3ee411bffeaa3872eec9c6fb01569a4 b/test/core/json/corpus/b57af943a3ee411bffeaa3872eec9c6fb01569a4
new file mode 100644
index 0000000000..b6970dd4e8
--- /dev/null
+++ b/test/core/json/corpus/b57af943a3ee411bffeaa3872eec9c6fb01569a4
@@ -0,0 +1 @@
+0. { \ No newline at end of file
diff --git a/test/core/json/corpus/b5abf6fd22ed0f852781de35d043059d0f86f3cd b/test/core/json/corpus/b5abf6fd22ed0f852781de35d043059d0f86f3cd
new file mode 100644
index 0000000000..7bf416f706
--- /dev/null
+++ b/test/core/json/corpus/b5abf6fd22ed0f852781de35d043059d0f86f3cd
@@ -0,0 +1 @@
+0,f') \ No newline at end of file
diff --git a/test/core/json/corpus/b6589fc6ab0dc82cf12099d1c2d40ab994e8410c b/test/core/json/corpus/b6589fc6ab0dc82cf12099d1c2d40ab994e8410c
new file mode 100644
index 0000000000..c227083464
--- /dev/null
+++ b/test/core/json/corpus/b6589fc6ab0dc82cf12099d1c2d40ab994e8410c
@@ -0,0 +1 @@
+0 \ No newline at end of file
diff --git a/test/core/json/corpus/b6f19238d2b04c5b86a17369093dafda34f332e7 b/test/core/json/corpus/b6f19238d2b04c5b86a17369093dafda34f332e7
new file mode 100644
index 0000000000..fb1edb4323
--- /dev/null
+++ b/test/core/json/corpus/b6f19238d2b04c5b86a17369093dafda34f332e7
@@ -0,0 +1,2 @@
+")
+è"ˆÃ{)!:*¾;!'ʳ³!!*!à):!*"ˆÃ{)!:*])à \ No newline at end of file
diff --git a/test/core/json/corpus/b858cb282617fb0956d960215c8e84d1ccf909c6 b/test/core/json/corpus/b858cb282617fb0956d960215c8e84d1ccf909c6
new file mode 100644
index 0000000000..0519ecba6e
--- /dev/null
+++ b/test/core/json/corpus/b858cb282617fb0956d960215c8e84d1ccf909c6
@@ -0,0 +1 @@
+ \ No newline at end of file
diff --git a/test/core/json/corpus/b9c38fad09c80db7781fefbe51039752de575ecc b/test/core/json/corpus/b9c38fad09c80db7781fefbe51039752de575ecc
new file mode 100644
index 0000000000..c16d3bcd70
--- /dev/null
+++ b/test/core/json/corpus/b9c38fad09c80db7781fefbe51039752de575ecc
@@ -0,0 +1 @@
+3e45!01860 \ No newline at end of file
diff --git a/test/core/json/corpus/bb407c8992800444201dccfe744dac49c0295fde b/test/core/json/corpus/bb407c8992800444201dccfe744dac49c0295fde
new file mode 100644
index 0000000000..7984a6f31a
--- /dev/null
+++ b/test/core/json/corpus/bb407c8992800444201dccfe744dac49c0295fde
@@ -0,0 +1 @@
+{"!(!\t' \ No newline at end of file
diff --git a/test/core/json/corpus/bc335734f73502b92d2bd3587259ce915985f0ee b/test/core/json/corpus/bc335734f73502b92d2bd3587259ce915985f0ee
new file mode 100644
index 0000000000..75ce6ce699
--- /dev/null
+++ b/test/core/json/corpus/bc335734f73502b92d2bd3587259ce915985f0ee
@@ -0,0 +1 @@
+0.6995 \ No newline at end of file
diff --git a/test/core/json/corpus/bd113c2c8a2328e3674c680c7cff829a6c8ab924 b/test/core/json/corpus/bd113c2c8a2328e3674c680c7cff829a6c8ab924
new file mode 100644
index 0000000000..08894eebc3
--- /dev/null
+++ b/test/core/json/corpus/bd113c2c8a2328e3674c680c7cff829a6c8ab924
@@ -0,0 +1 @@
+[2.10;2;® \ No newline at end of file
diff --git a/test/core/json/corpus/be051d58015d4af1977a5dfd14ef3fd070ecc9d2 b/test/core/json/corpus/be051d58015d4af1977a5dfd14ef3fd070ecc9d2
new file mode 100644
index 0000000000..c56ae0e91e
--- /dev/null
+++ b/test/core/json/corpus/be051d58015d4af1977a5dfd14ef3fd070ecc9d2
@@ -0,0 +1 @@
+9! \ No newline at end of file
diff --git a/test/core/json/corpus/be461a0cd1fda052a69c3fd94f8cf5f6f86afa34 b/test/core/json/corpus/be461a0cd1fda052a69c3fd94f8cf5f6f86afa34
new file mode 100644
index 0000000000..3ca9062a11
--- /dev/null
+++ b/test/core/json/corpus/be461a0cd1fda052a69c3fd94f8cf5f6f86afa34
@@ -0,0 +1 @@
+84 \ No newline at end of file
diff --git a/test/core/json/corpus/bef524502f8dbbc45af717ece01ec88edd7f903b b/test/core/json/corpus/bef524502f8dbbc45af717ece01ec88edd7f903b
new file mode 100644
index 0000000000..2a42b126fb
--- /dev/null
+++ b/test/core/json/corpus/bef524502f8dbbc45af717ece01ec88edd7f903b
@@ -0,0 +1 @@
+13e108560 \ No newline at end of file
diff --git a/test/core/json/corpus/bf21a9e8fbc5a3846fb05b4fa0859e0917b2202f b/test/core/json/corpus/bf21a9e8fbc5a3846fb05b4fa0859e0917b2202f
new file mode 100644
index 0000000000..9e26dfeeb6
--- /dev/null
+++ b/test/core/json/corpus/bf21a9e8fbc5a3846fb05b4fa0859e0917b2202f
@@ -0,0 +1 @@
+{} \ No newline at end of file
diff --git a/test/core/json/corpus/c0b6a90832b78ed5f6d129d3640c612540527c85 b/test/core/json/corpus/c0b6a90832b78ed5f6d129d3640c612540527c85
new file mode 100644
index 0000000000..a03cfc1400
--- /dev/null
+++ b/test/core/json/corpus/c0b6a90832b78ed5f6d129d3640c612540527c85
@@ -0,0 +1 @@
+{"'!\u3Â:Š \ No newline at end of file
diff --git a/test/core/json/corpus/c18d315f0d35849b2aae4a47cab4608204b85d76 b/test/core/json/corpus/c18d315f0d35849b2aae4a47cab4608204b85d76
new file mode 100644
index 0000000000..d082c57dc7
--- /dev/null
+++ b/test/core/json/corpus/c18d315f0d35849b2aae4a47cab4608204b85d76
@@ -0,0 +1,2 @@
+[{")
+è"ˆÃ{)!:*¾;!'ʳ³!!*!à):!*"ˆÃ{)!:*])à \ No newline at end of file
diff --git a/test/core/json/corpus/c257fd6bc9e5254a733378ab4ddd39629c4a3069 b/test/core/json/corpus/c257fd6bc9e5254a733378ab4ddd39629c4a3069
new file mode 100644
index 0000000000..b040a5eb50
--- /dev/null
+++ b/test/core/json/corpus/c257fd6bc9e5254a733378ab4ddd39629c4a3069
@@ -0,0 +1 @@
+13e128560 \ No newline at end of file
diff --git a/test/core/json/corpus/c2bf7f49d8f2e13a60af4473b3b3451b65b3aa9a b/test/core/json/corpus/c2bf7f49d8f2e13a60af4473b3b3451b65b3aa9a
new file mode 100644
index 0000000000..7f9e4a682d
--- /dev/null
+++ b/test/core/json/corpus/c2bf7f49d8f2e13a60af4473b3b3451b65b3aa9a
@@ -0,0 +1 @@
+1e+2188560 \ No newline at end of file
diff --git a/test/core/json/corpus/c308517acf6f7088634d491a1608240f83a3ac95 b/test/core/json/corpus/c308517acf6f7088634d491a1608240f83a3ac95
new file mode 100644
index 0000000000..cc5647402c
--- /dev/null
+++ b/test/core/json/corpus/c308517acf6f7088634d491a1608240f83a3ac95
@@ -0,0 +1 @@
+0.427Ü$ \ No newline at end of file
diff --git a/test/core/json/corpus/c3badd71ef8a51b97ce93cbfe99f6778048f2128 b/test/core/json/corpus/c3badd71ef8a51b97ce93cbfe99f6778048f2128
new file mode 100644
index 0000000000..4d10e087fe
--- /dev/null
+++ b/test/core/json/corpus/c3badd71ef8a51b97ce93cbfe99f6778048f2128
@@ -0,0 +1 @@
+3( \ No newline at end of file
diff --git a/test/core/json/corpus/c482a632702ae7f532d126e70149dda4fadc3cd7 b/test/core/json/corpus/c482a632702ae7f532d126e70149dda4fadc3cd7
new file mode 100644
index 0000000000..e041368ade
--- /dev/null
+++ b/test/core/json/corpus/c482a632702ae7f532d126e70149dda4fadc3cd7
@@ -0,0 +1 @@
+0.2996 \ No newline at end of file
diff --git a/test/core/json/corpus/c541bb86e55b98e083b141114066f9c17d853374 b/test/core/json/corpus/c541bb86e55b98e083b141114066f9c17d853374
new file mode 100644
index 0000000000..8162989fcf
--- /dev/null
+++ b/test/core/json/corpus/c541bb86e55b98e083b141114066f9c17d853374
@@ -0,0 +1 @@
+[[["ˆÃ{)!:*¾;?'ʳ³!!*!à):!*à:::\u06099.y2db)8ˆÃ!3;!‡:{!`!.7;? \ No newline at end of file
diff --git a/test/core/json/corpus/c5b50b9015b6aaedd7eb1077b1204858f837b53c b/test/core/json/corpus/c5b50b9015b6aaedd7eb1077b1204858f837b53c
new file mode 100644
index 0000000000..deb26ed130
--- /dev/null
+++ b/test/core/json/corpus/c5b50b9015b6aaedd7eb1077b1204858f837b53c
@@ -0,0 +1 @@
+"',!\u65E8850{2312;):ˆ)!*?'¾Ê³0.³!!ª!À):*!à::8!9:\udbD8\u82510' \ No newline at end of file
diff --git a/test/core/json/corpus/c62ef0dbd1350da9ea5a32e56672d385837643e7 b/test/core/json/corpus/c62ef0dbd1350da9ea5a32e56672d385837643e7
new file mode 100644
index 0000000000..f7ac6878d6
--- /dev/null
+++ b/test/core/json/corpus/c62ef0dbd1350da9ea5a32e56672d385837643e7
@@ -0,0 +1 @@
+{ 0 \ No newline at end of file
diff --git a/test/core/json/corpus/c7a34d6d49e1da1ccd490350c2df3a168ed09ae8 b/test/core/json/corpus/c7a34d6d49e1da1ccd490350c2df3a168ed09ae8
new file mode 100644
index 0000000000..1d06e430e3
--- /dev/null
+++ b/test/core/json/corpus/c7a34d6d49e1da1ccd490350c2df3a168ed09ae8
@@ -0,0 +1,3 @@
+{
+"ˆ[2":{}
+5‰Ã[" \ No newline at end of file
diff --git a/test/core/json/corpus/c88c4bec8d440c56d3ea7abce39276f0927dbe0a b/test/core/json/corpus/c88c4bec8d440c56d3ea7abce39276f0927dbe0a
new file mode 100644
index 0000000000..9442128c10
--- /dev/null
+++ b/test/core/json/corpus/c88c4bec8d440c56d3ea7abce39276f0927dbe0a
@@ -0,0 +1 @@
+33( \ No newline at end of file
diff --git a/test/core/json/corpus/c92f147bfc034003ac42ed9e62a16c84102ab417 b/test/core/json/corpus/c92f147bfc034003ac42ed9e62a16c84102ab417
new file mode 100644
index 0000000000..3fae4b1b01
--- /dev/null
+++ b/test/core/json/corpus/c92f147bfc034003ac42ed9e62a16c84102ab417
@@ -0,0 +1 @@
+[[2.193,]4ˆÃ"*(" \ No newline at end of file
diff --git a/test/core/json/corpus/c96b0fe6034668edf37ef0f5f391d5107953dc06 b/test/core/json/corpus/c96b0fe6034668edf37ef0f5f391d5107953dc06
new file mode 100644
index 0000000000..975bc39455
--- /dev/null
+++ b/test/core/json/corpus/c96b0fe6034668edf37ef0f5f391d5107953dc06
@@ -0,0 +1 @@
+8162E517;) \ No newline at end of file
diff --git a/test/core/json/corpus/cac74aa5d7aab7fce0253f00c1a025980c1f9b7a b/test/core/json/corpus/cac74aa5d7aab7fce0253f00c1a025980c1f9b7a
new file mode 100644
index 0000000000..e2c8b2ab6d
--- /dev/null
+++ b/test/core/json/corpus/cac74aa5d7aab7fce0253f00c1a025980c1f9b7a
@@ -0,0 +1 @@
+ \' \ No newline at end of file
diff --git a/test/core/json/corpus/caea0a0e6d8708cf682eaa446c344da56a7d5515 b/test/core/json/corpus/caea0a0e6d8708cf682eaa446c344da56a7d5515
new file mode 100644
index 0000000000..767d85192a
--- /dev/null
+++ b/test/core/json/corpus/caea0a0e6d8708cf682eaa446c344da56a7d5515
@@ -0,0 +1 @@
+"!2}G!\'')y3 \ No newline at end of file
diff --git a/test/core/json/corpus/cc8a3dd2678d4b400ad630f402012b894e841b05 b/test/core/json/corpus/cc8a3dd2678d4b400ad630f402012b894e841b05
new file mode 100644
index 0000000000..f115f81312
--- /dev/null
+++ b/test/core/json/corpus/cc8a3dd2678d4b400ad630f402012b894e841b05
@@ -0,0 +1 @@
+"9![\f \ No newline at end of file
diff --git a/test/core/json/corpus/cd851bec7adad52f79777fb9347d5fd2f9486aa7 b/test/core/json/corpus/cd851bec7adad52f79777fb9347d5fd2f9486aa7
new file mode 100644
index 0000000000..0f8b1eb808
--- /dev/null
+++ b/test/core/json/corpus/cd851bec7adad52f79777fb9347d5fd2f9486aa7
@@ -0,0 +1 @@
+{"',!\u@':Š \ No newline at end of file
diff --git a/test/core/json/corpus/ce3899b62ba3efe00eb31ddad2861ffe16a30d06 b/test/core/json/corpus/ce3899b62ba3efe00eb31ddad2861ffe16a30d06
new file mode 100644
index 0000000000..91bd82ae66
--- /dev/null
+++ b/test/core/json/corpus/ce3899b62ba3efe00eb31ddad2861ffe16a30d06
@@ -0,0 +1 @@
+[[["ˆÃ{)!:*¾;?'ʳ³!!*!à):!*à:::\\06099.y2db)8ˆÃ!3;!‡:{!`!.7;? \ No newline at end of file
diff --git a/test/core/json/corpus/ce8b76fdcdbf1c951afc2b115be9acc8a6358b32 b/test/core/json/corpus/ce8b76fdcdbf1c951afc2b115be9acc8a6358b32
new file mode 100644
index 0000000000..8ecd07ae34
--- /dev/null
+++ b/test/core/json/corpus/ce8b76fdcdbf1c951afc2b115be9acc8a6358b32
@@ -0,0 +1 @@
+8324E512;) \ No newline at end of file
diff --git a/test/core/json/corpus/cec87b67871fc7a59652bc3546fbbb68e4d31e28 b/test/core/json/corpus/cec87b67871fc7a59652bc3546fbbb68e4d31e28
new file mode 100644
index 0000000000..56e1cf48d4
--- /dev/null
+++ b/test/core/json/corpus/cec87b67871fc7a59652bc3546fbbb68e4d31e28
@@ -0,0 +1,2 @@
+[{
+"ˆÃ" :"ˆÃ!{)!:","ˆˆÃÃ" \ No newline at end of file
diff --git a/test/core/json/corpus/cf32406111908544e504c84731147f072cdf2fbd b/test/core/json/corpus/cf32406111908544e504c84731147f072cdf2fbd
new file mode 100644
index 0000000000..a0d1ef1a02
--- /dev/null
+++ b/test/core/json/corpus/cf32406111908544e504c84731147f072cdf2fbd
@@ -0,0 +1 @@
+620 \ No newline at end of file
diff --git a/test/core/json/corpus/cf35dc76bf9a2052636c1ecc92942161830dcdc3 b/test/core/json/corpus/cf35dc76bf9a2052636c1ecc92942161830dcdc3
new file mode 100644
index 0000000000..24014216cb
--- /dev/null
+++ b/test/core/json/corpus/cf35dc76bf9a2052636c1ecc92942161830dcdc3
@@ -0,0 +1 @@
+ 3Á6 \ No newline at end of file
diff --git a/test/core/json/corpus/cf6a5e6bfe4f15b43e411dd2782e10f1670c9767 b/test/core/json/corpus/cf6a5e6bfe4f15b43e411dd2782e10f1670c9767
new file mode 100644
index 0000000000..f4c0d10d23
--- /dev/null
+++ b/test/core/json/corpus/cf6a5e6bfe4f15b43e411dd2782e10f1670c9767
@@ -0,0 +1 @@
+30.5E8;!4; \ No newline at end of file
diff --git a/test/core/json/corpus/cfc45616f5f0e7c25df91f6984ff5f6f1648beab b/test/core/json/corpus/cfc45616f5f0e7c25df91f6984ff5f6f1648beab
new file mode 100644
index 0000000000..77db9a610d
--- /dev/null
+++ b/test/core/json/corpus/cfc45616f5f0e7c25df91f6984ff5f6f1648beab
@@ -0,0 +1 @@
+{"',!\u65E8850{2312;):ˆ)!*?'¾Ê³³!!ª!À):*!à::8!9:\udbD8\6' \ No newline at end of file
diff --git a/test/core/json/corpus/cff891e5858ae68d08ecc8470ca6a68c9438bfa3 b/test/core/json/corpus/cff891e5858ae68d08ecc8470ca6a68c9438bfa3
new file mode 100644
index 0000000000..9ef39eb937
--- /dev/null
+++ b/test/core/json/corpus/cff891e5858ae68d08ecc8470ca6a68c9438bfa3
@@ -0,0 +1 @@
+{"*]:Ë!{)¾?'ʳ³ !*!à):!*à:::\udbD8 !)!{Ã:{!`!?`¾¾"(¡ \ No newline at end of file
diff --git a/test/core/json/corpus/cfff4e9d08cba81b663dd1999710008342851e19 b/test/core/json/corpus/cfff4e9d08cba81b663dd1999710008342851e19
new file mode 100644
index 0000000000..eb4d5f1d00
--- /dev/null
+++ b/test/core/json/corpus/cfff4e9d08cba81b663dd1999710008342851e19
@@ -0,0 +1 @@
+nul*: \ No newline at end of file
diff --git a/test/core/json/corpus/crash-f21867fe8b6df0b54c13e2e6e613dce871ecf0f0 b/test/core/json/corpus/crash-f21867fe8b6df0b54c13e2e6e613dce871ecf0f0
new file mode 100644
index 0000000000..6d3bcfe024
--- /dev/null
+++ b/test/core/json/corpus/crash-f21867fe8b6df0b54c13e2e6e613dce871ecf0f0
@@ -0,0 +1 @@
+ˆ)Ã!:{"*¾?'ʳ³!!*!à):!*à:::\udbD8ˆ)Ã!:{!`!?`¾¾!?'!*m,');…'` \ No newline at end of file
diff --git a/test/core/json/corpus/d1db03c626fb16c3b9cd44cc38cf40ebd355a194 b/test/core/json/corpus/d1db03c626fb16c3b9cd44cc38cf40ebd355a194
new file mode 100644
index 0000000000..f292b522dd
--- /dev/null
+++ b/test/core/json/corpus/d1db03c626fb16c3b9cd44cc38cf40ebd355a194
@@ -0,0 +1 @@
+8324E684;) \ No newline at end of file
diff --git a/test/core/json/corpus/d85ca051da784c0441898c5affbf11a2ae8f56bc b/test/core/json/corpus/d85ca051da784c0441898c5affbf11a2ae8f56bc
new file mode 100644
index 0000000000..921f250aef
--- /dev/null
+++ b/test/core/json/corpus/d85ca051da784c0441898c5affbf11a2ae8f56bc
@@ -0,0 +1 @@
+[[["ˆÃ{)!:*¾;?'ʳ³!!*!à):!*à:::\u0049.y2db)8ˆÃ!3;!‡7`!{:!.;? \ No newline at end of file
diff --git a/test/core/json/corpus/da03f536ceaf609972aa2a699687cc6f73ac0dcd b/test/core/json/corpus/da03f536ceaf609972aa2a699687cc6f73ac0dcd
new file mode 100644
index 0000000000..68efa7b291
--- /dev/null
+++ b/test/core/json/corpus/da03f536ceaf609972aa2a699687cc6f73ac0dcd
@@ -0,0 +1 @@
+"7 \ No newline at end of file
diff --git a/test/core/json/corpus/da4b9237bacccdf19c0760cab7aec4a8359010b0 b/test/core/json/corpus/da4b9237bacccdf19c0760cab7aec4a8359010b0
new file mode 100644
index 0000000000..d8263ee986
--- /dev/null
+++ b/test/core/json/corpus/da4b9237bacccdf19c0760cab7aec4a8359010b0
@@ -0,0 +1 @@
+2 \ No newline at end of file
diff --git a/test/core/json/corpus/dcc45e405208d7a2db33d0b5b9da2a2f1b034957 b/test/core/json/corpus/dcc45e405208d7a2db33d0b5b9da2a2f1b034957
new file mode 100644
index 0000000000..2f58c324ad
--- /dev/null
+++ b/test/core/json/corpus/dcc45e405208d7a2db33d0b5b9da2a2f1b034957
@@ -0,0 +1 @@
+0.5! \ No newline at end of file
diff --git a/test/core/json/corpus/dcc60d3aaa1fc4d00201a3512284fcb79b5b68ef b/test/core/json/corpus/dcc60d3aaa1fc4d00201a3512284fcb79b5b68ef
new file mode 100644
index 0000000000..9e15a74025
--- /dev/null
+++ b/test/core/json/corpus/dcc60d3aaa1fc4d00201a3512284fcb79b5b68ef
Binary files differ
diff --git a/test/core/json/corpus/dd0567ae57bf3cc85891a1ca988c2945d9186678 b/test/core/json/corpus/dd0567ae57bf3cc85891a1ca988c2945d9186678
new file mode 100644
index 0000000000..0e05e028ed
--- /dev/null
+++ b/test/core/json/corpus/dd0567ae57bf3cc85891a1ca988c2945d9186678
@@ -0,0 +1 @@
+"',!\u65E8850{2312;):ˆ)!*?'¾Ê³0.³!!ª!À):*!à::8!9:\udbD8\uD8250' \ No newline at end of file
diff --git a/test/core/json/corpus/dd890a5a32e9f0489c6c77695f2155041f00fc9a b/test/core/json/corpus/dd890a5a32e9f0489c6c77695f2155041f00fc9a
new file mode 100644
index 0000000000..86d708ff38
--- /dev/null
+++ b/test/core/json/corpus/dd890a5a32e9f0489c6c77695f2155041f00fc9a
@@ -0,0 +1 @@
+{"!!\'' \ No newline at end of file
diff --git a/test/core/json/corpus/df88e2baf7b76ffb2e94b9da57fd8d137f44b1ef b/test/core/json/corpus/df88e2baf7b76ffb2e94b9da57fd8d137f44b1ef
new file mode 100644
index 0000000000..3c61ef6b9b
--- /dev/null
+++ b/test/core/json/corpus/df88e2baf7b76ffb2e94b9da57fd8d137f44b1ef
@@ -0,0 +1 @@
+"ˆÃ{)!:*¾;?'ʳ³!!*!à):!*à:::\)db)8ˆÃ!‡:{!`!?`¾¾!'?'!*m,');…'` \ No newline at end of file
diff --git a/test/core/json/corpus/e00ee378c3f6e0b3cd89bd6e7517478d093f73dd b/test/core/json/corpus/e00ee378c3f6e0b3cd89bd6e7517478d093f73dd
new file mode 100644
index 0000000000..fb9c6f852c
--- /dev/null
+++ b/test/core/json/corpus/e00ee378c3f6e0b3cd89bd6e7517478d093f73dd
@@ -0,0 +1 @@
+834e;) \ No newline at end of file
diff --git a/test/core/json/corpus/e0c124e90d068e2a70a3e148052869033453ec58 b/test/core/json/corpus/e0c124e90d068e2a70a3e148052869033453ec58
new file mode 100644
index 0000000000..e05343fabe
--- /dev/null
+++ b/test/core/json/corpus/e0c124e90d068e2a70a3e148052869033453ec58
@@ -0,0 +1 @@
+27e7¤2:60 \ No newline at end of file
diff --git a/test/core/json/corpus/e0d87b1f3e54e5adc5c2205f9e14772822a25766 b/test/core/json/corpus/e0d87b1f3e54e5adc5c2205f9e14772822a25766
new file mode 100644
index 0000000000..83c6ab5f81
--- /dev/null
+++ b/test/core/json/corpus/e0d87b1f3e54e5adc5c2205f9e14772822a25766
@@ -0,0 +1 @@
+[{"ˆÃ\5{)!:*]){ \ No newline at end of file
diff --git a/test/core/json/corpus/e1199df649697c570db5d6b2ea09d755eddd32b7 b/test/core/json/corpus/e1199df649697c570db5d6b2ea09d755eddd32b7
new file mode 100644
index 0000000000..adac51f51f
--- /dev/null
+++ b/test/core/json/corpus/e1199df649697c570db5d6b2ea09d755eddd32b7
@@ -0,0 +1 @@
+[[0.193;]4* \ No newline at end of file
diff --git a/test/core/json/corpus/e235f6f2a8b6a22117f1baa932fb6c69799e1136 b/test/core/json/corpus/e235f6f2a8b6a22117f1baa932fb6c69799e1136
new file mode 100644
index 0000000000..f3f2d8c51a
--- /dev/null
+++ b/test/core/json/corpus/e235f6f2a8b6a22117f1baa932fb6c69799e1136
@@ -0,0 +1 @@
+[1.197; \ No newline at end of file
diff --git a/test/core/json/corpus/e3a654055a867ae62d8e68fa2c410228ac55cb6d b/test/core/json/corpus/e3a654055a867ae62d8e68fa2c410228ac55cb6d
new file mode 100644
index 0000000000..428fe54772
--- /dev/null
+++ b/test/core/json/corpus/e3a654055a867ae62d8e68fa2c410228ac55cb6d
@@ -0,0 +1 @@
+"!!\'' \ No newline at end of file
diff --git a/test/core/json/corpus/e3c680aac46b9c46392e3b2c43ecdcc1547f2023 b/test/core/json/corpus/e3c680aac46b9c46392e3b2c43ecdcc1547f2023
new file mode 100644
index 0000000000..53f048b650
--- /dev/null
+++ b/test/core/json/corpus/e3c680aac46b9c46392e3b2c43ecdcc1547f2023
@@ -0,0 +1 @@
+[}G3 \ No newline at end of file
diff --git a/test/core/json/corpus/e3d134b35cc25a4861d90023c95988ec6103ddd5 b/test/core/json/corpus/e3d134b35cc25a4861d90023c95988ec6103ddd5
new file mode 100644
index 0000000000..a9f28d4a55
--- /dev/null
+++ b/test/core/json/corpus/e3d134b35cc25a4861d90023c95988ec6103ddd5
@@ -0,0 +1 @@
+"ˆÃ{)!:*¾;!'ʳ³!!*!à):!*à::\udb)8ˆÃ!‡:{`!?`¾¾!?'!*m,');…'` \ No newline at end of file
diff --git a/test/core/json/corpus/e3ff65de4b1622315c3b34b7a5e39bffb275489d b/test/core/json/corpus/e3ff65de4b1622315c3b34b7a5e39bffb275489d
new file mode 100644
index 0000000000..d188dbf352
--- /dev/null
+++ b/test/core/json/corpus/e3ff65de4b1622315c3b34b7a5e39bffb275489d
@@ -0,0 +1 @@
+[2.19 \ No newline at end of file
diff --git a/test/core/json/corpus/e4a4085cc31476f5de9047422851d8ccf86339df b/test/core/json/corpus/e4a4085cc31476f5de9047422851d8ccf86339df
new file mode 100644
index 0000000000..e673b6dd2e
--- /dev/null
+++ b/test/core/json/corpus/e4a4085cc31476f5de9047422851d8ccf86339df
@@ -0,0 +1 @@
+{"',!\u@':Š \ No newline at end of file
diff --git a/test/core/json/corpus/e4e3c69da200af932c8a79fa055d7aeea28eb1d1 b/test/core/json/corpus/e4e3c69da200af932c8a79fa055d7aeea28eb1d1
new file mode 100644
index 0000000000..fa71dbecbc
--- /dev/null
+++ b/test/core/json/corpus/e4e3c69da200af932c8a79fa055d7aeea28eb1d1
@@ -0,0 +1 @@
+[2."ˆÃ!{)!:",ˆÃ \ No newline at end of file
diff --git a/test/core/json/corpus/e6c3dd630428fd54834172b8fd2735fed9416da4 b/test/core/json/corpus/e6c3dd630428fd54834172b8fd2735fed9416da4
new file mode 100644
index 0000000000..2b82dfea30
--- /dev/null
+++ b/test/core/json/corpus/e6c3dd630428fd54834172b8fd2735fed9416da4
@@ -0,0 +1 @@
+60 \ No newline at end of file
diff --git a/test/core/json/corpus/e71eb37fca2070521e1e07c503c2bcd6445b35ea b/test/core/json/corpus/e71eb37fca2070521e1e07c503c2bcd6445b35ea
new file mode 100644
index 0000000000..67a6628324
--- /dev/null
+++ b/test/core/json/corpus/e71eb37fca2070521e1e07c503c2bcd6445b35ea
@@ -0,0 +1 @@
+0 { \ No newline at end of file
diff --git a/test/core/json/corpus/e760e6e22ae8cd1ea78fe28b5eb1f3d7b5fdc536 b/test/core/json/corpus/e760e6e22ae8cd1ea78fe28b5eb1f3d7b5fdc536
new file mode 100644
index 0000000000..3e747cc04e
--- /dev/null
+++ b/test/core/json/corpus/e760e6e22ae8cd1ea78fe28b5eb1f3d7b5fdc536
@@ -0,0 +1 @@
+{:ˆ)!Ã"*¾?'ʳ³!!*!à):!*à:::\udbD8ˆ)Ã!:{!`!?`¾¾!?'!*m,');…'` \ No newline at end of file
diff --git a/test/core/json/corpus/e95ff1142118a2ca5b84935612a8a64d55360e64 b/test/core/json/corpus/e95ff1142118a2ca5b84935612a8a64d55360e64
new file mode 100644
index 0000000000..ca8bbcc42a
--- /dev/null
+++ b/test/core/json/corpus/e95ff1142118a2ca5b84935612a8a64d55360e64
@@ -0,0 +1 @@
+"ˆÃ{)!:*¾;?'ʳ³!!*!à):!*à:::\udb)8ˆÃ!‡:{!`!?`¾¾!?'!*m,');…'` \ No newline at end of file
diff --git a/test/core/json/corpus/e9c5e2c67930513941753c2d54591c7098c82f6c b/test/core/json/corpus/e9c5e2c67930513941753c2d54591c7098c82f6c
new file mode 100644
index 0000000000..f9991b43f6
--- /dev/null
+++ b/test/core/json/corpus/e9c5e2c67930513941753c2d54591c7098c82f6c
@@ -0,0 +1 @@
+[3]4* \ No newline at end of file
diff --git a/test/core/json/corpus/eb26070d17ffa908204912e75cb4313835042038 b/test/core/json/corpus/eb26070d17ffa908204912e75cb4313835042038
new file mode 100644
index 0000000000..812293756d
--- /dev/null
+++ b/test/core/json/corpus/eb26070d17ffa908204912e75cb4313835042038
@@ -0,0 +1 @@
+["*]:Ã!{)¾?'ʳ³!!*!à):!*à:::\udbD8ˆ){Ã!:{!`!?`¾¾"(¡ \ No newline at end of file
diff --git a/test/core/json/corpus/ebc6aee49e5ae57722df86e7fa33c420f045a449 b/test/core/json/corpus/ebc6aee49e5ae57722df86e7fa33c420f045a449
new file mode 100644
index 0000000000..ee58b9086a
--- /dev/null
+++ b/test/core/json/corpus/ebc6aee49e5ae57722df86e7fa33c420f045a449
@@ -0,0 +1 @@
+03( \ No newline at end of file
diff --git a/test/core/json/corpus/ed1dc11d713e7487de18ce8317b62916959206d0 b/test/core/json/corpus/ed1dc11d713e7487de18ce8317b62916959206d0
new file mode 100644
index 0000000000..90e536ec3f
--- /dev/null
+++ b/test/core/json/corpus/ed1dc11d713e7487de18ce8317b62916959206d0
@@ -0,0 +1 @@
+8324E6;) \ No newline at end of file
diff --git a/test/core/json/corpus/ede3f66106acd7796da8b3942d029fe213058286 b/test/core/json/corpus/ede3f66106acd7796da8b3942d029fe213058286
new file mode 100644
index 0000000000..69cea590c2
--- /dev/null
+++ b/test/core/json/corpus/ede3f66106acd7796da8b3942d029fe213058286
@@ -0,0 +1 @@
+5834E0y);)ˆ )!Ã \ No newline at end of file
diff --git a/test/core/json/corpus/eed7bd220cd511b6d42ce6553019266a22a3d56a b/test/core/json/corpus/eed7bd220cd511b6d42ce6553019266a22a3d56a
new file mode 100644
index 0000000000..60f86bd1d3
--- /dev/null
+++ b/test/core/json/corpus/eed7bd220cd511b6d42ce6553019266a22a3d56a
@@ -0,0 +1 @@
+0,0 \ No newline at end of file
diff --git a/test/core/json/corpus/f090932162756b798b1a050b05e3d36a3437c4fc b/test/core/json/corpus/f090932162756b798b1a050b05e3d36a3437c4fc
new file mode 100644
index 0000000000..24f98f2d5f
--- /dev/null
+++ b/test/core/json/corpus/f090932162756b798b1a050b05e3d36a3437c4fc
@@ -0,0 +1 @@
+367 \ No newline at end of file
diff --git a/test/core/json/corpus/f1905eaa84ba6a3593ec6ac0486a5b42893c01f1 b/test/core/json/corpus/f1905eaa84ba6a3593ec6ac0486a5b42893c01f1
new file mode 100644
index 0000000000..601a7b20af
--- /dev/null
+++ b/test/core/json/corpus/f1905eaa84ba6a3593ec6ac0486a5b42893c01f1
@@ -0,0 +1 @@
+50{:ˆ)!Ã"*¾?'ʳ³!!*!à):!*à::8!9:\udbD8ˆ)Ã!:{!` \ No newline at end of file
diff --git a/test/core/json/corpus/f4635fbbf765ead81a261ca152df02622e182d2c b/test/core/json/corpus/f4635fbbf765ead81a261ca152df02622e182d2c
new file mode 100644
index 0000000000..30e0f2b2e8
--- /dev/null
+++ b/test/core/json/corpus/f4635fbbf765ead81a261ca152df02622e182d2c
@@ -0,0 +1 @@
+"19 \ No newline at end of file
diff --git a/test/core/json/corpus/f46eeb1020c7c4153e742a50bc24c2c6939dab1e b/test/core/json/corpus/f46eeb1020c7c4153e742a50bc24c2c6939dab1e
new file mode 100644
index 0000000000..8c0a186967
--- /dev/null
+++ b/test/core/json/corpus/f46eeb1020c7c4153e742a50bc24c2c6939dab1e
@@ -0,0 +1 @@
+363
diff --git a/test/core/json/corpus/f473451610783521d51bc08cdd920ddd97f8a71f b/test/core/json/corpus/f473451610783521d51bc08cdd920ddd97f8a71f
new file mode 100644
index 0000000000..b73c5ecd08
--- /dev/null
+++ b/test/core/json/corpus/f473451610783521d51bc08cdd920ddd97f8a71f
@@ -0,0 +1 @@
+{"*]:Ã!{)¾?'ʳ³ !*!à):!*à:::\udbD8\!)!{Ã:{!`!?`¾¾"(¡ \ No newline at end of file
diff --git a/test/core/json/corpus/f63aa599600f6e7d648c4287905e16e8e6e479fd b/test/core/json/corpus/f63aa599600f6e7d648c4287905e16e8e6e479fd
new file mode 100644
index 0000000000..4b681256fe
--- /dev/null
+++ b/test/core/json/corpus/f63aa599600f6e7d648c4287905e16e8e6e479fd
@@ -0,0 +1 @@
+"ˆÃ{)!:"])Ã!:{"*¾?'ʳ³!!*!à):!*à:::\¾;?'ʳud \ No newline at end of file
diff --git a/test/core/json/corpus/f667dcf1c06e87db2dc49d86ea1c285e796f8f8c b/test/core/json/corpus/f667dcf1c06e87db2dc49d86ea1c285e796f8f8c
new file mode 100644
index 0000000000..b6dfbd5336
--- /dev/null
+++ b/test/core/json/corpus/f667dcf1c06e87db2dc49d86ea1c285e796f8f8c
@@ -0,0 +1 @@
+813e124280 \ No newline at end of file
diff --git a/test/core/json/corpus/f8d0f85975e49b959799cc52847110cc940b9db1 b/test/core/json/corpus/f8d0f85975e49b959799cc52847110cc940b9db1
new file mode 100644
index 0000000000..0c7f592376
--- /dev/null
+++ b/test/core/json/corpus/f8d0f85975e49b959799cc52847110cc940b9db1
@@ -0,0 +1 @@
+604 \ No newline at end of file
diff --git a/test/core/json/corpus/f92c47e35da42d79a48beff54b93cd28f55f05fb b/test/core/json/corpus/f92c47e35da42d79a48beff54b93cd28f55f05fb
new file mode 100644
index 0000000000..1444ba2be2
--- /dev/null
+++ b/test/core/json/corpus/f92c47e35da42d79a48beff54b93cd28f55f05fb
@@ -0,0 +1 @@
+1e9 \ No newline at end of file
diff --git a/test/core/json/corpus/f9a33bb8bd78d869fbafa402d9be58940ce2c318 b/test/core/json/corpus/f9a33bb8bd78d869fbafa402d9be58940ce2c318
new file mode 100644
index 0000000000..fbcb9dab0e
--- /dev/null
+++ b/test/core/json/corpus/f9a33bb8bd78d869fbafa402d9be58940ce2c318
@@ -0,0 +1 @@
+1E "ˆÁ960 \ No newline at end of file
diff --git a/test/core/json/corpus/fbf6f3156c1bd4bb701839bc0e26533bdccd1c9a b/test/core/json/corpus/fbf6f3156c1bd4bb701839bc0e26533bdccd1c9a
new file mode 100644
index 0000000000..d60f1d8b43
--- /dev/null
+++ b/test/core/json/corpus/fbf6f3156c1bd4bb701839bc0e26533bdccd1c9a
@@ -0,0 +1 @@
+0,fa%) \ No newline at end of file
diff --git a/test/core/json/corpus/fe2ef495a1152561572949784c16bf23abb28057 b/test/core/json/corpus/fe2ef495a1152561572949784c16bf23abb28057
new file mode 100644
index 0000000000..abc4eff6ac
--- /dev/null
+++ b/test/core/json/corpus/fe2ef495a1152561572949784c16bf23abb28057
@@ -0,0 +1 @@
+46 \ No newline at end of file
diff --git a/test/core/json/corpus/fe5dbbcea5ce7e2988b8c69bcfdfde8904aabc1f b/test/core/json/corpus/fe5dbbcea5ce7e2988b8c69bcfdfde8904aabc1f
new file mode 100644
index 0000000000..301160a930
--- /dev/null
+++ b/test/core/json/corpus/fe5dbbcea5ce7e2988b8c69bcfdfde8904aabc1f
@@ -0,0 +1 @@
+8 \ No newline at end of file
diff --git a/test/core/json/corpus/ff8fb34603c7f772768d61504954553e6bed173c b/test/core/json/corpus/ff8fb34603c7f772768d61504954553e6bed173c
new file mode 100644
index 0000000000..9586ab9bcc
--- /dev/null
+++ b/test/core/json/corpus/ff8fb34603c7f772768d61504954553e6bed173c
@@ -0,0 +1 @@
+n' \ No newline at end of file
diff --git a/test/core/json/corpus/test1.json b/test/core/json/corpus/test1.json
new file mode 100644
index 0000000000..2393cd01d4
--- /dev/null
+++ b/test/core/json/corpus/test1.json
@@ -0,0 +1 @@
+{"foo":"bar"}
diff --git a/test/core/json/corpus/test2.json b/test/core/json/corpus/test2.json
new file mode 100644
index 0000000000..810c96eeeb
--- /dev/null
+++ b/test/core/json/corpus/test2.json
@@ -0,0 +1 @@
+"foo"
diff --git a/test/core/json/corpus/test3.json b/test/core/json/corpus/test3.json
new file mode 100644
index 0000000000..8adb9bb604
--- /dev/null
+++ b/test/core/json/corpus/test3.json
@@ -0,0 +1 @@
+[1,2,3,4]
diff --git a/test/core/json/corpus/test4.json b/test/core/json/corpus/test4.json
new file mode 100644
index 0000000000..4c3fcf9ac7
--- /dev/null
+++ b/test/core/json/corpus/test4.json
@@ -0,0 +1 @@
+1e943923
diff --git a/test/core/json/corpus/test5.json b/test/core/json/corpus/test5.json
new file mode 100644
index 0000000000..03f1d792ec
--- /dev/null
+++ b/test/core/json/corpus/test5.json
@@ -0,0 +1 @@
+100000000000000000000000000000000000000000000000000000000000001
diff --git a/test/core/json/corpus/test6.json b/test/core/json/corpus/test6.json
new file mode 100644
index 0000000000..27ba77ddaf
--- /dev/null
+++ b/test/core/json/corpus/test6.json
@@ -0,0 +1 @@
+true
diff --git a/test/core/json/corpus/test7.json b/test/core/json/corpus/test7.json
new file mode 100644
index 0000000000..c508d5366f
--- /dev/null
+++ b/test/core/json/corpus/test7.json
@@ -0,0 +1 @@
+false
diff --git a/test/core/json/corpus/test8.json b/test/core/json/corpus/test8.json
new file mode 100644
index 0000000000..19765bd501
--- /dev/null
+++ b/test/core/json/corpus/test8.json
@@ -0,0 +1 @@
+null
diff --git a/test/core/json/corpus/test9.json b/test/core/json/corpus/test9.json
new file mode 100644
index 0000000000..affaba369a
--- /dev/null
+++ b/test/core/json/corpus/test9.json
@@ -0,0 +1 @@
+{"alpha":null,"beta":false,"gamma":2.3,"xyz":"abc","negative":-133}
diff --git a/test/core/json/fuzzer.c b/test/core/json/fuzzer.c
new file mode 100644
index 0000000000..044db973ab
--- /dev/null
+++ b/test/core/json/fuzzer.c
@@ -0,0 +1,87 @@
+/*
+ *
+ * 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 <stdint.h>
+#include <string.h>
+
+#include <grpc/support/alloc.h>
+#include <grpc/support/log.h>
+
+#include "src/core/lib/json/json.h"
+
+static size_t g_total_size = 0;
+static gpr_allocation_functions g_old_allocs;
+
+void *guard_malloc(size_t size) {
+ size_t *ptr;
+ g_total_size += size;
+ ptr = g_old_allocs.malloc_fn(size + sizeof(size));
+ *ptr++ = size;
+ return ptr;
+}
+
+void *guard_realloc(void *vptr, size_t size) {
+ size_t *ptr = vptr;
+ --ptr;
+ g_total_size -= *ptr;
+ ptr = g_old_allocs.realloc_fn(ptr, size + sizeof(size));
+ g_total_size += size;
+ *ptr++ = size;
+ return ptr;
+}
+
+void guard_free(void *vptr) {
+ size_t *ptr = vptr;
+ --ptr;
+ g_total_size -= *ptr;
+ g_old_allocs.free_fn(ptr);
+}
+
+struct gpr_allocation_functions g_guard_allocs = {guard_malloc, guard_realloc,
+ guard_free};
+
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ char *s;
+ g_old_allocs = gpr_get_allocation_functions();
+ gpr_set_allocation_functions(g_guard_allocs);
+ s = gpr_malloc(size);
+ memcpy(s, data, size);
+ grpc_json *x;
+ if ((x = grpc_json_parse_string_with_len(s, size))) {
+ grpc_json_destroy(x);
+ }
+ gpr_free(s);
+ gpr_set_allocation_functions(g_old_allocs);
+ GPR_ASSERT(g_total_size == 0);
+ return 0;
+}
diff --git a/test/core/json/json_rewrite.c b/test/core/json/json_rewrite.c
index 41090db105..c43c6e2589 100644
--- a/test/core/json/json_rewrite.c
+++ b/test/core/json/json_rewrite.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/json/json_rewrite_test.c b/test/core/json/json_rewrite_test.c
index 33fc98ed74..cf42670337 100644
--- a/test/core/json/json_rewrite_test.c
+++ b/test/core/json/json_rewrite_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/json/json_stream_error_test.c b/test/core/json/json_stream_error_test.c
index 630e1b03df..82b9bd96d3 100644
--- a/test/core/json/json_stream_error_test.c
+++ b/test/core/json/json_stream_error_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/json/json_test.c b/test/core/json/json_test.c
index 2a007627f3..ac1abbd8f3 100644
--- a/test/core/json/json_test.c
+++ b/test/core/json/json_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -64,6 +64,7 @@ static testing_pair testing_pairs[] = {
/* Testing UTF-8 character "ð„ž", U+11D1E. */
{"\"\xf0\x9d\x84\x9e\"", "\"\\ud834\\udd1e\""},
{"\"\\ud834\\udd1e\"", "\"\\ud834\\udd1e\""},
+ {"{\"\\ud834\\udd1e\":0}", "{\"\\ud834\\udd1e\":0}"},
/* Testing nested empty containers. */
{
" [ [ ] , { } , [ ] ] ", "[[],{},[]]",
@@ -85,20 +86,33 @@ static testing_pair testing_pairs[] = {
/* Testing plain invalid things, exercising the state machine. */
{"\\", NULL},
{"nu ll", NULL},
+ {"{\"foo\": bar}", NULL},
+ {"{\"foo\": bar\"x\"}", NULL},
{"fals", NULL},
+ {"0,0 ", NULL},
+ {"\"foo\",[]", NULL},
/* Testing unterminated string. */
{"\"\\x", NULL},
/* Testing invalid UTF-16 number. */
{"\"\\u123x", NULL},
+ {"{\"\\u123x", NULL},
/* Testing imbalanced surrogate pairs. */
{"\"\\ud834f", NULL},
+ {"{\"\\ud834f\":0}", NULL},
{"\"\\ud834\\n", NULL},
+ {"{\"\\ud834\\n\":0}", NULL},
{"\"\\udd1ef", NULL},
+ {"{\"\\udd1ef\":0}", NULL},
{"\"\\ud834\\ud834\"", NULL},
+ {"{\"\\ud834\\ud834\"\":0}", NULL},
{"\"\\ud834\\u1234\"", NULL},
+ {"{\"\\ud834\\u1234\"\":0}", NULL},
{"\"\\ud834]\"", NULL},
+ {"{\"\\ud834]\"\":0}", NULL},
{"\"\\ud834 \"", NULL},
+ {"{\"\\ud834 \"\":0}", NULL},
{"\"\\ud834\\\\\"", NULL},
+ {"{\"\\ud834\\\\\"\":0}", NULL},
/* Testing embedded invalid whitechars. */
{"\"\n\"", NULL},
{"\"\t\"", NULL},
diff --git a/test/core/network_benchmarks/low_level_ping_pong.c b/test/core/network_benchmarks/low_level_ping_pong.c
index 9d94bf6142..b3a38a55ad 100644
--- a/test/core/network_benchmarks/low_level_ping_pong.c
+++ b/test/core/network_benchmarks/low_level_ping_pong.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/profiling/timers_test.c b/test/core/profiling/timers_test.c
index a3831191eb..284589af1e 100644
--- a/test/core/profiling/timers_test.c
+++ b/test/core/profiling/timers_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/security/auth_context_test.c b/test/core/security/auth_context_test.c
index 84d2afb85b..d1ead16235 100644
--- a/test/core/security/auth_context_test.c
+++ b/test/core/security/auth_context_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/security/b64_test.c b/test/core/security/b64_test.c
index ab15df2c21..cea870321d 100644
--- a/test/core/security/b64_test.c
+++ b/test/core/security/b64_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/security/create_jwt.c b/test/core/security/create_jwt.c
index 3416de7254..6d4707f3c7 100644
--- a/test/core/security/create_jwt.c
+++ b/test/core/security/create_jwt.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/security/credentials_test.c b/test/core/security/credentials_test.c
index e741e3656f..7867293278 100644
--- a/test/core/security/credentials_test.c
+++ b/test/core/security/credentials_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/security/fetch_oauth2.c b/test/core/security/fetch_oauth2.c
index 1f4e18005e..bd314e90d8 100644
--- a/test/core/security/fetch_oauth2.c
+++ b/test/core/security/fetch_oauth2.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/security/json_token_test.c b/test/core/security/json_token_test.c
index 460d5299f0..3aee52ee5c 100644
--- a/test/core/security/json_token_test.c
+++ b/test/core/security/json_token_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/security/jwt_verifier_test.c b/test/core/security/jwt_verifier_test.c
index c57f4d72ee..077f44d1d6 100644
--- a/test/core/security/jwt_verifier_test.c
+++ b/test/core/security/jwt_verifier_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -35,16 +35,18 @@
#include <string.h>
-#include "src/core/lib/http/httpcli.h"
-#include "src/core/lib/security/b64.h"
-#include "src/core/lib/security/json_token.h"
-#include "test/core/util/test_config.h"
+#include <grpc/grpc.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/slice.h>
#include <grpc/support/string_util.h>
+#include "src/core/lib/http/httpcli.h"
+#include "src/core/lib/security/b64.h"
+#include "src/core/lib/security/json_token.h"
+#include "test/core/util/test_config.h"
+
/* This JSON key was generated with the GCE console and revoked immediately.
The identifiers have been changed as well.
Maximum size for a string literal is 509 chars in C89, yay! */
@@ -568,6 +570,7 @@ static void test_jwt_verifier_bad_format(void) {
int main(int argc, char **argv) {
grpc_test_init(argc, argv);
+ grpc_init();
test_claims_success();
test_expired_claims_failure();
test_invalid_claims_failure();
@@ -579,5 +582,6 @@ int main(int argc, char **argv) {
test_jwt_verifier_bad_json_key();
test_jwt_verifier_bad_signature();
test_jwt_verifier_bad_format();
+ grpc_shutdown();
return 0;
}
diff --git a/test/core/security/oauth2_utils.c b/test/core/security/oauth2_utils.c
index 52259e63af..20815d184c 100644
--- a/test/core/security/oauth2_utils.c
+++ b/test/core/security/oauth2_utils.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/security/oauth2_utils.h b/test/core/security/oauth2_utils.h
index 5930f4729c..eff98270c8 100644
--- a/test/core/security/oauth2_utils.h
+++ b/test/core/security/oauth2_utils.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/security/print_google_default_creds_token.c b/test/core/security/print_google_default_creds_token.c
index 49812f7f3e..99bce4fbdf 100644
--- a/test/core/security/print_google_default_creds_token.c
+++ b/test/core/security/print_google_default_creds_token.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/security/secure_endpoint_test.c b/test/core/security/secure_endpoint_test.c
index f6884ec1ba..aeaf38209b 100644
--- a/test/core/security/secure_endpoint_test.c
+++ b/test/core/security/secure_endpoint_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/security/security_connector_test.c b/test/core/security/security_connector_test.c
index b080343e3f..1a4e64b30c 100644
--- a/test/core/security/security_connector_test.c
+++ b/test/core/security/security_connector_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/security/verify_jwt.c b/test/core/security/verify_jwt.c
index c08e03d9d7..2274fe18d8 100644
--- a/test/core/security/verify_jwt.c
+++ b/test/core/security/verify_jwt.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/statistics/census_log_tests.c b/test/core/statistics/census_log_tests.c
index fef8e9ed48..8646a2fdf1 100644
--- a/test/core/statistics/census_log_tests.c
+++ b/test/core/statistics/census_log_tests.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/statistics/census_log.h"
+#include "src/core/ext/census/census_log.h"
#include <grpc/support/cpu.h>
#include <grpc/support/log.h>
#include <grpc/support/port_platform.h>
diff --git a/test/core/statistics/census_stub_test.c b/test/core/statistics/census_stub_test.c
index df5d25b678..f9dddb6599 100644
--- a/test/core/statistics/census_stub_test.c
+++ b/test/core/statistics/census_stub_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -36,8 +36,8 @@
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
-#include "src/core/lib/statistics/census_interface.h"
-#include "src/core/lib/statistics/census_rpc_stats.h"
+#include "src/core/ext/census/census_interface.h"
+#include "src/core/ext/census/census_rpc_stats.h"
#include "test/core/util/test_config.h"
/* Tests census noop stubs in a simulated rpc flow */
diff --git a/test/core/statistics/hash_table_test.c b/test/core/statistics/hash_table_test.c
index 903d297bb8..f63c1a366a 100644
--- a/test/core/statistics/hash_table_test.c
+++ b/test/core/statistics/hash_table_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -35,7 +35,7 @@
#include <stdlib.h>
#include <string.h>
-#include "src/core/lib/statistics/hash_table.h"
+#include "src/core/ext/census/hash_table.h"
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
diff --git a/test/core/statistics/rpc_stats_test.c b/test/core/statistics/rpc_stats_test.c
index dc2f70bbd4..14def4bfe1 100644
--- a/test/core/statistics/rpc_stats_test.c
+++ b/test/core/statistics/rpc_stats_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -39,9 +39,9 @@
#include <grpc/support/string.h>
#include <grpc/support/thd.h>
#include <grpc/support/time.h>
-#include "src/core/lib/statistics/census_interface.h"
-#include "src/core/lib/statistics/census_rpc_stats.h"
-#include "src/core/lib/statistics/census_tracing.h"
+#include "src/core/ext/census/census_interface.h"
+#include "src/core/ext/census/census_rpc_stats.h"
+#include "src/core/ext/census/census_tracing.h"
#include "test/core/util/test_config.h"
/* Ensure all possible state transitions are called without causing problem */
diff --git a/test/core/statistics/trace_test.c b/test/core/statistics/trace_test.c
index 2cc3ddd36c..790507f2c6 100644
--- a/test/core/statistics/trace_test.c
+++ b/test/core/statistics/trace_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -41,9 +41,9 @@
#include <grpc/support/thd.h>
#include <grpc/support/time.h>
#include <grpc/support/useful.h>
-#include "src/core/lib/statistics/census_interface.h"
-#include "src/core/lib/statistics/census_tracing.h"
-#include "src/core/lib/statistics/census_tracing.h"
+#include "src/core/ext/census/census_interface.h"
+#include "src/core/ext/census/census_tracing.h"
+#include "src/core/ext/census/census_tracing.h"
#include "test/core/util/test_config.h"
/* Ensure all possible state transitions are called without causing problem */
diff --git a/test/core/statistics/window_stats_test.c b/test/core/statistics/window_stats_test.c
index ed0d7bb94a..5d71ba613d 100644
--- a/test/core/statistics/window_stats_test.c
+++ b/test/core/statistics/window_stats_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/statistics/window_stats.h"
+#include "src/core/ext/census/window_stats.h"
#include <grpc/support/log.h>
#include <grpc/support/time.h>
#include <stdlib.h>
diff --git a/test/core/support/alloc_test.c b/test/core/support/alloc_test.c
index 7eaf7a14f3..451c580054 100644
--- a/test/core/support/alloc_test.c
+++ b/test/core/support/alloc_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/support/avl_test.c b/test/core/support/avl_test.c
index d8d8b36806..83cc263c69 100644
--- a/test/core/support/avl_test.c
+++ b/test/core/support/avl_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/support/cpu_test.c b/test/core/support/cpu_test.c
index da16f13fd8..a5c52442ad 100644
--- a/test/core/support/cpu_test.c
+++ b/test/core/support/cpu_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/support/env_test.c b/test/core/support/env_test.c
index 1ab86d6991..bd6a8bdf9d 100644
--- a/test/core/support/env_test.c
+++ b/test/core/support/env_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/support/load_file_test.c b/test/core/support/load_file_test.c
index 6bc7b90058..0125fd94fd 100644
--- a/test/core/support/load_file_test.c
+++ b/test/core/support/load_file_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/support/murmur_hash_test.c b/test/core/support/murmur_hash_test.c
index c93efb4be4..ef32719408 100644
--- a/test/core/support/murmur_hash_test.c
+++ b/test/core/support/murmur_hash_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/support/stack_lockfree_test.c b/test/core/support/stack_lockfree_test.c
index 13c8f3c925..745157f701 100644
--- a/test/core/support/stack_lockfree_test.c
+++ b/test/core/support/stack_lockfree_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/support/string_test.c b/test/core/support/string_test.c
index e5e474d43c..d5f8107f21 100644
--- a/test/core/support/string_test.c
+++ b/test/core/support/string_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/support/sync_test.c b/test/core/support/sync_test.c
index 2121a4c5fa..0fcf08b9d3 100644
--- a/test/core/support/sync_test.c
+++ b/test/core/support/sync_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/support/thd_test.c b/test/core/support/thd_test.c
index 771c5104c8..c00fd5af64 100644
--- a/test/core/support/thd_test.c
+++ b/test/core/support/thd_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/support/time_test.c b/test/core/support/time_test.c
index 643e9eada7..e9ca08d041 100644
--- a/test/core/support/time_test.c
+++ b/test/core/support/time_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/support/tls_test.c b/test/core/support/tls_test.c
index 7b73e5beb7..7b732ee10e 100644
--- a/test/core/support/tls_test.c
+++ b/test/core/support/tls_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/support/useful_test.c b/test/core/support/useful_test.c
index 08a8cc90a9..7d190228bd 100644
--- a/test/core/support/useful_test.c
+++ b/test/core/support/useful_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/surface/byte_buffer_reader_test.c b/test/core/surface/byte_buffer_reader_test.c
index 629bce9107..9c6734e179 100644
--- a/test/core/surface/byte_buffer_reader_test.c
+++ b/test/core/surface/byte_buffer_reader_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/surface/channel_create_test.c b/test/core/surface/channel_create_test.c
index d5d7d1c311..95b4eaf093 100644
--- a/test/core/surface/channel_create_test.c
+++ b/test/core/surface/channel_create_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/surface/completion_queue_test.c b/test/core/surface/completion_queue_test.c
index fa9b363a6f..d62d5a93b1 100644
--- a/test/core/surface/completion_queue_test.c
+++ b/test/core/surface/completion_queue_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/surface/lame_client_test.c b/test/core/surface/lame_client_test.c
index 310aa00343..12fa9de6cf 100644
--- a/test/core/surface/lame_client_test.c
+++ b/test/core/surface/lame_client_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/surface/secure_channel_create_test.c b/test/core/surface/secure_channel_create_test.c
index 5c95390707..eb710cba38 100644
--- a/test/core/surface/secure_channel_create_test.c
+++ b/test/core/surface/secure_channel_create_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/surface/server_chttp2_test.c b/test/core/surface/server_chttp2_test.c
index 14eb1ff9dc..d22c164972 100644
--- a/test/core/surface/server_chttp2_test.c
+++ b/test/core/surface/server_chttp2_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/surface/server_test.c b/test/core/surface/server_test.c
index 1d5211d225..4c62d8caad 100644
--- a/test/core/surface/server_test.c
+++ b/test/core/surface/server_test.c
@@ -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
@@ -42,11 +42,19 @@ void test_register_method_fail(void) {
grpc_server *server = grpc_server_create(NULL, NULL);
void *method;
void *method_old;
- method = grpc_server_register_method(server, NULL, NULL);
+ method = grpc_server_register_method(server, NULL, NULL, 0);
GPR_ASSERT(method == NULL);
- method_old = grpc_server_register_method(server, "m", "h");
+ method_old = grpc_server_register_method(server, "m", "h", 0);
GPR_ASSERT(method_old != NULL);
- method = grpc_server_register_method(server, "m", "h");
+ method = grpc_server_register_method(server, "m", "h", 0);
+ GPR_ASSERT(method == NULL);
+ method_old = grpc_server_register_method(
+ server, "m2", "h2", GRPC_INITIAL_METADATA_IDEMPOTENT_REQUEST);
+ GPR_ASSERT(method_old != NULL);
+ method = grpc_server_register_method(server, "m2", "h2", 0);
+ GPR_ASSERT(method == NULL);
+ method = grpc_server_register_method(
+ server, "m2", "h2", GRPC_INITIAL_METADATA_IDEMPOTENT_REQUEST);
GPR_ASSERT(method == NULL);
grpc_server_destroy(server);
}
diff --git a/test/core/transport/chttp2/alpn_test.c b/test/core/transport/chttp2/alpn_test.c
index a3c8a9a43c..75d8ee57c7 100644
--- a/test/core/transport/chttp2/alpn_test.c
+++ b/test/core/transport/chttp2/alpn_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/transport/chttp2/alpn.h"
+#include "src/core/ext/transport/chttp2/transport/alpn.h"
#include <grpc/support/log.h>
#include "test/core/util/test_config.h"
diff --git a/test/core/transport/chttp2/bin_encoder_test.c b/test/core/transport/chttp2/bin_encoder_test.c
index fd798d88d5..96efb4d1f1 100644
--- a/test/core/transport/chttp2/bin_encoder_test.c
+++ b/test/core/transport/chttp2/bin_encoder_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/transport/chttp2/bin_encoder.h"
+#include "src/core/ext/transport/chttp2/transport/bin_encoder.h"
#include <string.h>
diff --git a/test/core/transport/chttp2/hpack_encoder_test.c b/test/core/transport/chttp2/hpack_encoder_test.c
index b23e999c52..5ff592c21c 100644
--- a/test/core/transport/chttp2/hpack_encoder_test.c
+++ b/test/core/transport/chttp2/hpack_encoder_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,15 +31,17 @@
*
*/
-#include "src/core/lib/transport/chttp2/hpack_encoder.h"
+#include "src/core/ext/transport/chttp2/transport/hpack_encoder.h"
#include <stdio.h>
+#include <string.h>
#include <grpc/support/alloc.h>
#include <grpc/support/log.h>
#include <grpc/support/string_util.h>
+
+#include "src/core/ext/transport/chttp2/transport/hpack_parser.h"
#include "src/core/lib/support/string.h"
-#include "src/core/lib/transport/chttp2/hpack_parser.h"
#include "src/core/lib/transport/metadata.h"
#include "test/core/util/parse_hexstring.h"
#include "test/core/util/slice_splitter.h"
@@ -93,7 +95,10 @@ static void verify(size_t window_available, int eof, size_t expect_window_used,
gpr_slice_buffer_init(&output);
- grpc_chttp2_encode_header(&g_compressor, 0xdeadbeef, &b, eof, &output);
+ grpc_transport_one_way_stats stats;
+ memset(&stats, 0, sizeof(stats));
+ grpc_chttp2_encode_header(&g_compressor, 0xdeadbeef, &b, eof, &stats,
+ &output);
merged = grpc_slice_merge(output.slices, output.count);
gpr_slice_buffer_destroy(&output);
grpc_metadata_batch_destroy(&b);
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/0141fcddc9807ee093313b2256f1306fbbdc6cda b/test/core/transport/chttp2/hpack_parser_corpus/0141fcddc9807ee093313b2256f1306fbbdc6cda
new file mode 100644
index 0000000000..76b1250625
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/0141fcddc9807ee093313b2256f1306fbbdc6cda
@@ -0,0 +1 @@
+(?¤¤¤Û¤Ûð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/0255050a9ccb25f46d6c1bf6a5a8a4c0c7635599 b/test/core/transport/chttp2/hpack_parser_corpus/0255050a9ccb25f46d6c1bf6a5a8a4c0c7635599
new file mode 100644
index 0000000000..e28a5867db
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/0255050a9ccb25f46d6c1bf6a5a8a4c0c7635599
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/0320a995a8c76c64c8a0e0297f632b76d9bc92d6 b/test/core/transport/chttp2/hpack_parser_corpus/0320a995a8c76c64c8a0e0297f632b76d9bc92d6
new file mode 100644
index 0000000000..0ea34c4099
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/0320a995a8c76c64c8a0e0297f632b76d9bc92d6
@@ -0,0 +1 @@
+¤!ƒÛð¤!ƒ¶Ûð*c \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/042091aeac4cc255506b96fa11c7354e699fde76 b/test/core/transport/chttp2/hpack_parser_corpus/042091aeac4cc255506b96fa11c7354e699fde76
new file mode 100644
index 0000000000..ce65ec6fd1
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/042091aeac4cc255506b96fa11c7354e699fde76
@@ -0,0 +1 @@
+¤¤ð¤-bin;?0c!(ðK ð[N!‹c[:¤ð¤-\!õG!):[(!!¤ \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/0696e7bf7837d98de01c915d3c9d80e5d21b30d2 b/test/core/transport/chttp2/hpack_parser_corpus/0696e7bf7837d98de01c915d3c9d80e5d21b30d2
new file mode 100644
index 0000000000..a7936f2faf
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/0696e7bf7837d98de01c915d3c9d80e5d21b30d2
@@ -0,0 +1 @@
+ð[(-bin! ð(!\ ?* ¤®@:ð[ \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/06995c2f3f01c7ec50547415dc324c64030b7a3e b/test/core/transport/chttp2/hpack_parser_corpus/06995c2f3f01c7ec50547415dc324c64030b7a3e
new file mode 100644
index 0000000000..be20eb55de
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/06995c2f3f01c7ec50547415dc324c64030b7a3e
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/06f7ce769fe07804fc842462d4be8c1aa2ba82c2 b/test/core/transport/chttp2/hpack_parser_corpus/06f7ce769fe07804fc842462d4be8c1aa2ba82c2
new file mode 100644
index 0000000000..0edc9f996f
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/06f7ce769fe07804fc842462d4be8c1aa2ba82c2
@@ -0,0 +1 @@
+®€¤ˆ(cc \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/0781b055c85ab8fbd0a3d0080a32e394af8761c4 b/test/core/transport/chttp2/hpack_parser_corpus/0781b055c85ab8fbd0a3d0080a32e394af8761c4
new file mode 100644
index 0000000000..ebb1e884e3
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/0781b055c85ab8fbd0a3d0080a32e394af8761c4
@@ -0,0 +1 @@
+¤!ƒÛðð¤!ƒÛððc \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/080e1f19e6061c5bcac31add2095f87f6ce46129 b/test/core/transport/chttp2/hpack_parser_corpus/080e1f19e6061c5bcac31add2095f87f6ce46129
new file mode 100644
index 0000000000..e880d551ba
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/080e1f19e6061c5bcac31add2095f87f6ce46129
@@ -0,0 +1 @@
+;?'cð[(! ð[N!\ !åGý!*(! !åGýA)(!)í!¼*)åGýI)(Ù;)Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/0828169ba82152a8907f1001e3d98804397d4610 b/test/core/transport/chttp2/hpack_parser_corpus/0828169ba82152a8907f1001e3d98804397d4610
new file mode 100644
index 0000000000..af778fb8af
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/0828169ba82152a8907f1001e3d98804397d4610
@@ -0,0 +1 @@
+¤¤Ûð!ð cc' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/08ffc4a4160e9fe6f322c28870a89a41fd9c37d7 b/test/core/transport/chttp2/hpack_parser_corpus/08ffc4a4160e9fe6f322c28870a89a41fd9c37d7
new file mode 100644
index 0000000000..e0c8806edc
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/08ffc4a4160e9fe6f322c28870a89a41fd9c37d7
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/090a7a758898a6e7c9108b7e8a1cb9cda383e707 b/test/core/transport/chttp2/hpack_parser_corpus/090a7a758898a6e7c9108b7e8a1cb9cda383e707
new file mode 100644
index 0000000000..93f599d059
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/090a7a758898a6e7c9108b7e8a1cb9cda383e707
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)(-'bin !!?¤Ûð!ð{(-binð !\ !åé;?Gí[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/0940663729501b750a18542e1041cc26385c6148 b/test/core/transport/chttp2/hpack_parser_corpus/0940663729501b750a18542e1041cc26385c6148
new file mode 100644
index 0000000000..1e92896b14
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/0940663729501b750a18542e1041cc26385c6148
@@ -0,0 +1 @@
+¤¤ð¤-bin‹äc[ò)('-bi. *)!?¤Ûâ!ð{(-bi\n! ! ðåé;?Gí:[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/0a10bd140c6c5fb109a0816ca061739688a6db9a b/test/core/transport/chttp2/hpack_parser_corpus/0a10bd140c6c5fb109a0816ca061739688a6db9a
new file mode 100644
index 0000000000..94a6997022
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/0a10bd140c6c5fb109a0816ca061739688a6db9a
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/0a4d3fda02cdcb7adad1daa80d65780c9c8d1464 b/test/core/transport/chttp2/hpack_parser_corpus/0a4d3fda02cdcb7adad1daa80d65780c9c8d1464
new file mode 100644
index 0000000000..389f58b8ae
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/0a4d3fda02cdcb7adad1daa80d65780c9c8d1464
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/0ad812832efa33e086874fbf3496664d3f1b4dbe b/test/core/transport/chttp2/hpack_parser_corpus/0ad812832efa33e086874fbf3496664d3f1b4dbe
new file mode 100644
index 0000000000..e4ec7808b9
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/0ad812832efa33e086874fbf3496664d3f1b4dbe
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/0c9996d4fef87bacd7a001e99a515b3ba3d5788f b/test/core/transport/chttp2/hpack_parser_corpus/0c9996d4fef87bacd7a001e99a515b3ba3d5788f
new file mode 100644
index 0000000000..229a89045a
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/0c9996d4fef87bacd7a001e99a515b3ba3d5788f
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/0d6210208831fe55951af56cdeee3d54a91a5361 b/test/core/transport/chttp2/hpack_parser_corpus/0d6210208831fe55951af56cdeee3d54a91a5361
new file mode 100644
index 0000000000..001fd0bc88
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/0d6210208831fe55951af56cdeee3d54a91a5361
@@ -0,0 +1 @@
+f!(!! i[Ñ!å \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/0d784965b2262df7ed7a1eb57b92a718cc76bde8 b/test/core/transport/chttp2/hpack_parser_corpus/0d784965b2262df7ed7a1eb57b92a718cc76bde8
new file mode 100644
index 0000000000..398077e307
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/0d784965b2262df7ed7a1eb57b92a718cc76bde8
@@ -0,0 +1 @@
+¤Ê!ð c' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/0dc9e41eedf35ccedf4e2b0d230ead7c4d72fdb2 b/test/core/transport/chttp2/hpack_parser_corpus/0dc9e41eedf35ccedf4e2b0d230ead7c4d72fdb2
new file mode 100644
index 0000000000..60191620fa
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/0dc9e41eedf35ccedf4e2b0d230ead7c4d72fdb2
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/0dd470c8939ed535de6b36f7b7bfb68aeace493e b/test/core/transport/chttp2/hpack_parser_corpus/0dd470c8939ed535de6b36f7b7bfb68aeace493e
new file mode 100644
index 0000000000..ca7cbd033a
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/0dd470c8939ed535de6b36f7b7bfb68aeace493e
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)('-bh *!!?¤Ûâ!ð{(-bi\n! ! ðåé;?Gí:[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/0e61e471fa6d3405daef4276ee00cf5fc189f378 b/test/core/transport/chttp2/hpack_parser_corpus/0e61e471fa6d3405daef4276ee00cf5fc189f378
new file mode 100644
index 0000000000..203837bbd7
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/0e61e471fa6d3405daef4276ee00cf5fc189f378
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/0e9196f951874edbb5ed098739ea5c8b6c0751c2 b/test/core/transport/chttp2/hpack_parser_corpus/0e9196f951874edbb5ed098739ea5c8b6c0751c2
new file mode 100644
index 0000000000..8a3ef9ea82
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/0e9196f951874edbb5ed098739ea5c8b6c0751c2
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/11442d93a554b9e7f9ab02782bbf9443bf6e1ddc b/test/core/transport/chttp2/hpack_parser_corpus/11442d93a554b9e7f9ab02782bbf9443bf6e1ddc
new file mode 100644
index 0000000000..fdeb10ae31
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/11442d93a554b9e7f9ab02782bbf9443bf6e1ddc
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/11833b795d04eda5a3af56ef7b3c3a26a8ee3444 b/test/core/transport/chttp2/hpack_parser_corpus/11833b795d04eda5a3af56ef7b3c3a26a8ee3444
new file mode 100644
index 0000000000..480a056677
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/11833b795d04eda5a3af56ef7b3c3a26a8ee3444
@@ -0,0 +1 @@
+¤¤ð¤-bin‹)['(-cbin !!?¤Ûð!ð{(-binð !\ !åé;?Gí:[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/141272316382b0f3e9ec841c735b84e7aa517c3e b/test/core/transport/chttp2/hpack_parser_corpus/141272316382b0f3e9ec841c735b84e7aa517c3e
new file mode 100644
index 0000000000..f706bd98e7
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/141272316382b0f3e9ec841c735b84e7aa517c3e
@@ -0,0 +1 @@
+;?0c!(ðK ð[N!\!õG![(!! !åGýA)(!)í!*åG€¾ýA))Ù+©Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/15ae43369798e48c396dfe7d53a21878b96e66c8 b/test/core/transport/chttp2/hpack_parser_corpus/15ae43369798e48c396dfe7d53a21878b96e66c8
new file mode 100644
index 0000000000..e4c217c6e5
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/15ae43369798e48c396dfe7d53a21878b96e66c8
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/166bf1843c229d34a2880d234dd166c27bdc11fd b/test/core/transport/chttp2/hpack_parser_corpus/166bf1843c229d34a2880d234dd166c27bdc11fd
new file mode 100644
index 0000000000..64fdd961e9
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/166bf1843c229d34a2880d234dd166c27bdc11fd
@@ -0,0 +1 @@
+¤¤ð¤-bin‹í¤-[c'!)¤bi \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/179e8ac763b4051a953a38b6b3b1f1e1f6cc6c9e b/test/core/transport/chttp2/hpack_parser_corpus/179e8ac763b4051a953a38b6b3b1f1e1f6cc6c9e
new file mode 100644
index 0000000000..b576e9fb7a
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/179e8ac763b4051a953a38b6b3b1f1e1f6cc6c9e
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/17faf0ba8a491a835d35977a9007b90ab7d30d2a b/test/core/transport/chttp2/hpack_parser_corpus/17faf0ba8a491a835d35977a9007b90ab7d30d2a
new file mode 100644
index 0000000000..483097294c
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/17faf0ba8a491a835d35977a9007b90ab7d30d2a
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/188f6cf2470e95b228341de305ef839b27f01a5c b/test/core/transport/chttp2/hpack_parser_corpus/188f6cf2470e95b228341de305ef839b27f01a5c
new file mode 100644
index 0000000000..75aa45a025
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/188f6cf2470e95b228341de305ef839b27f01a5c
@@ -0,0 +1 @@
+;?0cð[(! ð[N!\ !åGý![(!! !åGýA)(!)í!¼*)åGýA)(Ù;)Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/1ab3e52adace335d02e2b5130eb4f7c918add7fd b/test/core/transport/chttp2/hpack_parser_corpus/1ab3e52adace335d02e2b5130eb4f7c918add7fd
new file mode 100644
index 0000000000..914e443ce8
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/1ab3e52adace335d02e2b5130eb4f7c918add7fd
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[')(-'bin !!?¤Ûð!ð{(-banð !\ !(åé–;?Gí:[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/1b5150514364e2c17f5a4edac1b7af99b936f55a b/test/core/transport/chttp2/hpack_parser_corpus/1b5150514364e2c17f5a4edac1b7af99b936f55a
new file mode 100644
index 0000000000..fc2f5a59a1
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/1b5150514364e2c17f5a4edac1b7af99b936f55a
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/1e8befb98cbaba059d6771abd1680e19484e7723 b/test/core/transport/chttp2/hpack_parser_corpus/1e8befb98cbaba059d6771abd1680e19484e7723
new file mode 100644
index 0000000000..6ae0cd1d85
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/1e8befb98cbaba059d6771abd1680e19484e7723
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/1e9b962969c359bc2ff766704c8ca8e25f5eccfc b/test/core/transport/chttp2/hpack_parser_corpus/1e9b962969c359bc2ff766704c8ca8e25f5eccfc
new file mode 100644
index 0000000000..970a9121b3
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/1e9b962969c359bc2ff766704c8ca8e25f5eccfc
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/1f80af104acf41b912bf4a48fb938267e3718719 b/test/core/transport/chttp2/hpack_parser_corpus/1f80af104acf41b912bf4a48fb938267e3718719
new file mode 100644
index 0000000000..ae0ab51374
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/1f80af104acf41b912bf4a48fb938267e3718719
@@ -0,0 +1 @@
+?*®@:[ðøc (!!\þ;ð!~ ÛåG¤¤Ûðý!Ðam¤ \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/1fcc4afd6f48e83d61ea74970df3ca9dcd8ec291 b/test/core/transport/chttp2/hpack_parser_corpus/1fcc4afd6f48e83d61ea74970df3ca9dcd8ec291
new file mode 100644
index 0000000000..68b2d0efc7
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/1fcc4afd6f48e83d61ea74970df3ca9dcd8ec291
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/213a734ccdb813b18ad9f2dd99b7f9967ee1460b b/test/core/transport/chttp2/hpack_parser_corpus/213a734ccdb813b18ad9f2dd99b7f9967ee1460b
new file mode 100644
index 0000000000..64ab9ba5ed
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/213a734ccdb813b18ad9f2dd99b7f9967ee1460b
@@ -0,0 +1 @@
+¤¤ð¤-bin‹™[)('-bin !!?¤Ûð!ð{(-bi\n! ! ðåé;?Gí:[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/2151945f43991c27e123c45dc72b93752a47e65f b/test/core/transport/chttp2/hpack_parser_corpus/2151945f43991c27e123c45dc72b93752a47e65f
new file mode 100644
index 0000000000..2715d4e66a
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/2151945f43991c27e123c45dc72b93752a47e65f
@@ -0,0 +1 @@
+ð[(-bin! ð(!\ !åGý:[(!'ð[(!! ð[(*! !å!ýGåGýA)([( !!å \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/21545d998c27a5a1572a89a552937752432b1c14 b/test/core/transport/chttp2/hpack_parser_corpus/21545d998c27a5a1572a89a552937752432b1c14
new file mode 100644
index 0000000000..ccb7d829cb
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/21545d998c27a5a1572a89a552937752432b1c14
@@ -0,0 +1 @@
+*¤ð¤-bén'ƒ'c)[ði(bn-!?¤Ûð! ð(!\c \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/23c7443fa1ab713e7c34ec50222b1b8cceaedc65 b/test/core/transport/chttp2/hpack_parser_corpus/23c7443fa1ab713e7c34ec50222b1b8cceaedc65
new file mode 100644
index 0000000000..2b22f5cf1a
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/23c7443fa1ab713e7c34ec50222b1b8cceaedc65
@@ -0,0 +1 @@
+¤¤ð¤-bin‹-[c'()bin !!?¤Ûð!;ð{(-binð !\ !˜é;?Gí:[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/2445bb2c6779712dc9e14c01fecb7103f8732858 b/test/core/transport/chttp2/hpack_parser_corpus/2445bb2c6779712dc9e14c01fecb7103f8732858
new file mode 100644
index 0000000000..7112c43872
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/2445bb2c6779712dc9e14c01fecb7103f8732858
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/244b0a20500e31d3c538418800db816b07f4d210 b/test/core/transport/chttp2/hpack_parser_corpus/244b0a20500e31d3c538418800db816b07f4d210
new file mode 100644
index 0000000000..f58d558aa5
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/244b0a20500e31d3c538418800db816b07f4d210
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)(-'bin 1!?¤Ûð!;*ð{(-binð !\ !åé;?Gí:[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/2461b9fa6b5bc4b6424dec5b9a18d4ec7c309112 b/test/core/transport/chttp2/hpack_parser_corpus/2461b9fa6b5bc4b6424dec5b9a18d4ec7c309112
new file mode 100644
index 0000000000..bbd1dae7e0
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/2461b9fa6b5bc4b6424dec5b9a18d4ec7c309112
@@ -0,0 +1 @@
+?* ¤®@:ð[øc (;þ!!\ð !~ ÛåGý!ðcm:' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/24ec2f3e17d3850564788f3fed17a5c586c44658 b/test/core/transport/chttp2/hpack_parser_corpus/24ec2f3e17d3850564788f3fed17a5c586c44658
new file mode 100644
index 0000000000..6b6a742ff9
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/24ec2f3e17d3850564788f3fed17a5c586c44658
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/2537b8d6b902b8dfc6e17f194cf7d05ddecf74cf b/test/core/transport/chttp2/hpack_parser_corpus/2537b8d6b902b8dfc6e17f194cf7d05ddecf74cf
new file mode 100644
index 0000000000..c0cee4f308
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/2537b8d6b902b8dfc6e17f194cf7d05ddecf74cf
@@ -0,0 +1 @@
+¤!ƒÛðФ!ƒ:[oððc \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/253ad01acea4b7038edc3f2a8c4a0c0f5c4dcd05 b/test/core/transport/chttp2/hpack_parser_corpus/253ad01acea4b7038edc3f2a8c4a0c0f5c4dcd05
new file mode 100644
index 0000000000..cf1dac3094
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/253ad01acea4b7038edc3f2a8c4a0c0f5c4dcd05
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)(-'bin !!?¤Ûð!ð{(-binð !\ !å7é;?Gí([(!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/256d0bbdbed22f5867a6f503bf082011e61ee12b b/test/core/transport/chttp2/hpack_parser_corpus/256d0bbdbed22f5867a6f503bf082011e61ee12b
new file mode 100644
index 0000000000..c5d69b5ae7
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/256d0bbdbed22f5867a6f503bf082011e61ee12b
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/26f0e88adbd8f8cdf778131a35b33ecf8711fa49 b/test/core/transport/chttp2/hpack_parser_corpus/26f0e88adbd8f8cdf778131a35b33ecf8711fa49
new file mode 100644
index 0000000000..598576b7e3
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/26f0e88adbd8f8cdf778131a35b33ecf8711fa49
@@ -0,0 +1 @@
+¤pƒÛðð¤!ƒÛ')ðc \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/2e5dd8fb9d2a31fad9d681eda697d085b647b57c b/test/core/transport/chttp2/hpack_parser_corpus/2e5dd8fb9d2a31fad9d681eda697d085b647b57c
new file mode 100644
index 0000000000..689d7f2c8f
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/2e5dd8fb9d2a31fad9d681eda697d085b647b57c
@@ -0,0 +1 @@
+¤!ƒðñ¤!ƒÛð±ðc \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/2fdfd2abf30c636ec8c841f1ac26594e25664f0f b/test/core/transport/chttp2/hpack_parser_corpus/2fdfd2abf30c636ec8c841f1ac26594e25664f0f
new file mode 100644
index 0000000000..57727acb9e
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/2fdfd2abf30c636ec8c841f1ac26594e25664f0f
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/311dac5092e36134d3490f98aa4207425e0ee941 b/test/core/transport/chttp2/hpack_parser_corpus/311dac5092e36134d3490f98aa4207425e0ee941
new file mode 100644
index 0000000000..6c900ea761
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/311dac5092e36134d3490f98aa4207425e0ee941
@@ -0,0 +1 @@
+ð[(! ð[(!\ !åGý:[(!![( !åGýA)(!)í!¸*!! ) \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/320fe6224a5b691c0425e34b6b14e8c6fe9f9620 b/test/core/transport/chttp2/hpack_parser_corpus/320fe6224a5b691c0425e34b6b14e8c6fe9f9620
new file mode 100644
index 0000000000..b706187aa1
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/320fe6224a5b691c0425e34b6b14e8c6fe9f9620
@@ -0,0 +1 @@
+* ¤®@ð[:øc 8;'þ!!\ð !~ ÛDGý!ðkm' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/3255f1c7441a7150dc3c33022bfbe8c956c7b7b1 b/test/core/transport/chttp2/hpack_parser_corpus/3255f1c7441a7150dc3c33022bfbe8c956c7b7b1
new file mode 100644
index 0000000000..b1c0905a7b
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/3255f1c7441a7150dc3c33022bfbe8c956c7b7b1
@@ -0,0 +1 @@
+;?'cð[(! ð[N!\ !åEý!*(!! !åGýA)(!)í!¼*)åGýI)(Ù;)Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/33bc9db104eb72891fb096f34cbac191b3f9918d b/test/core/transport/chttp2/hpack_parser_corpus/33bc9db104eb72891fb096f34cbac191b3f9918d
new file mode 100644
index 0000000000..21f59d4d83
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/33bc9db104eb72891fb096f34cbac191b3f9918d
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/342ff1db70a7616b4ef76c03a42802c6702c18cb b/test/core/transport/chttp2/hpack_parser_corpus/342ff1db70a7616b4ef76c03a42802c6702c18cb
new file mode 100644
index 0000000000..d6921932bb
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/342ff1db70a7616b4ef76c03a42802c6702c18cb
@@ -0,0 +1 @@
+):;!œÊ'ÒØ)*;}v)7IÏ!¤);–-M*±äâ!'d*Cu«‘X$0):ó*;:äÝ;;();:]ïæ@ \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/344c011df992ccfc0ec682c14a1cb2d7959998c7 b/test/core/transport/chttp2/hpack_parser_corpus/344c011df992ccfc0ec682c14a1cb2d7959998c7
new file mode 100644
index 0000000000..982af7bac3
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/344c011df992ccfc0ec682c14a1cb2d7959998c7
@@ -0,0 +1 @@
+;¤¤ð¤-bin‹c*[)¤¤¤(ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/35775efb9d0d68fa07987b9a84934389b528e436 b/test/core/transport/chttp2/hpack_parser_corpus/35775efb9d0d68fa07987b9a84934389b528e436
new file mode 100644
index 0000000000..cd204010ca
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/35775efb9d0d68fa07987b9a84934389b528e436
@@ -0,0 +1 @@
+?¤Óð!Üð c' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/3650168db6fe115fb1e73eed4b76cd224d977d01 b/test/core/transport/chttp2/hpack_parser_corpus/3650168db6fe115fb1e73eed4b76cd224d977d01
new file mode 100644
index 0000000000..99507d2e1e
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/3650168db6fe115fb1e73eed4b76cd224d977d01
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c)(-'bin !!?¤Ûð!ð{(-binð !\ !åé;?Gí:[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/38228bf98cdb50fd3fa830ba5a9d4c7399063dff b/test/core/transport/chttp2/hpack_parser_corpus/38228bf98cdb50fd3fa830ba5a9d4c7399063dff
new file mode 100644
index 0000000000..6fdb6622b2
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/38228bf98cdb50fd3fa830ba5a9d4c7399063dff
@@ -0,0 +1 @@
+* ¤®@:ð[(øc (;þ!!\ !cåGý: \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/38717bee901151b22a10beb12c6623ccc844d3c2 b/test/core/transport/chttp2/hpack_parser_corpus/38717bee901151b22a10beb12c6623ccc844d3c2
new file mode 100644
index 0000000000..164b22a5c2
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/38717bee901151b22a10beb12c6623ccc844d3c2
@@ -0,0 +1 @@
+;?.ð[(-bin! ð(!¤\ !åGý:[(!'ð[(!'cð! ðc[ \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/3a4bb427a85bdc5bf66ac71db073c99e0dc9f881 b/test/core/transport/chttp2/hpack_parser_corpus/3a4bb427a85bdc5bf66ac71db073c99e0dc9f881
new file mode 100644
index 0000000000..54400a32f7
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/3a4bb427a85bdc5bf66ac71db073c99e0dc9f881
@@ -0,0 +1 @@
+¤ð[('! ð(!\ !åGý:(!'ð[(!! ¤[ð!ð cð[(!! !åGý!åGý'A)([( '!!å \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/3ab48621d9b8f075369099a8ec7517bd23fd6e70 b/test/core/transport/chttp2/hpack_parser_corpus/3ab48621d9b8f075369099a8ec7517bd23fd6e70
new file mode 100644
index 0000000000..b243e62540
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/3ab48621d9b8f075369099a8ec7517bd23fd6e70
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)(-'bin A!!?¤Ûð!b{ði-(nð !\ !åé;?Gí!!:[((\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/3aec8d9311130dfbb6584fe6e619579c21992b5f b/test/core/transport/chttp2/hpack_parser_corpus/3aec8d9311130dfbb6584fe6e619579c21992b5f
new file mode 100644
index 0000000000..345b8b2025
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/3aec8d9311130dfbb6584fe6e619579c21992b5f
@@ -0,0 +1 @@
+¤¤Û𤃠\ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/3b14837f22905dcb04f93aed2aa69bf95924fb9d b/test/core/transport/chttp2/hpack_parser_corpus/3b14837f22905dcb04f93aed2aa69bf95924fb9d
new file mode 100644
index 0000000000..dceaf045d2
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/3b14837f22905dcb04f93aed2aa69bf95924fb9d
@@ -0,0 +1 @@
+f*!(!! i[Ñ! \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/3be63c163805927e04fd7f84d96122c48240e601 b/test/core/transport/chttp2/hpack_parser_corpus/3be63c163805927e04fd7f84d96122c48240e601
new file mode 100644
index 0000000000..1e49a898fd
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/3be63c163805927e04fd7f84d96122c48240e601
@@ -0,0 +1 @@
+¤¤ð¤-bin‹¤Ê!ð c)[''( \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/3bf2e349747c0f539181e0d4084a5fe506811a9e b/test/core/transport/chttp2/hpack_parser_corpus/3bf2e349747c0f539181e0d4084a5fe506811a9e
new file mode 100644
index 0000000000..f1e7a8e1df
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/3bf2e349747c0f539181e0d4084a5fe506811a9e
@@ -0,0 +1 @@
+¤¤ð¤-bin?ð‹c[)(-'bin !!? \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/3c5af4d73e94d0e8ad5666b6acb340f929031e95 b/test/core/transport/chttp2/hpack_parser_corpus/3c5af4d73e94d0e8ad5666b6acb340f929031e95
new file mode 100644
index 0000000000..6d2446ab3a
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/3c5af4d73e94d0e8ad5666b6acb340f929031e95
@@ -0,0 +1 @@
+¤c \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/3d2b25346a9671d83bd082d170a45eed739bae6b b/test/core/transport/chttp2/hpack_parser_corpus/3d2b25346a9671d83bd082d170a45eed739bae6b
new file mode 100644
index 0000000000..98ff11fb49
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/3d2b25346a9671d83bd082d170a45eed739bae6b
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)¤(*¤;[('¤ð!(- bni'!!/¤ Ûð!( \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/3de7b860c3fba2bc55707fd6875dce276f2f249b b/test/core/transport/chttp2/hpack_parser_corpus/3de7b860c3fba2bc55707fd6875dce276f2f249b
new file mode 100644
index 0000000000..7d875fef83
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/3de7b860c3fba2bc55707fd6875dce276f2f249b
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)(-'bin !!?¤Ûð!ð{(-binð !\ !åé;?Gí:[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/3e2004ff9f40e398e0f41138a25a8b66e3d843d9 b/test/core/transport/chttp2/hpack_parser_corpus/3e2004ff9f40e398e0f41138a25a8b66e3d843d9
new file mode 100644
index 0000000000..ddf6c7cb63
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/3e2004ff9f40e398e0f41138a25a8b66e3d843d9
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/3f8983e457033cc85997c356935ba9c21460e86b b/test/core/transport/chttp2/hpack_parser_corpus/3f8983e457033cc85997c356935ba9c21460e86b
new file mode 100644
index 0000000000..0350f5adbd
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/3f8983e457033cc85997c356935ba9c21460e86b
@@ -0,0 +1 @@
+.:¤c \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/4105669086d83a20f8d991088553ba08202478cd b/test/core/transport/chttp2/hpack_parser_corpus/4105669086d83a20f8d991088553ba08202478cd
new file mode 100644
index 0000000000..c72af1a7ad
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/4105669086d83a20f8d991088553ba08202478cd
@@ -0,0 +1 @@
+¤¤ð¤-bin‹¤Ûð!c[)('-bl *!!?¤Ûâ!ðð{(-bin\ c!' ! ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/4180619316eef7912d1cf52ffe85897242e1ae88 b/test/core/transport/chttp2/hpack_parser_corpus/4180619316eef7912d1cf52ffe85897242e1ae88
new file mode 100644
index 0000000000..2bfbdf50fd
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/4180619316eef7912d1cf52ffe85897242e1ae88
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)(-'bin #!?¤Ûð!ð{(-binð !\ !åé;?Gí:[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/420291d7139d9246de747739fd98102434a742dd b/test/core/transport/chttp2/hpack_parser_corpus/420291d7139d9246de747739fd98102434a742dd
new file mode 100644
index 0000000000..24f6a24c86
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/420291d7139d9246de747739fd98102434a742dd
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/4256437fc5897c0cd5d755816e4e68c7be326849 b/test/core/transport/chttp2/hpack_parser_corpus/4256437fc5897c0cd5d755816e4e68c7be326849
new file mode 100644
index 0000000000..6eebe104ae
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/4256437fc5897c0cd5d755816e4e68c7be326849
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/42b25a5413c536478a3e63da5adef4250babf2f4 b/test/core/transport/chttp2/hpack_parser_corpus/42b25a5413c536478a3e63da5adef4250babf2f4
new file mode 100644
index 0000000000..4616caf56b
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/42b25a5413c536478a3e63da5adef4250babf2f4
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/42bef44ae751a45c671d9da5b1231d2ac747a48d b/test/core/transport/chttp2/hpack_parser_corpus/42bef44ae751a45c671d9da5b1231d2ac747a48d
new file mode 100644
index 0000000000..f9c48717cf
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/42bef44ae751a45c671d9da5b1231d2ac747a48d
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/438c3c9045c3cf7910aceec34f77b47a70ca4abd b/test/core/transport/chttp2/hpack_parser_corpus/438c3c9045c3cf7910aceec34f77b47a70ca4abd
new file mode 100644
index 0000000000..c000da7d7d
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/438c3c9045c3cf7910aceec34f77b47a70ca4abd
@@ -0,0 +1 @@
+ð[(-bin! ð(! !åGý:[(!'ð[(¤! \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/43af96b4f65ed0ace7236427f2f8833c4835989e b/test/core/transport/chttp2/hpack_parser_corpus/43af96b4f65ed0ace7236427f2f8833c4835989e
new file mode 100644
index 0000000000..9fd52afbf3
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/43af96b4f65ed0ace7236427f2f8833c4835989e
@@ -0,0 +1 @@
+¤!ƒÛ*¤ð¤-bin¤¤ððÛðcc' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/44c6119bb91a452d6128ce0ea0d62938800779ea b/test/core/transport/chttp2/hpack_parser_corpus/44c6119bb91a452d6128ce0ea0d62938800779ea
new file mode 100644
index 0000000000..3894ad5659
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/44c6119bb91a452d6128ce0ea0d62938800779ea
@@ -0,0 +1 @@
+;?0c!(ðK ð[N!\!åG![(!! !åGýA)(!)í!*åG€¾ýA)(Ù;Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/46d595331689ae01d77aff387747a98ff3480096 b/test/core/transport/chttp2/hpack_parser_corpus/46d595331689ae01d77aff387747a98ff3480096
new file mode 100644
index 0000000000..acb762956c
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/46d595331689ae01d77aff387747a98ff3480096
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/471a307b81dc37459087d41532741c5c9d7ba836 b/test/core/transport/chttp2/hpack_parser_corpus/471a307b81dc37459087d41532741c5c9d7ba836
new file mode 100644
index 0000000000..da07fc4a7a
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/471a307b81dc37459087d41532741c5c9d7ba836
@@ -0,0 +1 @@
+¤ \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/48900b4a5557530922ce45c15ad0d3b0a337520d b/test/core/transport/chttp2/hpack_parser_corpus/48900b4a5557530922ce45c15ad0d3b0a337520d
new file mode 100644
index 0000000000..5d9d035115
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/48900b4a5557530922ce45c15ad0d3b0a337520d
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/48bcce2c6487b18706ef0c609ca39c456215bac8 b/test/core/transport/chttp2/hpack_parser_corpus/48bcce2c6487b18706ef0c609ca39c456215bac8
new file mode 100644
index 0000000000..49a5a112dd
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/48bcce2c6487b18706ef0c609ca39c456215bac8
@@ -0,0 +1 @@
+¤ \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/49027bbd3f3f3cafa315843c8fe8280f86985273 b/test/core/transport/chttp2/hpack_parser_corpus/49027bbd3f3f3cafa315843c8fe8280f86985273
new file mode 100644
index 0000000000..5b390fd26a
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/49027bbd3f3f3cafa315843c8fe8280f86985273
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/499376c5e291da2f9c25999abf4960fab5a92ec8 b/test/core/transport/chttp2/hpack_parser_corpus/499376c5e291da2f9c25999abf4960fab5a92ec8
new file mode 100644
index 0000000000..22cebb56f5
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/499376c5e291da2f9c25999abf4960fab5a92ec8
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/4a3b7ce0cdf217963a0b692769e5d6f4befe73b8 b/test/core/transport/chttp2/hpack_parser_corpus/4a3b7ce0cdf217963a0b692769e5d6f4befe73b8
new file mode 100644
index 0000000000..6b93c8280e
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/4a3b7ce0cdf217963a0b692769e5d6f4befe73b8
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/4a3fdb96bc8c80f1992f0f72f963f84856cbade8 b/test/core/transport/chttp2/hpack_parser_corpus/4a3fdb96bc8c80f1992f0f72f963f84856cbade8
new file mode 100644
index 0000000000..3bf6b6e6c1
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/4a3fdb96bc8c80f1992f0f72f963f84856cbade8
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/4aae80e05793d7adb42a7e6e8a5283b677318777 b/test/core/transport/chttp2/hpack_parser_corpus/4aae80e05793d7adb42a7e6e8a5283b677318777
new file mode 100644
index 0000000000..fc8bdd1913
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/4aae80e05793d7adb42a7e6e8a5283b677318777
@@ -0,0 +1 @@
+(B¤:?ðc \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/4c7a034d3a3b4f29d99caf021a0e9bbb89706c2e b/test/core/transport/chttp2/hpack_parser_corpus/4c7a034d3a3b4f29d99caf021a0e9bbb89706c2e
new file mode 100644
index 0000000000..778ecf79e5
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/4c7a034d3a3b4f29d99caf021a0e9bbb89706c2e
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/4ce8a43fb17a075627160812ad26c25210d8a82d b/test/core/transport/chttp2/hpack_parser_corpus/4ce8a43fb17a075627160812ad26c25210d8a82d
new file mode 100644
index 0000000000..3a3c61a888
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/4ce8a43fb17a075627160812ad26c25210d8a82d
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c)(-'*in !!?¤Ûð!!ð{(-binð !\H!åé;?Gí:[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/5032a75a98cd14d4dab75c1c5e2cd981abb19dcf b/test/core/transport/chttp2/hpack_parser_corpus/5032a75a98cd14d4dab75c1c5e2cd981abb19dcf
new file mode 100644
index 0000000000..e5a06a1121
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/5032a75a98cd14d4dab75c1c5e2cd981abb19dcf
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/50b3f4b6aed97f442496d27f3b4315a18ba76d5f b/test/core/transport/chttp2/hpack_parser_corpus/50b3f4b6aed97f442496d27f3b4315a18ba76d5f
new file mode 100644
index 0000000000..e2e8f9b231
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/50b3f4b6aed97f442496d27f3b4315a18ba76d5f
@@ -0,0 +1 @@
+;;? \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/51064b88a98658d48a0da7f1545c2d1293ad9538 b/test/core/transport/chttp2/hpack_parser_corpus/51064b88a98658d48a0da7f1545c2d1293ad9538
new file mode 100644
index 0000000000..1b08af84b6
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/51064b88a98658d48a0da7f1545c2d1293ad9538
@@ -0,0 +1 @@
+*¤ð¤-bin¤¤Û'(?¤ð;[('¤ð! ( \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/51752f12d59fadaaa0dc72e6370612b84ee1555b b/test/core/transport/chttp2/hpack_parser_corpus/51752f12d59fadaaa0dc72e6370612b84ee1555b
new file mode 100644
index 0000000000..ebcc00934b
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/51752f12d59fadaaa0dc72e6370612b84ee1555b
@@ -0,0 +1 @@
+* ¤®@:ð[(øc (;þ!!\'!cåGý: \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/51eff6fcbfe1a51ceb3f5f2140c01eea89b4313d b/test/core/transport/chttp2/hpack_parser_corpus/51eff6fcbfe1a51ceb3f5f2140c01eea89b4313d
new file mode 100644
index 0000000000..b26118fd84
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/51eff6fcbfe1a51ceb3f5f2140c01eea89b4313d
@@ -0,0 +1 @@
+¤¤Ûððƒcc' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/51f65f681cf3a1218d83ad58642c06deaea86210 b/test/core/transport/chttp2/hpack_parser_corpus/51f65f681cf3a1218d83ad58642c06deaea86210
new file mode 100644
index 0000000000..103692aec1
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/51f65f681cf3a1218d83ad58642c06deaea86210
@@ -0,0 +1 @@
+ð[(-bin¤-¤¤ðbin‹c[)(-'bin¤?!ð Û#!ð{( binð! ð( !! \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/521809903d36db80b1ccd707f354361f2bf05075 b/test/core/transport/chttp2/hpack_parser_corpus/521809903d36db80b1ccd707f354361f2bf05075
new file mode 100644
index 0000000000..06858ed86d
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/521809903d36db80b1ccd707f354361f2bf05075
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/52fe8f0e1fa270ea16f66c93f2ffab265ce059e8 b/test/core/transport/chttp2/hpack_parser_corpus/52fe8f0e1fa270ea16f66c93f2ffab265ce059e8
new file mode 100644
index 0000000000..fcec5d6fa5
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/52fe8f0e1fa270ea16f66c93f2ffab265ce059e8
@@ -0,0 +1 @@
+;?'cð[(! ð[N!\ bå3Gý!*(!! BåGýA)(!)í!d*)åGýI)(Ù;)Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/53de87ae94acdc8e58a369459c12a3240f1294fe b/test/core/transport/chttp2/hpack_parser_corpus/53de87ae94acdc8e58a369459c12a3240f1294fe
new file mode 100644
index 0000000000..aaada4fb29
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/53de87ae94acdc8e58a369459c12a3240f1294fe
@@ -0,0 +1 @@
+?* ¤®@ð:[øc (;þ!!\ð !~ ÛåGý!ðcm:' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/54a2b3993c3483745f6314c870a038a8e58f97a7 b/test/core/transport/chttp2/hpack_parser_corpus/54a2b3993c3483745f6314c870a038a8e58f97a7
new file mode 100644
index 0000000000..ac9c813f0f
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/54a2b3993c3483745f6314c870a038a8e58f97a7
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/55d60c2e5040a38be8ca41de63e137e3fef892a4 b/test/core/transport/chttp2/hpack_parser_corpus/55d60c2e5040a38be8ca41de63e137e3fef892a4
new file mode 100644
index 0000000000..c9472247d4
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/55d60c2e5040a38be8ca41de63e137e3fef892a4
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[(*)? ¤®@: \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/5653c44a5b520bdf2bdc599b7966f1d7c44950b3 b/test/core/transport/chttp2/hpack_parser_corpus/5653c44a5b520bdf2bdc599b7966f1d7c44950b3
new file mode 100644
index 0000000000..463f1a40fb
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/5653c44a5b520bdf2bdc599b7966f1d7c44950b3
@@ -0,0 +1 @@
+¤ \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/5838b5a683229ebb6e6277e2810863e642b8afc2 b/test/core/transport/chttp2/hpack_parser_corpus/5838b5a683229ebb6e6277e2810863e642b8afc2
new file mode 100644
index 0000000000..1bfc596dbe
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/5838b5a683229ebb6e6277e2810863e642b8afc2
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/588d225784891ac88e30ac6eb5651d63fac34083 b/test/core/transport/chttp2/hpack_parser_corpus/588d225784891ac88e30ac6eb5651d63fac34083
new file mode 100644
index 0000000000..48c1dfefe4
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/588d225784891ac88e30ac6eb5651d63fac34083
@@ -0,0 +1 @@
+¤¤ð¤-bin‹!c[)(-'bin !!?¤Ûð!ð{(-binð !\ !åé;?Gí:[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/58d51c21a20b6549567a0ab8fee29d162dd3fc5a b/test/core/transport/chttp2/hpack_parser_corpus/58d51c21a20b6549567a0ab8fee29d162dd3fc5a
new file mode 100644
index 0000000000..e7e115f84b
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/58d51c21a20b6549567a0ab8fee29d162dd3fc5a
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)(;-''bin !!?¤Ûð!ð{(-binð !\ !åé;:?íå[((!;!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/58f1036d8ff855841ec25b3c33e85a8fec0d94b7 b/test/core/transport/chttp2/hpack_parser_corpus/58f1036d8ff855841ec25b3c33e85a8fec0d94b7
new file mode 100644
index 0000000000..c1c41667f4
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/58f1036d8ff855841ec25b3c33e85a8fec0d94b7
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)-'bin 1!?¤Ûð!;'*ð{(-binð !\ !åé;?Gí:[((!!Lð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/5a99df42fb7bbafa2d55714ee235b1c46776b2ad b/test/core/transport/chttp2/hpack_parser_corpus/5a99df42fb7bbafa2d55714ee235b1c46776b2ad
new file mode 100644
index 0000000000..198c062d33
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/5a99df42fb7bbafa2d55714ee235b1c46776b2ad
@@ -0,0 +1 @@
+¤[ð!ð c' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/5b42793550699b2c015bed677cfcddc052f73513 b/test/core/transport/chttp2/hpack_parser_corpus/5b42793550699b2c015bed677cfcddc052f73513
new file mode 100644
index 0000000000..144e68b7e9
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/5b42793550699b2c015bed677cfcddc052f73513
@@ -0,0 +1 @@
+¤pƒÛðð¤!ƒÛð)ðc \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/5b8ca72ba00231c38b19f582127e6a146eba4282 b/test/core/transport/chttp2/hpack_parser_corpus/5b8ca72ba00231c38b19f582127e6a146eba4282
new file mode 100644
index 0000000000..eb49d1d44a
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/5b8ca72ba00231c38b19f582127e6a146eba4282
@@ -0,0 +1 @@
+;?'cð[(! ð[N!\ !åGý!*(! !ÔåGýA)(!)í!¼*)åGýI)(Ù;)Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/5baa13dc95da05e7ba02bbe9583ea24517a29a1a b/test/core/transport/chttp2/hpack_parser_corpus/5baa13dc95da05e7ba02bbe9583ea24517a29a1a
new file mode 100644
index 0000000000..4f5a88776e
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/5baa13dc95da05e7ba02bbe9583ea24517a29a1a
@@ -0,0 +1 @@
+¤¤ð¤-bin‹¤ð[c'!)¤bi \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/5bab61eb53176449e25c2c82f172b82cb13ffb9d b/test/core/transport/chttp2/hpack_parser_corpus/5bab61eb53176449e25c2c82f172b82cb13ffb9d
new file mode 100644
index 0000000000..0d758c9c7b
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/5bab61eb53176449e25c2c82f172b82cb13ffb9d
@@ -0,0 +1 @@
+? \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/5c6f6b6f7f3e7b435f060abb73c20d2b773a7f56 b/test/core/transport/chttp2/hpack_parser_corpus/5c6f6b6f7f3e7b435f060abb73c20d2b773a7f56
new file mode 100644
index 0000000000..d8e3155a80
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/5c6f6b6f7f3e7b435f060abb73c20d2b773a7f56
@@ -0,0 +1 @@
+;?0c!(ðK ð[N!\!åG![(!! !åGýA)(!)í!*åG€¾A)(Ù;Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/5c9fd9cc7100feaeead1e0e45201945a6e76fd85 b/test/core/transport/chttp2/hpack_parser_corpus/5c9fd9cc7100feaeead1e0e45201945a6e76fd85
new file mode 100644
index 0000000000..d38481ced8
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/5c9fd9cc7100feaeead1e0e45201945a6e76fd85
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/5ff49c9edc7361797a951585f3e180222c8dd95d b/test/core/transport/chttp2/hpack_parser_corpus/5ff49c9edc7361797a951585f3e180222c8dd95d
new file mode 100644
index 0000000000..f0ce5a2af4
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/5ff49c9edc7361797a951585f3e180222c8dd95d
@@ -0,0 +1 @@
+?* ¤®@:ð[(øc (;þ!!\ð !c åÛGý!ðcm:' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/6129954942e26c2a9ec071b6659675745613cf3c b/test/core/transport/chttp2/hpack_parser_corpus/6129954942e26c2a9ec071b6659675745613cf3c
new file mode 100644
index 0000000000..1ae539b3f8
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/6129954942e26c2a9ec071b6659675745613cf3c
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/61fa69b6b51b0ed91914fe48779173f8d26a1d54 b/test/core/transport/chttp2/hpack_parser_corpus/61fa69b6b51b0ed91914fe48779173f8d26a1d54
new file mode 100644
index 0000000000..0759d5b791
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/61fa69b6b51b0ed91914fe48779173f8d26a1d54
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)(-'bin ;!!?¤Ûð!ð{(-binð !\ !åé;?Gí[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/6362ac61cfb6e964aff78f3cd648475dfd5fd4e9 b/test/core/transport/chttp2/hpack_parser_corpus/6362ac61cfb6e964aff78f3cd648475dfd5fd4e9
new file mode 100644
index 0000000000..06af54ddf3
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/6362ac61cfb6e964aff78f3cd648475dfd5fd4e9
@@ -0,0 +1 @@
+;?'cð[(! ð[N!\ bå3Gý!*(!! BåGýA)(!)í!¼*)åGýI)(Ù;)Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/644deba51c79b6ebd470bd4367452941045d112a b/test/core/transport/chttp2/hpack_parser_corpus/644deba51c79b6ebd470bd4367452941045d112a
new file mode 100644
index 0000000000..3357333bb7
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/644deba51c79b6ebd470bd4367452941045d112a
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/64beae98e2276749b133e6368c9e0f19a79eba96 b/test/core/transport/chttp2/hpack_parser_corpus/64beae98e2276749b133e6368c9e0f19a79eba96
new file mode 100644
index 0000000000..9aa7b9d404
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/64beae98e2276749b133e6368c9e0f19a79eba96
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)¤(- bni'!!/¤Ûð! \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/64d7add9192301fd878854dc96f9fa9053f03992 b/test/core/transport/chttp2/hpack_parser_corpus/64d7add9192301fd878854dc96f9fa9053f03992
new file mode 100644
index 0000000000..1203eb1748
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/64d7add9192301fd878854dc96f9fa9053f03992
@@ -0,0 +1 @@
+¤!ƒÛððcc'_ \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/65566df65e8f55428b6672cc351df414fa8f936c b/test/core/transport/chttp2/hpack_parser_corpus/65566df65e8f55428b6672cc351df414fa8f936c
new file mode 100644
index 0000000000..a273e99788
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/65566df65e8f55428b6672cc351df414fa8f936c
@@ -0,0 +1 @@
+'ð[(!! ð[(!! !åGý!åGýA)(!)í!¼)Ù:;‡Š* \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/65bb703af35d5afb824cd68c41d7a1aeb3848d35 b/test/core/transport/chttp2/hpack_parser_corpus/65bb703af35d5afb824cd68c41d7a1aeb3848d35
new file mode 100644
index 0000000000..8ac429215f
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/65bb703af35d5afb824cd68c41d7a1aeb3848d35
@@ -0,0 +1 @@
+[ð!ð '(![(!! !åGý!åGýA)(!)í!¼)Ù:;‡Š* \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/66c537bf59cb3667c037b3517be3d31245c9da8a b/test/core/transport/chttp2/hpack_parser_corpus/66c537bf59cb3667c037b3517be3d31245c9da8a
new file mode 100644
index 0000000000..07cf3ef26b
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/66c537bf59cb3667c037b3517be3d31245c9da8a
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)(-'bin)#!?¤Ûð!ð{(-binð !\!åé;?Gí:[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/66f576baeb0c9435a56eb7375dadc5b5d630ed87 b/test/core/transport/chttp2/hpack_parser_corpus/66f576baeb0c9435a56eb7375dadc5b5d630ed87
new file mode 100644
index 0000000000..c5a8cc695e
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/66f576baeb0c9435a56eb7375dadc5b5d630ed87
@@ -0,0 +1 @@
+?* ¤®P®€¤ˆ:ð[øc 8;þ!!\ð !~( ÛDGý!ðmc:c' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/67b4cec5183659aeae0f5bc71b3adf0542a11828 b/test/core/transport/chttp2/hpack_parser_corpus/67b4cec5183659aeae0f5bc71b3adf0542a11828
new file mode 100644
index 0000000000..3ad7a92e82
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/67b4cec5183659aeae0f5bc71b3adf0542a11828
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/68c94721eda2f62481bff9f1d183df70498d0c5b b/test/core/transport/chttp2/hpack_parser_corpus/68c94721eda2f62481bff9f1d183df70498d0c5b
new file mode 100644
index 0000000000..cfe8f60dff
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/68c94721eda2f62481bff9f1d183df70498d0c5b
@@ -0,0 +1 @@
+¤¤ð¤-b!n‹¤-[c'!)¤bi \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/68ee8169a65d58edb9fc1c752ea81dfec383203c b/test/core/transport/chttp2/hpack_parser_corpus/68ee8169a65d58edb9fc1c752ea81dfec383203c
new file mode 100644
index 0000000000..2fb6e2887c
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/68ee8169a65d58edb9fc1c752ea81dfec383203c
@@ -0,0 +1 @@
+¤¤ð¤-bin‹()[c-'bin !ðÛ¤! ?ð{(-binð !\ !åé;?Gí:[((#!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/6b203d49bbba6ee74def0d35c2266e06ad3c45d9 b/test/core/transport/chttp2/hpack_parser_corpus/6b203d49bbba6ee74def0d35c2266e06ad3c45d9
new file mode 100644
index 0000000000..bb540ad811
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/6b203d49bbba6ee74def0d35c2266e06ad3c45d9
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/6d580f28d785c0bf87ac351a31a89289449feadb b/test/core/transport/chttp2/hpack_parser_corpus/6d580f28d785c0bf87ac351a31a89289449feadb
new file mode 100644
index 0000000000..56c98a43f4
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/6d580f28d785c0bf87ac351a31a89289449feadb
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)¨-.'bi* !!(?¤Û!ð!:ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/6f231dec759eb2105e09263d53e171de19a92c74 b/test/core/transport/chttp2/hpack_parser_corpus/6f231dec759eb2105e09263d53e171de19a92c74
new file mode 100644
index 0000000000..9f2955b0cb
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/6f231dec759eb2105e09263d53e171de19a92c74
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/70ff6621a09e4f641538cb1b27e8b382b2f56a94 b/test/core/transport/chttp2/hpack_parser_corpus/70ff6621a09e4f641538cb1b27e8b382b2f56a94
new file mode 100644
index 0000000000..cc3c4dd2b3
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/70ff6621a09e4f641538cb1b27e8b382b2f56a94
@@ -0,0 +1 @@
+¤!ƒÛ*¤ð¤-bin¤¦ððÛðcc' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/71981b55f27a1eb6274eda247048fa2c597f5004 b/test/core/transport/chttp2/hpack_parser_corpus/71981b55f27a1eb6274eda247048fa2c597f5004
new file mode 100644
index 0000000000..b57b2aabd2
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/71981b55f27a1eb6274eda247048fa2c597f5004
@@ -0,0 +1 @@
+;?'cð[(! ð[N!\ !åGý!*(! !åGýA)(!!í!¼(*)åGýI)(Ù;)Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/71c2b0bebf7f0e916e4ab7eb36d47ccca2b9101c b/test/core/transport/chttp2/hpack_parser_corpus/71c2b0bebf7f0e916e4ab7eb36d47ccca2b9101c
new file mode 100644
index 0000000000..3a78289fdd
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/71c2b0bebf7f0e916e4ab7eb36d47ccca2b9101c
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/74610e278a5b90aa12ce1beaf222c4306b02ed43 b/test/core/transport/chttp2/hpack_parser_corpus/74610e278a5b90aa12ce1beaf222c4306b02ed43
new file mode 100644
index 0000000000..e87f23e2be
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/74610e278a5b90aa12ce1beaf222c4306b02ed43
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[i¤(-'bin !!?¤Ûð! \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/748ee9817eba56ec9938601a0e380c74bad4563f b/test/core/transport/chttp2/hpack_parser_corpus/748ee9817eba56ec9938601a0e380c74bad4563f
new file mode 100644
index 0000000000..d0a7c6403b
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/748ee9817eba56ec9938601a0e380c74bad4563f
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)('-bin !!?¤Ûð!ð{(-bi\n! ! ðåé;?Gí:[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/7727e3eeb2a48c46bf5a678c300ff8a38b8ffe3a b/test/core/transport/chttp2/hpack_parser_corpus/7727e3eeb2a48c46bf5a678c300ff8a38b8ffe3a
new file mode 100644
index 0000000000..5b7c52d2ba
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/7727e3eeb2a48c46bf5a678c300ff8a38b8ffe3a
@@ -0,0 +1 @@
+?* ¤®P®€¤ˆ:ð[øc 8;þ!!\ð !~( ÛDGý!ðcmc:c' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/78176d80c1d74c4b1b820d386ae483ac4d1d92b7 b/test/core/transport/chttp2/hpack_parser_corpus/78176d80c1d74c4b1b820d386ae483ac4d1d92b7
new file mode 100644
index 0000000000..e9dc85e59c
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/78176d80c1d74c4b1b820d386ae483ac4d1d92b7
@@ -0,0 +1 @@
+(?¤›ð! c \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/789abb571563a6795220046f76b7cf0ade90743c b/test/core/transport/chttp2/hpack_parser_corpus/789abb571563a6795220046f76b7cf0ade90743c
new file mode 100644
index 0000000000..c901c4cc58
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/789abb571563a6795220046f76b7cf0ade90743c
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)(-.'bin !!?¤Ûð!:ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/78f5ff40e5554aa9c31b45f79a7ae9699f93e7fd b/test/core/transport/chttp2/hpack_parser_corpus/78f5ff40e5554aa9c31b45f79a7ae9699f93e7fd
new file mode 100644
index 0000000000..74d43925d4
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/78f5ff40e5554aa9c31b45f79a7ae9699f93e7fd
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/7a28fc2e9c72d51d29e87eed63ed405c9779b5e1 b/test/core/transport/chttp2/hpack_parser_corpus/7a28fc2e9c72d51d29e87eed63ed405c9779b5e1
new file mode 100644
index 0000000000..ad5695bc9a
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/7a28fc2e9c72d51d29e87eed63ed405c9779b5e1
@@ -0,0 +1 @@
+¤¤Ûððƒ€cc' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/7a42083be21dce7f96edef1f3b3b2fea0bcaeb3f b/test/core/transport/chttp2/hpack_parser_corpus/7a42083be21dce7f96edef1f3b3b2fea0bcaeb3f
new file mode 100644
index 0000000000..53ba7aa1a7
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/7a42083be21dce7f96edef1f3b3b2fea0bcaeb3f
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)(-'bin «!?¤Ûð!;*ð{(-binð !\ !åé;?Gí:[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/7a51275b11ecb1efec9251390531681c8d6f2481 b/test/core/transport/chttp2/hpack_parser_corpus/7a51275b11ecb1efec9251390531681c8d6f2481
new file mode 100644
index 0000000000..5529b966f6
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/7a51275b11ecb1efec9251390531681c8d6f2481
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/7b9682cd7a3984698f6eac034c59c0f91b4fb83d b/test/core/transport/chttp2/hpack_parser_corpus/7b9682cd7a3984698f6eac034c59c0f91b4fb83d
new file mode 100644
index 0000000000..bf413beb62
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/7b9682cd7a3984698f6eac034c59c0f91b4fb83d
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/7ba7239a29d6183960e3986abc8f19cfb548b905 b/test/core/transport/chttp2/hpack_parser_corpus/7ba7239a29d6183960e3986abc8f19cfb548b905
new file mode 100644
index 0000000000..8985a0765a
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/7ba7239a29d6183960e3986abc8f19cfb548b905
@@ -0,0 +1 @@
+¤!ƒÛððcc' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/7d3b3d5f23d0ede9f7e5dbd1115db58c8a54a213 b/test/core/transport/chttp2/hpack_parser_corpus/7d3b3d5f23d0ede9f7e5dbd1115db58c8a54a213
new file mode 100644
index 0000000000..291a16d454
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/7d3b3d5f23d0ede9f7e5dbd1115db58c8a54a213
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)¨-'bin '!!?¤Ûð!ð{;?0c!(-b(inð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/8035c81c95dedfc27c3649064f98f49e3e72c21f b/test/core/transport/chttp2/hpack_parser_corpus/8035c81c95dedfc27c3649064f98f49e3e72c21f
new file mode 100644
index 0000000000..bf77deb49f
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/8035c81c95dedfc27c3649064f98f49e3e72c21f
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/804e1052842ce4d44b9c775ade2b18fcb8ce7bcf b/test/core/transport/chttp2/hpack_parser_corpus/804e1052842ce4d44b9c775ade2b18fcb8ce7bcf
new file mode 100644
index 0000000000..cda608f32f
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/804e1052842ce4d44b9c775ade2b18fcb8ce7bcf
@@ -0,0 +1 @@
+¤¤ð¤-bin‹¤-[c'!)¦bi \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/80514b85933ea9bdd3462595f949c5af24409b87 b/test/core/transport/chttp2/hpack_parser_corpus/80514b85933ea9bdd3462595f949c5af24409b87
new file mode 100644
index 0000000000..003033bf1c
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/80514b85933ea9bdd3462595f949c5af24409b87
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)¤'(­¤Ûð'ð(ƒcin !! \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/8057c32b8bd28a5ec2105d62f2abe8cf69c9f5fc b/test/core/transport/chttp2/hpack_parser_corpus/8057c32b8bd28a5ec2105d62f2abe8cf69c9f5fc
new file mode 100644
index 0000000000..a38435872b
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/8057c32b8bd28a5ec2105d62f2abe8cf69c9f5fc
@@ -0,0 +1 @@
+f!(!!c' i[Ñ!ð[(!! ð[(!! !åHý![(!! !åGýåA)(!)í!¼*)åGýA)(Ù!)Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/806a3bd4e078d91adeacedfd3e47ef8ae229244a b/test/core/transport/chttp2/hpack_parser_corpus/806a3bd4e078d91adeacedfd3e47ef8ae229244a
new file mode 100644
index 0000000000..2760e03663
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/806a3bd4e078d91adeacedfd3e47ef8ae229244a
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[):¤(-¤Ûð'ðbƒcin !! \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/8090444f98218e65ff9594789ff22bbea3c0497c b/test/core/transport/chttp2/hpack_parser_corpus/8090444f98218e65ff9594789ff22bbea3c0497c
new file mode 100644
index 0000000000..a9663a0bbf
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/8090444f98218e65ff9594789ff22bbea3c0497c
@@ -0,0 +1 @@
+Õðcª Ûð' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/80e516692955d5f224706f268e247858858e16d8 b/test/core/transport/chttp2/hpack_parser_corpus/80e516692955d5f224706f268e247858858e16d8
new file mode 100644
index 0000000000..6a2345295e
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/80e516692955d5f224706f268e247858858e16d8
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/810a1372fa97380265f5529c5043ae96f007f5bb b/test/core/transport/chttp2/hpack_parser_corpus/810a1372fa97380265f5529c5043ae96f007f5bb
new file mode 100644
index 0000000000..d5a3aeeb33
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/810a1372fa97380265f5529c5043ae96f007f5bb
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/8127597d3c146b2a89579e44daef9d03a0f941ec b/test/core/transport/chttp2/hpack_parser_corpus/8127597d3c146b2a89579e44daef9d03a0f941ec
new file mode 100644
index 0000000000..0f7035b4a4
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/8127597d3c146b2a89579e44daef9d03a0f941ec
@@ -0,0 +1 @@
+*@®¤ :ð[(øc (;þ!!\ !cå¤Gý: \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/82ed571f8922caa572d13b4cc9b5c5fabafaade9 b/test/core/transport/chttp2/hpack_parser_corpus/82ed571f8922caa572d13b4cc9b5c5fabafaade9
new file mode 100644
index 0000000000..42b9598aee
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/82ed571f8922caa572d13b4cc9b5c5fabafaade9
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)(-'bin !!?¤!ðÛð{(öbénð ! \!åé;?Gí:[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/8328e86178800f87a3bf6f80749984f45b0cd0e8 b/test/core/transport/chttp2/hpack_parser_corpus/8328e86178800f87a3bf6f80749984f45b0cd0e8
new file mode 100644
index 0000000000..8fe52778d2
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/8328e86178800f87a3bf6f80749984f45b0cd0e8
@@ -0,0 +1 @@
+(?*¤!ð¤hemeƒ¤'('¤ð!c \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/84441efd7d8bdb0ce2fac28f218d3d5d4d77f1d4 b/test/core/transport/chttp2/hpack_parser_corpus/84441efd7d8bdb0ce2fac28f218d3d5d4d77f1d4
new file mode 100644
index 0000000000..20ab8498ed
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/84441efd7d8bdb0ce2fac28f218d3d5d4d77f1d4
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/84cbf70f45a64d5a01d1c96367b6d6160134f1ad b/test/core/transport/chttp2/hpack_parser_corpus/84cbf70f45a64d5a01d1c96367b6d6160134f1ad
new file mode 100644
index 0000000000..65f4c69307
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/84cbf70f45a64d5a01d1c96367b6d6160134f1ad
@@ -0,0 +1 @@
+;?0c!(ðK ð[N!\!õG![(!! !åGýA)(!)í!*åG€¾ýA)(Ù+)Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/85eb0f4502a51e646dab4ae08eabd90613cdf8e1 b/test/core/transport/chttp2/hpack_parser_corpus/85eb0f4502a51e646dab4ae08eabd90613cdf8e1
new file mode 100644
index 0000000000..4ede523ada
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/85eb0f4502a51e646dab4ae08eabd90613cdf8e1
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/86080f33e4eae21b37863c253ce61eaa13021a97 b/test/core/transport/chttp2/hpack_parser_corpus/86080f33e4eae21b37863c253ce61eaa13021a97
new file mode 100644
index 0000000000..8f5c7a8bda
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/86080f33e4eae21b37863c253ce61eaa13021a97
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/862e3ccf601ee0f7fbd8b23e6811fd50485a118f b/test/core/transport/chttp2/hpack_parser_corpus/862e3ccf601ee0f7fbd8b23e6811fd50485a118f
new file mode 100644
index 0000000000..bae722a39a
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/862e3ccf601ee0f7fbd8b23e6811fd50485a118f
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)(-'bin !!?OÛð!ð{(-b \ni!ð !åé;?Gí[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/86bae059b18af8ae263e5ae0022b67da0cfc0fbe b/test/core/transport/chttp2/hpack_parser_corpus/86bae059b18af8ae263e5ae0022b67da0cfc0fbe
new file mode 100644
index 0000000000..fc8f2aea18
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/86bae059b18af8ae263e5ae0022b67da0cfc0fbe
@@ -0,0 +1 @@
+¤ÿ \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/870f9cc4bd89c6c04c6a51ceae1efa8634627cd6 b/test/core/transport/chttp2/hpack_parser_corpus/870f9cc4bd89c6c04c6a51ceae1efa8634627cd6
new file mode 100644
index 0000000000..7d35cc8032
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/870f9cc4bd89c6c04c6a51ceae1efa8634627cd6
@@ -0,0 +1 @@
+?*®@:[ðøc (!!\þ;ð!~ ÛåGý!Ðam:' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/8762a523cdb78d2344d553fa52a229bd63c44e51 b/test/core/transport/chttp2/hpack_parser_corpus/8762a523cdb78d2344d553fa52a229bd63c44e51
new file mode 100644
index 0000000000..e92f115945
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/8762a523cdb78d2344d553fa52a229bd63c44e51
@@ -0,0 +1 @@
+¤ \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/894211571f9153c3c2ea4102541dac69be8aaa9c b/test/core/transport/chttp2/hpack_parser_corpus/894211571f9153c3c2ea4102541dac69be8aaa9c
new file mode 100644
index 0000000000..ded03ee4e4
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/894211571f9153c3c2ea4102541dac69be8aaa9c
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/894e9b7832c52acb04bfa994ef53c7105d8db206 b/test/core/transport/chttp2/hpack_parser_corpus/894e9b7832c52acb04bfa994ef53c7105d8db206
new file mode 100644
index 0000000000..218bfa3279
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/894e9b7832c52acb04bfa994ef53c7105d8db206
@@ -0,0 +1 @@
+?*®@:[ðøc (!!\þ;ð!~ ÛåGý!Ðam' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/8b0e12978b8e2eecf62346e438e47d0993845693 b/test/core/transport/chttp2/hpack_parser_corpus/8b0e12978b8e2eecf62346e438e47d0993845693
new file mode 100644
index 0000000000..4cb592693e
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/8b0e12978b8e2eecf62346e438e47d0993845693
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)( ?¤-'bin !!?¤: \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/8b3fa0bd4f289eff6a04a5205e04baaeafbdf637 b/test/core/transport/chttp2/hpack_parser_corpus/8b3fa0bd4f289eff6a04a5205e04baaeafbdf637
new file mode 100644
index 0000000000..573daa73e9
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/8b3fa0bd4f289eff6a04a5205e04baaeafbdf637
@@ -0,0 +1 @@
+¤¤ð¤-bin‹()[c-'bin !!?¤Ûð!ð{(-binð !\ !åé;?Gí:[((#!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/8d1deedd1e463f8c95129a6f839c380a7c83ab04 b/test/core/transport/chttp2/hpack_parser_corpus/8d1deedd1e463f8c95129a6f839c380a7c83ab04
new file mode 100644
index 0000000000..11e43ba8d3
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/8d1deedd1e463f8c95129a6f839c380a7c83ab04
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c*[)¤(-¤Ûð'ðbƒcin !! \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/8d1e029bd72381e382c87e61b4c5a9741d80d644 b/test/core/transport/chttp2/hpack_parser_corpus/8d1e029bd72381e382c87e61b4c5a9741d80d644
new file mode 100644
index 0000000000..a4a1f3c1cf
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/8d1e029bd72381e382c87e61b4c5a9741d80d644
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/8dd1983889b6632228d4897c365a1e6124d101e1 b/test/core/transport/chttp2/hpack_parser_corpus/8dd1983889b6632228d4897c365a1e6124d101e1
new file mode 100644
index 0000000000..3a98220f2f
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/8dd1983889b6632228d4897c365a1e6124d101e1
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/8dfc2183691385432f92957cff0b2538e5a0ebfa b/test/core/transport/chttp2/hpack_parser_corpus/8dfc2183691385432f92957cff0b2538e5a0ebfa
new file mode 100644
index 0000000000..c7552c3171
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/8dfc2183691385432f92957cff0b2538e5a0ebfa
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/8eb9b86b4f0aa79b8ef84b44e1fb03094e7bb426 b/test/core/transport/chttp2/hpack_parser_corpus/8eb9b86b4f0aa79b8ef84b44e1fb03094e7bb426
new file mode 100644
index 0000000000..5c8757590d
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/8eb9b86b4f0aa79b8ef84b44e1fb03094e7bb426
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/8ec540c36da3814e93da765bf2ff0825b59c1bd0 b/test/core/transport/chttp2/hpack_parser_corpus/8ec540c36da3814e93da765bf2ff0825b59c1bd0
new file mode 100644
index 0000000000..828e12f028
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/8ec540c36da3814e93da765bf2ff0825b59c1bd0
@@ -0,0 +1 @@
+¤¤ð¤-binc[)(-'bin !!?¤Ûð!ð{(-binð !\ !åŸé;?Gí:[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/8f1bec32f4b8e64062f5405a096543e61d771076 b/test/core/transport/chttp2/hpack_parser_corpus/8f1bec32f4b8e64062f5405a096543e61d771076
new file mode 100644
index 0000000000..24e9fc4ab7
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/8f1bec32f4b8e64062f5405a096543e61d771076
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/8f3e48c49d0794909f6e8e61e5a4312edf484c33 b/test/core/transport/chttp2/hpack_parser_corpus/8f3e48c49d0794909f6e8e61e5a4312edf484c33
new file mode 100644
index 0000000000..3378b5504c
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/8f3e48c49d0794909f6e8e61e5a4312edf484c33
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/8fbbf3c0eaa25b64d0a97a8ee08006539e649199 b/test/core/transport/chttp2/hpack_parser_corpus/8fbbf3c0eaa25b64d0a97a8ee08006539e649199
new file mode 100644
index 0000000000..532ee69601
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/8fbbf3c0eaa25b64d0a97a8ee08006539e649199
@@ -0,0 +1 @@
+¤c \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/907d0021d42d0fdc867fd02d3609cdce13c8a055 b/test/core/transport/chttp2/hpack_parser_corpus/907d0021d42d0fdc867fd02d3609cdce13c8a055
new file mode 100644
index 0000000000..4bff0ff011
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/907d0021d42d0fdc867fd02d3609cdce13c8a055
@@ -0,0 +1 @@
+®ð[(€¤-bdin! \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/919511c217a3427c22cad4a71aae31a6cd47b193 b/test/core/transport/chttp2/hpack_parser_corpus/919511c217a3427c22cad4a71aae31a6cd47b193
new file mode 100644
index 0000000000..fcaef32576
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/919511c217a3427c22cad4a71aae31a6cd47b193
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/9267c81c3283da8193c198de05e05fa30631a453 b/test/core/transport/chttp2/hpack_parser_corpus/9267c81c3283da8193c198de05e05fa30631a453
new file mode 100644
index 0000000000..34951fe7d0
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/9267c81c3283da8193c198de05e05fa30631a453
@@ -0,0 +1 @@
+?* ¤®@:ð[øc (!!\þ;ð !~ ÛåGý!Ðcm:' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/92e80997a4237d76f10b70dae2870b7255c97435 b/test/core/transport/chttp2/hpack_parser_corpus/92e80997a4237d76f10b70dae2870b7255c97435
new file mode 100644
index 0000000000..0e176e3c9a
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/92e80997a4237d76f10b70dae2870b7255c97435
@@ -0,0 +1 @@
+?* ¤®@:ð[(nc (;þ!;\ð !c ÛåGý!ðcm:' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/935322db76f5d4c74c2dc68fc4631915b8e24323 b/test/core/transport/chttp2/hpack_parser_corpus/935322db76f5d4c74c2dc68fc4631915b8e24323
new file mode 100644
index 0000000000..cbf58cf832
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/935322db76f5d4c74c2dc68fc4631915b8e24323
@@ -0,0 +1 @@
+¤¤Ûð¤1ƒ \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/939f2627ef6263d0176566de267ff3eb910e6a60 b/test/core/transport/chttp2/hpack_parser_corpus/939f2627ef6263d0176566de267ff3eb910e6a60
new file mode 100644
index 0000000000..0efdf47c50
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/939f2627ef6263d0176566de267ff3eb910e6a60
@@ -0,0 +1 @@
+¤¤ð¤-bin‹)['(=cbin a!?¤Ûð!ð{(-bin¤ð¤Û \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/94adea6a0d9a44bee6f5e88adcee57be9e9e3597 b/test/core/transport/chttp2/hpack_parser_corpus/94adea6a0d9a44bee6f5e88adcee57be9e9e3597
new file mode 100644
index 0000000000..78e29a4e9b
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/94adea6a0d9a44bee6f5e88adcee57be9e9e3597
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/94dcbe0d3352bd9b230096b8dce9c6d8d63f9d51 b/test/core/transport/chttp2/hpack_parser_corpus/94dcbe0d3352bd9b230096b8dce9c6d8d63f9d51
new file mode 100644
index 0000000000..449c0da1d5
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/94dcbe0d3352bd9b230096b8dce9c6d8d63f9d51
@@ -0,0 +1 @@
+(?8¤¤¤Û!×Ûð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/95dad738f60e3e5eb0f1cdafd91ad461f4418e8f b/test/core/transport/chttp2/hpack_parser_corpus/95dad738f60e3e5eb0f1cdafd91ad461f4418e8f
new file mode 100644
index 0000000000..38402df6a5
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/95dad738f60e3e5eb0f1cdafd91ad461f4418e8f
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/960c0a21c9e5c1a61b93b34da3189b0de1c264df b/test/core/transport/chttp2/hpack_parser_corpus/960c0a21c9e5c1a61b93b34da3189b0de1c264df
new file mode 100644
index 0000000000..9265e2f484
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/960c0a21c9e5c1a61b93b34da3189b0de1c264df
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/96903512b1f1dec08206123f024b62d0e31cd4dc b/test/core/transport/chttp2/hpack_parser_corpus/96903512b1f1dec08206123f024b62d0e31cd4dc
new file mode 100644
index 0000000000..b8c71bd5cd
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/96903512b1f1dec08206123f024b62d0e31cd4dc
@@ -0,0 +1 @@
+cð[(! ð[(!\ !åGý![(!! !åGýA)(!)í!¸*)åGýA)(Ù;)Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/96a89c005e8d9992e34cc149b0be096ad0051446 b/test/core/transport/chttp2/hpack_parser_corpus/96a89c005e8d9992e34cc149b0be096ad0051446
new file mode 100644
index 0000000000..2ac2d76500
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/96a89c005e8d9992e34cc149b0be096ad0051446
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/97db8a66dd513eea47a5a25115508f4e59984854 b/test/core/transport/chttp2/hpack_parser_corpus/97db8a66dd513eea47a5a25115508f4e59984854
new file mode 100644
index 0000000000..941f5530cf
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/97db8a66dd513eea47a5a25115508f4e59984854
@@ -0,0 +1 @@
+¤(* ¤®@:ð[(?¤;:('¤ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/98f2cb84ad89550cf56ee54e11f1448ae7287247 b/test/core/transport/chttp2/hpack_parser_corpus/98f2cb84ad89550cf56ee54e11f1448ae7287247
new file mode 100644
index 0000000000..252816d57a
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/98f2cb84ad89550cf56ee54e11f1448ae7287247
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/993497422a59b7f9f0f6db8c867339b5c9e4c978 b/test/core/transport/chttp2/hpack_parser_corpus/993497422a59b7f9f0f6db8c867339b5c9e4c978
new file mode 100644
index 0000000000..d1028f392f
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/993497422a59b7f9f0f6db8c867339b5c9e4c978
@@ -0,0 +1 @@
+¤¤¤ð-bin‹c[)Î@®?*¤ : \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/999821e3750a7f2c9db663d2d100b4404c225040 b/test/core/transport/chttp2/hpack_parser_corpus/999821e3750a7f2c9db663d2d100b4404c225040
new file mode 100644
index 0000000000..eafc76571c
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/999821e3750a7f2c9db663d2d100b4404c225040
@@ -0,0 +1 @@
+[(!! ![ð!å \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/99b2ed83be40cab431d1940e8de2dc3ebfe9352f b/test/core/transport/chttp2/hpack_parser_corpus/99b2ed83be40cab431d1940e8de2dc3ebfe9352f
new file mode 100644
index 0000000000..168a215596
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/99b2ed83be40cab431d1940e8de2dc3ebfe9352f
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/99e888b7372b29256dbefd476855ff73584cc00f b/test/core/transport/chttp2/hpack_parser_corpus/99e888b7372b29256dbefd476855ff73584cc00f
new file mode 100644
index 0000000000..5173bb4ec1
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/99e888b7372b29256dbefd476855ff73584cc00f
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/9b18087deb3cfafa1b964aa65d8ee980bc61404e b/test/core/transport/chttp2/hpack_parser_corpus/9b18087deb3cfafa1b964aa65d8ee980bc61404e
new file mode 100644
index 0000000000..838d0d2f75
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/9b18087deb3cfafa1b964aa65d8ee980bc61404e
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/9b3c745ea3e313909a228a07b49aae110b02ae4a b/test/core/transport/chttp2/hpack_parser_corpus/9b3c745ea3e313909a228a07b49aae110b02ae4a
new file mode 100644
index 0000000000..b7855d78e5
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/9b3c745ea3e313909a228a07b49aae110b02ae4a
@@ -0,0 +1 @@
+¤pƒÛðð¤!ƒ[ðc \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/9be1ce0ba77758928ff5e9c45139b1624cbe9c2d b/test/core/transport/chttp2/hpack_parser_corpus/9be1ce0ba77758928ff5e9c45139b1624cbe9c2d
new file mode 100644
index 0000000000..f10b76b53c
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/9be1ce0ba77758928ff5e9c45139b1624cbe9c2d
@@ -0,0 +1 @@
+¤¤ð¤-bin‹¤-[c'!)¤bi \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/9c703141efd69eb8f32a58133c8035fb585e0f4c b/test/core/transport/chttp2/hpack_parser_corpus/9c703141efd69eb8f32a58133c8035fb585e0f4c
new file mode 100644
index 0000000000..e1d551a8dc
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/9c703141efd69eb8f32a58133c8035fb585e0f4c
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/9c7f77981677499f0426a0ffb5cb79d5fe55dcb2 b/test/core/transport/chttp2/hpack_parser_corpus/9c7f77981677499f0426a0ffb5cb79d5fe55dcb2
new file mode 100644
index 0000000000..dec67b6181
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/9c7f77981677499f0426a0ffb5cb79d5fe55dcb2
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)(-'b)n #!?¤Ûð!ð{(-binð !\ !åé;?Gí:[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/9ca59e6cadaa5be9af30dfe5620d1bcd70f442e5 b/test/core/transport/chttp2/hpack_parser_corpus/9ca59e6cadaa5be9af30dfe5620d1bcd70f442e5
new file mode 100644
index 0000000000..0855a4d883
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/9ca59e6cadaa5be9af30dfe5620d1bcd70f442e5
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c*[)¤[((¤-Ûð'ðb!ƒcin !! !![ð!å \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/9d139835d91474e8d8361d65698a31b8b38c4f7b b/test/core/transport/chttp2/hpack_parser_corpus/9d139835d91474e8d8361d65698a31b8b38c4f7b
new file mode 100644
index 0000000000..4781557c61
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/9d139835d91474e8d8361d65698a31b8b38c4f7b
@@ -0,0 +1 @@
+?¤Ûð!ð¤¤ð c'¤-bin‹¤ò[c'!)¤bi \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/9e2179564a99e96e179c96f28802a0a2759b581c b/test/core/transport/chttp2/hpack_parser_corpus/9e2179564a99e96e179c96f28802a0a2759b581c
new file mode 100644
index 0000000000..c60f729c7c
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/9e2179564a99e96e179c96f28802a0a2759b581c
@@ -0,0 +1 @@
+(* ¤®@:ð[(?¤;[('¤ð! (øc (;þ!!\ !cråGý: \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/9e56bb3b68d2e2617cb2d2f0f3941f7fc832e462 b/test/core/transport/chttp2/hpack_parser_corpus/9e56bb3b68d2e2617cb2d2f0f3941f7fc832e462
new file mode 100644
index 0000000000..ac4416657c
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/9e56bb3b68d2e2617cb2d2f0f3941f7fc832e462
@@ -0,0 +1 @@
+c'ð[(!! ð[(!! !åGý![(!! !åGýA)(!)í!¼*)åGýA)(Ù!)Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/9f318b2c2ff9cf4615bd06ba13bdd086b4ad08c6 b/test/core/transport/chttp2/hpack_parser_corpus/9f318b2c2ff9cf4615bd06ba13bdd086b4ad08c6
new file mode 100644
index 0000000000..40a6ab5569
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/9f318b2c2ff9cf4615bd06ba13bdd086b4ad08c6
@@ -0,0 +1 @@
+?* ¤®@:ð[øc (!!\þ;ð!~ ÛåGý!Ðim:' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/9f8d90b1480989fc46ea2f1c66cf687638994587 b/test/core/transport/chttp2/hpack_parser_corpus/9f8d90b1480989fc46ea2f1c66cf687638994587
new file mode 100644
index 0000000000..6c655aa396
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/9f8d90b1480989fc46ea2f1c66cf687638994587
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/a09db5715f0bc3879a0e18e4db5a6b5640b254a3 b/test/core/transport/chttp2/hpack_parser_corpus/a09db5715f0bc3879a0e18e4db5a6b5640b254a3
new file mode 100644
index 0000000000..7fff586ac9
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/a09db5715f0bc3879a0e18e4db5a6b5640b254a3
@@ -0,0 +1 @@
+;?0c!(òK ð[NÔ\ !åG![(!! !åGýA)(!)í!*å¼G€ýA)(Ù;)Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/a0c59a090818bca29d76ccf9843f7e2faf330ddf b/test/core/transport/chttp2/hpack_parser_corpus/a0c59a090818bca29d76ccf9843f7e2faf330ddf
new file mode 100644
index 0000000000..d6a316be60
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/a0c59a090818bca29d76ccf9843f7e2faf330ddf
@@ -0,0 +1 @@
+*¤ð¤-bin¤¤Ûð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/a1cf10478e5e01a0d951c743a3dd45aa5fc409f2 b/test/core/transport/chttp2/hpack_parser_corpus/a1cf10478e5e01a0d951c743a3dd45aa5fc409f2
new file mode 100644
index 0000000000..45cce54c0e
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/a1cf10478e5e01a0d951c743a3dd45aa5fc409f2
@@ -0,0 +1 @@
+¤!ƒßðð¤!ƒÛ¤ä \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/a22c0f03f8c005a4612a9dcbcd6a643334c35d2f b/test/core/transport/chttp2/hpack_parser_corpus/a22c0f03f8c005a4612a9dcbcd6a643334c35d2f
new file mode 100644
index 0000000000..6a28aa19db
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/a22c0f03f8c005a4612a9dcbcd6a643334c35d2f
@@ -0,0 +1 @@
+;?0c!(ðK ð[NÔ\ !åG![(!! !åGýA)(!)í!*å¼G€ýA)(Ù;)Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/a3154b8ed26b3461f2b091c732da00b63ce8bed3 b/test/core/transport/chttp2/hpack_parser_corpus/a3154b8ed26b3461f2b091c732da00b63ce8bed3
new file mode 100644
index 0000000000..cba4e44f4d
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/a3154b8ed26b3461f2b091c732da00b63ce8bed3
@@ -0,0 +1 @@
+¤¤ð¤-bin‹¤-[c'ù)¤bi \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/a84a1ed1a24e753a27adfd3ba806f06fc44f899f b/test/core/transport/chttp2/hpack_parser_corpus/a84a1ed1a24e753a27adfd3ba806f06fc44f899f
new file mode 100644
index 0000000000..ba1a5dbd34
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/a84a1ed1a24e753a27adfd3ba806f06fc44f899f
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/a871e7ce66afd4f57702cd1299de06cd08995561 b/test/core/transport/chttp2/hpack_parser_corpus/a871e7ce66afd4f57702cd1299de06cd08995561
new file mode 100644
index 0000000000..59295acbf7
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/a871e7ce66afd4f57702cd1299de06cd08995561
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/a8dc736ea964586b7dcbf2bc065ec4675d1daba3 b/test/core/transport/chttp2/hpack_parser_corpus/a8dc736ea964586b7dcbf2bc065ec4675d1daba3
new file mode 100644
index 0000000000..039af40437
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/a8dc736ea964586b7dcbf2bc065ec4675d1daba3
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)¤(-'bin !!?¤Ûð! \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/a91a835836c72217824f0b63491d9b623130502a b/test/core/transport/chttp2/hpack_parser_corpus/a91a835836c72217824f0b63491d9b623130502a
new file mode 100644
index 0000000000..a61dd289a7
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/a91a835836c72217824f0b63491d9b623130502a
@@ -0,0 +1 @@
+?* ¤®@:ð[(øc (;þ!!\ð !c ÛåGý!ðcm:' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/ab97c1f6033dc7d96f69b9e1461fd594c16f4ebf b/test/core/transport/chttp2/hpack_parser_corpus/ab97c1f6033dc7d96f69b9e1461fd594c16f4ebf
new file mode 100644
index 0000000000..e359cb7c92
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/ab97c1f6033dc7d96f69b9e1461fd594c16f4ebf
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/ac8a8c23acd8c290a11dc7828f7f397957fa6400 b/test/core/transport/chttp2/hpack_parser_corpus/ac8a8c23acd8c290a11dc7828f7f397957fa6400
new file mode 100644
index 0000000000..39985fb66c
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/ac8a8c23acd8c290a11dc7828f7f397957fa6400
@@ -0,0 +1 @@
+?* ¦®@:ð[øc (!!\þ;ð!~ Gý!Ðim:' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/ac94b2788f5252f9e2e8502c7c75e04bef4c0b76 b/test/core/transport/chttp2/hpack_parser_corpus/ac94b2788f5252f9e2e8502c7c75e04bef4c0b76
new file mode 100644
index 0000000000..71cc57ac18
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/ac94b2788f5252f9e2e8502c7c75e04bef4c0b76
@@ -0,0 +1 @@
+¤? \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/ad03b4f58470c43db6593a35be48989486d754f9 b/test/core/transport/chttp2/hpack_parser_corpus/ad03b4f58470c43db6593a35be48989486d754f9
new file mode 100644
index 0000000000..7691001119
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/ad03b4f58470c43db6593a35be48989486d754f9
@@ -0,0 +1 @@
+¤pƒÛðð¤!ƒÛððc \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/af417c83e831a96fda1bdde99a1af6509ef2df3d b/test/core/transport/chttp2/hpack_parser_corpus/af417c83e831a96fda1bdde99a1af6509ef2df3d
new file mode 100644
index 0000000000..32171625ca
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/af417c83e831a96fda1bdde99a1af6509ef2df3d
@@ -0,0 +1 @@
+(?¤¤¤ÛÛð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/affd292cd2ce3306b4651cc7ec0ec0524cbbae3d b/test/core/transport/chttp2/hpack_parser_corpus/affd292cd2ce3306b4651cc7ec0ec0524cbbae3d
new file mode 100644
index 0000000000..4ea1b6bd4b
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/affd292cd2ce3306b4651cc7ec0ec0524cbbae3d
@@ -0,0 +1 @@
+¤¤ð¤£bin‹äc[ò)'-bi. *)!?¤Ûâð{(-bi\n! ! ðåé;?Gí:[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/b0587e6e319f4b56d877e7ed46bc7da9b1e7249c b/test/core/transport/chttp2/hpack_parser_corpus/b0587e6e319f4b56d877e7ed46bc7da9b1e7249c
new file mode 100644
index 0000000000..326107127d
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/b0587e6e319f4b56d877e7ed46bc7da9b1e7249c
@@ -0,0 +1 @@
+¤):;!œÊ'ÒØ)*;}v)7IÏ!¤);–-M*±äâ!'d*Cu«‘X$0):ó*;:äÝ;;();:]ïæ@ \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/b166aa66b5b3ad178bc38aee5768226c8adc082f b/test/core/transport/chttp2/hpack_parser_corpus/b166aa66b5b3ad178bc38aee5768226c8adc082f
new file mode 100644
index 0000000000..691e650208
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/b166aa66b5b3ad178bc38aee5768226c8adc082f
@@ -0,0 +1 @@
+¤pƒÛð¤!ƒÛðc \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/b1ade0571262c6e5f1d72f6d25ebb513d2055bc9 b/test/core/transport/chttp2/hpack_parser_corpus/b1ade0571262c6e5f1d72f6d25ebb513d2055bc9
new file mode 100644
index 0000000000..cc073f43d3
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/b1ade0571262c6e5f1d72f6d25ebb513d2055bc9
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)('-bi. *!!?¤Ûâ!ð{(-bi\n! ! ðåé;?Gí:[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/b244c690157ff21d073940ef8c77d1898f37cf8e b/test/core/transport/chttp2/hpack_parser_corpus/b244c690157ff21d073940ef8c77d1898f37cf8e
new file mode 100644
index 0000000000..e93670e5ed
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/b244c690157ff21d073940ef8c77d1898f37cf8e
@@ -0,0 +1 @@
+¤¤Ûðð cc' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/b523091ee4f17d20f51f9b5cf82293465cf61780 b/test/core/transport/chttp2/hpack_parser_corpus/b523091ee4f17d20f51f9b5cf82293465cf61780
new file mode 100644
index 0000000000..6d66d372aa
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/b523091ee4f17d20f51f9b5cf82293465cf61780
@@ -0,0 +1 @@
+?* ¤®@ð:[øc (;þ!!\ð #~ Ûårý!ðcm:' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/b7d4d49ac2c530eb8444a449feb689ee50fd210d b/test/core/transport/chttp2/hpack_parser_corpus/b7d4d49ac2c530eb8444a449feb689ee50fd210d
new file mode 100644
index 0000000000..d2cbcccb78
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/b7d4d49ac2c530eb8444a449feb689ee50fd210d
@@ -0,0 +1 @@
+;?'cð[(! ð[N!\ #åGý!*(!! !åGýA)(!)í!¼*)åGýI)(Ù;)Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/b855c161121bfa29c6fb22d3c0236fae4af6984e b/test/core/transport/chttp2/hpack_parser_corpus/b855c161121bfa29c6fb22d3c0236fae4af6984e
new file mode 100644
index 0000000000..2a4856a342
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/b855c161121bfa29c6fb22d3c0236fae4af6984e
@@ -0,0 +1 @@
+;?0c!(ðK ð[N!\;åG![(!! !åGýA)(!)í!*åG€¾A)(Ù;Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/bcaa71abf23b2e5130e0cc464755fe769bf4aaa7 b/test/core/transport/chttp2/hpack_parser_corpus/bcaa71abf23b2e5130e0cc464755fe769bf4aaa7
new file mode 100644
index 0000000000..81d87fa425
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/bcaa71abf23b2e5130e0cc464755fe769bf4aaa7
@@ -0,0 +1 @@
+¤¤ð¤-bin‹‰c[)¤(-'bin !!?¤Ûð! \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/bcf4684ce097faa7e9d99b6e93cc2de24f57aee3 b/test/core/transport/chttp2/hpack_parser_corpus/bcf4684ce097faa7e9d99b6e93cc2de24f57aee3
new file mode 100644
index 0000000000..3c7fb6e67a
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/bcf4684ce097faa7e9d99b6e93cc2de24f57aee3
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/bdca6504d2ee7925f62e176355bb481344772075 b/test/core/transport/chttp2/hpack_parser_corpus/bdca6504d2ee7925f62e176355bb481344772075
new file mode 100644
index 0000000000..de4be3116b
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/bdca6504d2ee7925f62e176355bb481344772075
@@ -0,0 +1 @@
+;?'cð[(! ð[N!\ !åGý!*(!! !åGýA)(!)í!¼*)åGýI)(Ù;)Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/beb208fd8675ba7de2ecb12998d2d628d579ca7c b/test/core/transport/chttp2/hpack_parser_corpus/beb208fd8675ba7de2ecb12998d2d628d579ca7c
new file mode 100644
index 0000000000..704e797881
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/beb208fd8675ba7de2ecb12998d2d628d579ca7c
@@ -0,0 +1 @@
+?* ¤®@:ð[øc 8;þ!!\ð !~ ÛDGý!ðcm:' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/bf0c98689ab81fc32787023300caf9a4175583dc b/test/core/transport/chttp2/hpack_parser_corpus/bf0c98689ab81fc32787023300caf9a4175583dc
new file mode 100644
index 0000000000..4f0cbfb0e7
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/bf0c98689ab81fc32787023300caf9a4175583dc
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/bf479e97b39b697e715663de6a1e78dd58d64122 b/test/core/transport/chttp2/hpack_parser_corpus/bf479e97b39b697e715663de6a1e78dd58d64122
new file mode 100644
index 0000000000..fb6b7bd606
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/bf479e97b39b697e715663de6a1e78dd58d64122
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c*[)¤(¤-Ûð'ðbƒcin !! \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/bf826c96be94d1b42eea0666f7239cc5f699a375 b/test/core/transport/chttp2/hpack_parser_corpus/bf826c96be94d1b42eea0666f7239cc5f699a375
new file mode 100644
index 0000000000..cb679b9a79
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/bf826c96be94d1b42eea0666f7239cc5f699a375
@@ -0,0 +1 @@
+ð[(-bin¤¤ð¤-bin‹c[)(-'bin !!?¤Ûð!ð{(-binð! ð( !! \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/c17650d19ae4a48abb36739c83d8979453f5705f b/test/core/transport/chttp2/hpack_parser_corpus/c17650d19ae4a48abb36739c83d8979453f5705f
new file mode 100644
index 0000000000..482d7db555
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/c17650d19ae4a48abb36739c83d8979453f5705f
@@ -0,0 +1 @@
+;?0c!(ðK ð[N!\ !åG![(!! !åGýA)(!)í!*å¼G€ýA)(Ù;)Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/c1e5307d88feda2c3b15fc221cba92bcf41622bf b/test/core/transport/chttp2/hpack_parser_corpus/c1e5307d88feda2c3b15fc221cba92bcf41622bf
new file mode 100644
index 0000000000..6553242999
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/c1e5307d88feda2c3b15fc221cba92bcf41622bf
@@ -0,0 +1 @@
+(?*¤ð¤-binƒ¤;[('¤ð!c \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/c249f408c552a0408eab3fe1d1cbeca95cd537c1 b/test/core/transport/chttp2/hpack_parser_corpus/c249f408c552a0408eab3fe1d1cbeca95cd537c1
new file mode 100644
index 0000000000..52f518b816
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/c249f408c552a0408eab3fe1d1cbeca95cd537c1
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)(-b¤¤ð¤-bin‹c[)('-bi. *!!?¤Ûâ \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/c26b460aebc9082c519539069f7e060042989696 b/test/core/transport/chttp2/hpack_parser_corpus/c26b460aebc9082c519539069f7e060042989696
new file mode 100644
index 0000000000..7c9ca4588b
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/c26b460aebc9082c519539069f7e060042989696
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)(-'bni !%?¤Ûð!ð{(-binð !\!åé;?G[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/c2eae71daad0d3561ab4d09b8b85372b8d790bc1 b/test/core/transport/chttp2/hpack_parser_corpus/c2eae71daad0d3561ab4d09b8b85372b8d790bc1
new file mode 100644
index 0000000000..120b74baae
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/c2eae71daad0d3561ab4d09b8b85372b8d790bc1
@@ -0,0 +1 @@
+;?0c!'ðK ð[N!\!åG![(!! !åGýA)(!)í!*åG€¾A)(Ù;Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/c37fda8d02e99132a1de99f959596c784ab8a53c b/test/core/transport/chttp2/hpack_parser_corpus/c37fda8d02e99132a1de99f959596c784ab8a53c
new file mode 100644
index 0000000000..ced68ebb75
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/c37fda8d02e99132a1de99f959596c784ab8a53c
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/c4836760377a7091fb20f4afa9c712875792b9a7 b/test/core/transport/chttp2/hpack_parser_corpus/c4836760377a7091fb20f4afa9c712875792b9a7
new file mode 100644
index 0000000000..2d3d63a157
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/c4836760377a7091fb20f4afa9c712875792b9a7
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/c48caad597176404f776d532d4baf9faf7655ee2 b/test/core/transport/chttp2/hpack_parser_corpus/c48caad597176404f776d532d4baf9faf7655ee2
new file mode 100644
index 0000000000..2c7912f6ad
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/c48caad597176404f776d532d4baf9faf7655ee2
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/c4eff0f59986fc5ab09d5bd95f394292f2882659 b/test/core/transport/chttp2/hpack_parser_corpus/c4eff0f59986fc5ab09d5bd95f394292f2882659
new file mode 100644
index 0000000000..5b704f81cf
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/c4eff0f59986fc5ab09d5bd95f394292f2882659
@@ -0,0 +1 @@
+¤¤ð¤-bin)c[)-'bin 1¤¤!?¤Ûð! \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/c5fc2086d167c8c3a7d9ec778db69c5fa14a59fe b/test/core/transport/chttp2/hpack_parser_corpus/c5fc2086d167c8c3a7d9ec778db69c5fa14a59fe
new file mode 100644
index 0000000000..3e28333e9f
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/c5fc2086d167c8c3a7d9ec778db69c5fa14a59fe
@@ -0,0 +1 @@
+?* ¤®@:ð_øc (!!\þ;ð!~ !ÛåGý!Ð;m:' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/c600877ce547166eb1b9d83afbe128d98767f8a3 b/test/core/transport/chttp2/hpack_parser_corpus/c600877ce547166eb1b9d83afbe128d98767f8a3
new file mode 100644
index 0000000000..7e26216a80
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/c600877ce547166eb1b9d83afbe128d98767f8a3
@@ -0,0 +1 @@
+¤¤ð¤-binƒc)-bi (n'!!?¤Û!ðð{(-binð !\ !åé;?Gí:[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/c6a98fdaf6de78e59e1a149a43f3e42222d650b7 b/test/core/transport/chttp2/hpack_parser_corpus/c6a98fdaf6de78e59e1a149a43f3e42222d650b7
new file mode 100644
index 0000000000..efcad331b1
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/c6a98fdaf6de78e59e1a149a43f3e42222d650b7
@@ -0,0 +1 @@
+?* ¬®@ð:[øc (;þ!\!ð !~ Û-binåGý!ðcm:' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/c8d22f7fb4f37f2d8cc7953fa2d599d38d899aec b/test/core/transport/chttp2/hpack_parser_corpus/c8d22f7fb4f37f2d8cc7953fa2d599d38d899aec
new file mode 100644
index 0000000000..104ab47b65
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/c8d22f7fb4f37f2d8cc7953fa2d599d38d899aec
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/c90951c19b24bac84296e3ec32cdeafe99e99cfb b/test/core/transport/chttp2/hpack_parser_corpus/c90951c19b24bac84296e3ec32cdeafe99e99cfb
new file mode 100644
index 0000000000..d43c0945f3
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/c90951c19b24bac84296e3ec32cdeafe99e99cfb
@@ -0,0 +1 @@
+?* ¤®@:ð[øc (!!\þ;ð!~ ÛåGý!Ðam:' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/c95ff2a172626efb50e94aa6781feba609820076 b/test/core/transport/chttp2/hpack_parser_corpus/c95ff2a172626efb50e94aa6781feba609820076
new file mode 100644
index 0000000000..0a104c7cb2
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/c95ff2a172626efb50e94aa6781feba609820076
@@ -0,0 +1 @@
+ð[(-bin! ð(!\ !åGý¤!:[(!'ð[(!! ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/ca6c557afb9c571de62e9b65ca6469a6133760da b/test/core/transport/chttp2/hpack_parser_corpus/ca6c557afb9c571de62e9b65ca6469a6133760da
new file mode 100644
index 0000000000..4d95be63c9
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/ca6c557afb9c571de62e9b65ca6469a6133760da
@@ -0,0 +1 @@
+?!cð ß}' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/cb2d0fb23f66c968af2e80d59f71d4c1aed96fbd b/test/core/transport/chttp2/hpack_parser_corpus/cb2d0fb23f66c968af2e80d59f71d4c1aed96fbd
new file mode 100644
index 0000000000..1cbb3361ca
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/cb2d0fb23f66c968af2e80d59f71d4c1aed96fbd
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)¤(-¤Ûð'ðbƒcin !! \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/cc60a642cc2037ad3c459a57381b8f65d8d7aa35 b/test/core/transport/chttp2/hpack_parser_corpus/cc60a642cc2037ad3c459a57381b8f65d8d7aa35
new file mode 100644
index 0000000000..b2d3847d13
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/cc60a642cc2037ad3c459a57381b8f65d8d7aa35
@@ -0,0 +1 @@
+?* ¤®@:ð[øã 4;þ!!\ð !~ ÛDGýðcm:' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/ccd3b8aa26c52f6d9c607c26ebdf621142aff745 b/test/core/transport/chttp2/hpack_parser_corpus/ccd3b8aa26c52f6d9c607c26ebdf621142aff745
new file mode 100644
index 0000000000..fa972a4f51
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/ccd3b8aa26c52f6d9c607c26ebdf621142aff745
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/ccdfd1354997eb117bd76b75440a7e4ff20bf564 b/test/core/transport/chttp2/hpack_parser_corpus/ccdfd1354997eb117bd76b75440a7e4ff20bf564
new file mode 100644
index 0000000000..718a9e5839
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/ccdfd1354997eb117bd76b75440a7e4ff20bf564
@@ -0,0 +1 @@
++¤¤ð¤-bin 9c[)(-b¤¤ð¤ \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/cd7a7b8f08c189e95ae3e2ea44b9015000e823f3 b/test/core/transport/chttp2/hpack_parser_corpus/cd7a7b8f08c189e95ae3e2ea44b9015000e823f3
new file mode 100644
index 0000000000..4d63ccbfcf
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/cd7a7b8f08c189e95ae3e2ea44b9015000e823f3
@@ -0,0 +1 @@
+¤¤ð¤-bin‹#Z)¤(-¤b¤ ð¤-bin?ð‹c[)(-ni''bin!! !/¤!?'ð! \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/ce05678d812a5f8ae8e115938410116ce9169456 b/test/core/transport/chttp2/hpack_parser_corpus/ce05678d812a5f8ae8e115938410116ce9169456
new file mode 100644
index 0000000000..6caf38a623
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/ce05678d812a5f8ae8e115938410116ce9169456
@@ -0,0 +1 @@
+;?0c!(ðK ð[N!\!åG![(!! !åGýA)(!)í!*åG€¾ýA)(Ù;)Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/ce6b642b81373f05baa2a6fe6e9d5d1387046285 b/test/core/transport/chttp2/hpack_parser_corpus/ce6b642b81373f05baa2a6fe6e9d5d1387046285
new file mode 100644
index 0000000000..a311265858
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/ce6b642b81373f05baa2a6fe6e9d5d1387046285
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/cf84d06e4dddb997a79a41f9b6122bf620bbdb4b b/test/core/transport/chttp2/hpack_parser_corpus/cf84d06e4dddb997a79a41f9b6122bf620bbdb4b
new file mode 100644
index 0000000000..350c941e9b
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/cf84d06e4dddb997a79a41f9b6122bf620bbdb4b
@@ -0,0 +1 @@
+;?'cð[)! ð[N!Ü bå4Gý!*(!! BåGýA)!)í!¼*)åGýI)(Ù;)Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/cfbcc3e8cd65aa8b654688145ade34b8789468a6 b/test/core/transport/chttp2/hpack_parser_corpus/cfbcc3e8cd65aa8b654688145ade34b8789468a6
new file mode 100644
index 0000000000..4d7ff3e26a
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/cfbcc3e8cd65aa8b654688145ade34b8789468a6
@@ -0,0 +1 @@
+'?0c!(ðK ð[N!\!åG![(!! !åG)Aý(!)å!*åG€A¾)(Ù;;Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/d000502f32ca5620d7745f39ff6be3b547e26a6d b/test/core/transport/chttp2/hpack_parser_corpus/d000502f32ca5620d7745f39ff6be3b547e26a6d
new file mode 100644
index 0000000000..a422dc476e
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/d000502f32ca5620d7745f39ff6be3b547e26a6d
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/d131f83ee73450ff45565d0c638be7d8beeb30d9 b/test/core/transport/chttp2/hpack_parser_corpus/d131f83ee73450ff45565d0c638be7d8beeb30d9
new file mode 100644
index 0000000000..c0404bae2e
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/d131f83ee73450ff45565d0c638be7d8beeb30d9
@@ -0,0 +1 @@
+¤¤ð¤-bin‹) ¤['(=cbin a!?äÛð!ð{(-bin¤ð¤ \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/d2817b89d7aaa7fa880c077b1a67168ec2f4f0f7 b/test/core/transport/chttp2/hpack_parser_corpus/d2817b89d7aaa7fa880c077b1a67168ec2f4f0f7
new file mode 100644
index 0000000000..272be7461e
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/d2817b89d7aaa7fa880c077b1a67168ec2f4f0f7
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/d3ccd7039dd34baef465c4b78baa7a30312a8f07 b/test/core/transport/chttp2/hpack_parser_corpus/d3ccd7039dd34baef465c4b78baa7a30312a8f07
new file mode 100644
index 0000000000..e9cb7889f3
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/d3ccd7039dd34baef465c4b78baa7a30312a8f07
@@ -0,0 +1 @@
+?* ¤®@:ð[(øc (3þ!!\ð !c (ÛåGý!ðcm:' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/d4cfaf3b59b22b654d7af80ee6715ce5015bfdc0 b/test/core/transport/chttp2/hpack_parser_corpus/d4cfaf3b59b22b654d7af80ee6715ce5015bfdc0
new file mode 100644
index 0000000000..be8b8045e8
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/d4cfaf3b59b22b654d7af80ee6715ce5015bfdc0
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/d5670827c8e8d4c95ac0f738c0790c19916c0336 b/test/core/transport/chttp2/hpack_parser_corpus/d5670827c8e8d4c95ac0f738c0790c19916c0336
new file mode 100644
index 0000000000..8c906c5023
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/d5670827c8e8d4c95ac0f738c0790c19916c0336
@@ -0,0 +1 @@
+*¤ð¤-bin¤¤¤¸ð¤-Û'(?¤ð;[( \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/d59d7e94863f1ed89cacfbaabf7bc59946036c8f b/test/core/transport/chttp2/hpack_parser_corpus/d59d7e94863f1ed89cacfbaabf7bc59946036c8f
new file mode 100644
index 0000000000..ed929ebd47
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/d59d7e94863f1ed89cacfbaabf7bc59946036c8f
@@ -0,0 +1 @@
+*¤ð¤-binƒ(€'[ði(bn-!?  \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/d76d0c7f24ae3cc3f530d5306b8dcc15290c7ff2 b/test/core/transport/chttp2/hpack_parser_corpus/d76d0c7f24ae3cc3f530d5306b8dcc15290c7ff2
new file mode 100644
index 0000000000..81cc0fcbfb
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/d76d0c7f24ae3cc3f530d5306b8dcc15290c7ff2
@@ -0,0 +1 @@
+¤ä— \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/d8b15e9e555ad9900ba4be8cc9f87bef75725b24 b/test/core/transport/chttp2/hpack_parser_corpus/d8b15e9e555ad9900ba4be8cc9f87bef75725b24
new file mode 100644
index 0000000000..9ed0c807d5
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/d8b15e9e555ad9900ba4be8cc9f87bef75725b24
@@ -0,0 +1 @@
+?* ¤®@:ð[øc (!!\þ;ð!~ ÛåGý!Ðim:' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/d9748abd540810c2449c3dd39a0ebb62754e520f b/test/core/transport/chttp2/hpack_parser_corpus/d9748abd540810c2449c3dd39a0ebb62754e520f
new file mode 100644
index 0000000000..e55083f276
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/d9748abd540810c2449c3dd39a0ebb62754e520f
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/da9fc821f0c1e00728b139b36269bc3d21c0a8cc b/test/core/transport/chttp2/hpack_parser_corpus/da9fc821f0c1e00728b139b36269bc3d21c0a8cc
new file mode 100644
index 0000000000..e752baf261
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/da9fc821f0c1e00728b139b36269bc3d21c0a8cc
@@ -0,0 +1 @@
+¤¤ð¤rbin‹c[)(-'bin !!?¤Ûð!ð{(-binð !\ !åé;?G[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/dcd1bd94ad97b4e67fd7e12ff1bf7c039eb17f66 b/test/core/transport/chttp2/hpack_parser_corpus/dcd1bd94ad97b4e67fd7e12ff1bf7c039eb17f66
new file mode 100644
index 0000000000..cb9bf614e7
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/dcd1bd94ad97b4e67fd7e12ff1bf7c039eb17f66
@@ -0,0 +1 @@
+¤¤Û)€ððŽcc' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/dd3ba9b139e13324fc76cd62af84b00ca8b87205 b/test/core/transport/chttp2/hpack_parser_corpus/dd3ba9b139e13324fc76cd62af84b00ca8b87205
new file mode 100644
index 0000000000..bad7f6093e
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/dd3ba9b139e13324fc76cd62af84b00ca8b87205
@@ -0,0 +1 @@
+¤pƒÛðð¤!ƒËTð* \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/de0a9dce0ea4e4bfdcb13f788ae728bf979fed25 b/test/core/transport/chttp2/hpack_parser_corpus/de0a9dce0ea4e4bfdcb13f788ae728bf979fed25
new file mode 100644
index 0000000000..5a2a027b3e
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/de0a9dce0ea4e4bfdcb13f788ae728bf979fed25
@@ -0,0 +1 @@
+¤¤ð¤-bin‹#Z)¤(-¤¤ bð¤-bin?ð‹c[)(-ni''bin!; !/¤!?'ð! \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/deb6f9a930d9b31586ede19fd8fd3caae0e5b1f2 b/test/core/transport/chttp2/hpack_parser_corpus/deb6f9a930d9b31586ede19fd8fd3caae0e5b1f2
new file mode 100644
index 0000000000..1ceb5590f3
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/deb6f9a930d9b31586ede19fd8fd3caae0e5b1f2
@@ -0,0 +1 @@
+¤¤ð¤-bin‹)['(;-cbin !!?¤Ûð!ð{(-binð !\ !åé;?Gí:[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/dee95e0280b70681eddfb68e3b418126c5661e18 b/test/core/transport/chttp2/hpack_parser_corpus/dee95e0280b70681eddfb68e3b418126c5661e18
new file mode 100644
index 0000000000..713d1783db
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/dee95e0280b70681eddfb68e3b418126c5661e18
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/df01203edfa2dfe9e108ddde786ae48235624fef b/test/core/transport/chttp2/hpack_parser_corpus/df01203edfa2dfe9e108ddde786ae48235624fef
new file mode 100644
index 0000000000..a4520fbd22
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/df01203edfa2dfe9e108ddde786ae48235624fef
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/df0adbe2523508e9afb42a58d98c2657710d6033 b/test/core/transport/chttp2/hpack_parser_corpus/df0adbe2523508e9afb42a58d98c2657710d6033
new file mode 100644
index 0000000000..10b7a9f21d
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/df0adbe2523508e9afb42a58d98c2657710d6033
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/e05fcba1b22f658c8bd6f3c330b2b3c9faebf977 b/test/core/transport/chttp2/hpack_parser_corpus/e05fcba1b22f658c8bd6f3c330b2b3c9faebf977
new file mode 100644
index 0000000000..6e3118913f
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/e05fcba1b22f658c8bd6f3c330b2b3c9faebf977
@@ -0,0 +1 @@
+ð[(-`in¤¤ð¤-Þin‹c[)(:'bin !!)?¤Ûð!ð{(:-binð! ð( !! \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/e145caa75d73e3d819a9cb4b6217f1f53112f3f8 b/test/core/transport/chttp2/hpack_parser_corpus/e145caa75d73e3d819a9cb4b6217f1f53112f3f8
new file mode 100644
index 0000000000..df574771fd
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/e145caa75d73e3d819a9cb4b6217f1f53112f3f8
@@ -0,0 +1 @@
+¤!ƒßð¤!ƒÛ¤ð¤¤-binƒc[-'bä:nð !?¤Ûð!(!\ð c \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/e1d86c0094657386197d191855b5645ac1dd5936 b/test/core/transport/chttp2/hpack_parser_corpus/e1d86c0094657386197d191855b5645ac1dd5936
new file mode 100644
index 0000000000..eb157d300a
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/e1d86c0094657386197d191855b5645ac1dd5936
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/e25adf8de44f5978d00b7e8c52aee89c5cd1fe93 b/test/core/transport/chttp2/hpack_parser_corpus/e25adf8de44f5978d00b7e8c52aee89c5cd1fe93
new file mode 100644
index 0000000000..bc92a9fe32
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/e25adf8de44f5978d00b7e8c52aee89c5cd1fe93
@@ -0,0 +1 @@
+?¤Ûð!ð c' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/e29f05162e3d96d5549f96aa4a54c868535b2847 b/test/core/transport/chttp2/hpack_parser_corpus/e29f05162e3d96d5549f96aa4a54c868535b2847
new file mode 100644
index 0000000000..d00c6b4296
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/e29f05162e3d96d5549f96aa4a54c868535b2847
@@ -0,0 +1 @@
+¤¤Ûððƒcc' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/e3a970ac8636d29da3ded328b876ed3550cb3209 b/test/core/transport/chttp2/hpack_parser_corpus/e3a970ac8636d29da3ded328b876ed3550cb3209
new file mode 100644
index 0000000000..c9898303c2
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/e3a970ac8636d29da3ded328b876ed3550cb3209
@@ -0,0 +1 @@
+¤¤ð¤-bin‹-[c*()bin !!?¤Ûð!;ð{(-binð !\ !*é;?Gí:[((!!\ð \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/e3cfdc862187b4ec28bd4fb2ced5094bb5b09909 b/test/core/transport/chttp2/hpack_parser_corpus/e3cfdc862187b4ec28bd4fb2ced5094bb5b09909
new file mode 100644
index 0000000000..9296f0ee3a
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/e3cfdc862187b4ec28bd4fb2ced5094bb5b09909
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/e4ce52007d001806fc9368b62c124dfc56e8471c b/test/core/transport/chttp2/hpack_parser_corpus/e4ce52007d001806fc9368b62c124dfc56e8471c
new file mode 100644
index 0000000000..34de7ad356
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/e4ce52007d001806fc9368b62c124dfc56e8471c
@@ -0,0 +1 @@
+):;!œÊ'ÒØ)*;}v-7IÏ!¤)–-M*±äâ!'d*Cu«X$0):ó*;:äÝ;;();:]ïæ@ \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/e52173f0bc3325629046e85e2dc41acc6ba7d1c3 b/test/core/transport/chttp2/hpack_parser_corpus/e52173f0bc3325629046e85e2dc41acc6ba7d1c3
new file mode 100644
index 0000000000..84f475391d
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/e52173f0bc3325629046e85e2dc41acc6ba7d1c3
@@ -0,0 +1 @@
+¤¤ð¤-binc([)¤(¤-Û \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/e6589006e3bda4c57247ad66fcd73ac00ee2cbe2 b/test/core/transport/chttp2/hpack_parser_corpus/e6589006e3bda4c57247ad66fcd73ac00ee2cbe2
new file mode 100644
index 0000000000..274e09dd1c
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/e6589006e3bda4c57247ad66fcd73ac00ee2cbe2
@@ -0,0 +1 @@
+;'cð[(! ð[N!\‡!åGý!*(! !åGýA)(!)í!¼*)åGýI)(Ù;)Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/e6fab7572fb2a1c6e107b6f83cffd103a233d021 b/test/core/transport/chttp2/hpack_parser_corpus/e6fab7572fb2a1c6e107b6f83cffd103a233d021
new file mode 100644
index 0000000000..720a576a90
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/e6fab7572fb2a1c6e107b6f83cffd103a233d021
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/e790f5d312957dbfd20abdefe4b1735779ff9689 b/test/core/transport/chttp2/hpack_parser_corpus/e790f5d312957dbfd20abdefe4b1735779ff9689
new file mode 100644
index 0000000000..b818778f8b
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/e790f5d312957dbfd20abdefe4b1735779ff9689
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/e8809017a4cf6c1e80a93f661166ead961f26bb4 b/test/core/transport/chttp2/hpack_parser_corpus/e8809017a4cf6c1e80a93f661166ead961f26bb4
new file mode 100644
index 0000000000..fce39c6198
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/e8809017a4cf6c1e80a93f661166ead961f26bb4
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/e9733e973c33b38c2087b7f1deb36688b3b14259 b/test/core/transport/chttp2/hpack_parser_corpus/e9733e973c33b38c2087b7f1deb36688b3b14259
new file mode 100644
index 0000000000..b87a36fcfc
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/e9733e973c33b38c2087b7f1deb36688b3b14259
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c*[)¤(* ¤®@:ð[(?¤;[('¤ð(-¤Û! ð'ðb \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/ea8134769855d574f6673bf0301eb2e24632c6eb b/test/core/transport/chttp2/hpack_parser_corpus/ea8134769855d574f6673bf0301eb2e24632c6eb
new file mode 100644
index 0000000000..0a16a74e6d
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/ea8134769855d574f6673bf0301eb2e24632c6eb
@@ -0,0 +1 @@
+ð[(-bin¤¤ð¤-bin‹c[)(-'bin !!?¤Ûð!ð{(-binð! ð( !! \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/eb489536e4e5589a93a17cd36669475b8f2a5e1b b/test/core/transport/chttp2/hpack_parser_corpus/eb489536e4e5589a93a17cd36669475b8f2a5e1b
new file mode 100644
index 0000000000..ffa9431bc3
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/eb489536e4e5589a93a17cd36669475b8f2a5e1b
@@ -0,0 +1 @@
+¤¤ð¤-bin‹#Z)¤(-¤ b¤ð¤-bin?ð‹c[)(-ni''bin!! !/¤!?Ûð! \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/eb48ebd4d01e5623dd16ae61938b3333fab3ce78 b/test/core/transport/chttp2/hpack_parser_corpus/eb48ebd4d01e5623dd16ae61938b3333fab3ce78
new file mode 100644
index 0000000000..b92817bb29
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/eb48ebd4d01e5623dd16ae61938b3333fab3ce78
@@ -0,0 +1 @@
+¤¤ÛððÜcc' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/eb6ca7624384239c7f7e0d83edb7cc334b7926d7 b/test/core/transport/chttp2/hpack_parser_corpus/eb6ca7624384239c7f7e0d83edb7cc334b7926d7
new file mode 100644
index 0000000000..cb68dfd5e5
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/eb6ca7624384239c7f7e0d83edb7cc334b7926d7
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/ec9457ad41ed745ea9377ffdb16ad09f981daa7f b/test/core/transport/chttp2/hpack_parser_corpus/ec9457ad41ed745ea9377ffdb16ad09f981daa7f
new file mode 100644
index 0000000000..9b15875d69
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/ec9457ad41ed745ea9377ffdb16ad09f981daa7f
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/edff5256a2d60d0e51caef25dc1d6f1643dad6d5 b/test/core/transport/chttp2/hpack_parser_corpus/edff5256a2d60d0e51caef25dc1d6f1643dad6d5
new file mode 100644
index 0000000000..5ef662da50
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/edff5256a2d60d0e51caef25dc1d6f1643dad6d5
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/ee4d9c5d22512da42726f47213ff56404d1d81d1 b/test/core/transport/chttp2/hpack_parser_corpus/ee4d9c5d22512da42726f47213ff56404d1d81d1
new file mode 100644
index 0000000000..cd45daf8aa
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/ee4d9c5d22512da42726f47213ff56404d1d81d1
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/eef2f30b5e2ecd98ebefb12d57aba8b4ad52d904 b/test/core/transport/chttp2/hpack_parser_corpus/eef2f30b5e2ecd98ebefb12d57aba8b4ad52d904
new file mode 100644
index 0000000000..9c27b3888f
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/eef2f30b5e2ecd98ebefb12d57aba8b4ad52d904
@@ -0,0 +1 @@
+?ð Û!ðcm' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/ef23911de1a27d03d2d4983ca1527e17d6a7092b b/test/core/transport/chttp2/hpack_parser_corpus/ef23911de1a27d03d2d4983ca1527e17d6a7092b
new file mode 100644
index 0000000000..453512785b
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/ef23911de1a27d03d2d4983ca1527e17d6a7092b
@@ -0,0 +1 @@
+0c'ð[(! ð[(!\ !åGý![(!! !åGýA)(!)í!¼*)åGýA)(Ù;)Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/ef5b7fc62a2daecf1e8f928b1fa3ebd028413a41 b/test/core/transport/chttp2/hpack_parser_corpus/ef5b7fc62a2daecf1e8f928b1fa3ebd028413a41
new file mode 100644
index 0000000000..c3c6d7380e
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/ef5b7fc62a2daecf1e8f928b1fa3ebd028413a41
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/ef718258ca1870198e91a2fbc1eaa90b620673fb b/test/core/transport/chttp2/hpack_parser_corpus/ef718258ca1870198e91a2fbc1eaa90b620673fb
new file mode 100644
index 0000000000..be01d46af5
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/ef718258ca1870198e91a2fbc1eaa90b620673fb
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)²(-'bin¤ \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/efb46deb37a78f41dd760f6b7203b20956eb114e b/test/core/transport/chttp2/hpack_parser_corpus/efb46deb37a78f41dd760f6b7203b20956eb114e
new file mode 100644
index 0000000000..58cc22fbab
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/efb46deb37a78f41dd760f6b7203b20956eb114e
@@ -0,0 +1 @@
+;?0c!(ðK ðNÔ\ !åG![(!! !åGýA)(:)í!*å¼G€ýA)(Ù;)Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/efdd6824bd2456e3e408e0e84369c4fa3aa14f41 b/test/core/transport/chttp2/hpack_parser_corpus/efdd6824bd2456e3e408e0e84369c4fa3aa14f41
new file mode 100644
index 0000000000..0926c631be
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/efdd6824bd2456e3e408e0e84369c4fa3aa14f41
@@ -0,0 +1 @@
+0cð[(! ð[(!\ !åGý![(!! !åGýA)(!)í!¼*)åGýA)(Ù;)Š \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/efec040a5de1969df5e37e4bc50a0a8f0de341d8 b/test/core/transport/chttp2/hpack_parser_corpus/efec040a5de1969df5e37e4bc50a0a8f0de341d8
new file mode 100644
index 0000000000..9e21c0e98c
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/efec040a5de1969df5e37e4bc50a0a8f0de341d8
@@ -0,0 +1 @@
+(?¤:›ð! c \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/f1e30464c24dc1d7cec7ec1dd2adec8512232b43 b/test/core/transport/chttp2/hpack_parser_corpus/f1e30464c24dc1d7cec7ec1dd2adec8512232b43
new file mode 100644
index 0000000000..a217e4f2d8
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/f1e30464c24dc1d7cec7ec1dd2adec8512232b43
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/f27a617b936814476770a3b31a5afb80d0f3b423 b/test/core/transport/chttp2/hpack_parser_corpus/f27a617b936814476770a3b31a5afb80d0f3b423
new file mode 100644
index 0000000000..ee6ac4e30f
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/f27a617b936814476770a3b31a5afb80d0f3b423
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/f3f0d99ac2962f8fddb25c65fb4c8c6eb63518a9 b/test/core/transport/chttp2/hpack_parser_corpus/f3f0d99ac2962f8fddb25c65fb4c8c6eb63518a9
new file mode 100644
index 0000000000..9b0d16f3bf
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/f3f0d99ac2962f8fddb25c65fb4c8c6eb63518a9
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[)(?* ¤®@: \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/f4628084cf46f139babb886a782b4ab5977d5d2e b/test/core/transport/chttp2/hpack_parser_corpus/f4628084cf46f139babb886a782b4ab5977d5d2e
new file mode 100644
index 0000000000..8926de3707
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/f4628084cf46f139babb886a782b4ab5977d5d2e
@@ -0,0 +1 @@
+(?¤;[('¤ð! ( \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/f4753e8881e4b3c71f2728149be7d04cc648f6a6 b/test/core/transport/chttp2/hpack_parser_corpus/f4753e8881e4b3c71f2728149be7d04cc648f6a6
new file mode 100644
index 0000000000..0c8d29083e
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/f4753e8881e4b3c71f2728149be7d04cc648f6a6
@@ -0,0 +1 @@
+?* ¤®@Znð:(c (;þ!(c! ;\ ÛäGý!ðcm:' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/f4d6ff635ae4fda497221da4bfa3e593df59a44e b/test/core/transport/chttp2/hpack_parser_corpus/f4d6ff635ae4fda497221da4bfa3e593df59a44e
new file mode 100644
index 0000000000..a7c841c10d
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/f4d6ff635ae4fda497221da4bfa3e593df59a44e
@@ -0,0 +1 @@
+¤¤ð¤-b)n‹c[)(:* ¤®@1: \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/f52f4d51aaaed0f9c3a20936cf5efd25d0692f67 b/test/core/transport/chttp2/hpack_parser_corpus/f52f4d51aaaed0f9c3a20936cf5efd25d0692f67
new file mode 100644
index 0000000000..1ab7be333a
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/f52f4d51aaaed0f9c3a20936cf5efd25d0692f67
@@ -0,0 +1 @@
+¤pƒÛðð¤!ƒÛðTð* \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/f7cf30724ab740918eee6e4a6b6658ae3d7706e8 b/test/core/transport/chttp2/hpack_parser_corpus/f7cf30724ab740918eee6e4a6b6658ae3d7706e8
new file mode 100644
index 0000000000..669e4a82f0
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/f7cf30724ab740918eee6e4a6b6658ae3d7706e8
@@ -0,0 +1 @@
+¤c \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/f823828ffd2a60efee36f1de52cb0f024ac5b4bb b/test/core/transport/chttp2/hpack_parser_corpus/f823828ffd2a60efee36f1de52cb0f024ac5b4bb
new file mode 100644
index 0000000000..0fee6875ef
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/f823828ffd2a60efee36f1de52cb0f024ac5b4bb
@@ -0,0 +1 @@
+¤Ûð!ð c' \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/f8760761bd5ab7b47376bfbc5a44e16b2d5ca800 b/test/core/transport/chttp2/hpack_parser_corpus/f8760761bd5ab7b47376bfbc5a44e16b2d5ca800
new file mode 100644
index 0000000000..667c24677c
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/f8760761bd5ab7b47376bfbc5a44e16b2d5ca800
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c[''(-'bin !!?¤¤cÛð! \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/fb15042c268625089ef6c8aa3d8a6f12d1d02c74 b/test/core/transport/chttp2/hpack_parser_corpus/fb15042c268625089ef6c8aa3d8a6f12d1d02c74
new file mode 100644
index 0000000000..67f84c5fbc
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/fb15042c268625089ef6c8aa3d8a6f12d1d02c74
@@ -0,0 +1 @@
+ð[(! ð(!\ !åGý:[(!'ð[(!! ð[(!! !åGý!åGýA)([( !!å \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/fc3dd4292d6884a770199596f5e9cbc1e869e5fb b/test/core/transport/chttp2/hpack_parser_corpus/fc3dd4292d6884a770199596f5e9cbc1e869e5fb
new file mode 100644
index 0000000000..99d90a032a
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/fc3dd4292d6884a770199596f5e9cbc1e869e5fb
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/fd34ec90fe8f9218fd25c3eac151aec998cff6d8 b/test/core/transport/chttp2/hpack_parser_corpus/fd34ec90fe8f9218fd25c3eac151aec998cff6d8
new file mode 100644
index 0000000000..c5005c7700
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/fd34ec90fe8f9218fd25c3eac151aec998cff6d8
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/fdf548cde981fab4fb17bd63a124b75eddc5c836 b/test/core/transport/chttp2/hpack_parser_corpus/fdf548cde981fab4fb17bd63a124b75eddc5c836
new file mode 100644
index 0000000000..fcae5ce55e
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/fdf548cde981fab4fb17bd63a124b75eddc5c836
@@ -0,0 +1 @@
+¤¤ð¤-bin‹Ê!ð c(?¤)['›ð! c'( \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/fe47fb18b064e26479c3c3140082bd01065e897a b/test/core/transport/chttp2/hpack_parser_corpus/fe47fb18b064e26479c3c3140082bd01065e897a
new file mode 100644
index 0000000000..4ed844aca1
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/fe47fb18b064e26479c3c3140082bd01065e897a
@@ -0,0 +1 @@
+(??;[(¤('?¤ \ No newline at end of file
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/ff2097734bd7bb8451aece13c9336c4624735170 b/test/core/transport/chttp2/hpack_parser_corpus/ff2097734bd7bb8451aece13c9336c4624735170
new file mode 100644
index 0000000000..e8e30c889e
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/ff2097734bd7bb8451aece13c9336c4624735170
Binary files differ
diff --git a/test/core/transport/chttp2/hpack_parser_corpus/ff7d6ff060e63355701b2e655c802902338497de b/test/core/transport/chttp2/hpack_parser_corpus/ff7d6ff060e63355701b2e655c802902338497de
new file mode 100644
index 0000000000..58337fbf9b
--- /dev/null
+++ b/test/core/transport/chttp2/hpack_parser_corpus/ff7d6ff060e63355701b2e655c802902338497de
@@ -0,0 +1 @@
+¤¤ð¤-bin‹c—*[)¤(-¤Ûð'ð!bƒcin ;!! \ No newline at end of file
diff --git a/src/core/lib/client_config/resolvers/sockaddr_resolver.h b/test/core/transport/chttp2/hpack_parser_fuzzer_test.c
index 45c55bd160..4a4472f552 100644
--- a/src/core/lib/client_config/resolvers/sockaddr_resolver.h
+++ b/test/core/transport/chttp2/hpack_parser_fuzzer_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,20 +31,24 @@
*
*/
-#ifndef GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVERS_SOCKADDR_RESOLVER_H
-#define GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVERS_SOCKADDR_RESOLVER_H
+#include <stdint.h>
+#include <string.h>
-#include <grpc/support/port_platform.h>
+#include <grpc/grpc.h>
+#include <grpc/support/alloc.h>
-#include "src/core/lib/client_config/resolver_factory.h"
+#include "src/core/ext/transport/chttp2/transport/hpack_parser.h"
-grpc_resolver_factory *grpc_ipv4_resolver_factory_create(void);
+static void onhdr(void *ud, grpc_mdelem *md) { GRPC_MDELEM_UNREF(md); }
-grpc_resolver_factory *grpc_ipv6_resolver_factory_create(void);
-
-#ifdef GPR_POSIX_SOCKET
-/** Create a unix resolver factory */
-grpc_resolver_factory *grpc_unix_resolver_factory_create(void);
-#endif
-
-#endif /* GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVERS_SOCKADDR_RESOLVER_H */
+int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
+ grpc_test_only_set_metadata_hash_seed(0);
+ grpc_init();
+ grpc_chttp2_hpack_parser parser;
+ grpc_chttp2_hpack_parser_init(&parser);
+ parser.on_header = onhdr;
+ grpc_chttp2_hpack_parser_parse(&parser, data, data + size);
+ grpc_chttp2_hpack_parser_destroy(&parser);
+ grpc_shutdown();
+ return 0;
+}
diff --git a/test/core/transport/chttp2/hpack_parser_test.c b/test/core/transport/chttp2/hpack_parser_test.c
index e716d38cdb..51bf48dc09 100644
--- a/test/core/transport/chttp2/hpack_parser_test.c
+++ b/test/core/transport/chttp2/hpack_parser_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/transport/chttp2/hpack_parser.h"
+#include "src/core/ext/transport/chttp2/transport/hpack_parser.h"
#include <stdarg.h>
diff --git a/test/core/transport/chttp2/hpack_table_test.c b/test/core/transport/chttp2/hpack_table_test.c
index fbacdc3ad6..73e59f1536 100644
--- a/test/core/transport/chttp2/hpack_table_test.c
+++ b/test/core/transport/chttp2/hpack_table_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/transport/chttp2/hpack_table.h"
+#include "src/core/ext/transport/chttp2/transport/hpack_table.h"
#include <stdio.h>
#include <string.h>
diff --git a/test/core/transport/chttp2/status_conversion_test.c b/test/core/transport/chttp2/status_conversion_test.c
index f2770e5702..e6fc785728 100644
--- a/test/core/transport/chttp2/status_conversion_test.c
+++ b/test/core/transport/chttp2/status_conversion_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/transport/chttp2/status_conversion.h"
+#include "src/core/ext/transport/chttp2/transport/status_conversion.h"
#include <grpc/support/log.h>
#include "test/core/util/test_config.h"
diff --git a/test/core/transport/chttp2/stream_map_test.c b/test/core/transport/chttp2/stream_map_test.c
index baeac175ea..83d740a7c0 100644
--- a/test/core/transport/chttp2/stream_map_test.c
+++ b/test/core/transport/chttp2/stream_map_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/transport/chttp2/stream_map.h"
+#include "src/core/ext/transport/chttp2/transport/stream_map.h"
#include <grpc/support/log.h>
#include "test/core/util/test_config.h"
diff --git a/test/core/transport/chttp2/timeout_encoding_test.c b/test/core/transport/chttp2/timeout_encoding_test.c
index 9a91a14433..67639936a7 100644
--- a/test/core/transport/chttp2/timeout_encoding_test.c
+++ b/test/core/transport/chttp2/timeout_encoding_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/transport/chttp2/timeout_encoding.h"
+#include "src/core/ext/transport/chttp2/transport/timeout_encoding.h"
#include <stdio.h>
#include <string.h>
diff --git a/test/core/transport/chttp2/varint_test.c b/test/core/transport/chttp2/varint_test.c
index 960c9536ef..3552bf0c59 100644
--- a/test/core/transport/chttp2/varint_test.c
+++ b/test/core/transport/chttp2/varint_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
*
*/
-#include "src/core/lib/transport/chttp2/varint.h"
+#include "src/core/ext/transport/chttp2/transport/varint.h"
#include <grpc/support/log.h>
#include <grpc/support/slice.h>
diff --git a/test/core/transport/connectivity_state_test.c b/test/core/transport/connectivity_state_test.c
index b310d4dc00..6bb7c3b06b 100644
--- a/test/core/transport/connectivity_state_test.c
+++ b/test/core/transport/connectivity_state_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/transport/metadata_test.c b/test/core/transport/metadata_test.c
index 30e3113913..809fa875dd 100644
--- a/test/core/transport/metadata_test.c
+++ b/test/core/transport/metadata_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -40,8 +40,8 @@
#include <grpc/support/log.h>
#include <grpc/support/string_util.h>
+#include "src/core/ext/transport/chttp2/transport/bin_encoder.h"
#include "src/core/lib/support/string.h"
-#include "src/core/lib/transport/chttp2/bin_encoder.h"
#include "test/core/util/test_config.h"
#define LOG_TEST(x) gpr_log(GPR_INFO, "%s", x)
diff --git a/test/core/tsi/transport_security_test.c b/test/core/tsi/transport_security_test.c
index 49b5b8b5f2..01e8770b24 100644
--- a/test/core/tsi/transport_security_test.c
+++ b/test/core/tsi/transport_security_test.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/src/core/lib/client_config/resolvers/zookeeper_resolver.h b/test/core/util/one_corpus_entry_fuzzer.c
index 7ee7604360..41f9558211 100644
--- a/src/core/lib/client_config/resolvers/zookeeper_resolver.h
+++ b/test/core/util/one_corpus_entry_fuzzer.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,12 +31,16 @@
*
*/
-#ifndef GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVERS_ZOOKEEPER_RESOLVER_H
-#define GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVERS_ZOOKEEPER_RESOLVER_H
+#include <grpc/support/log.h>
+#include "src/core/lib/support/load_file.h"
-#include "src/core/lib/client_config/resolver_factory.h"
+extern int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size);
-/** Create a zookeeper resolver factory */
-grpc_resolver_factory *grpc_zookeeper_resolver_factory_create(void);
-
-#endif /* GRPC_CORE_LIB_CLIENT_CONFIG_RESOLVERS_ZOOKEEPER_RESOLVER_H */
+int main(int argc, char **argv) {
+ int ok = 0;
+ gpr_slice buffer = gpr_load_file(argv[1], 0, &ok);
+ GPR_ASSERT(ok);
+ LLVMFuzzerTestOneInput(GPR_SLICE_START_PTR(buffer), GPR_SLICE_LENGTH(buffer));
+ gpr_slice_unref(buffer);
+ return 0;
+}
diff --git a/test/core/util/port_posix.c b/test/core/util/port_posix.c
index fea7e52b09..eabd62fafc 100644
--- a/test/core/util/port_posix.c
+++ b/test/core/util/port_posix.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/util/port_server_client.c b/test/core/util/port_server_client.c
index ea01b46838..84e90547aa 100644
--- a/test/core/util/port_server_client.c
+++ b/test/core/util/port_server_client.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/util/port_server_client.h b/test/core/util/port_server_client.h
index fc209cde5b..437006495c 100644
--- a/test/core/util/port_server_client.h
+++ b/test/core/util/port_server_client.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/util/port_windows.c b/test/core/util/port_windows.c
index 081782d295..2b6d3dd223 100644
--- a/test/core/util/port_windows.c
+++ b/test/core/util/port_windows.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/util/reconnect_server.c b/test/core/util/reconnect_server.c
index 0e7a486526..5b0b3259c8 100644
--- a/test/core/util/reconnect_server.c
+++ b/test/core/util/reconnect_server.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/util/test_config.c b/test/core/util/test_config.c
index 7ffaa6fe27..3155a4ece6 100644
--- a/test/core/util/test_config.c
+++ b/test/core/util/test_config.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/util/test_config.h b/test/core/util/test_config.h
index f6bb2e1f72..76686f1c51 100644
--- a/test/core/util/test_config.h
+++ b/test/core/util/test_config.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/util/test_tcp_server.c b/test/core/util/test_tcp_server.c
index 7703ec0039..e39a95712c 100644
--- a/test/core/util/test_tcp_server.c
+++ b/test/core/util/test_tcp_server.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/core/util/test_tcp_server.h b/test/core/util/test_tcp_server.h
index 7d1025f17a..d10b166586 100644
--- a/test/core/util/test_tcp_server.h
+++ b/test/core/util/test_tcp_server.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/common/alarm_cpp_test.cc b/test/cpp/common/alarm_cpp_test.cc
index d4381c0515..a05ac30b1c 100644
--- a/test/cpp/common/alarm_cpp_test.cc
+++ b/test/cpp/common/alarm_cpp_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/common/auth_property_iterator_test.cc b/test/cpp/common/auth_property_iterator_test.cc
index 4b5cf02c69..0e43d4e1e0 100644
--- a/test/cpp/common/auth_property_iterator_test.cc
+++ b/test/cpp/common/auth_property_iterator_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/common/channel_arguments_test.cc b/test/cpp/common/channel_arguments_test.cc
index a4821b4d0b..1443eb2f68 100644
--- a/test/cpp/common/channel_arguments_test.cc
+++ b/test/cpp/common/channel_arguments_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/common/secure_auth_context_test.cc b/test/cpp/common/secure_auth_context_test.cc
index c421910cba..067361334d 100644
--- a/test/cpp/common/secure_auth_context_test.cc
+++ b/test/cpp/common/secure_auth_context_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/end2end/async_end2end_test.cc b/test/cpp/end2end/async_end2end_test.cc
index d8aa4c0137..7e4d6046d6 100644
--- a/test/cpp/end2end/async_end2end_test.cc
+++ b/test/cpp/end2end/async_end2end_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -53,7 +53,7 @@
#include "test/cpp/util/string_ref_helper.h"
#ifdef GPR_POSIX_SOCKET
-#include "src/core/lib/iomgr/pollset_posix.h"
+#include "src/core/lib/iomgr/ev_posix.h"
#endif
using grpc::testing::EchoRequest;
diff --git a/test/cpp/end2end/client_crash_test.cc b/test/cpp/end2end/client_crash_test.cc
index 5ca5cd7e99..c01f40dbc2 100644
--- a/test/cpp/end2end/client_crash_test.cc
+++ b/test/cpp/end2end/client_crash_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/end2end/client_crash_test_server.cc b/test/cpp/end2end/client_crash_test_server.cc
index 1ec641cb5a..9568ca26be 100644
--- a/test/cpp/end2end/client_crash_test_server.cc
+++ b/test/cpp/end2end/client_crash_test_server.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/end2end/end2end_test.cc b/test/cpp/end2end/end2end_test.cc
index ff388c0341..0c9313f88f 100644
--- a/test/cpp/end2end/end2end_test.cc
+++ b/test/cpp/end2end/end2end_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/end2end/generic_end2end_test.cc b/test/cpp/end2end/generic_end2end_test.cc
index 8dad1c2005..d0cf6aea9d 100644
--- a/test/cpp/end2end/generic_end2end_test.cc
+++ b/test/cpp/end2end/generic_end2end_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/end2end/mock_test.cc b/test/cpp/end2end/mock_test.cc
index 1d29096b86..0ace5d9418 100644
--- a/test/cpp/end2end/mock_test.cc
+++ b/test/cpp/end2end/mock_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/end2end/server_crash_test.cc b/test/cpp/end2end/server_crash_test.cc
index 9bf9423666..e447360276 100644
--- a/test/cpp/end2end/server_crash_test.cc
+++ b/test/cpp/end2end/server_crash_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/end2end/server_crash_test_client.cc b/test/cpp/end2end/server_crash_test_client.cc
index b0e6ac6f56..1964840fa5 100644
--- a/test/cpp/end2end/server_crash_test_client.cc
+++ b/test/cpp/end2end/server_crash_test_client.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/end2end/shutdown_test.cc b/test/cpp/end2end/shutdown_test.cc
index 62bb6b1b78..aa8d42141d 100644
--- a/test/cpp/end2end/shutdown_test.cc
+++ b/test/cpp/end2end/shutdown_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/end2end/streaming_throughput_test.cc b/test/cpp/end2end/streaming_throughput_test.cc
index 4777b88747..9e82c30701 100644
--- a/test/cpp/end2end/streaming_throughput_test.cc
+++ b/test/cpp/end2end/streaming_throughput_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/end2end/thread_stress_test.cc b/test/cpp/end2end/thread_stress_test.cc
index 8760b8d28e..94541f9a45 100644
--- a/test/cpp/end2end/thread_stress_test.cc
+++ b/test/cpp/end2end/thread_stress_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -58,6 +58,7 @@ using std::chrono::system_clock;
const int kNumThreads = 100; // Number of threads
const int kNumAsyncSendThreads = 2;
const int kNumAsyncReceiveThreads = 50;
+const int kNumAsyncServerThreads = 50;
const int kNumRpcs = 1000; // Number of RPCs per thread
namespace grpc {
@@ -174,23 +175,13 @@ class TestServiceImplDupPkg
}
};
+template <class Service>
class CommonStressTest {
public:
CommonStressTest() : kMaxMessageSize_(8192) {}
- void SetUp() {
- int port = grpc_pick_unused_port_or_die();
- server_address_ << "localhost:" << port;
- // Setup server
- ServerBuilder builder;
- builder.AddListeningPort(server_address_.str(),
- InsecureServerCredentials());
- builder.RegisterService(&service_);
- builder.SetMaxMessageSize(
- kMaxMessageSize_); // For testing max message size.
- builder.RegisterService(&dup_pkg_service_);
- server_ = builder.BuildAndStart();
- }
- void TearDown() { server_->Shutdown(); }
+ virtual ~CommonStressTest() {}
+ virtual void SetUp() = 0;
+ virtual void TearDown() = 0;
void ResetStub() {
std::shared_ptr<Channel> channel =
CreateChannel(server_address_.str(), InsecureChannelCredentials());
@@ -198,15 +189,137 @@ class CommonStressTest {
}
grpc::testing::EchoTestService::Stub* GetStub() { return stub_.get(); }
+ protected:
+ void SetUpStart(ServerBuilder* builder, Service* service) {
+ int port = grpc_pick_unused_port_or_die();
+ server_address_ << "localhost:" << port;
+ // Setup server
+ builder->AddListeningPort(server_address_.str(),
+ InsecureServerCredentials());
+ builder->RegisterService(service);
+ builder->SetMaxMessageSize(
+ kMaxMessageSize_); // For testing max message size.
+ builder->RegisterService(&dup_pkg_service_);
+ }
+ void SetUpEnd(ServerBuilder* builder) { server_ = builder->BuildAndStart(); }
+ void TearDownStart() { server_->Shutdown(); }
+ void TearDownEnd() {}
+
private:
std::unique_ptr<grpc::testing::EchoTestService::Stub> stub_;
std::unique_ptr<Server> server_;
std::ostringstream server_address_;
const int kMaxMessageSize_;
- TestServiceImpl service_;
TestServiceImplDupPkg dup_pkg_service_;
};
+class CommonStressTestSyncServer : public CommonStressTest<TestServiceImpl> {
+ public:
+ void SetUp() GRPC_OVERRIDE {
+ ServerBuilder builder;
+ SetUpStart(&builder, &service_);
+ SetUpEnd(&builder);
+ }
+ void TearDown() GRPC_OVERRIDE {
+ TearDownStart();
+ TearDownEnd();
+ }
+
+ private:
+ TestServiceImpl service_;
+};
+
+class CommonStressTestAsyncServer
+ : public CommonStressTest<::grpc::testing::EchoTestService::AsyncService> {
+ public:
+ void SetUp() GRPC_OVERRIDE {
+ shutting_down_ = false;
+ ServerBuilder builder;
+ SetUpStart(&builder, &service_);
+ cq_ = builder.AddCompletionQueue();
+ SetUpEnd(&builder);
+ contexts_ = new Context[kNumAsyncServerThreads * 100];
+ for (int i = 0; i < kNumAsyncServerThreads * 100; i++) {
+ RefreshContext(i);
+ }
+ for (int i = 0; i < kNumAsyncServerThreads; i++) {
+ server_threads_.push_back(
+ new std::thread(&CommonStressTestAsyncServer::ProcessRpcs, this));
+ }
+ }
+ void TearDown() GRPC_OVERRIDE {
+ {
+ unique_lock<mutex> l(mu_);
+ TearDownStart();
+ shutting_down_ = true;
+ cq_->Shutdown();
+ }
+
+ for (int i = 0; i < kNumAsyncServerThreads; i++) {
+ server_threads_[i]->join();
+ delete server_threads_[i];
+ }
+
+ void* ignored_tag;
+ bool ignored_ok;
+ while (cq_->Next(&ignored_tag, &ignored_ok))
+ ;
+ TearDownEnd();
+ delete[] contexts_;
+ }
+
+ private:
+ void ProcessRpcs() {
+ void* tag;
+ bool ok;
+ while (cq_->Next(&tag, &ok)) {
+ if (ok) {
+ int i = static_cast<int>(reinterpret_cast<intptr_t>(tag));
+ switch (contexts_[i].state) {
+ case Context::READY: {
+ contexts_[i].state = Context::DONE;
+ EchoResponse send_response;
+ send_response.set_message(contexts_[i].recv_request.message());
+ contexts_[i].response_writer->Finish(send_response, Status::OK,
+ tag);
+ break;
+ }
+ case Context::DONE:
+ RefreshContext(i);
+ break;
+ }
+ }
+ }
+ }
+ void RefreshContext(int i) {
+ unique_lock<mutex> l(mu_);
+ if (!shutting_down_) {
+ contexts_[i].state = Context::READY;
+ contexts_[i].srv_ctx.reset(new ServerContext);
+ contexts_[i].response_writer.reset(
+ new grpc::ServerAsyncResponseWriter<EchoResponse>(
+ contexts_[i].srv_ctx.get()));
+ service_.RequestEcho(contexts_[i].srv_ctx.get(),
+ &contexts_[i].recv_request,
+ contexts_[i].response_writer.get(), cq_.get(),
+ cq_.get(), (void*)(intptr_t)i);
+ }
+ }
+ struct Context {
+ std::unique_ptr<ServerContext> srv_ctx;
+ std::unique_ptr<grpc::ServerAsyncResponseWriter<EchoResponse>>
+ response_writer;
+ EchoRequest recv_request;
+ enum { READY, DONE } state;
+ } * contexts_;
+ ::grpc::testing::EchoTestService::AsyncService service_;
+ std::unique_ptr<ServerCompletionQueue> cq_;
+ bool shutting_down_;
+ mutex mu_;
+ std::vector<std::thread*> server_threads_;
+};
+
+template <class Common>
class End2endTest : public ::testing::Test {
protected:
End2endTest() {}
@@ -214,7 +327,7 @@ class End2endTest : public ::testing::Test {
void TearDown() GRPC_OVERRIDE { common_.TearDown(); }
void ResetStub() { common_.ResetStub(); }
- CommonStressTest common_;
+ Common common_;
};
static void SendRpc(grpc::testing::EchoTestService::Stub* stub, int num_rpcs) {
@@ -230,11 +343,16 @@ static void SendRpc(grpc::testing::EchoTestService::Stub* stub, int num_rpcs) {
}
}
-TEST_F(End2endTest, ThreadStress) {
- common_.ResetStub();
+typedef ::testing::Types<CommonStressTestSyncServer,
+ CommonStressTestAsyncServer>
+ CommonTypes;
+TYPED_TEST_CASE(End2endTest, CommonTypes);
+TYPED_TEST(End2endTest, ThreadStress) {
+ this->common_.ResetStub();
std::vector<std::thread*> threads;
for (int i = 0; i < kNumThreads; ++i) {
- threads.push_back(new std::thread(SendRpc, common_.GetStub(), kNumRpcs));
+ threads.push_back(
+ new std::thread(SendRpc, this->common_.GetStub(), kNumRpcs));
}
for (int i = 0; i < kNumThreads; ++i) {
threads[i]->join();
@@ -242,6 +360,7 @@ TEST_F(End2endTest, ThreadStress) {
}
}
+template <class Common>
class AsyncClientEnd2endTest : public ::testing::Test {
protected:
AsyncClientEnd2endTest() : rpcs_outstanding_(0) {}
@@ -309,31 +428,33 @@ class AsyncClientEnd2endTest : public ::testing::Test {
}
}
- CommonStressTest common_;
+ Common common_;
CompletionQueue cq_;
mutex mu_;
condition_variable cv_;
int rpcs_outstanding_;
};
-TEST_F(AsyncClientEnd2endTest, ThreadStress) {
- common_.ResetStub();
+TYPED_TEST_CASE(AsyncClientEnd2endTest, CommonTypes);
+TYPED_TEST(AsyncClientEnd2endTest, ThreadStress) {
+ this->common_.ResetStub();
std::vector<std::thread *> send_threads, completion_threads;
for (int i = 0; i < kNumAsyncReceiveThreads; ++i) {
completion_threads.push_back(new std::thread(
- &AsyncClientEnd2endTest_ThreadStress_Test::AsyncCompleteRpc, this));
+ &AsyncClientEnd2endTest_ThreadStress_Test<TypeParam>::AsyncCompleteRpc,
+ this));
}
for (int i = 0; i < kNumAsyncSendThreads; ++i) {
- send_threads.push_back(
- new std::thread(&AsyncClientEnd2endTest_ThreadStress_Test::AsyncSendRpc,
- this, kNumRpcs));
+ send_threads.push_back(new std::thread(
+ &AsyncClientEnd2endTest_ThreadStress_Test<TypeParam>::AsyncSendRpc,
+ this, kNumRpcs));
}
for (int i = 0; i < kNumAsyncSendThreads; ++i) {
send_threads[i]->join();
delete send_threads[i];
}
- Wait();
+ this->Wait();
for (int i = 0; i < kNumAsyncReceiveThreads; ++i) {
completion_threads[i]->join();
delete completion_threads[i];
diff --git a/test/cpp/end2end/zookeeper_test.cc b/test/cpp/end2end/zookeeper_test.cc
index f1b6ac2479..12853a1b98 100644
--- a/test/cpp/end2end/zookeeper_test.cc
+++ b/test/cpp/end2end/zookeeper_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/grpclb/grpclb_api_test.cc b/test/cpp/grpclb/grpclb_api_test.cc
index bc8219c1c7..92f93c869c 100644
--- a/test/cpp/grpclb/grpclb_api_test.cc
+++ b/test/cpp/grpclb/grpclb_api_test.cc
@@ -34,7 +34,7 @@
#include <gtest/gtest.h>
#include <string>
-#include "src/core/lib/client_config/lb_policies/load_balancer_api.h"
+#include "src/core/ext/lb_policy/grpclb/load_balancer_api.h"
#include "src/proto/grpc/lb/v0/load_balancer.pb.h" // C++ version
namespace grpc {
diff --git a/test/cpp/interop/client.cc b/test/cpp/interop/client.cc
index 8b237fe75f..9af6a88044 100644
--- a/test/cpp/interop/client.cc
+++ b/test/cpp/interop/client.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/interop/client_helper.cc b/test/cpp/interop/client_helper.cc
index 029b967801..c8b1e505c1 100644
--- a/test/cpp/interop/client_helper.cc
+++ b/test/cpp/interop/client_helper.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/interop/client_helper.h b/test/cpp/interop/client_helper.h
index 0790464449..622b96e4fb 100644
--- a/test/cpp/interop/client_helper.h
+++ b/test/cpp/interop/client_helper.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/interop/interop_client.cc b/test/cpp/interop/interop_client.cc
index 2fcd9f3951..22293d211f 100644
--- a/test/cpp/interop/interop_client.cc
+++ b/test/cpp/interop/interop_client.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/interop/interop_client.h b/test/cpp/interop/interop_client.h
index e6706b5713..a3794fd93f 100644
--- a/test/cpp/interop/interop_client.h
+++ b/test/cpp/interop/interop_client.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/interop/interop_test.cc b/test/cpp/interop/interop_test.cc
index f1fb3c9675..8e71a2bb29 100644
--- a/test/cpp/interop/interop_test.cc
+++ b/test/cpp/interop/interop_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/interop/metrics_client.cc b/test/cpp/interop/metrics_client.cc
index bd48c7d4ef..cc304f2e89 100644
--- a/test/cpp/interop/metrics_client.cc
+++ b/test/cpp/interop/metrics_client.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/interop/reconnect_interop_client.cc b/test/cpp/interop/reconnect_interop_client.cc
index c668edaceb..87e3bd6c76 100644
--- a/test/cpp/interop/reconnect_interop_client.cc
+++ b/test/cpp/interop/reconnect_interop_client.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/interop/reconnect_interop_server.cc b/test/cpp/interop/reconnect_interop_server.cc
index 1f9147d0ef..e2114fae19 100644
--- a/test/cpp/interop/reconnect_interop_server.cc
+++ b/test/cpp/interop/reconnect_interop_server.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/interop/server_helper.cc b/test/cpp/interop/server_helper.cc
index 97c39c4245..c6d891ad71 100644
--- a/test/cpp/interop/server_helper.cc
+++ b/test/cpp/interop/server_helper.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/interop/server_helper.h b/test/cpp/interop/server_helper.h
index 38c2fba9cf..12865e4032 100644
--- a/test/cpp/interop/server_helper.h
+++ b/test/cpp/interop/server_helper.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/interop/server_main.cc b/test/cpp/interop/server_main.cc
index 8a718701c3..889874fe49 100644
--- a/test/cpp/interop/server_main.cc
+++ b/test/cpp/interop/server_main.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/interop/stress_interop_client.cc b/test/cpp/interop/stress_interop_client.cc
index b581e9b33c..04671fb935 100644
--- a/test/cpp/interop/stress_interop_client.cc
+++ b/test/cpp/interop/stress_interop_client.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/interop/stress_test.cc b/test/cpp/interop/stress_test.cc
index 162f7b3778..38caf31b76 100644
--- a/test/cpp/interop/stress_test.cc
+++ b/test/cpp/interop/stress_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -98,11 +98,11 @@ DEFINE_string(test_cases, "",
" 'large_unary', 10% of the time and 'empty_stream' the remaining"
" 70% of the time");
-DEFINE_int32(log_level, GPR_LOG_SEVERITY_DEBUG,
+DEFINE_int32(log_level, GPR_LOG_SEVERITY_INFO,
"Severity level of messages that should be logged. Any messages "
"greater than or equal to the level set here will be logged. "
"The choices are: 0 (GPR_LOG_SEVERITY_DEBUG), 1 "
- "(GPR_LOG_SEVERITY_INFO) and 2 (GPR_LOG_SEVERITY_ERROR.");
+ "(GPR_LOG_SEVERITY_INFO) and 2 (GPR_LOG_SEVERITY_ERROR)");
using grpc::testing::kTestCaseList;
using grpc::testing::MetricsService;
diff --git a/test/cpp/qps/async_streaming_ping_pong_test.cc b/test/cpp/qps/async_streaming_ping_pong_test.cc
index d9fbb39df7..4b6bae0d5c 100644
--- a/test/cpp/qps/async_streaming_ping_pong_test.cc
+++ b/test/cpp/qps/async_streaming_ping_pong_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/async_unary_ping_pong_test.cc b/test/cpp/qps/async_unary_ping_pong_test.cc
index 5ab86197b0..571a8b7300 100644
--- a/test/cpp/qps/async_unary_ping_pong_test.cc
+++ b/test/cpp/qps/async_unary_ping_pong_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/client.h b/test/cpp/qps/client.h
index 92e77eed9b..e958141d4e 100644
--- a/test/cpp/qps/client.h
+++ b/test/cpp/qps/client.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/client_async.cc b/test/cpp/qps/client_async.cc
index dcdb665a9a..e72cef2811 100644
--- a/test/cpp/qps/client_async.cc
+++ b/test/cpp/qps/client_async.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/client_sync.cc b/test/cpp/qps/client_sync.cc
index a1489d88e6..fb161f70ee 100644
--- a/test/cpp/qps/client_sync.cc
+++ b/test/cpp/qps/client_sync.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/driver.cc b/test/cpp/qps/driver.cc
index 6cca7dec2b..c87ad6461d 100644
--- a/test/cpp/qps/driver.cc
+++ b/test/cpp/qps/driver.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/driver.h b/test/cpp/qps/driver.h
index 1e2e28029e..21e51529d5 100644
--- a/test/cpp/qps/driver.h
+++ b/test/cpp/qps/driver.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/generic_async_streaming_ping_pong_test.cc b/test/cpp/qps/generic_async_streaming_ping_pong_test.cc
index fc06cddfef..ea373ece84 100644
--- a/test/cpp/qps/generic_async_streaming_ping_pong_test.cc
+++ b/test/cpp/qps/generic_async_streaming_ping_pong_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/interarrival.h b/test/cpp/qps/interarrival.h
index b6fd67b77c..0cc78533ce 100644
--- a/test/cpp/qps/interarrival.h
+++ b/test/cpp/qps/interarrival.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/perf_db_client.h b/test/cpp/qps/perf_db_client.h
index 668083b811..b74c70d86b 100644
--- a/test/cpp/qps/perf_db_client.h
+++ b/test/cpp/qps/perf_db_client.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/qps-sweep.sh b/test/cpp/qps/qps-sweep.sh
index 9d3f053a7b..8f7fb92772 100755
--- a/test/cpp/qps/qps-sweep.sh
+++ b/test/cpp/qps/qps-sweep.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/qps_driver.cc b/test/cpp/qps/qps_driver.cc
index f9bd01b2a1..e412c6919a 100644
--- a/test/cpp/qps/qps_driver.cc
+++ b/test/cpp/qps/qps_driver.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/qps_interarrival_test.cc b/test/cpp/qps/qps_interarrival_test.cc
index 77e81fb84b..48585af756 100644
--- a/test/cpp/qps/qps_interarrival_test.cc
+++ b/test/cpp/qps/qps_interarrival_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/qps_openloop_test.cc b/test/cpp/qps/qps_openloop_test.cc
index 2ae0afbcbe..8dc50ac6d8 100644
--- a/test/cpp/qps/qps_openloop_test.cc
+++ b/test/cpp/qps/qps_openloop_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/qps_test.cc b/test/cpp/qps/qps_test.cc
index b6a2e1ef30..c3e72d9b17 100644
--- a/test/cpp/qps/qps_test.cc
+++ b/test/cpp/qps/qps_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/qps_test_with_poll.cc b/test/cpp/qps/qps_test_with_poll.cc
index 647aaac4c4..c64e6c9d49 100644
--- a/test/cpp/qps/qps_test_with_poll.cc
+++ b/test/cpp/qps/qps_test_with_poll.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/qps_worker.cc b/test/cpp/qps/qps_worker.cc
index b83e9d1dd7..f514e23e85 100644
--- a/test/cpp/qps/qps_worker.cc
+++ b/test/cpp/qps/qps_worker.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/qps_worker.h b/test/cpp/qps/qps_worker.h
index 624c182100..7f04c92cae 100644
--- a/test/cpp/qps/qps_worker.h
+++ b/test/cpp/qps/qps_worker.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/secure_sync_unary_ping_pong_test.cc b/test/cpp/qps/secure_sync_unary_ping_pong_test.cc
index 946c76f747..d0c47d102a 100644
--- a/test/cpp/qps/secure_sync_unary_ping_pong_test.cc
+++ b/test/cpp/qps/secure_sync_unary_ping_pong_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/server.h b/test/cpp/qps/server.h
index de46452c3d..e8bc396696 100644
--- a/test/cpp/qps/server.h
+++ b/test/cpp/qps/server.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/server_async.cc b/test/cpp/qps/server_async.cc
index 1bfb07013d..a68f1ae7b6 100644
--- a/test/cpp/qps/server_async.cc
+++ b/test/cpp/qps/server_async.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/server_sync.cc b/test/cpp/qps/server_sync.cc
index b7682f5763..9e64f470bf 100644
--- a/test/cpp/qps/server_sync.cc
+++ b/test/cpp/qps/server_sync.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/sync_streaming_ping_pong_test.cc b/test/cpp/qps/sync_streaming_ping_pong_test.cc
index ee1bbc7a11..67c62f4bae 100644
--- a/test/cpp/qps/sync_streaming_ping_pong_test.cc
+++ b/test/cpp/qps/sync_streaming_ping_pong_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/sync_unary_ping_pong_test.cc b/test/cpp/qps/sync_unary_ping_pong_test.cc
index 4dccfee190..aa0c0c3013 100644
--- a/test/cpp/qps/sync_unary_ping_pong_test.cc
+++ b/test/cpp/qps/sync_unary_ping_pong_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/usage_timer.cc b/test/cpp/qps/usage_timer.cc
index 6663a9ac10..ff595b2ba0 100644
--- a/test/cpp/qps/usage_timer.cc
+++ b/test/cpp/qps/usage_timer.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/usage_timer.h b/test/cpp/qps/usage_timer.h
index d19f820564..8343cd6653 100644
--- a/test/cpp/qps/usage_timer.h
+++ b/test/cpp/qps/usage_timer.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/qps/worker.cc b/test/cpp/qps/worker.cc
index f42cfe3255..2068b7c213 100644
--- a/test/cpp/qps/worker.cc
+++ b/test/cpp/qps/worker.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/util/benchmark_config.cc b/test/cpp/util/benchmark_config.cc
index 5c3a4cf35d..746d3d7ae6 100644
--- a/test/cpp/util/benchmark_config.cc
+++ b/test/cpp/util/benchmark_config.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/util/byte_buffer_test.cc b/test/cpp/util/byte_buffer_test.cc
index bc172e9717..1167c790d4 100644
--- a/test/cpp/util/byte_buffer_test.cc
+++ b/test/cpp/util/byte_buffer_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/util/cli_call.cc b/test/cpp/util/cli_call.cc
index d452be360d..99fad7f2fe 100644
--- a/test/cpp/util/cli_call.cc
+++ b/test/cpp/util/cli_call.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/util/cli_call_test.cc b/test/cpp/util/cli_call_test.cc
index 474ac282ce..75e90f824f 100644
--- a/test/cpp/util/cli_call_test.cc
+++ b/test/cpp/util/cli_call_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/util/grpc_cli.cc b/test/cpp/util/grpc_cli.cc
index 0b0bc20a35..68cf4114a8 100644
--- a/test/cpp/util/grpc_cli.cc
+++ b/test/cpp/util/grpc_cli.cc
@@ -1,6 +1,6 @@
/*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/util/metrics_server.cc b/test/cpp/util/metrics_server.cc
index 34d51eb316..d9b44a6a92 100644
--- a/test/cpp/util/metrics_server.cc
+++ b/test/cpp/util/metrics_server.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/util/subprocess.cc b/test/cpp/util/subprocess.cc
index 33f3820a2b..c31802b9a3 100644
--- a/test/cpp/util/subprocess.cc
+++ b/test/cpp/util/subprocess.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/util/test_config.cc b/test/cpp/util/test_config.cc
index c446ae55c7..8711746129 100644
--- a/test/cpp/util/test_config.cc
+++ b/test/cpp/util/test_config.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/cpp/util/time_test.cc b/test/cpp/util/time_test.cc
index e78c85b43a..a292c210c8 100644
--- a/test/cpp/util/time_test.cc
+++ b/test/cpp/util/time_test.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/distrib/csharp/DistribTest/Program.cs b/test/distrib/csharp/DistribTest/Program.cs
index e944648f17..c68b380547 100644
--- a/test/distrib/csharp/DistribTest/Program.cs
+++ b/test/distrib/csharp/DistribTest/Program.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015-2016, Google Inc.
+// Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
diff --git a/test/distrib/csharp/run_distrib_test.sh b/test/distrib/csharp/run_distrib_test.sh
index 934174a9a4..64e98d8009 100755
--- a/test/distrib/csharp/run_distrib_test.sh
+++ b/test/distrib/csharp/run_distrib_test.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/test/distrib/csharp/update_version.sh b/test/distrib/csharp/update_version.sh
index b0d07721f6..189d0ad357 100755
--- a/test/distrib/csharp/update_version.sh
+++ b/test/distrib/csharp/update_version.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/test/distrib/node/distrib_test.js b/test/distrib/node/distrib_test.js
index cdd8eba8b8..8efd33ad8d 100755
--- a/test/distrib/node/distrib_test.js
+++ b/test/distrib/node/distrib_test.js
@@ -1,7 +1,7 @@
#!/usr/bin/env node
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/test/distrib/node/run_distrib_test.sh b/test/distrib/node/run_distrib_test.sh
index 9b8f15771b..d429eb27e1 100755
--- a/test/distrib/node/run_distrib_test.sh
+++ b/test/distrib/node/run_distrib_test.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -28,23 +28,31 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+function finish() {
+ rv=$?
+ kill $STATIC_PID || true
+ curl "localhost:32767/drop/$STATIC_PORT" || true
+ exit $rv
+}
+
+trap finish EXIT
+
NODE_VERSION=$1
source ~/.nvm/nvm.sh
-set -ex
cd $(dirname $0)
nvm install $NODE_VERSION
+set -ex
npm install -g node-static
-# Kill off existing static servers
-kill -9 $(ps aux | grep '[n]ode .*static' | awk '{print $2}') || true
-
STATIC_SERVER=127.0.0.1
-STATIC_PORT=8080
+# If port_server is running, get port from that. Otherwise, assume we're in
+# docker and use 8080
+STATIC_PORT=$(curl 'localhost:32767/get' || echo '8080')
-# Serves the input_artifacts directory statically at localhost:8080
+# Serves the input_artifacts directory statically at localhost:
static "$EXTERNAL_GIT_ROOT/input_artifacts" -a $STATIC_SERVER -p $STATIC_PORT &
STATIC_PID=$!
@@ -52,6 +60,4 @@ STATIC_URL="http://$STATIC_SERVER:$STATIC_PORT/"
npm install --unsafe-perm $STATIC_URL/grpc.tgz --grpc_node_binary_host_mirror=$STATIC_URL
-kill -9 $STATIC_PID
-
./distrib_test.js
diff --git a/test/distrib/php/run_distrib_test.sh b/test/distrib/php/run_distrib_test.sh
index 43b28d8429..5c86283282 100755
--- a/test/distrib/php/run_distrib_test.sh
+++ b/test/distrib/php/run_distrib_test.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/test/distrib/python/run_distrib_test.sh b/test/distrib/python/run_distrib_test.sh
index 8fd7ffb54c..79893af8e5 100755
--- a/test/distrib/python/run_distrib_test.sh
+++ b/test/distrib/python/run_distrib_test.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/test/distrib/ruby/run_distrib_test.sh b/test/distrib/ruby/run_distrib_test.sh
index be60e44b63..b0954b0499 100755
--- a/test/distrib/ruby/run_distrib_test.sh
+++ b/test/distrib/ruby/run_distrib_test.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/buildgen/build-cleaner.py b/tools/buildgen/build-cleaner.py
index 12054da238..f09a01fc57 100755
--- a/tools/buildgen/build-cleaner.py
+++ b/tools/buildgen/build-cleaner.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python2.7
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/buildgen/bunch.py b/tools/buildgen/bunch.py
index 3f5af53778..9d9dafaad0 100755
--- a/tools/buildgen/bunch.py
+++ b/tools/buildgen/bunch.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/buildgen/generate_build_additions.sh b/tools/buildgen/generate_build_additions.sh
index 4e7ba9ebb9..c631713049 100644
--- a/tools/buildgen/generate_build_additions.sh
+++ b/tools/buildgen/generate_build_additions.sh
@@ -1,5 +1,5 @@
#!/bin/sh
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/buildgen/generate_projects.py b/tools/buildgen/generate_projects.py
index 0602d93e56..5f3af7738b 100755
--- a/tools/buildgen/generate_projects.py
+++ b/tools/buildgen/generate_projects.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python2.7
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/buildgen/mako_renderer.py b/tools/buildgen/mako_renderer.py
index 5f23f123c2..f629e68eb9 100755
--- a/tools/buildgen/mako_renderer.py
+++ b/tools/buildgen/mako_renderer.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python2.7
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/buildgen/plugins/expand_bin_attrs.py b/tools/buildgen/plugins/expand_bin_attrs.py
index c30df2ad89..dc72bf3b9d 100755
--- a/tools/buildgen/plugins/expand_bin_attrs.py
+++ b/tools/buildgen/plugins/expand_bin_attrs.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/buildgen/plugins/expand_filegroups.py b/tools/buildgen/plugins/expand_filegroups.py
index 156bdc4417..14cb616027 100755
--- a/tools/buildgen/plugins/expand_filegroups.py
+++ b/tools/buildgen/plugins/expand_filegroups.py
@@ -42,6 +42,9 @@ def excluded(filename, exclude_res):
return False
+FILEGROUP_LISTS = ['src', 'headers', 'public_headers']
+
+
def mako_plugin(dictionary):
"""The exported plugin code for expand_filegroups.
@@ -54,21 +57,60 @@ def mako_plugin(dictionary):
filegroups_list = dictionary.get('filegroups')
filegroups = {}
- for fg in filegroups_list:
- filegroups[fg['name']] = fg
+ todo = filegroups_list[:]
+ skips = 0
+
+ while todo:
+ assert skips != len(todo), "infinite loop in filegroup uses clauses"
+ # take the first element of the todo list
+ cur = todo[0]
+ todo = todo[1:]
+ # check all uses filegroups are present (if no, skip and come back later)
+ skip = False
+ for uses in cur.get('uses', []):
+ if uses not in filegroups:
+ skip = True
+ if skip:
+ skips += 1
+ todo.append(cur)
+ else:
+ skips = 0
+ assert 'plugins' not in cur
+ plugins = []
+ for uses in cur.get('uses', []):
+ for plugin in filegroups[uses]['plugins']:
+ if plugin not in plugins:
+ plugins.append(plugin)
+ for lst in FILEGROUP_LISTS:
+ vals = cur.get(lst, [])
+ vals.extend(filegroups[uses].get(lst, []))
+ cur[lst] = vals
+ cur_plugin_name = cur.get('plugin')
+ if cur_plugin_name:
+ plugins.append(cur_plugin_name)
+ cur['plugins'] = plugins
+ filegroups[cur['name']] = cur
+
+ # the above expansion can introduce duplicate filenames: contract them here
+ for fg in filegroups.itervalues():
+ for lst in FILEGROUP_LISTS:
+ fg[lst] = sorted(list(set(fg.get(lst, []))))
for lib in libs:
+ assert 'plugins' not in lib
+ plugins = []
for fg_name in lib.get('filegroups', []):
fg = filegroups[fg_name]
-
- src = lib.get('src', [])
- src.extend(fg.get('src', []))
- lib['src'] = src
-
- headers = lib.get('headers', [])
- headers.extend(fg.get('headers', []))
- lib['headers'] = headers
-
- public_headers = lib.get('public_headers', [])
- public_headers.extend(fg.get('public_headers', []))
- lib['public_headers'] = public_headers
+ for plugin in fg['plugins']:
+ if plugin not in plugins:
+ plugins.append(plugin)
+ for lst in FILEGROUP_LISTS:
+ vals = lib.get(lst, [])
+ vals.extend(fg.get(lst, []))
+ lib[lst] = vals
+ lib['plugins'] = plugins
+ if lib.get('generate_plugin_registry', False):
+ lib['src'].append('src/core/plugin_registry/%s_plugin_registry.c' %
+ lib['name'])
+ for lst in FILEGROUP_LISTS:
+ lib[lst] = sorted(list(set(lib.get(lst, []))))
diff --git a/tools/buildgen/plugins/make_fuzzer_tests.py b/tools/buildgen/plugins/make_fuzzer_tests.py
new file mode 100644
index 0000000000..806489bcd2
--- /dev/null
+++ b/tools/buildgen/plugins/make_fuzzer_tests.py
@@ -0,0 +1,57 @@
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Create tests for each fuzzer"""
+
+import copy
+import glob
+
+def mako_plugin(dictionary):
+ targets = dictionary['targets']
+ tests = dictionary['tests']
+ for tgt in targets:
+ if tgt['build'] == 'fuzzer':
+ new_target = copy.deepcopy(tgt)
+ new_target['build'] = 'test'
+ new_target['name'] += '_one_entry'
+ new_target['run'] = False
+ new_target['deps'].insert(0, 'one_input_fuzzer')
+ targets.append(new_target)
+ for corpus in new_target['corpus_dirs']:
+ for fn in sorted(glob.glob('%s/*' % corpus)):
+ tests.append({
+ 'name': new_target['name'],
+ 'args': [fn],
+ 'exclude_configs': [],
+ 'platforms': ['linux', 'mac', 'windows', 'posix'],
+ 'ci_platforms': ['linux', 'mac', 'windows', 'posix'],
+ 'flaky': False,
+ 'language': 'c',
+ 'cpu_cost': 0.1,
+ })
diff --git a/tools/buildgen/plugins/transitive_dependencies.py b/tools/buildgen/plugins/transitive_dependencies.py
index 01e7f61ea9..176c8fa896 100644
--- a/tools/buildgen/plugins/transitive_dependencies.py
+++ b/tools/buildgen/plugins/transitive_dependencies.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/codegen/core/gen_hpack_tables.c b/tools/codegen/core/gen_hpack_tables.c
index d809bd36e5..33c68a2c69 100644
--- a/tools/codegen/core/gen_hpack_tables.c
+++ b/tools/codegen/core/gen_hpack_tables.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -39,7 +39,7 @@
#include <string.h>
#include <grpc/support/log.h>
-#include "src/core/lib/transport/chttp2/huffsyms.h"
+#include "src/core/ext/transport/chttp2/transport/huffsyms.h"
/*
* first byte LUT generation
diff --git a/tools/codegen/core/gen_legal_metadata_characters.c b/tools/codegen/core/gen_legal_metadata_characters.c
index 10605d52bf..6ac32656cb 100644
--- a/tools/codegen/core/gen_legal_metadata_characters.c
+++ b/tools/codegen/core/gen_legal_metadata_characters.c
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/tools/codegen/core/gen_load_balancing_proto.sh b/tools/codegen/core/gen_load_balancing_proto.sh
index 6a5363eeb3..339da0a733 100755
--- a/tools/codegen/core/gen_load_balancing_proto.sh
+++ b/tools/codegen/core/gen_load_balancing_proto.sh
@@ -82,7 +82,7 @@ fi
readonly GRPC_ROOT=$PWD
-OUTPUT_DIR="$GRPC_ROOT/src/core/lib/proto/grpc/lb/v0"
+OUTPUT_DIR="$GRPC_ROOT/src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0"
if [ $# -eq 2 ]; then
mkdir -p "$2"
if [ $? != 0 ]; then
@@ -122,7 +122,7 @@ protoc \
"$(basename $1)"
readonly PROTO_BASENAME=$(basename $1 .proto)
-sed -i "s:$PROTO_BASENAME.pb.h:src/core/lib/proto/grpc/lb/v0/$PROTO_BASENAME.pb.h:g" \
+sed -i "s:$PROTO_BASENAME.pb.h:src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/$PROTO_BASENAME.pb.h:g" \
"$OUTPUT_DIR/$PROTO_BASENAME.pb.c"
# prepend copyright
diff --git a/tools/codegen/core/gen_static_metadata.py b/tools/codegen/core/gen_static_metadata.py
index 70d41414f4..b4ba02bbe5 100755
--- a/tools/codegen/core/gen_static_metadata.py
+++ b/tools/codegen/core/gen_static_metadata.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python2.7
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -69,6 +69,7 @@ CONFIG = [
(':scheme', 'grpc'),
(':authority', ''),
(':method', 'GET'),
+ (':method', 'PUT'),
(':path', '/'),
(':path', '/index.html'),
(':status', '204'),
@@ -232,20 +233,20 @@ with open(sys.argv[0]) as my_source:
if line[0] != '#':
break
copyright.append(line)
- put_banner([H,C], [line[1:].strip() for line in copyright])
+ put_banner([H,C], [line[2:].rstrip() for line in copyright])
put_banner([H,C],
"""WARNING: Auto-generated code.
-To make changes to this file, change tools/codegen/core/gen_static_metadata.py,
-and then re-run it.
+To make changes to this file, change
+tools/codegen/core/gen_static_metadata.py, and then re-run it.
-See metadata.h for an explanation of the interface here, and metadata.c for an
-explanation of what's going on.
+See metadata.h for an explanation of the interface here, and metadata.c for
+an explanation of what's going on.
""".splitlines())
-print >>H, '#ifndef GRPC_INTERNAL_CORE_TRANSPORT_STATIC_METADATA_H'
-print >>H, '#define GRPC_INTERNAL_CORE_TRANSPORT_STATIC_METADATA_H'
+print >>H, '#ifndef GRPC_CORE_LIB_TRANSPORT_STATIC_METADATA_H'
+print >>H, '#define GRPC_CORE_LIB_TRANSPORT_STATIC_METADATA_H'
print >>H
print >>H, '#include "src/core/lib/transport/metadata.h"'
print >>H
@@ -264,13 +265,13 @@ print >>C
print >>H, '#define GRPC_STATIC_MDELEM_COUNT %d' % len(all_elems)
print >>H, 'extern grpc_mdelem grpc_static_mdelem_table[GRPC_STATIC_MDELEM_COUNT];'
-print >>H, 'extern gpr_uintptr grpc_static_mdelem_user_data[GRPC_STATIC_MDELEM_COUNT];'
+print >>H, 'extern uintptr_t grpc_static_mdelem_user_data[GRPC_STATIC_MDELEM_COUNT];'
for i, elem in enumerate(all_elems):
print >>H, '/* "%s": "%s" */' % elem
print >>H, '#define %s (&grpc_static_mdelem_table[%d])' % (mangle(elem).upper(), i)
print >>H
print >>C, 'grpc_mdelem grpc_static_mdelem_table[GRPC_STATIC_MDELEM_COUNT];'
-print >>C, 'gpr_uintptr grpc_static_mdelem_user_data[GRPC_STATIC_MDELEM_COUNT] = {'
+print >>C, 'uintptr_t grpc_static_mdelem_user_data[GRPC_STATIC_MDELEM_COUNT] = {'
print >>C, ' %s' % ','.join('%d' % static_userdata.get(elem, 0) for elem in all_elems)
print >>C, '};'
print >>C
@@ -285,8 +286,8 @@ def md_idx(m):
if m == m2:
return i
-print >>H, 'extern const gpr_uint8 grpc_static_metadata_elem_indices[GRPC_STATIC_MDELEM_COUNT*2];'
-print >>C, 'const gpr_uint8 grpc_static_metadata_elem_indices[GRPC_STATIC_MDELEM_COUNT*2] = {'
+print >>H, 'extern const uint8_t grpc_static_metadata_elem_indices[GRPC_STATIC_MDELEM_COUNT*2];'
+print >>C, 'const uint8_t grpc_static_metadata_elem_indices[GRPC_STATIC_MDELEM_COUNT*2] = {'
print >>C, ','.join('%d' % str_idx(x) for x in itertools.chain.from_iterable([a,b] for a, b in all_elems))
print >>C, '};'
print >>C
@@ -297,15 +298,15 @@ print >>C, '%s' % ',\n'.join(' "%s"' % s for s in all_strs)
print >>C, '};'
print >>C
-print >>H, 'extern const gpr_uint8 grpc_static_accept_encoding_metadata[%d];' % (1 << len(COMPRESSION_ALGORITHMS))
-print >>C, 'const gpr_uint8 grpc_static_accept_encoding_metadata[%d] = {' % (1 << len(COMPRESSION_ALGORITHMS))
+print >>H, 'extern const uint8_t grpc_static_accept_encoding_metadata[%d];' % (1 << len(COMPRESSION_ALGORITHMS))
+print >>C, 'const uint8_t grpc_static_accept_encoding_metadata[%d] = {' % (1 << len(COMPRESSION_ALGORITHMS))
print >>C, '0,%s' % ','.join('%d' % md_idx(elem) for elem in compression_elems)
print >>C, '};'
print >>C
print >>H, '#define GRPC_MDELEM_ACCEPT_ENCODING_FOR_ALGORITHMS(algs) (&grpc_static_mdelem_table[grpc_static_accept_encoding_metadata[(algs)]])'
-print >>H, '#endif /* GRPC_INTERNAL_CORE_TRANSPORT_STATIC_METADATA_H */'
+print >>H, '#endif /* GRPC_CORE_LIB_TRANSPORT_STATIC_METADATA_H */'
H.close()
C.close()
diff --git a/tools/distrib/build_ruby_environment_macos.sh b/tools/distrib/build_ruby_environment_macos.sh
index ff3a388eaf..64fad7c606 100644
--- a/tools/distrib/build_ruby_environment_macos.sh
+++ b/tools/distrib/build_ruby_environment_macos.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/distrib/check_copyright.py b/tools/distrib/check_copyright.py
index 5badbf484b..68411c631d 100755
--- a/tools/distrib/check_copyright.py
+++ b/tools/distrib/check_copyright.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python2.7
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -155,23 +155,7 @@ for filename in filename_list:
continue
m = re.search(re_license, text)
if m:
- gdict = m.groupdict()
- last_modified = int(subprocess.check_output('git log -1 --format="%ad" --date=short -- ' + filename, shell=True)[0:4])
- latest_claimed = int(gdict['last_year'])
- if last_modified > latest_claimed:
- print '%s modified %d but copyright only extends to %d' % (filename, last_modified, latest_claimed)
- ok = False
- if args.fix:
- span_start, span_end = m.span(2)
- if not gdict['first_year']:
- # prepend the old year to the current one.
- text = '{}-{}{}'.format(text[:span_end], last_modified, text[span_end:])
- else: # already a year range
- # simply update the last year
- text = '{}{}{}'.format(text[:span_start], last_modified, text[span_end:])
- save(filename, text)
- print 'Fixed!'
- ok = True
+ pass
elif 'DO NOT EDIT' not in text and 'AssemblyInfo.cs' not in filename and filename != 'src/boringssl/err_data.c':
log(1, 'copyright missing', filename)
ok = False
diff --git a/tools/distrib/check_include_guards.py b/tools/distrib/check_include_guards.py
index 463e316885..6406fe6ae7 100755
--- a/tools/distrib/check_include_guards.py
+++ b/tools/distrib/check_include_guards.py
@@ -167,7 +167,7 @@ argp.add_argument('--precommit',
args = argp.parse_args()
KNOWN_BAD = set([
- 'src/core/lib/proto/grpc/lb/v0/load_balancer.pb.h',
+ 'src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h',
])
diff --git a/tools/distrib/check_nanopb_output.sh b/tools/distrib/check_nanopb_output.sh
index e0a60946a9..4f68e4c596 100755
--- a/tools/distrib/check_nanopb_output.sh
+++ b/tools/distrib/check_nanopb_output.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -60,7 +60,7 @@ PATH="$PROTOC_PATH:$PATH" ./tools/codegen/core/gen_load_balancing_proto.sh \
$NANOPB_TMP_OUTPUT
# compare outputs to checked compiled code
-if ! diff -r $NANOPB_TMP_OUTPUT src/core/lib/proto/grpc/lb/v0; then
- echo "Outputs differ: $NANOPB_TMP_OUTPUT vs src/core/lib/proto/grpc/lb/v0"
+if ! diff -r $NANOPB_TMP_OUTPUT src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0; then
+ echo "Outputs differ: $NANOPB_TMP_OUTPUT vs src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0"
exit 2
fi
diff --git a/tools/distrib/check_windows_dlls.sh b/tools/distrib/check_windows_dlls.sh
index efb66e9e75..65ac353558 100755
--- a/tools/distrib/check_windows_dlls.sh
+++ b/tools/distrib/check_windows_dlls.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/distrib/clang_format_code.sh b/tools/distrib/clang_format_code.sh
index d904a841d4..858e074898 100755
--- a/tools/distrib/clang_format_code.sh
+++ b/tools/distrib/clang_format_code.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/distrib/python/docgen.py b/tools/distrib/python/docgen.py
index 161d83e3b7..72c65ad14a 100755
--- a/tools/distrib/python/docgen.py
+++ b/tools/distrib/python/docgen.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python2.7
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/distrib/python/submit.py b/tools/distrib/python/submit.py
index 9b012be672..f581b7705c 100755
--- a/tools/distrib/python/submit.py
+++ b/tools/distrib/python/submit.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python2.7
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/csharp_centos7_x64/Dockerfile b/tools/dockerfile/distribtest/csharp_centos7_x64/Dockerfile
index 03b5b364f8..c917b29113 100644
--- a/tools/dockerfile/distribtest/csharp_centos7_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/csharp_centos7_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/csharp_jessie_x64/Dockerfile b/tools/dockerfile/distribtest/csharp_jessie_x64/Dockerfile
index 1cadba3b7b..249095a47b 100644
--- a/tools/dockerfile/distribtest/csharp_jessie_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/csharp_jessie_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/csharp_jessie_x86/Dockerfile b/tools/dockerfile/distribtest/csharp_jessie_x86/Dockerfile
index be962828c2..9eda551d9c 100644
--- a/tools/dockerfile/distribtest/csharp_jessie_x86/Dockerfile
+++ b/tools/dockerfile/distribtest/csharp_jessie_x86/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/csharp_ubuntu1404_x64/Dockerfile b/tools/dockerfile/distribtest/csharp_ubuntu1404_x64/Dockerfile
index 3d04d032b5..85daea450d 100644
--- a/tools/dockerfile/distribtest/csharp_ubuntu1404_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/csharp_ubuntu1404_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/csharp_ubuntu1504_x64/Dockerfile b/tools/dockerfile/distribtest/csharp_ubuntu1504_x64/Dockerfile
index 5eec570491..ec16105155 100644
--- a/tools/dockerfile/distribtest/csharp_ubuntu1504_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/csharp_ubuntu1504_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/csharp_ubuntu1510_x64/Dockerfile b/tools/dockerfile/distribtest/csharp_ubuntu1510_x64/Dockerfile
index a6d60fb4b9..110aa2ab86 100644
--- a/tools/dockerfile/distribtest/csharp_ubuntu1510_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/csharp_ubuntu1510_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/csharp_ubuntu1604_x64/Dockerfile b/tools/dockerfile/distribtest/csharp_ubuntu1604_x64/Dockerfile
index 61472704d7..4ef076669b 100644
--- a/tools/dockerfile/distribtest/csharp_ubuntu1604_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/csharp_ubuntu1604_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/csharp_wheezy_x64/Dockerfile b/tools/dockerfile/distribtest/csharp_wheezy_x64/Dockerfile
index 9039c3c509..d9e64fe9d1 100644
--- a/tools/dockerfile/distribtest/csharp_wheezy_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/csharp_wheezy_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/php_jessie_x64/Dockerfile b/tools/dockerfile/distribtest/php_jessie_x64/Dockerfile
index d5d3fd626f..e8cd6e760e 100644
--- a/tools/dockerfile/distribtest/php_jessie_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/php_jessie_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/python_arch_x64/Dockerfile b/tools/dockerfile/distribtest/python_arch_x64/Dockerfile
index c4f2431080..2f79cc3017 100644
--- a/tools/dockerfile/distribtest/python_arch_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_arch_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/python_centos6_x64/Dockerfile b/tools/dockerfile/distribtest/python_centos6_x64/Dockerfile
index 79dae0742f..d4f473792e 100644
--- a/tools/dockerfile/distribtest/python_centos6_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_centos6_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/python_centos7_x64/Dockerfile b/tools/dockerfile/distribtest/python_centos7_x64/Dockerfile
index 114957b573..ca64fa7bea 100644
--- a/tools/dockerfile/distribtest/python_centos7_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_centos7_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/python_fedora20_x64/Dockerfile b/tools/dockerfile/distribtest/python_fedora20_x64/Dockerfile
index 5e6cb15762..8b0f769c26 100644
--- a/tools/dockerfile/distribtest/python_fedora20_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_fedora20_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/python_fedora21_x64/Dockerfile b/tools/dockerfile/distribtest/python_fedora21_x64/Dockerfile
index f1b0e2f4b2..fcbe053f1f 100644
--- a/tools/dockerfile/distribtest/python_fedora21_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_fedora21_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/python_fedora22_x64/Dockerfile b/tools/dockerfile/distribtest/python_fedora22_x64/Dockerfile
index c6415946c3..ddcacb4257 100644
--- a/tools/dockerfile/distribtest/python_fedora22_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_fedora22_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/python_fedora23_x64/Dockerfile b/tools/dockerfile/distribtest/python_fedora23_x64/Dockerfile
index 6c834d2bc2..d45195e509 100644
--- a/tools/dockerfile/distribtest/python_fedora23_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_fedora23_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/python_jessie_x64/Dockerfile b/tools/dockerfile/distribtest/python_jessie_x64/Dockerfile
index 5778d604c8..83df4ed4fa 100644
--- a/tools/dockerfile/distribtest/python_jessie_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_jessie_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/python_jessie_x86/Dockerfile b/tools/dockerfile/distribtest/python_jessie_x86/Dockerfile
index e9cf99142b..19addb2912 100644
--- a/tools/dockerfile/distribtest/python_jessie_x86/Dockerfile
+++ b/tools/dockerfile/distribtest/python_jessie_x86/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/python_opensuse_x64/Dockerfile b/tools/dockerfile/distribtest/python_opensuse_x64/Dockerfile
index ea5d4c72a1..fe1406be98 100644
--- a/tools/dockerfile/distribtest/python_opensuse_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_opensuse_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/python_ubuntu1204_x64/Dockerfile b/tools/dockerfile/distribtest/python_ubuntu1204_x64/Dockerfile
index a48ce0eeef..4068fbe2ba 100644
--- a/tools/dockerfile/distribtest/python_ubuntu1204_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_ubuntu1204_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/python_ubuntu1404_x64/Dockerfile b/tools/dockerfile/distribtest/python_ubuntu1404_x64/Dockerfile
index 18dbfd4657..0858fb0c06 100644
--- a/tools/dockerfile/distribtest/python_ubuntu1404_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_ubuntu1404_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/python_ubuntu1504_x64/Dockerfile b/tools/dockerfile/distribtest/python_ubuntu1504_x64/Dockerfile
index 444a54d14b..ed6ffddbec 100644
--- a/tools/dockerfile/distribtest/python_ubuntu1504_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_ubuntu1504_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/python_ubuntu1510_x64/Dockerfile b/tools/dockerfile/distribtest/python_ubuntu1510_x64/Dockerfile
index 245ffb9413..9e3e0c260f 100644
--- a/tools/dockerfile/distribtest/python_ubuntu1510_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_ubuntu1510_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/python_ubuntu1604_x64/Dockerfile b/tools/dockerfile/distribtest/python_ubuntu1604_x64/Dockerfile
index a1ac3051ba..5098da8a26 100644
--- a/tools/dockerfile/distribtest/python_ubuntu1604_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_ubuntu1604_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/python_wheezy_x64/Dockerfile b/tools/dockerfile/distribtest/python_wheezy_x64/Dockerfile
index 46353b92d6..66165ee929 100644
--- a/tools/dockerfile/distribtest/python_wheezy_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_wheezy_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/ruby_centos6_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_centos6_x64/Dockerfile
index b943b67e8a..dcfc07a681 100644
--- a/tools/dockerfile/distribtest/ruby_centos6_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_centos6_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/ruby_centos7_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_centos7_x64/Dockerfile
index 85650201fb..056bd45ecc 100644
--- a/tools/dockerfile/distribtest/ruby_centos7_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_centos7_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/ruby_fedora20_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_fedora20_x64/Dockerfile
index 437337ed9a..f4151e7c4f 100644
--- a/tools/dockerfile/distribtest/ruby_fedora20_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_fedora20_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/ruby_fedora21_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_fedora21_x64/Dockerfile
index b567c5b109..78d7575a86 100644
--- a/tools/dockerfile/distribtest/ruby_fedora21_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_fedora21_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/ruby_fedora22_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_fedora22_x64/Dockerfile
index 58d3d9341a..f574c62493 100644
--- a/tools/dockerfile/distribtest/ruby_fedora22_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_fedora22_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/ruby_fedora23_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_fedora23_x64/Dockerfile
index 9f07f51e56..fe6c72aa69 100644
--- a/tools/dockerfile/distribtest/ruby_fedora23_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_fedora23_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/ruby_jessie_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_jessie_x64/Dockerfile
index cc377b7a58..57f98efcd0 100644
--- a/tools/dockerfile/distribtest/ruby_jessie_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_jessie_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/ruby_jessie_x86/Dockerfile b/tools/dockerfile/distribtest/ruby_jessie_x86/Dockerfile
index 3fe3e2bdce..938bc5edf1 100644
--- a/tools/dockerfile/distribtest/ruby_jessie_x86/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_jessie_x86/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/ruby_opensuse_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_opensuse_x64/Dockerfile
index c98d6911a3..c5b011316c 100644
--- a/tools/dockerfile/distribtest/ruby_opensuse_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_opensuse_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/ruby_ubuntu1204_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_ubuntu1204_x64/Dockerfile
index 782368bf8d..0aab241be5 100644
--- a/tools/dockerfile/distribtest/ruby_ubuntu1204_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_ubuntu1204_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/ruby_ubuntu1404_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_ubuntu1404_x64/Dockerfile
index 53fb4d5ab5..324f51e55c 100644
--- a/tools/dockerfile/distribtest/ruby_ubuntu1404_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_ubuntu1404_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/ruby_ubuntu1504_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_ubuntu1504_x64/Dockerfile
index 3225166e63..762734bcb8 100644
--- a/tools/dockerfile/distribtest/ruby_ubuntu1504_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_ubuntu1504_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/ruby_ubuntu1510_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_ubuntu1510_x64/Dockerfile
index df93360a64..3ac61a077e 100644
--- a/tools/dockerfile/distribtest/ruby_ubuntu1510_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_ubuntu1510_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/ruby_ubuntu1604_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_ubuntu1604_x64/Dockerfile
index f0c2e80ac6..40fc6bea9e 100644
--- a/tools/dockerfile/distribtest/ruby_ubuntu1604_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_ubuntu1604_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/distribtest/ruby_wheezy_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_wheezy_x64/Dockerfile
index ee4e0fc5de..9ae2ee2934 100644
--- a/tools/dockerfile/distribtest/ruby_wheezy_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_wheezy_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/grpc_clang_format/Dockerfile b/tools/dockerfile/grpc_clang_format/Dockerfile
index be2ffc58cf..41239e9c23 100644
--- a/tools/dockerfile/grpc_clang_format/Dockerfile
+++ b/tools/dockerfile/grpc_clang_format/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh b/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh
index a50ca17411..6f4155944c 100755
--- a/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh
+++ b/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -31,7 +31,7 @@
set -e
# directories to run against
-DIRS="src/core src/cpp test/core test/cpp include"
+DIRS="src/core/lib src/core/ext src/cpp test/core test/cpp include"
# file matching patterns to check
GLOB="*.h *.c *.cc"
diff --git a/tools/dockerfile/grpc_interop_csharp/Dockerfile b/tools/dockerfile/grpc_interop_csharp/Dockerfile
index c3c79487f7..3789cd3203 100644
--- a/tools/dockerfile/grpc_interop_csharp/Dockerfile
+++ b/tools/dockerfile/grpc_interop_csharp/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/grpc_interop_csharp/build_interop.sh b/tools/dockerfile/grpc_interop_csharp/build_interop.sh
index 5ad525f41c..dc1f7a331a 100755
--- a/tools/dockerfile/grpc_interop_csharp/build_interop.sh
+++ b/tools/dockerfile/grpc_interop_csharp/build_interop.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/grpc_interop_cxx/Dockerfile b/tools/dockerfile/grpc_interop_cxx/Dockerfile
index 58a8c32e34..1fa1907533 100644
--- a/tools/dockerfile/grpc_interop_cxx/Dockerfile
+++ b/tools/dockerfile/grpc_interop_cxx/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/grpc_interop_cxx/build_interop.sh b/tools/dockerfile/grpc_interop_cxx/build_interop.sh
index 903c31b3e7..1c0828d23a 100755
--- a/tools/dockerfile/grpc_interop_cxx/build_interop.sh
+++ b/tools/dockerfile/grpc_interop_cxx/build_interop.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/grpc_interop_go/Dockerfile b/tools/dockerfile/grpc_interop_go/Dockerfile
index f83e18c8a3..bb60f09f24 100644
--- a/tools/dockerfile/grpc_interop_go/Dockerfile
+++ b/tools/dockerfile/grpc_interop_go/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/grpc_interop_go/build_interop.sh b/tools/dockerfile/grpc_interop_go/build_interop.sh
index 224b0040c0..e891549342 100755
--- a/tools/dockerfile/grpc_interop_go/build_interop.sh
+++ b/tools/dockerfile/grpc_interop_go/build_interop.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/grpc_interop_http2/Dockerfile b/tools/dockerfile/grpc_interop_http2/Dockerfile
index f83e18c8a3..bb60f09f24 100644
--- a/tools/dockerfile/grpc_interop_http2/Dockerfile
+++ b/tools/dockerfile/grpc_interop_http2/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/grpc_interop_http2/build_interop.sh b/tools/dockerfile/grpc_interop_http2/build_interop.sh
index 5f701e34c0..46ddaf929a 100755
--- a/tools/dockerfile/grpc_interop_http2/build_interop.sh
+++ b/tools/dockerfile/grpc_interop_http2/build_interop.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/grpc_interop_java/Dockerfile b/tools/dockerfile/grpc_interop_java/Dockerfile
index 8bfb796c24..370657b651 100644
--- a/tools/dockerfile/grpc_interop_java/Dockerfile
+++ b/tools/dockerfile/grpc_interop_java/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/grpc_interop_java/build_interop.sh b/tools/dockerfile/grpc_interop_java/build_interop.sh
index 9c9591abd8..9997c63308 100755
--- a/tools/dockerfile/grpc_interop_java/build_interop.sh
+++ b/tools/dockerfile/grpc_interop_java/build_interop.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/grpc_interop_node/Dockerfile b/tools/dockerfile/grpc_interop_node/Dockerfile
index 3f0f918ad9..db5aff844d 100644
--- a/tools/dockerfile/grpc_interop_node/Dockerfile
+++ b/tools/dockerfile/grpc_interop_node/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/grpc_interop_node/build_interop.sh b/tools/dockerfile/grpc_interop_node/build_interop.sh
index 526dd61fdf..4d4290d0b4 100755
--- a/tools/dockerfile/grpc_interop_node/build_interop.sh
+++ b/tools/dockerfile/grpc_interop_node/build_interop.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/grpc_interop_php/Dockerfile b/tools/dockerfile/grpc_interop_php/Dockerfile
index 4f5b3fcb77..cf3e79176a 100644
--- a/tools/dockerfile/grpc_interop_php/Dockerfile
+++ b/tools/dockerfile/grpc_interop_php/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/grpc_interop_php/build_interop.sh b/tools/dockerfile/grpc_interop_php/build_interop.sh
index 2bffbd8938..87262f1d62 100755
--- a/tools/dockerfile/grpc_interop_php/build_interop.sh
+++ b/tools/dockerfile/grpc_interop_php/build_interop.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/grpc_interop_python/Dockerfile b/tools/dockerfile/grpc_interop_python/Dockerfile
index ef4432d260..047604b1b7 100644
--- a/tools/dockerfile/grpc_interop_python/Dockerfile
+++ b/tools/dockerfile/grpc_interop_python/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/grpc_interop_python/build_interop.sh b/tools/dockerfile/grpc_interop_python/build_interop.sh
index ed736809bc..6454a4f5e2 100755
--- a/tools/dockerfile/grpc_interop_python/build_interop.sh
+++ b/tools/dockerfile/grpc_interop_python/build_interop.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/grpc_interop_ruby/Dockerfile b/tools/dockerfile/grpc_interop_ruby/Dockerfile
index b3383afe79..ff201fa291 100644
--- a/tools/dockerfile/grpc_interop_ruby/Dockerfile
+++ b/tools/dockerfile/grpc_interop_ruby/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/grpc_interop_ruby/build_interop.sh b/tools/dockerfile/grpc_interop_ruby/build_interop.sh
index 84fd4995f1..685397bac2 100755
--- a/tools/dockerfile/grpc_interop_ruby/build_interop.sh
+++ b/tools/dockerfile/grpc_interop_ruby/build_interop.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/grpc_interop_stress_cxx/Dockerfile b/tools/dockerfile/grpc_interop_stress_cxx/Dockerfile
index 4123cc1a26..97dc5ca77d 100644
--- a/tools/dockerfile/grpc_interop_stress_cxx/Dockerfile
+++ b/tools/dockerfile/grpc_interop_stress_cxx/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -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,7 +59,9 @@ RUN apt-get update && apt-get install -y \
wget \
zip && apt-get clean
-RUN easy_install -U pip
+#================
+# 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
@@ -69,12 +71,47 @@ 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
+RUN apt-get update && apt-get -y install libgflags-dev libgtest-dev libc++-dev clang && apt-get clean
-# Google Cloud platform API libraries (for BigQuery)
+# 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
+
+#=================
+# Update clang to a version with improved tsan and fuzzing capabilities
+
+RUN apt-get update && apt-get -y install python cmake && apt-get clean
+
+RUN git clone -n -b release_38 http://llvm.org/git/llvm.git && \
+ cd llvm && git checkout ad57503 && cd ..
+RUN git clone -n -b release_38 http://llvm.org/git/clang.git && \
+ cd clang && git checkout ad2c56e && cd ..
+RUN git clone -n -b release_38 http://llvm.org/git/compiler-rt.git && \
+ cd compiler-rt && git checkout 3176922 && cd ..
+RUN git clone -n -b release_38 \
+ http://llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && \
+ git checkout c288525 && cd ..
+RUN git clone -n -b release_38 http://llvm.org/git/libcxx.git && \
+ cd libcxx && git checkout fda3549 && cd ..
+RUN git clone -n -b release_38 http://llvm.org/git/libcxxabi.git && \
+ cd libcxxabi && git checkout 8d4e51d && cd ..
+
+RUN mv clang llvm/tools
+RUN mv compiler-rt llvm/projects
+RUN mv clang-tools-extra llvm/tools/clang/tools
+RUN mv libcxx llvm/projects
+RUN mv libcxxabi llvm/projects
+
+RUN mkdir llvm-build
+RUN cd llvm-build && cmake \
+ -DCMAKE_BUILD_TYPE:STRING=Release \
+ -DCMAKE_INSTALL_PREFIX:STRING=/usr \
+ -DLLVM_TARGETS_TO_BUILD:STRING=X86 \
+ ../llvm
+RUN make -C llvm-build -j 12 && make -C llvm-build install && rm -rf llvm-build
+
# Define the default command.
CMD ["bash"]
diff --git a/tools/dockerfile/grpc_interop_stress_cxx/build_interop_stress.sh b/tools/dockerfile/grpc_interop_stress_cxx/build_interop_stress.sh
index 392bdfccda..b67b1a1664 100755
--- a/tools/dockerfile/grpc_interop_stress_cxx/build_interop_stress.sh
+++ b/tools/dockerfile/grpc_interop_stress_cxx/build_interop_stress.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -41,5 +41,7 @@ cd /var/local/git/grpc
make install-certs
+BUILD_TYPE=${BUILD_TYPE:=opt}
+
# build C++ interop stress client, interop client and server
-make stress_test metrics_client interop_client interop_server
+make CONFIG=$BUILD_TYPE stress_test metrics_client interop_client interop_server
diff --git a/tools/dockerfile/grpc_linuxbrew/Dockerfile b/tools/dockerfile/grpc_linuxbrew/Dockerfile
index 8c179da6c8..848489e091 100644
--- a/tools/dockerfile/grpc_linuxbrew/Dockerfile
+++ b/tools/dockerfile/grpc_linuxbrew/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/test/csharp_jessie_x64/Dockerfile b/tools/dockerfile/test/csharp_jessie_x64/Dockerfile
index 0052de6130..baab2f5638 100644
--- a/tools/dockerfile/test/csharp_jessie_x64/Dockerfile
+++ b/tools/dockerfile/test/csharp_jessie_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/test/cxx_jessie_x64/Dockerfile b/tools/dockerfile/test/cxx_jessie_x64/Dockerfile
index b848f233b7..6492158929 100644
--- a/tools/dockerfile/test/cxx_jessie_x64/Dockerfile
+++ b/tools/dockerfile/test/cxx_jessie_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -68,7 +68,7 @@ RUN apt-get update && apt-get install -y time && apt-get clean
RUN apt-get update && apt-get -y install libgflags-dev libgtest-dev libc++-dev clang && apt-get clean
#=================
-# Update clang to a version with improved tsan
+# Update clang to a version with improved tsan and fuzzing capabilities
RUN apt-get update && apt-get -y install python cmake && apt-get clean
@@ -98,7 +98,7 @@ RUN cd llvm-build && cmake \
-DCMAKE_INSTALL_PREFIX:STRING=/usr \
-DLLVM_TARGETS_TO_BUILD:STRING=X86 \
../llvm
-RUN make -C llvm-build && make -C llvm-build install && rm -rf llvm-build
+RUN make -C llvm-build -j 12 && make -C llvm-build install && rm -rf llvm-build
# Prepare ccache
RUN ln -s /usr/bin/ccache /usr/local/bin/gcc
diff --git a/tools/dockerfile/test/cxx_jessie_x86/Dockerfile b/tools/dockerfile/test/cxx_jessie_x86/Dockerfile
index 9a8f2b1cca..92c9c4ce86 100644
--- a/tools/dockerfile/test/cxx_jessie_x86/Dockerfile
+++ b/tools/dockerfile/test/cxx_jessie_x86/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/test/cxx_ubuntu1404_x64/Dockerfile b/tools/dockerfile/test/cxx_ubuntu1404_x64/Dockerfile
index e8dab1b471..1e43e6b25c 100644
--- a/tools/dockerfile/test/cxx_ubuntu1404_x64/Dockerfile
+++ b/tools/dockerfile/test/cxx_ubuntu1404_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/test/cxx_ubuntu1604_x64/Dockerfile b/tools/dockerfile/test/cxx_ubuntu1604_x64/Dockerfile
index c6fe79b42c..02d3c0d9ad 100644
--- a/tools/dockerfile/test/cxx_ubuntu1604_x64/Dockerfile
+++ b/tools/dockerfile/test/cxx_ubuntu1604_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/test/fuzzer/Dockerfile b/tools/dockerfile/test/fuzzer/Dockerfile
new file mode 100644
index 0000000000..6ba31114ab
--- /dev/null
+++ b/tools/dockerfile/test/fuzzer/Dockerfile
@@ -0,0 +1,123 @@
+# 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
+
+#=================
+# C++ dependencies
+RUN apt-get update && apt-get -y install libgflags-dev libgtest-dev libc++-dev clang && apt-get clean
+
+#=================
+# Update clang to a version with improved tsan and fuzzing capabilities
+
+RUN apt-get update && apt-get -y install python cmake && apt-get clean
+
+RUN git clone -n -b release_38 http://llvm.org/git/llvm.git && \
+ cd llvm && git checkout ad57503 && cd ..
+RUN git clone -n -b release_38 http://llvm.org/git/clang.git && \
+ cd clang && git checkout ad2c56e && cd ..
+RUN git clone -n -b release_38 http://llvm.org/git/compiler-rt.git && \
+ cd compiler-rt && git checkout 3176922 && cd ..
+RUN git clone -n -b release_38 \
+ http://llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && \
+ git checkout c288525 && cd ..
+RUN git clone -n -b release_38 http://llvm.org/git/libcxx.git && \
+ cd libcxx && git checkout fda3549 && cd ..
+RUN git clone -n -b release_38 http://llvm.org/git/libcxxabi.git && \
+ cd libcxxabi && git checkout 8d4e51d && cd ..
+
+RUN mv clang llvm/tools
+RUN mv compiler-rt llvm/projects
+RUN mv clang-tools-extra llvm/tools/clang/tools
+RUN mv libcxx llvm/projects
+RUN mv libcxxabi llvm/projects
+
+RUN mkdir llvm-build
+RUN cd llvm-build && cmake \
+ -DCMAKE_BUILD_TYPE:STRING=Release \
+ -DCMAKE_INSTALL_PREFIX:STRING=/usr \
+ -DLLVM_TARGETS_TO_BUILD:STRING=X86 \
+ ../llvm
+RUN make -C llvm-build -j 12 && make -C llvm-build install && rm -rf llvm-build
+
+# 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
+
+RUN clang++ -c -g -O2 -std=c++11 llvm/lib/Fuzzer/*.cpp -IFuzzer
+RUN ar ruv libFuzzer.a Fuzzer*.o
+RUN mv libFuzzer.a /usr/lib
+RUN rm -f Fuzzer*.o
+# Define the default command.
+CMD ["bash"]
diff --git a/tools/dockerfile/test/node_jessie_x64/Dockerfile b/tools/dockerfile/test/node_jessie_x64/Dockerfile
index 0655bf7179..64314f8864 100644
--- a/tools/dockerfile/test/node_jessie_x64/Dockerfile
+++ b/tools/dockerfile/test/node_jessie_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/test/php_jessie_x64/Dockerfile b/tools/dockerfile/test/php_jessie_x64/Dockerfile
index 43081e7d38..d8d27846c1 100644
--- a/tools/dockerfile/test/php_jessie_x64/Dockerfile
+++ b/tools/dockerfile/test/php_jessie_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/test/python_jessie_x64/Dockerfile b/tools/dockerfile/test/python_jessie_x64/Dockerfile
index 7ed8b4c085..071fb2c93b 100644
--- a/tools/dockerfile/test/python_jessie_x64/Dockerfile
+++ b/tools/dockerfile/test/python_jessie_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/test/ruby_jessie_x64/Dockerfile b/tools/dockerfile/test/ruby_jessie_x64/Dockerfile
index 91af772d72..df8eef5438 100644
--- a/tools/dockerfile/test/ruby_jessie_x64/Dockerfile
+++ b/tools/dockerfile/test/ruby_jessie_x64/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/dockerfile/test/sanity/Dockerfile b/tools/dockerfile/test/sanity/Dockerfile
index 4a69cd8c00..57032155e3 100644
--- a/tools/dockerfile/test/sanity/Dockerfile
+++ b/tools/dockerfile/test/sanity/Dockerfile
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/doxygen/Doxyfile.c++ b/tools/doxygen/Doxyfile.c++
index 253262c9aa..fe7962babd 100644
--- a/tools/doxygen/Doxyfile.c++
+++ b/tools/doxygen/Doxyfile.c++
@@ -770,6 +770,37 @@ include/grpc++/generic/generic_stub.h \
include/grpc++/grpc++.h \
include/grpc++/impl/call.h \
include/grpc++/impl/client_unary_call.h \
+include/grpc++/impl/codegen/async_stream.h \
+include/grpc++/impl/codegen/async_unary_call.h \
+include/grpc++/impl/codegen/call.h \
+include/grpc++/impl/codegen/call_hook.h \
+include/grpc++/impl/codegen/channel_interface.h \
+include/grpc++/impl/codegen/client_context.h \
+include/grpc++/impl/codegen/client_unary_call.h \
+include/grpc++/impl/codegen/completion_queue.h \
+include/grpc++/impl/codegen/completion_queue_tag.h \
+include/grpc++/impl/codegen/config.h \
+include/grpc++/impl/codegen/config_protobuf.h \
+include/grpc++/impl/codegen/core_codegen_interface.h \
+include/grpc++/impl/codegen/grpc_library.h \
+include/grpc++/impl/codegen/method_handler_impl.h \
+include/grpc++/impl/codegen/proto_utils.h \
+include/grpc++/impl/codegen/rpc_method.h \
+include/grpc++/impl/codegen/rpc_service_method.h \
+include/grpc++/impl/codegen/security/auth_context.h \
+include/grpc++/impl/codegen/serialization_traits.h \
+include/grpc++/impl/codegen/server_context.h \
+include/grpc++/impl/codegen/server_interface.h \
+include/grpc++/impl/codegen/service_type.h \
+include/grpc++/impl/codegen/status.h \
+include/grpc++/impl/codegen/status_code_enum.h \
+include/grpc++/impl/codegen/string_ref.h \
+include/grpc++/impl/codegen/stub_options.h \
+include/grpc++/impl/codegen/sync.h \
+include/grpc++/impl/codegen/sync_cxx11.h \
+include/grpc++/impl/codegen/sync_no_cxx11.h \
+include/grpc++/impl/codegen/sync_stream.h \
+include/grpc++/impl/codegen/time.h \
include/grpc++/impl/grpc_library.h \
include/grpc++/impl/method_handler_impl.h \
include/grpc++/impl/proto_utils.h \
@@ -803,38 +834,7 @@ include/grpc++/support/status_code_enum.h \
include/grpc++/support/string_ref.h \
include/grpc++/support/stub_options.h \
include/grpc++/support/sync_stream.h \
-include/grpc++/support/time.h \
-include/grpc++/impl/codegen/async_stream.h \
-include/grpc++/impl/codegen/async_unary_call.h \
-include/grpc++/impl/codegen/call.h \
-include/grpc++/impl/codegen/call_hook.h \
-include/grpc++/impl/codegen/channel_interface.h \
-include/grpc++/impl/codegen/client_context.h \
-include/grpc++/impl/codegen/client_unary_call.h \
-include/grpc++/impl/codegen/completion_queue.h \
-include/grpc++/impl/codegen/completion_queue_tag.h \
-include/grpc++/impl/codegen/config.h \
-include/grpc++/impl/codegen/config_protobuf.h \
-include/grpc++/impl/codegen/core_codegen_interface.h \
-include/grpc++/impl/codegen/grpc_library.h \
-include/grpc++/impl/codegen/method_handler_impl.h \
-include/grpc++/impl/codegen/proto_utils.h \
-include/grpc++/impl/codegen/rpc_method.h \
-include/grpc++/impl/codegen/rpc_service_method.h \
-include/grpc++/impl/codegen/security/auth_context.h \
-include/grpc++/impl/codegen/serialization_traits.h \
-include/grpc++/impl/codegen/server_context.h \
-include/grpc++/impl/codegen/server_interface.h \
-include/grpc++/impl/codegen/service_type.h \
-include/grpc++/impl/codegen/status.h \
-include/grpc++/impl/codegen/status_code_enum.h \
-include/grpc++/impl/codegen/string_ref.h \
-include/grpc++/impl/codegen/stub_options.h \
-include/grpc++/impl/codegen/sync.h \
-include/grpc++/impl/codegen/sync_cxx11.h \
-include/grpc++/impl/codegen/sync_no_cxx11.h \
-include/grpc++/impl/codegen/sync_stream.h \
-include/grpc++/impl/codegen/time.h
+include/grpc++/support/time.h
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal
index 134b16f485..30bf7bf126 100644
--- a/tools/doxygen/Doxyfile.c++.internal
+++ b/tools/doxygen/Doxyfile.c++.internal
@@ -770,6 +770,37 @@ include/grpc++/generic/generic_stub.h \
include/grpc++/grpc++.h \
include/grpc++/impl/call.h \
include/grpc++/impl/client_unary_call.h \
+include/grpc++/impl/codegen/async_stream.h \
+include/grpc++/impl/codegen/async_unary_call.h \
+include/grpc++/impl/codegen/call.h \
+include/grpc++/impl/codegen/call_hook.h \
+include/grpc++/impl/codegen/channel_interface.h \
+include/grpc++/impl/codegen/client_context.h \
+include/grpc++/impl/codegen/client_unary_call.h \
+include/grpc++/impl/codegen/completion_queue.h \
+include/grpc++/impl/codegen/completion_queue_tag.h \
+include/grpc++/impl/codegen/config.h \
+include/grpc++/impl/codegen/config_protobuf.h \
+include/grpc++/impl/codegen/core_codegen_interface.h \
+include/grpc++/impl/codegen/grpc_library.h \
+include/grpc++/impl/codegen/method_handler_impl.h \
+include/grpc++/impl/codegen/proto_utils.h \
+include/grpc++/impl/codegen/rpc_method.h \
+include/grpc++/impl/codegen/rpc_service_method.h \
+include/grpc++/impl/codegen/security/auth_context.h \
+include/grpc++/impl/codegen/serialization_traits.h \
+include/grpc++/impl/codegen/server_context.h \
+include/grpc++/impl/codegen/server_interface.h \
+include/grpc++/impl/codegen/service_type.h \
+include/grpc++/impl/codegen/status.h \
+include/grpc++/impl/codegen/status_code_enum.h \
+include/grpc++/impl/codegen/string_ref.h \
+include/grpc++/impl/codegen/stub_options.h \
+include/grpc++/impl/codegen/sync.h \
+include/grpc++/impl/codegen/sync_cxx11.h \
+include/grpc++/impl/codegen/sync_no_cxx11.h \
+include/grpc++/impl/codegen/sync_stream.h \
+include/grpc++/impl/codegen/time.h \
include/grpc++/impl/grpc_library.h \
include/grpc++/impl/method_handler_impl.h \
include/grpc++/impl/proto_utils.h \
@@ -804,52 +835,14 @@ include/grpc++/support/string_ref.h \
include/grpc++/support/stub_options.h \
include/grpc++/support/sync_stream.h \
include/grpc++/support/time.h \
-include/grpc++/impl/codegen/async_stream.h \
-include/grpc++/impl/codegen/async_unary_call.h \
-include/grpc++/impl/codegen/call.h \
-include/grpc++/impl/codegen/call_hook.h \
-include/grpc++/impl/codegen/channel_interface.h \
-include/grpc++/impl/codegen/client_context.h \
-include/grpc++/impl/codegen/client_unary_call.h \
-include/grpc++/impl/codegen/completion_queue.h \
-include/grpc++/impl/codegen/completion_queue_tag.h \
-include/grpc++/impl/codegen/config.h \
-include/grpc++/impl/codegen/config_protobuf.h \
-include/grpc++/impl/codegen/core_codegen_interface.h \
-include/grpc++/impl/codegen/grpc_library.h \
-include/grpc++/impl/codegen/method_handler_impl.h \
-include/grpc++/impl/codegen/proto_utils.h \
-include/grpc++/impl/codegen/rpc_method.h \
-include/grpc++/impl/codegen/rpc_service_method.h \
-include/grpc++/impl/codegen/security/auth_context.h \
-include/grpc++/impl/codegen/serialization_traits.h \
-include/grpc++/impl/codegen/server_context.h \
-include/grpc++/impl/codegen/server_interface.h \
-include/grpc++/impl/codegen/service_type.h \
-include/grpc++/impl/codegen/status.h \
-include/grpc++/impl/codegen/status_code_enum.h \
-include/grpc++/impl/codegen/string_ref.h \
-include/grpc++/impl/codegen/stub_options.h \
-include/grpc++/impl/codegen/sync.h \
-include/grpc++/impl/codegen/sync_cxx11.h \
-include/grpc++/impl/codegen/sync_no_cxx11.h \
-include/grpc++/impl/codegen/sync_stream.h \
-include/grpc++/impl/codegen/time.h \
-src/cpp/client/secure_credentials.h \
-src/cpp/common/core_codegen.h \
-src/cpp/common/secure_auth_context.h \
-src/cpp/server/secure_server_credentials.h \
src/cpp/client/create_channel_internal.h \
+src/cpp/client/secure_credentials.h \
src/cpp/common/core_codegen.h \
src/cpp/common/create_auth_context.h \
+src/cpp/common/secure_auth_context.h \
src/cpp/server/dynamic_thread_pool.h \
+src/cpp/server/secure_server_credentials.h \
src/cpp/server/thread_pool_interface.h \
-src/cpp/client/secure_credentials.cc \
-src/cpp/common/auth_property_iterator.cc \
-src/cpp/common/secure_auth_context.cc \
-src/cpp/common/secure_channel_arguments.cc \
-src/cpp/common/secure_create_auth_context.cc \
-src/cpp/server/secure_server_credentials.cc \
src/cpp/client/channel.cc \
src/cpp/client/client_context.cc \
src/cpp/client/create_channel.cc \
@@ -857,14 +850,21 @@ src/cpp/client/create_channel_internal.cc \
src/cpp/client/credentials.cc \
src/cpp/client/generic_stub.cc \
src/cpp/client/insecure_credentials.cc \
+src/cpp/client/secure_credentials.cc \
+src/cpp/codegen/codegen_init.cc \
+src/cpp/common/auth_property_iterator.cc \
src/cpp/common/channel_arguments.cc \
src/cpp/common/completion_queue.cc \
src/cpp/common/core_codegen.cc \
src/cpp/common/rpc_method.cc \
+src/cpp/common/secure_auth_context.cc \
+src/cpp/common/secure_channel_arguments.cc \
+src/cpp/common/secure_create_auth_context.cc \
src/cpp/server/async_generic_service.cc \
src/cpp/server/create_default_thread_pool.cc \
src/cpp/server/dynamic_thread_pool.cc \
src/cpp/server/insecure_server_credentials.cc \
+src/cpp/server/secure_server_credentials.cc \
src/cpp/server/server.cc \
src/cpp/server/server_builder.cc \
src/cpp/server/server_context.cc \
@@ -873,8 +873,7 @@ src/cpp/util/byte_buffer.cc \
src/cpp/util/slice.cc \
src/cpp/util/status.cc \
src/cpp/util/string_ref.cc \
-src/cpp/util/time.cc \
-src/cpp/codegen/codegen_init.cc
+src/cpp/util/time.cc
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
diff --git a/tools/doxygen/Doxyfile.core b/tools/doxygen/Doxyfile.core
index e326adcb1a..55f4ffe4b1 100644
--- a/tools/doxygen/Doxyfile.core
+++ b/tools/doxygen/Doxyfile.core
@@ -760,19 +760,33 @@ WARN_LOGFILE =
# spaces.
# Note: If this tag is empty the current directory is searched.
-INPUT = include/grpc/grpc_security.h \
-include/grpc/byte_buffer.h \
+INPUT = include/grpc/byte_buffer.h \
include/grpc/byte_buffer_reader.h \
+include/grpc/census.h \
include/grpc/compression.h \
include/grpc/grpc.h \
-include/grpc/status.h \
+include/grpc/grpc_security.h \
include/grpc/impl/codegen/byte_buffer.h \
include/grpc/impl/codegen/compression_types.h \
include/grpc/impl/codegen/connectivity_state.h \
include/grpc/impl/codegen/grpc_types.h \
include/grpc/impl/codegen/propagation_bits.h \
include/grpc/impl/codegen/status.h \
-include/grpc/census.h \
+include/grpc/status.h \
+include/grpc/impl/codegen/alloc.h \
+include/grpc/impl/codegen/atm.h \
+include/grpc/impl/codegen/atm_gcc_atomic.h \
+include/grpc/impl/codegen/atm_gcc_sync.h \
+include/grpc/impl/codegen/atm_win32.h \
+include/grpc/impl/codegen/log.h \
+include/grpc/impl/codegen/port_platform.h \
+include/grpc/impl/codegen/slice.h \
+include/grpc/impl/codegen/slice_buffer.h \
+include/grpc/impl/codegen/sync.h \
+include/grpc/impl/codegen/sync_generic.h \
+include/grpc/impl/codegen/sync_posix.h \
+include/grpc/impl/codegen/sync_win32.h \
+include/grpc/impl/codegen/time.h \
include/grpc/support/alloc.h \
include/grpc/support/atm.h \
include/grpc/support/atm_gcc_atomic.h \
@@ -800,21 +814,7 @@ include/grpc/support/tls.h \
include/grpc/support/tls_gcc.h \
include/grpc/support/tls_msvc.h \
include/grpc/support/tls_pthread.h \
-include/grpc/support/useful.h \
-include/grpc/impl/codegen/alloc.h \
-include/grpc/impl/codegen/atm.h \
-include/grpc/impl/codegen/atm_gcc_atomic.h \
-include/grpc/impl/codegen/atm_gcc_sync.h \
-include/grpc/impl/codegen/atm_win32.h \
-include/grpc/impl/codegen/log.h \
-include/grpc/impl/codegen/port_platform.h \
-include/grpc/impl/codegen/slice.h \
-include/grpc/impl/codegen/slice_buffer.h \
-include/grpc/impl/codegen/sync.h \
-include/grpc/impl/codegen/sync_generic.h \
-include/grpc/impl/codegen/sync_posix.h \
-include/grpc/impl/codegen/sync_win32.h \
-include/grpc/impl/codegen/time.h
+include/grpc/support/useful.h
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal
index 7f91115cec..c07048578a 100644
--- a/tools/doxygen/Doxyfile.core.internal
+++ b/tools/doxygen/Doxyfile.core.internal
@@ -760,21 +760,48 @@ WARN_LOGFILE =
# spaces.
# Note: If this tag is empty the current directory is searched.
-INPUT = include/grpc/grpc_security.h \
-include/grpc/byte_buffer.h \
+INPUT = include/grpc/byte_buffer.h \
include/grpc/byte_buffer_reader.h \
+include/grpc/census.h \
include/grpc/compression.h \
include/grpc/grpc.h \
-include/grpc/status.h \
+include/grpc/grpc_security.h \
include/grpc/impl/codegen/byte_buffer.h \
include/grpc/impl/codegen/compression_types.h \
include/grpc/impl/codegen/connectivity_state.h \
include/grpc/impl/codegen/grpc_types.h \
include/grpc/impl/codegen/propagation_bits.h \
include/grpc/impl/codegen/status.h \
-include/grpc/census.h \
-src/core/lib/census/grpc_filter.h \
-src/core/lib/census/grpc_plugin.h \
+include/grpc/status.h \
+src/core/ext/census/aggregation.h \
+src/core/ext/census/census_interface.h \
+src/core/ext/census/census_rpc_stats.h \
+src/core/ext/census/grpc_filter.h \
+src/core/ext/census/mlog.h \
+src/core/ext/census/rpc_metric_id.h \
+src/core/ext/lb_policy/grpclb/load_balancer_api.h \
+src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h \
+src/core/ext/transport/chttp2/transport/alpn.h \
+src/core/ext/transport/chttp2/transport/bin_encoder.h \
+src/core/ext/transport/chttp2/transport/chttp2_transport.h \
+src/core/ext/transport/chttp2/transport/frame.h \
+src/core/ext/transport/chttp2/transport/frame_data.h \
+src/core/ext/transport/chttp2/transport/frame_goaway.h \
+src/core/ext/transport/chttp2/transport/frame_ping.h \
+src/core/ext/transport/chttp2/transport/frame_rst_stream.h \
+src/core/ext/transport/chttp2/transport/frame_settings.h \
+src/core/ext/transport/chttp2/transport/frame_window_update.h \
+src/core/ext/transport/chttp2/transport/hpack_encoder.h \
+src/core/ext/transport/chttp2/transport/hpack_parser.h \
+src/core/ext/transport/chttp2/transport/hpack_table.h \
+src/core/ext/transport/chttp2/transport/http2_errors.h \
+src/core/ext/transport/chttp2/transport/huffsyms.h \
+src/core/ext/transport/chttp2/transport/incoming_metadata.h \
+src/core/ext/transport/chttp2/transport/internal.h \
+src/core/ext/transport/chttp2/transport/status_conversion.h \
+src/core/ext/transport/chttp2/transport/stream_map.h \
+src/core/ext/transport/chttp2/transport/timeout_encoding.h \
+src/core/ext/transport/chttp2/transport/varint.h \
src/core/lib/channel/channel_args.h \
src/core/lib/channel/channel_stack.h \
src/core/lib/channel/channel_stack_builder.h \
@@ -788,17 +815,12 @@ src/core/lib/channel/subchannel_call_holder.h \
src/core/lib/client_config/client_config.h \
src/core/lib/client_config/connector.h \
src/core/lib/client_config/initial_connect_string.h \
-src/core/lib/client_config/lb_policies/load_balancer_api.h \
-src/core/lib/client_config/lb_policies/pick_first.h \
-src/core/lib/client_config/lb_policies/round_robin.h \
src/core/lib/client_config/lb_policy.h \
src/core/lib/client_config/lb_policy_factory.h \
src/core/lib/client_config/lb_policy_registry.h \
src/core/lib/client_config/resolver.h \
src/core/lib/client_config/resolver_factory.h \
src/core/lib/client_config/resolver_registry.h \
-src/core/lib/client_config/resolvers/dns_resolver.h \
-src/core/lib/client_config/resolvers/sockaddr_resolver.h \
src/core/lib/client_config/subchannel.h \
src/core/lib/client_config/subchannel_factory.h \
src/core/lib/client_config/subchannel_index.h \
@@ -812,17 +834,16 @@ src/core/lib/http/parser.h \
src/core/lib/iomgr/closure.h \
src/core/lib/iomgr/endpoint.h \
src/core/lib/iomgr/endpoint_pair.h \
+src/core/lib/iomgr/ev_poll_and_epoll_posix.h \
+src/core/lib/iomgr/ev_posix.h \
src/core/lib/iomgr/exec_ctx.h \
src/core/lib/iomgr/executor.h \
-src/core/lib/iomgr/fd_posix.h \
src/core/lib/iomgr/iocp_windows.h \
src/core/lib/iomgr/iomgr.h \
src/core/lib/iomgr/iomgr_internal.h \
src/core/lib/iomgr/iomgr_posix.h \
src/core/lib/iomgr/pollset.h \
-src/core/lib/iomgr/pollset_posix.h \
src/core/lib/iomgr/pollset_set.h \
-src/core/lib/iomgr/pollset_set_posix.h \
src/core/lib/iomgr/pollset_set_windows.h \
src/core/lib/iomgr/pollset_windows.h \
src/core/lib/iomgr/resolve_address.h \
@@ -850,9 +871,15 @@ src/core/lib/json/json.h \
src/core/lib/json/json_common.h \
src/core/lib/json/json_reader.h \
src/core/lib/json/json_writer.h \
-src/core/lib/proto/grpc/lb/v0/load_balancer.pb.h \
-src/core/lib/statistics/census_interface.h \
-src/core/lib/statistics/census_rpc_stats.h \
+src/core/lib/security/auth_filters.h \
+src/core/lib/security/b64.h \
+src/core/lib/security/credentials.h \
+src/core/lib/security/handshake.h \
+src/core/lib/security/json_token.h \
+src/core/lib/security/jwt_verifier.h \
+src/core/lib/security/secure_endpoint.h \
+src/core/lib/security/security_connector.h \
+src/core/lib/security/security_context.h \
src/core/lib/surface/api_trace.h \
src/core/lib/surface/call.h \
src/core/lib/surface/call_test_only.h \
@@ -866,57 +893,61 @@ src/core/lib/surface/lame_client.h \
src/core/lib/surface/server.h \
src/core/lib/surface/surface_trace.h \
src/core/lib/transport/byte_stream.h \
-src/core/lib/transport/chttp2/alpn.h \
-src/core/lib/transport/chttp2/bin_encoder.h \
-src/core/lib/transport/chttp2/frame.h \
-src/core/lib/transport/chttp2/frame_data.h \
-src/core/lib/transport/chttp2/frame_goaway.h \
-src/core/lib/transport/chttp2/frame_ping.h \
-src/core/lib/transport/chttp2/frame_rst_stream.h \
-src/core/lib/transport/chttp2/frame_settings.h \
-src/core/lib/transport/chttp2/frame_window_update.h \
-src/core/lib/transport/chttp2/hpack_encoder.h \
-src/core/lib/transport/chttp2/hpack_parser.h \
-src/core/lib/transport/chttp2/hpack_table.h \
-src/core/lib/transport/chttp2/http2_errors.h \
-src/core/lib/transport/chttp2/huffsyms.h \
-src/core/lib/transport/chttp2/incoming_metadata.h \
-src/core/lib/transport/chttp2/internal.h \
-src/core/lib/transport/chttp2/status_conversion.h \
-src/core/lib/transport/chttp2/stream_map.h \
-src/core/lib/transport/chttp2/timeout_encoding.h \
-src/core/lib/transport/chttp2/varint.h \
-src/core/lib/transport/chttp2_transport.h \
src/core/lib/transport/connectivity_state.h \
src/core/lib/transport/metadata.h \
src/core/lib/transport/metadata_batch.h \
src/core/lib/transport/static_metadata.h \
src/core/lib/transport/transport.h \
src/core/lib/transport/transport_impl.h \
-src/core/lib/security/auth_filters.h \
-src/core/lib/security/b64.h \
-src/core/lib/security/credentials.h \
-src/core/lib/security/handshake.h \
-src/core/lib/security/json_token.h \
-src/core/lib/security/jwt_verifier.h \
-src/core/lib/security/secure_endpoint.h \
-src/core/lib/security/security_connector.h \
-src/core/lib/security/security_context.h \
src/core/lib/tsi/fake_transport_security.h \
src/core/lib/tsi/ssl_transport_security.h \
src/core/lib/tsi/ssl_types.h \
src/core/lib/tsi/transport_security.h \
src/core/lib/tsi/transport_security_interface.h \
-src/core/lib/census/aggregation.h \
-src/core/lib/census/mlog.h \
-src/core/lib/census/rpc_metric_id.h \
third_party/nanopb/pb.h \
third_party/nanopb/pb_common.h \
third_party/nanopb/pb_decode.h \
third_party/nanopb/pb_encode.h \
-src/core/lib/census/grpc_context.c \
-src/core/lib/census/grpc_filter.c \
-src/core/lib/census/grpc_plugin.c \
+src/core/ext/census/context.c \
+src/core/ext/census/grpc_context.c \
+src/core/ext/census/grpc_filter.c \
+src/core/ext/census/grpc_plugin.c \
+src/core/ext/census/initialize.c \
+src/core/ext/census/mlog.c \
+src/core/ext/census/operation.c \
+src/core/ext/census/placeholders.c \
+src/core/ext/census/tracing.c \
+src/core/ext/lb_policy/grpclb/load_balancer_api.c \
+src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c \
+src/core/ext/lb_policy/pick_first/pick_first.c \
+src/core/ext/lb_policy/round_robin/round_robin.c \
+src/core/ext/resolver/dns/native/dns_resolver.c \
+src/core/ext/resolver/sockaddr/sockaddr_resolver.c \
+src/core/ext/transport/chttp2/client/insecure/channel_create.c \
+src/core/ext/transport/chttp2/client/secure/secure_channel_create.c \
+src/core/ext/transport/chttp2/server/insecure/server_chttp2.c \
+src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c \
+src/core/ext/transport/chttp2/transport/alpn.c \
+src/core/ext/transport/chttp2/transport/bin_encoder.c \
+src/core/ext/transport/chttp2/transport/chttp2_transport.c \
+src/core/ext/transport/chttp2/transport/frame_data.c \
+src/core/ext/transport/chttp2/transport/frame_goaway.c \
+src/core/ext/transport/chttp2/transport/frame_ping.c \
+src/core/ext/transport/chttp2/transport/frame_rst_stream.c \
+src/core/ext/transport/chttp2/transport/frame_settings.c \
+src/core/ext/transport/chttp2/transport/frame_window_update.c \
+src/core/ext/transport/chttp2/transport/hpack_encoder.c \
+src/core/ext/transport/chttp2/transport/hpack_parser.c \
+src/core/ext/transport/chttp2/transport/hpack_table.c \
+src/core/ext/transport/chttp2/transport/huffsyms.c \
+src/core/ext/transport/chttp2/transport/incoming_metadata.c \
+src/core/ext/transport/chttp2/transport/parsing.c \
+src/core/ext/transport/chttp2/transport/status_conversion.c \
+src/core/ext/transport/chttp2/transport/stream_lists.c \
+src/core/ext/transport/chttp2/transport/stream_map.c \
+src/core/ext/transport/chttp2/transport/timeout_encoding.c \
+src/core/ext/transport/chttp2/transport/varint.c \
+src/core/ext/transport/chttp2/transport/writing.c \
src/core/lib/channel/channel_args.c \
src/core/lib/channel/channel_stack.c \
src/core/lib/channel/channel_stack_builder.c \
@@ -930,17 +961,12 @@ src/core/lib/client_config/client_config.c \
src/core/lib/client_config/connector.c \
src/core/lib/client_config/default_initial_connect_string.c \
src/core/lib/client_config/initial_connect_string.c \
-src/core/lib/client_config/lb_policies/load_balancer_api.c \
-src/core/lib/client_config/lb_policies/pick_first.c \
-src/core/lib/client_config/lb_policies/round_robin.c \
src/core/lib/client_config/lb_policy.c \
src/core/lib/client_config/lb_policy_factory.c \
src/core/lib/client_config/lb_policy_registry.c \
src/core/lib/client_config/resolver.c \
src/core/lib/client_config/resolver_factory.c \
src/core/lib/client_config/resolver_registry.c \
-src/core/lib/client_config/resolvers/dns_resolver.c \
-src/core/lib/client_config/resolvers/sockaddr_resolver.c \
src/core/lib/client_config/subchannel.c \
src/core/lib/client_config/subchannel_factory.c \
src/core/lib/client_config/subchannel_index.c \
@@ -950,22 +976,20 @@ src/core/lib/compression/message_compress.c \
src/core/lib/debug/trace.c \
src/core/lib/http/format_request.c \
src/core/lib/http/httpcli.c \
+src/core/lib/http/httpcli_security_connector.c \
src/core/lib/http/parser.c \
src/core/lib/iomgr/closure.c \
src/core/lib/iomgr/endpoint.c \
src/core/lib/iomgr/endpoint_pair_posix.c \
src/core/lib/iomgr/endpoint_pair_windows.c \
+src/core/lib/iomgr/ev_poll_and_epoll_posix.c \
+src/core/lib/iomgr/ev_posix.c \
src/core/lib/iomgr/exec_ctx.c \
src/core/lib/iomgr/executor.c \
-src/core/lib/iomgr/fd_posix.c \
src/core/lib/iomgr/iocp_windows.c \
src/core/lib/iomgr/iomgr.c \
src/core/lib/iomgr/iomgr_posix.c \
src/core/lib/iomgr/iomgr_windows.c \
-src/core/lib/iomgr/pollset_multipoller_with_epoll.c \
-src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c \
-src/core/lib/iomgr/pollset_posix.c \
-src/core/lib/iomgr/pollset_set_posix.c \
src/core/lib/iomgr/pollset_set_windows.c \
src/core/lib/iomgr/pollset_windows.c \
src/core/lib/iomgr/resolve_address_posix.c \
@@ -997,7 +1021,20 @@ src/core/lib/json/json.c \
src/core/lib/json/json_reader.c \
src/core/lib/json/json_string.c \
src/core/lib/json/json_writer.c \
-src/core/lib/proto/grpc/lb/v0/load_balancer.pb.c \
+src/core/lib/security/b64.c \
+src/core/lib/security/client_auth_filter.c \
+src/core/lib/security/credentials.c \
+src/core/lib/security/credentials_metadata.c \
+src/core/lib/security/credentials_posix.c \
+src/core/lib/security/credentials_win32.c \
+src/core/lib/security/google_default_credentials.c \
+src/core/lib/security/handshake.c \
+src/core/lib/security/json_token.c \
+src/core/lib/security/jwt_verifier.c \
+src/core/lib/security/secure_endpoint.c \
+src/core/lib/security/security_connector.c \
+src/core/lib/security/security_context.c \
+src/core/lib/security/server_auth_filter.c \
src/core/lib/surface/alarm.c \
src/core/lib/surface/api_trace.c \
src/core/lib/surface/byte_buffer.c \
@@ -1007,77 +1044,46 @@ src/core/lib/surface/call_details.c \
src/core/lib/surface/call_log_batch.c \
src/core/lib/surface/channel.c \
src/core/lib/surface/channel_connectivity.c \
-src/core/lib/surface/channel_create.c \
src/core/lib/surface/channel_init.c \
src/core/lib/surface/channel_ping.c \
src/core/lib/surface/channel_stack_type.c \
src/core/lib/surface/completion_queue.c \
src/core/lib/surface/event_string.c \
src/core/lib/surface/init.c \
+src/core/lib/surface/init_secure.c \
src/core/lib/surface/lame_client.c \
src/core/lib/surface/metadata_array.c \
src/core/lib/surface/server.c \
-src/core/lib/surface/server_chttp2.c \
src/core/lib/surface/validate_metadata.c \
src/core/lib/surface/version.c \
src/core/lib/transport/byte_stream.c \
-src/core/lib/transport/chttp2/alpn.c \
-src/core/lib/transport/chttp2/bin_encoder.c \
-src/core/lib/transport/chttp2/frame_data.c \
-src/core/lib/transport/chttp2/frame_goaway.c \
-src/core/lib/transport/chttp2/frame_ping.c \
-src/core/lib/transport/chttp2/frame_rst_stream.c \
-src/core/lib/transport/chttp2/frame_settings.c \
-src/core/lib/transport/chttp2/frame_window_update.c \
-src/core/lib/transport/chttp2/hpack_encoder.c \
-src/core/lib/transport/chttp2/hpack_parser.c \
-src/core/lib/transport/chttp2/hpack_table.c \
-src/core/lib/transport/chttp2/huffsyms.c \
-src/core/lib/transport/chttp2/incoming_metadata.c \
-src/core/lib/transport/chttp2/parsing.c \
-src/core/lib/transport/chttp2/status_conversion.c \
-src/core/lib/transport/chttp2/stream_lists.c \
-src/core/lib/transport/chttp2/stream_map.c \
-src/core/lib/transport/chttp2/timeout_encoding.c \
-src/core/lib/transport/chttp2/varint.c \
-src/core/lib/transport/chttp2/writing.c \
-src/core/lib/transport/chttp2_transport.c \
src/core/lib/transport/connectivity_state.c \
src/core/lib/transport/metadata.c \
src/core/lib/transport/metadata_batch.c \
src/core/lib/transport/static_metadata.c \
src/core/lib/transport/transport.c \
src/core/lib/transport/transport_op_string.c \
-src/core/lib/http/httpcli_security_connector.c \
-src/core/lib/security/b64.c \
-src/core/lib/security/client_auth_filter.c \
-src/core/lib/security/credentials.c \
-src/core/lib/security/credentials_metadata.c \
-src/core/lib/security/credentials_posix.c \
-src/core/lib/security/credentials_win32.c \
-src/core/lib/security/google_default_credentials.c \
-src/core/lib/security/handshake.c \
-src/core/lib/security/json_token.c \
-src/core/lib/security/jwt_verifier.c \
-src/core/lib/security/secure_endpoint.c \
-src/core/lib/security/security_connector.c \
-src/core/lib/security/security_context.c \
-src/core/lib/security/server_auth_filter.c \
-src/core/lib/security/server_secure_chttp2.c \
-src/core/lib/surface/init_secure.c \
-src/core/lib/surface/secure_channel_create.c \
src/core/lib/tsi/fake_transport_security.c \
src/core/lib/tsi/ssl_transport_security.c \
src/core/lib/tsi/transport_security.c \
-src/core/lib/census/context.c \
-src/core/lib/census/initialize.c \
-src/core/lib/census/mlog.c \
-src/core/lib/census/operation.c \
-src/core/lib/census/placeholders.c \
-src/core/lib/census/tracing.c \
+src/core/plugin_registry/grpc_plugin_registry.c \
third_party/nanopb/pb_common.c \
third_party/nanopb/pb_decode.c \
third_party/nanopb/pb_encode.c \
+include/grpc/impl/codegen/alloc.h \
+include/grpc/impl/codegen/atm.h \
+include/grpc/impl/codegen/atm_gcc_atomic.h \
+include/grpc/impl/codegen/atm_gcc_sync.h \
+include/grpc/impl/codegen/atm_win32.h \
+include/grpc/impl/codegen/log.h \
+include/grpc/impl/codegen/port_platform.h \
+include/grpc/impl/codegen/slice.h \
+include/grpc/impl/codegen/slice_buffer.h \
+include/grpc/impl/codegen/sync.h \
+include/grpc/impl/codegen/sync_generic.h \
+include/grpc/impl/codegen/sync_posix.h \
+include/grpc/impl/codegen/sync_win32.h \
+include/grpc/impl/codegen/time.h \
include/grpc/support/alloc.h \
include/grpc/support/atm.h \
include/grpc/support/atm_gcc_atomic.h \
@@ -1106,20 +1112,6 @@ include/grpc/support/tls_gcc.h \
include/grpc/support/tls_msvc.h \
include/grpc/support/tls_pthread.h \
include/grpc/support/useful.h \
-include/grpc/impl/codegen/alloc.h \
-include/grpc/impl/codegen/atm.h \
-include/grpc/impl/codegen/atm_gcc_atomic.h \
-include/grpc/impl/codegen/atm_gcc_sync.h \
-include/grpc/impl/codegen/atm_win32.h \
-include/grpc/impl/codegen/log.h \
-include/grpc/impl/codegen/port_platform.h \
-include/grpc/impl/codegen/slice.h \
-include/grpc/impl/codegen/slice_buffer.h \
-include/grpc/impl/codegen/sync.h \
-include/grpc/impl/codegen/sync_generic.h \
-include/grpc/impl/codegen/sync_posix.h \
-include/grpc/impl/codegen/sync_win32.h \
-include/grpc/impl/codegen/time.h \
src/core/lib/profiling/timers.h \
src/core/lib/support/backoff.h \
src/core/lib/support/block_annotate.h \
diff --git a/tools/fuzzer/build_and_run_fuzzer.sh b/tools/fuzzer/build_and_run_fuzzer.sh
new file mode 100755
index 0000000000..bbe68884ad
--- /dev/null
+++ b/tools/fuzzer/build_and_run_fuzzer.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+set -ex
+
+cd $(dirname $0)/../..
+make CONFIG=$config $1 -j3
+mkdir -p fuzzer_output
+. tools/fuzzer/runners/$1.sh
diff --git a/tools/fuzzer/runners/hpack_parser_fuzzer_test.sh b/tools/fuzzer/runners/hpack_parser_fuzzer_test.sh
new file mode 100644
index 0000000000..a91cf6d458
--- /dev/null
+++ b/tools/fuzzer/runners/hpack_parser_fuzzer_test.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+flags="-max_total_time=3600 -jobs=3 -workers=3"
+if [ "$config" == "asan-trace-cmp" ]
+then
+ flags="-use_traces=1 $flags"
+fi
+
+bins/$config/hpack_parser_fuzzer_test $flags fuzzer_output test/core/transport/chttp2/hpack_parser_corpus
diff --git a/tools/fuzzer/runners/http_fuzzer_test.sh b/tools/fuzzer/runners/http_fuzzer_test.sh
new file mode 100644
index 0000000000..47adad0cb7
--- /dev/null
+++ b/tools/fuzzer/runners/http_fuzzer_test.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+flags="-max_total_time=3600 -jobs=3 -workers=3"
+if [ "$config" == "asan-trace-cmp" ]
+then
+ flags="-use_traces=1 $flags"
+fi
+
+bins/$config/http_fuzzer_test $flags fuzzer_output test/core/http/corpus
diff --git a/tools/fuzzer/runners/json_fuzzer_test.sh b/tools/fuzzer/runners/json_fuzzer_test.sh
new file mode 100644
index 0000000000..9c5cba3baf
--- /dev/null
+++ b/tools/fuzzer/runners/json_fuzzer_test.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+flags="-max_total_time=3600 -jobs=3 -workers=3"
+if [ "$config" == "asan-trace-cmp" ]
+then
+ flags="-use_traces=1 $flags"
+fi
+
+bins/$config/json_fuzzer_test $flags fuzzer_output test/core/json/corpus
diff --git a/tools/fuzzer/runners/uri_fuzzer_test.sh b/tools/fuzzer/runners/uri_fuzzer_test.sh
new file mode 100644
index 0000000000..58f20d021c
--- /dev/null
+++ b/tools/fuzzer/runners/uri_fuzzer_test.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+flags="-max_total_time=3600 -jobs=3 -workers=3"
+if [ "$config" == "asan-trace-cmp" ]
+then
+ flags="-use_traces=1 $flags"
+fi
+
+bins/$config/uri_fuzzer_test $flags fuzzer_output test/core/client_config/uri_corpus
diff --git a/tools/gce/create_interop_worker.sh b/tools/gce/create_interop_worker.sh
new file mode 100755
index 0000000000..3c49c6102a
--- /dev/null
+++ b/tools/gce/create_interop_worker.sh
@@ -0,0 +1,64 @@
+#!/bin/bash
+# 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.
+
+# Creates an interop worker on GCE.
+# IMPORTANT: After this script finishes, there are still some manual
+# steps needed there are hard to automatize.
+# See go/grpc-jenkins-setup for followup instructions.
+
+set -ex
+
+cd $(dirname $0)
+
+CLOUD_PROJECT=grpc-testing
+ZONE=us-east1-a # canary gateway is reachable from this zone
+
+INSTANCE_NAME="${1:-grpc-canary-interop2}"
+
+gcloud compute instances create $INSTANCE_NAME \
+ --project="$CLOUD_PROJECT" \
+ --zone "$ZONE" \
+ --machine-type n1-standard-16 \
+ --image ubuntu-15-10 \
+ --boot-disk-size 1000 \
+ --scopes https://www.googleapis.com/auth/xapi.zoo
+
+echo 'Created GCE instance, waiting 60 seconds for it to come online.'
+sleep 60
+
+gcloud compute copy-files \
+ --project="$CLOUD_PROJECT" \
+ --zone "$ZONE" \
+ jenkins_master.pub linux_worker_init.sh ${INSTANCE_NAME}:~
+
+gcloud compute ssh \
+ --project="$CLOUD_PROJECT" \
+ --zone "$ZONE" \
+ $INSTANCE_NAME --command "./linux_worker_init.sh"
diff --git a/tools/gce/create_linux_performance_worker.sh b/tools/gce/create_linux_performance_worker.sh
index 720fc80a0d..8c9cc46a75 100755
--- a/tools/gce/create_linux_performance_worker.sh
+++ b/tools/gce/create_linux_performance_worker.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -29,6 +29,10 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Creates a performance worker on GCE.
+# IMPORTANT: After creating the worker, one needs to manually add the pubkey
+# of jenkins@the-machine-where-jenkins-starts-perf-tests
+# to ~/.ssh/authorized_keys so that multi-machine scenarios can work.
+# See tools/run_tests/run_performance_tests.py for details.
set -ex
@@ -37,7 +41,7 @@ cd $(dirname $0)
CLOUD_PROJECT=grpc-testing
ZONE=us-central1-b # this zone allows 32core machines
-INSTANCE_NAME="${1:-grpc-performance-driver}"
+INSTANCE_NAME="${1:-grpc-performance-server1}"
MACHINE_TYPE=n1-standard-32
gcloud compute instances create $INSTANCE_NAME \
@@ -53,9 +57,9 @@ sleep 60
gcloud compute copy-files \
--project="$CLOUD_PROJECT" \
--zone "$ZONE" \
- jenkins_master.pub linux_performance_worker_init.sh ${INSTANCE_NAME}:~
+ jenkins_master.pub linux_performance_worker_init.sh jenkins@${INSTANCE_NAME}:~
gcloud compute ssh \
--project="$CLOUD_PROJECT" \
--zone "$ZONE" \
- $INSTANCE_NAME --command "./linux_performance_worker_init.sh"
+ jenkins@${INSTANCE_NAME} --command "./linux_performance_worker_init.sh"
diff --git a/tools/gce/create_linux_worker.sh b/tools/gce/create_linux_worker.sh
index 399e3ec4e4..dff0b1ce5f 100755
--- a/tools/gce/create_linux_worker.sh
+++ b/tools/gce/create_linux_worker.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/gce/linux_performance_worker_init.sh b/tools/gce/linux_performance_worker_init.sh
index bae2b51106..c7272b61a5 100755
--- a/tools/gce/linux_performance_worker_init.sh
+++ b/tools/gce/linux_performance_worker_init.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -36,13 +36,10 @@ set -ex
sudo apt-get update
-# Install JRE
-sudo apt-get install -y openjdk-7-jre
+# Install Java 8 JDK (to build gRPC Java)
+sudo apt-get install -y openjdk-8-jdk
sudo apt-get install -y unzip lsof
-# Setup jenkins user (or the user will already exist bcuz magic)
-sudo adduser jenkins --disabled-password || true
-
# Add pubkey of jenkins@grpc-jenkins-master to authorized keys of jenkins@
# This needs to happen as the last step to prevent Jenkins master from connecting
# to a machine that hasn't been properly setup yet.
@@ -89,7 +86,7 @@ curl -O https://bootstrap.pypa.io/get-pip.py
sudo pypy get-pip.py
sudo pypy -m pip install tabulate
-# Node dependences.
+# Node dependencies (nvm has to be installed under user jenkins)
touch .profile
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash
nvm install 0.12 && npm config set cache /tmp/npm-cache
@@ -104,3 +101,5 @@ sudo apt-get install -y mono-devel nuget
# Ruby dependencies
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -sSL https://get.rvm.io | bash -s stable --ruby
+
+# Java dependencies - nothing as we already have Java JDK 8
diff --git a/tools/gce/linux_worker_init.sh b/tools/gce/linux_worker_init.sh
index f56cac0ce2..ef6a5d175c 100755
--- a/tools/gce/linux_worker_init.sh
+++ b/tools/gce/linux_worker_init.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/gcp/stress_test/run_client.py b/tools/gcp/stress_test/run_client.py
index 0fa1bf1cb9..e6b28d5624 100755
--- a/tools/gcp/stress_test/run_client.py
+++ b/tools/gcp/stress_test/run_client.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python2.7
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/gcp/stress_test/run_server.py b/tools/gcp/stress_test/run_server.py
index 64322f6100..dc4741b95e 100755
--- a/tools/gcp/stress_test/run_server.py
+++ b/tools/gcp/stress_test/run_server.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python2.7
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/gcp/stress_test/stress_test_utils.py b/tools/gcp/stress_test/stress_test_utils.py
index c4b437e345..79d9dea675 100755
--- a/tools/gcp/stress_test/stress_test_utils.py
+++ b/tools/gcp/stress_test/stress_test_utils.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python2.7
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/gcp/utils/big_query_utils.py b/tools/gcp/utils/big_query_utils.py
index 7bb1e14354..c331a67942 100755
--- a/tools/gcp/utils/big_query_utils.py
+++ b/tools/gcp/utils/big_query_utils.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python2.7
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/gcp/utils/kubernetes_api.py b/tools/gcp/utils/kubernetes_api.py
index e8ddd2f1b3..a8a4aad69b 100755
--- a/tools/gcp/utils/kubernetes_api.py
+++ b/tools/gcp/utils/kubernetes_api.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python2.7
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/gource/gource.sh b/tools/gource/gource.sh
new file mode 100755
index 0000000000..167a256b84
--- /dev/null
+++ b/tools/gource/gource.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+gource -c 4 -s 0.1 --max-file-lag 0.05 --max-files 0 -e 0.01 --hide filenames,dirnames --file-filter 'doc/ref|vsprojects/vcxproj' $*
diff --git a/tools/jenkins/build_docker_and_run_tests.sh b/tools/jenkins/build_docker_and_run_tests.sh
index 458e8ca0c7..5779e63db9 100755
--- a/tools/jenkins/build_docker_and_run_tests.sh
+++ b/tools/jenkins/build_docker_and_run_tests.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/jenkins/build_interop_image.sh b/tools/jenkins/build_interop_image.sh
index 28d5f31d4f..26687a5a85 100755
--- a/tools/jenkins/build_interop_image.sh
+++ b/tools/jenkins/build_interop_image.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/jenkins/build_interop_stress_image.sh b/tools/jenkins/build_interop_stress_image.sh
index 501dc5b7ca..14621bf6c4 100755
--- a/tools/jenkins/build_interop_stress_image.sh
+++ b/tools/jenkins/build_interop_stress_image.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -34,10 +34,12 @@
set -x
# Params:
-# INTEROP_IMAGE - name of tag of the final interop image
+# INTEROP_IMAGE - Name of tag of the final interop image
# INTEROP_IMAGE_TAG - Optional. If set, the created image will be tagged using
# the command: 'docker tag $INTEROP_IMAGE $INTEROP_IMAGE_REPOSITORY_TAG'
-# BASE_NAME - base name used to locate the base Dockerfile and build script
+# BASE_NAME - Base name used to locate the base Dockerfile and build script
+# BUILD_TYPE - The 'CONFIG' variable passed to the 'make' command (example:
+# asan, tsan. Default value: opt).
# TTY_FLAG - optional -t flag to make docker allocate tty
# BUILD_INTEROP_DOCKER_EXTRA_ARGS - optional args to be passed to the
# docker run command
@@ -71,6 +73,7 @@ CONTAINER_NAME="build_${BASE_NAME}_$(uuidgen)"
(docker run \
-e CCACHE_DIR=/tmp/ccache \
-e THIS_IS_REALLY_NEEDED='see https://github.com/docker/docker/issues/14203 for why docker is awful' \
+ -e BUILD_TYPE=${BUILD_TYPE:=opt} \
-i $TTY_FLAG \
$MOUNT_ARGS \
$BUILD_INTEROP_DOCKER_EXTRA_ARGS \
diff --git a/tools/jenkins/docker_run_tests.sh b/tools/jenkins/docker_run_tests.sh
index 8d6c42cd9b..2fc66c21f5 100755
--- a/tools/jenkins/docker_run_tests.sh
+++ b/tools/jenkins/docker_run_tests.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -34,7 +34,7 @@
set -e
export CONFIG=$config
-export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-3.5
+export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer
# Ensure that programs depending on current-user-ownership of cache directories
# are satisfied (it's being mounted from outside the image).
diff --git a/tools/jenkins/run_distribution.sh b/tools/jenkins/run_distribution.sh
index 446ce16703..306b85b045 100755
--- a/tools/jenkins/run_distribution.sh
+++ b/tools/jenkins/run_distribution.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/jenkins/run_fuzzer.sh b/tools/jenkins/run_fuzzer.sh
new file mode 100755
index 0000000000..3d6da99762
--- /dev/null
+++ b/tools/jenkins/run_fuzzer.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# Builds and runs a fuzzer (specified by the first command line argument)
+
+set -ex
+
+export RUN_COMMAND="tools/fuzzer/build_and_run_fuzzer.sh $1"
+export DOCKER_RUN_SCRIPT=tools/jenkins/docker_run.sh
+export DOCKERFILE_DIR=tools/dockerfile/test/fuzzer
+export OUTPUT_DIR=fuzzer_output
+
+tools/jenkins/build_and_run_docker.sh \
+ -e RUN_COMMAND="$RUN_COMMAND" \
+ -e OUTPUT_DIR="$OUTPUT_DIR" \
+ -e config="$config"
diff --git a/tools/jenkins/run_interop_stress.sh b/tools/jenkins/run_interop_stress.sh
index 8166f34e05..22d81db8bc 100755
--- a/tools/jenkins/run_interop_stress.sh
+++ b/tools/jenkins/run_interop_stress.sh
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/jenkins/run_jenkins.sh b/tools/jenkins/run_jenkins.sh
index da6ca69809..7a6dfe3577 100755
--- a/tools/jenkins/run_jenkins.sh
+++ b/tools/jenkins/run_jenkins.sh
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/jenkins/run_performance.sh b/tools/jenkins/run_performance.sh
index fbc078330f..8bbb894820 100755
--- a/tools/jenkins/run_performance.sh
+++ b/tools/jenkins/run_performance.sh
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/jenkins/run_portability.sh b/tools/jenkins/run_portability.sh
index 6f15da73f4..18d34cc870 100755
--- a/tools/jenkins/run_portability.sh
+++ b/tools/jenkins/run_portability.sh
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/openssl/use_openssl.sh b/tools/openssl/use_openssl.sh
index 9318b34257..09d86767ec 100755
--- a/tools/openssl/use_openssl.sh
+++ b/tools/openssl/use_openssl.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/run_tests/build_artifact_node.sh b/tools/run_tests/build_artifact_node.sh
index 6aa4824538..ef3476a038 100755
--- a/tools/run_tests/build_artifact_node.sh
+++ b/tools/run_tests/build_artifact_node.sh
@@ -30,9 +30,9 @@
NODE_TARGET_ARCH=$1
source ~/.nvm/nvm.sh
-set -ex
nvm use 4
+set -ex
cd $(dirname $0)/../..
diff --git a/tools/run_tests/build_artifact_python.sh b/tools/run_tests/build_artifact_python.sh
index 7ba04d7546..1f23f9fade 100755
--- a/tools/run_tests/build_artifact_python.sh
+++ b/tools/run_tests/build_artifact_python.sh
@@ -35,15 +35,18 @@ cd $(dirname $0)/../..
if [ "$SKIP_PIP_INSTALL" == "" ]
then
pip install --upgrade six
- pip install --upgrade setuptools
+ # There's a bug in newer versions of setuptools (see
+ # https://bitbucket.org/pypa/setuptools/issues/503/pkg_resources_vendorpackagingrequirementsi)
+ pip install --upgrade 'setuptools==18'
pip install -rrequirements.txt
fi
+export GRPC_PYTHON_USE_CUSTOM_BDIST=0
+export GRPC_PYTHON_BUILD_WITH_CYTHON=1
+
# Build the source distribution first because MANIFEST.in cannot override
# exclusion of built shared objects among package resources (for some
# inexplicable reason).
-GRPC_PYTHON_USE_CUSTOM_BDIST=0 \
-GRPC_PYTHON_BUILD_WITH_CYTHON=1 \
${SETARCH_CMD} python setup.py \
sdist
@@ -51,15 +54,11 @@ ${SETARCH_CMD} python setup.py \
# and thus ought to be run in a shell command separate of others. Further, it
# trashes the actual bdist_wheel output, so it should be run first so that
# bdist_wheel may be run unmolested.
-GRPC_PYTHON_USE_CUSTOM_BDIST=0 \
-GRPC_PYTHON_BUILD_WITH_CYTHON=1 \
${SETARCH_CMD} python setup.py \
build_tagged_ext
# Wheel has a bug where directories don't get excluded.
# https://bitbucket.org/pypa/wheel/issues/99/cannot-exclude-directory
-GRPC_PYTHON_USE_CUSTOM_BDIST=0 \
-GRPC_PYTHON_BUILD_WITH_CYTHON=1 \
${SETARCH_CMD} python setup.py \
bdist_wheel
diff --git a/tools/run_tests/build_csharp.sh b/tools/run_tests/build_csharp.sh
index aadd11e205..48ce11a10b 100755
--- a/tools/run_tests/build_csharp.sh
+++ b/tools/run_tests/build_csharp.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/run_tests/build_node.sh b/tools/run_tests/build_node.sh
index 9c4af07185..d9292fd8aa 100755
--- a/tools/run_tests/build_node.sh
+++ b/tools/run_tests/build_node.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -31,9 +31,9 @@
NODE_VERSION=$1
source ~/.nvm/nvm.sh
-set -ex
nvm use $NODE_VERSION
+set -ex
CONFIG=${CONFIG:-opt}
diff --git a/tools/run_tests/build_package_node.sh b/tools/run_tests/build_package_node.sh
index aca90a3750..540c826311 100755
--- a/tools/run_tests/build_package_node.sh
+++ b/tools/run_tests/build_package_node.sh
@@ -29,9 +29,9 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
source ~/.nvm/nvm.sh
-set -ex
nvm use 4
+set -ex
cd $(dirname $0)/../..
diff --git a/tools/run_tests/build_php.sh b/tools/run_tests/build_php.sh
index 0f9cfe5e3a..77a8abcfe7 100755
--- a/tools/run_tests/build_php.sh
+++ b/tools/run_tests/build_php.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/run_tests/build_python.sh b/tools/run_tests/build_python.sh
index 79a148faf1..30d121007f 100755
--- a/tools/run_tests/build_python.sh
+++ b/tools/run_tests/build_python.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -40,6 +40,7 @@ export PATH=$ROOT/bins/$CONFIG:$ROOT/bins/$CONFIG/protobuf:$PATH
export CFLAGS="-I$ROOT/include -std=gnu99"
export LDFLAGS="-L$ROOT/libs/$CONFIG"
export GRPC_PYTHON_BUILD_WITH_CYTHON=1
+export GRPC_PYTHON_USE_PRECOMPILED_BINARIES=0
if [ "$CONFIG" = "gcov" ]
then
diff --git a/tools/run_tests/build_ruby.sh b/tools/run_tests/build_ruby.sh
index ebd27f6a6c..10343fce69 100755
--- a/tools/run_tests/build_ruby.sh
+++ b/tools/run_tests/build_ruby.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/run_tests/configs.json b/tools/run_tests/configs.json
index a858170d87..325e9aa929 100644
--- a/tools/run_tests/configs.json
+++ b/tools/run_tests/configs.json
@@ -3,6 +3,14 @@
"config": "opt"
},
{
+ "config": "asan-trace-cmp",
+ "environ": {
+ "ASAN_OPTIONS": "detect_leaks=1:color=always",
+ "LSAN_OPTIONS": "suppressions=tools/lsan_suppressions.txt:report_objects=1"
+ },
+ "timeout_multiplier": 3
+ },
+ {
"config": "dbg"
},
{
diff --git a/tools/run_tests/jobset.py b/tools/run_tests/jobset.py
index a3b246dc08..e9675fb785 100755
--- a/tools/run_tests/jobset.py
+++ b/tools/run_tests/jobset.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -151,7 +151,8 @@ class JobSpec(object):
def __init__(self, cmdline, shortname=None, environ=None, hash_targets=None,
cwd=None, shell=False, timeout_seconds=5*60, flake_retries=0,
- timeout_retries=0, kill_handler=None, cpu_cost=1.0):
+ timeout_retries=0, kill_handler=None, cpu_cost=1.0,
+ verbose_success=False):
"""
Arguments:
cmdline: a list of arguments to pass as the command line
@@ -176,6 +177,7 @@ class JobSpec(object):
self.timeout_retries = timeout_retries
self.kill_handler = kill_handler
self.cpu_cost = cpu_cost
+ self.verbose_success = verbose_success
def identity(self):
return '%r %r %r' % (self.cmdline, self.environ, self.hash_targets)
@@ -287,7 +289,8 @@ class Job(object):
cores = (user + sys) / real
measurement = '; cpu_cost=%.01f; estimated=%.01f' % (cores, self._spec.cpu_cost)
message('PASSED', '%s [time=%.1fsec; retries=%d:%d%s]' % (
- self._spec.shortname, elapsed, self._retries, self._timeout_retries, measurement),
+ self._spec.shortname, elapsed, self._retries, self._timeout_retries, measurement),
+ stdout() if self._spec.verbose_success else None,
do_newline=self._newline_on_success or self._travis)
self.result.state = 'PASSED'
if self._bin_hash:
diff --git a/tools/run_tests/performance/build_performance.sh b/tools/run_tests/performance/build_performance.sh
new file mode 100755
index 0000000000..829c2e3040
--- /dev/null
+++ b/tools/run_tests/performance/build_performance.sh
@@ -0,0 +1,52 @@
+#!/bin/bash
+# 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.
+
+set -ex
+
+cd $(dirname $0)/../../..
+
+#TODO(jtattermusch): add support for more languages
+
+CONFIG=${CONFIG:-opt}
+
+for language in $@
+do
+ if [ "$language" == "c++" ]
+ then
+ # build C++ qps worker & driver
+ # TODO(jtattermusch): not embedding OpenSSL breaks the C# build because
+ # grpc_csharp_ext needs OpenSSL embedded and some intermediate files from
+ # this build will be reused.
+ make CONFIG=${CONFIG} EMBED_OPENSSL=true EMBED_ZLIB=true qps_worker qps_driver -j8
+ else
+ tools/run_tests/run_tests.py -l $language -c $CONFIG --build_only -j 8
+ fi
+done
+
diff --git a/tools/run_tests/performance/remote_host_build.sh b/tools/run_tests/performance/remote_host_build.sh
new file mode 100755
index 0000000000..fee4167d33
--- /dev/null
+++ b/tools/run_tests/performance/remote_host_build.sh
@@ -0,0 +1,36 @@
+#!/bin/bash
+# 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.
+
+set -ex
+
+cd $(dirname $0)/../../..
+
+# execute the build script remotely
+ssh "${USER_AT_HOST}" "CONFIG=${CONFIG} ~/performance_workspace/grpc/tools/run_tests/performance/build_performance.sh $*"
diff --git a/tools/run_tests/performance/remote_host_prepare.sh b/tools/run_tests/performance/remote_host_prepare.sh
new file mode 100755
index 0000000000..c70e1d3963
--- /dev/null
+++ b/tools/run_tests/performance/remote_host_prepare.sh
@@ -0,0 +1,45 @@
+#!/bin/bash
+# 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.
+
+set -ex
+
+cd $(dirname $0)/../../..
+
+# cleanup after previous builds
+ssh "${USER_AT_HOST}" "rm -rf ~/performance_workspace && mkdir -p ~/performance_workspace"
+
+# TODO(jtattermusch): To be sure there are no running processes that would
+# mess with the results, be rough and reboot the slave here
+# and wait for it to come back online.
+ssh "${USER_AT_HOST}" "killall qps_worker mono node || true"
+
+# push the current sources to the slave and unpack it.
+scp ../grpc.tar "${USER_AT_HOST}:~/performance_workspace"
+ssh "${USER_AT_HOST}" "tar -xf ~/performance_workspace/grpc.tar -C ~/performance_workspace"
diff --git a/tools/run_tests/performance/run_worker_csharp.sh b/tools/run_tests/performance/run_worker_csharp.sh
new file mode 100755
index 0000000000..ce34b203c3
--- /dev/null
+++ b/tools/run_tests/performance/run_worker_csharp.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+# 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.
+
+set -ex
+
+cd $(dirname $0)/../../..
+
+# needed to correctly locate testca
+cd src/csharp/Grpc.IntegrationTesting.QpsWorker/bin/Release
+
+mono Grpc.IntegrationTesting.QpsWorker.exe $@
diff --git a/tools/run_tests/performance/run_worker_node.sh b/tools/run_tests/performance/run_worker_node.sh
new file mode 100755
index 0000000000..36bf1b20a0
--- /dev/null
+++ b/tools/run_tests/performance/run_worker_node.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+# 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.
+
+source ~/.nvm/nvm.sh
+nvm use 0.12
+
+set -ex
+
+cd $(dirname $0)/../../..
+
+node src/node/performance/worker.js $@
diff --git a/tools/run_tests/post_tests_php.sh b/tools/run_tests/post_tests_php.sh
index 01a44d03dc..b4098066ea 100755
--- a/tools/run_tests/post_tests_php.sh
+++ b/tools/run_tests/post_tests_php.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/run_tests/post_tests_ruby.sh b/tools/run_tests/post_tests_ruby.sh
index 1a02e566c7..0877e44805 100755
--- a/tools/run_tests/post_tests_ruby.sh
+++ b/tools/run_tests/post_tests_ruby.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/run_tests/pre_build_csharp.sh b/tools/run_tests/pre_build_csharp.sh
index 32466c2177..3ff1a4e5a8 100755
--- a/tools/run_tests/pre_build_csharp.sh
+++ b/tools/run_tests/pre_build_csharp.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/run_tests/pre_build_node.sh b/tools/run_tests/pre_build_node.sh
index 11f46d60fc..4879e7ad9b 100755
--- a/tools/run_tests/pre_build_node.sh
+++ b/tools/run_tests/pre_build_node.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -31,9 +31,9 @@
NODE_VERSION=$1
source ~/.nvm/nvm.sh
-set -ex
nvm use $NODE_VERSION
+set -ex
export GRPC_CONFIG=${CONFIG:-opt}
diff --git a/tools/run_tests/report_utils.py b/tools/run_tests/report_utils.py
index df114e5dae..35dcaca3d3 100644
--- a/tools/run_tests/report_utils.py
+++ b/tools/run_tests/report_utils.py
@@ -1,4 +1,4 @@
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/run_tests/run_csharp.bat b/tools/run_tests/run_csharp.bat
index 82eb58518c..29c879e23b 100644
--- a/tools/run_tests/run_csharp.bat
+++ b/tools/run_tests/run_csharp.bat
@@ -10,9 +10,9 @@ if not "%CONFIG%" == "gcov" (
) else (
@rem Run all tests with code coverage
- packages\OpenCover.4.6.166\tools\OpenCover.Console.exe -target:"packages\NUnit.Runners.2.6.4\tools\nunit-console-x86.exe" -targetdir:"." -targetargs:"%*" -filter:"+[Grpc.Core]*" -register:user -output:coverage_results.xml || goto :error
+ packages\OpenCover.4.6.519\tools\OpenCover.Console.exe -target:"packages\NUnit.Runners.2.6.4\tools\nunit-console-x86.exe" -targetdir:"." -targetargs:"%*" -filter:"+[Grpc.Core]*" -register:user -output:coverage_results.xml || goto :error
- packages\ReportGenerator.2.3.2.0\tools\ReportGenerator.exe -reports:"coverage_results.xml" -targetdir:"..\..\reports\csharp_coverage" -reporttypes:"Html;TextSummary" || goto :error
+ packages\ReportGenerator.2.4.4.0\tools\ReportGenerator.exe -reports:"coverage_results.xml" -targetdir:"..\..\reports\csharp_coverage" -reporttypes:"Html;TextSummary" || goto :error
@rem Generate the index.html file
echo ^<html^>^<head^>^</head^>^<body^>^<a href='csharp_coverage/index.htm'^>csharp coverage^</a^>^<br/^>^</body^>^</html^> >..\..\reports\index.html
diff --git a/tools/run_tests/run_csharp.sh b/tools/run_tests/run_csharp.sh
index 10f1c28521..dad44c4e4f 100755
--- a/tools/run_tests/run_csharp.sh
+++ b/tools/run_tests/run_csharp.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/run_tests/run_interop_tests.py b/tools/run_tests/run_interop_tests.py
index 86eb52bbde..28b91f8b62 100755
--- a/tools/run_tests/run_interop_tests.py
+++ b/tools/run_tests/run_interop_tests.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python2.7
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/run_tests/run_node.sh b/tools/run_tests/run_node.sh
index d33890068d..30f2c93588 100755
--- a/tools/run_tests/run_node.sh
+++ b/tools/run_tests/run_node.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -30,9 +30,9 @@
NODE_VERSION=$1
source ~/.nvm/nvm.sh
-set -ex
nvm use $NODE_VERSION
+set -ex
CONFIG=${CONFIG:-opt}
diff --git a/tools/run_tests/run_performance_tests.py b/tools/run_tests/run_performance_tests.py
new file mode 100755
index 0000000000..0ab3d264a5
--- /dev/null
+++ b/tools/run_tests/run_performance_tests.py
@@ -0,0 +1,431 @@
+#!/usr/bin/env python2.7
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Run performance tests locally or remotely."""
+
+import argparse
+import itertools
+import jobset
+import multiprocessing
+import os
+import subprocess
+import sys
+import tempfile
+import time
+import uuid
+
+
+_ROOT = os.path.abspath(os.path.join(os.path.dirname(sys.argv[0]), '../..'))
+os.chdir(_ROOT)
+
+
+_REMOTE_HOST_USERNAME = 'jenkins'
+
+
+class CXXLanguage:
+
+ def __init__(self):
+ self.safename = 'cxx'
+
+ def worker_cmdline(self):
+ return ['bins/opt/qps_worker']
+
+ def worker_port_offset(self):
+ return 0
+
+ def scenarios(self):
+ # TODO(jtattermusch): add more scenarios
+ return {
+ # Scenario 1: generic async streaming ping-pong (contentionless latency)
+ 'cpp_async_generic_streaming_ping_pong': [
+ '--rpc_type=STREAMING',
+ '--client_type=ASYNC_CLIENT',
+ '--server_type=ASYNC_GENERIC_SERVER',
+ '--outstanding_rpcs_per_channel=1',
+ '--client_channels=1',
+ '--bbuf_req_size=0',
+ '--bbuf_resp_size=0',
+ '--async_client_threads=1',
+ '--async_server_threads=1',
+ '--secure_test=true',
+ '--num_servers=1',
+ '--num_clients=1',
+ '--server_core_limit=0',
+ '--client_core_limit=0'],
+ # Scenario 5: Sync unary ping-pong with protobufs
+ 'cpp_sync_unary_ping_pong_protobuf': [
+ '--rpc_type=UNARY',
+ '--client_type=SYNC_CLIENT',
+ '--server_type=SYNC_SERVER',
+ '--outstanding_rpcs_per_channel=1',
+ '--client_channels=1',
+ '--simple_req_size=0',
+ '--simple_resp_size=0',
+ '--secure_test=true',
+ '--num_servers=1',
+ '--num_clients=1',
+ '--server_core_limit=0',
+ '--client_core_limit=0']}
+
+ def __str__(self):
+ return 'c++'
+
+
+class CSharpLanguage:
+
+ def __init__(self):
+ self.safename = str(self)
+
+ def worker_cmdline(self):
+ return ['tools/run_tests/performance/run_worker_csharp.sh']
+
+ def worker_port_offset(self):
+ return 100
+
+ def scenarios(self):
+ # TODO(jtattermusch): add more scenarios
+ return {
+ # Scenario 1: generic async streaming ping-pong (contentionless latency)
+ 'csharp_async_generic_streaming_ping_pong': [
+ '--rpc_type=STREAMING',
+ '--client_type=ASYNC_CLIENT',
+ '--server_type=ASYNC_GENERIC_SERVER',
+ '--outstanding_rpcs_per_channel=1',
+ '--client_channels=1',
+ '--bbuf_req_size=0',
+ '--bbuf_resp_size=0',
+ '--async_client_threads=1',
+ '--async_server_threads=1',
+ '--secure_test=true',
+ '--num_servers=1',
+ '--num_clients=1',
+ '--server_core_limit=0',
+ '--client_core_limit=0']}
+
+ def __str__(self):
+ return 'csharp'
+
+
+class NodeLanguage:
+
+ def __init__(self):
+ pass
+ self.safename = str(self)
+
+ def worker_cmdline(self):
+ return ['tools/run_tests/performance/run_worker_node.sh']
+
+ def worker_port_offset(self):
+ return 200
+
+ def scenarios(self):
+ # TODO(jtattermusch): add more scenarios
+ return {
+ 'node_sync_unary_ping_pong_protobuf': [
+ '--rpc_type=UNARY',
+ '--client_type=ASYNC_CLIENT',
+ '--server_type=ASYNC_SERVER',
+ '--outstanding_rpcs_per_channel=1',
+ '--client_channels=1',
+ '--simple_req_size=0',
+ '--simple_resp_size=0',
+ '--secure_test=false',
+ '--num_servers=1',
+ '--num_clients=1',
+ '--server_core_limit=0',
+ '--client_core_limit=0']}
+
+ def __str__(self):
+ return 'node'
+
+
+_LANGUAGES = {
+ 'c++' : CXXLanguage(),
+ 'csharp' : CSharpLanguage(),
+ 'node' : NodeLanguage(),
+}
+
+
+class QpsWorkerJob:
+ """Encapsulates a qps worker server job."""
+
+ def __init__(self, spec, language, host_and_port):
+ self._spec = spec
+ self.language = language
+ self.host_and_port = host_and_port
+ self._job = jobset.Job(spec, bin_hash=None, newline_on_success=True, travis=True, add_env={})
+
+ def is_running(self):
+ """Polls a job and returns True if given job is still running."""
+ return self._job.state(jobset.NoCache()) == jobset._RUNNING
+
+ def kill(self):
+ return self._job.kill()
+
+
+def create_qpsworker_job(language, shortname=None,
+ port=10000, remote_host=None):
+ # TODO: support more languages
+ cmdline = language.worker_cmdline() + ['--driver_port=%s' % port]
+ if remote_host:
+ user_at_host = '%s@%s' % (_REMOTE_HOST_USERNAME, remote_host)
+ cmdline = ['ssh',
+ str(user_at_host),
+ 'cd ~/performance_workspace/grpc/ && %s' % ' '.join(cmdline)]
+ host_and_port='%s:%s' % (remote_host, port)
+ else:
+ host_and_port='localhost:%s' % port
+
+ jobspec = jobset.JobSpec(
+ cmdline=cmdline,
+ shortname=shortname,
+ timeout_seconds=15*60)
+ return QpsWorkerJob(jobspec, language, host_and_port)
+
+
+def create_scenario_jobspec(scenario_name, driver_args, workers, remote_host=None):
+ """Runs one scenario using QPS driver."""
+ # setting QPS_WORKERS env variable here makes sure it works with SSH too.
+ cmd = 'QPS_WORKERS="%s" bins/opt/qps_driver ' % ','.join(workers)
+ cmd += ' '.join(driver_args)
+ if remote_host:
+ user_at_host = '%s@%s' % (_REMOTE_HOST_USERNAME, remote_host)
+ cmd = 'ssh %s "cd ~/performance_workspace/grpc/ && %s"' % (user_at_host, cmd)
+
+ return jobset.JobSpec(
+ cmdline=[cmd],
+ shortname='qps_driver.%s' % scenario_name,
+ timeout_seconds=3*60,
+ shell=True,
+ verbose_success=True)
+
+
+def archive_repo():
+ """Archives local version of repo including submodules."""
+ # TODO: also archive grpc-go and grpc-java repos
+ archive_job = jobset.JobSpec(
+ cmdline=['tar', '-cf', '../grpc.tar', '../grpc/'],
+ shortname='archive_repo',
+ timeout_seconds=3*60)
+
+ jobset.message('START', 'Archiving local repository.', do_newline=True)
+ num_failures, _ = jobset.run(
+ [archive_job], newline_on_success=True, maxjobs=1)
+ if num_failures == 0:
+ jobset.message('SUCCESS',
+ 'Archive with local repository create successfully.',
+ do_newline=True)
+ else:
+ jobset.message('FAILED', 'Failed to archive local repository.',
+ do_newline=True)
+ sys.exit(1)
+
+
+def prepare_remote_hosts(hosts):
+ """Prepares remote hosts."""
+ prepare_jobs = []
+ for host in hosts:
+ user_at_host = '%s@%s' % (_REMOTE_HOST_USERNAME, host)
+ prepare_jobs.append(
+ jobset.JobSpec(
+ 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)
+ 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.',
+ do_newline=True)
+ else:
+ jobset.message('FAILED', 'Failed to prepare remote hosts.',
+ do_newline=True)
+ sys.exit(1)
+
+
+def build_on_remote_hosts(hosts, languages=_LANGUAGES.keys(), build_local=False):
+ """Builds performance worker on remote hosts (and maybe also locally)."""
+ build_timeout = 15*60
+ build_jobs = []
+ for host in hosts:
+ user_at_host = '%s@%s' % (_REMOTE_HOST_USERNAME, host)
+ build_jobs.append(
+ jobset.JobSpec(
+ cmdline=['tools/run_tests/performance/remote_host_build.sh'] + languages,
+ shortname='remote_host_build.%s' % host,
+ environ = {'USER_AT_HOST': user_at_host, 'CONFIG': 'opt'},
+ timeout_seconds=build_timeout))
+ if build_local:
+ # Build locally as well
+ build_jobs.append(
+ jobset.JobSpec(
+ cmdline=['tools/run_tests/performance/build_performance.sh'] + languages,
+ shortname='local_build',
+ environ = {'CONFIG': 'opt'},
+ timeout_seconds=build_timeout))
+ jobset.message('START', 'Building.', do_newline=True)
+ num_failures, _ = jobset.run(
+ build_jobs, newline_on_success=True, maxjobs=10)
+ if num_failures == 0:
+ jobset.message('SUCCESS',
+ 'Built successfully.',
+ do_newline=True)
+ else:
+ jobset.message('FAILED', 'Build failed.',
+ do_newline=True)
+ sys.exit(1)
+
+
+def start_qpsworkers(languages, worker_hosts):
+ """Starts QPS workers as background jobs."""
+ if not worker_hosts:
+ # run two workers locally (for each language)
+ workers=[(None, 10000), (None, 10010)]
+ elif len(worker_hosts) == 1:
+ # run two workers on the remote host (for each language)
+ workers=[(worker_hosts[0], 10000), (worker_hosts[0], 10010)]
+ else:
+ # run one worker per each remote host (for each language)
+ workers=[(worker_host, 10000) for worker_host in worker_hosts]
+
+ return [create_qpsworker_job(language,
+ shortname= 'qps_worker_%s_%s' % (language,
+ worker_idx),
+ port=worker[1] + language.worker_port_offset(),
+ remote_host=worker[0])
+ for language in languages
+ for worker_idx, worker in enumerate(workers)]
+
+
+def create_scenarios(languages, workers_by_lang, remote_host=None):
+ """Create jobspecs for scenarios to run."""
+ scenarios = []
+ for language in languages:
+ for scenario_name, driver_args in language.scenarios().iteritems():
+ scenario = create_scenario_jobspec(scenario_name,
+ driver_args,
+ workers_by_lang[str(language)],
+ remote_host=remote_host)
+ scenarios.append(scenario)
+
+ # the very last scenario requests shutting down the workers.
+ all_workers = [worker
+ for workers in workers_by_lang.values()
+ for worker in workers]
+ scenarios.append(create_scenario_jobspec('quit_workers',
+ ['--quit=true'],
+ all_workers,
+ remote_host=remote_host))
+ return scenarios
+
+
+def finish_qps_workers(jobs):
+ """Waits for given jobs to finish and eventually kills them."""
+ retries = 0
+ while any(job.is_running() for job in jobs):
+ for job in qpsworker_jobs:
+ if job.is_running():
+ print 'QPS worker "%s" is still running.' % job.host_and_port
+ if retries > 10:
+ print 'Killing all QPS workers.'
+ for job in jobs:
+ job.kill()
+ retries += 1
+ time.sleep(3)
+ print 'All QPS workers finished.'
+
+
+argp = argparse.ArgumentParser(description='Run performance tests.')
+argp.add_argument('-l', '--language',
+ choices=['all'] + sorted(_LANGUAGES.keys()),
+ nargs='+',
+ default=['all'],
+ help='Languages to benchmark.')
+argp.add_argument('--remote_driver_host',
+ default=None,
+ help='Run QPS driver on given host. By default, QPS driver is run locally.')
+argp.add_argument('--remote_worker_host',
+ nargs='+',
+ default=[],
+ help='Worker hosts where to start QPS workers.')
+
+args = argp.parse_args()
+
+languages = set(_LANGUAGES[l]
+ for l in itertools.chain.from_iterable(
+ _LANGUAGES.iterkeys() if x == 'all' else [x]
+ for x in args.language))
+
+# Put together set of remote hosts where to run and build
+remote_hosts = set()
+if args.remote_worker_host:
+ for host in args.remote_worker_host:
+ remote_hosts.add(host)
+if args.remote_driver_host:
+ remote_hosts.add(args.remote_driver_host)
+
+if remote_hosts:
+ archive_repo()
+ prepare_remote_hosts(remote_hosts)
+
+build_local = False
+if not args.remote_driver_host:
+ build_local = True
+build_on_remote_hosts(remote_hosts, languages=[str(l) for l in languages], build_local=build_local)
+
+qpsworker_jobs = start_qpsworkers(languages, args.remote_worker_host)
+
+# get list of worker addresses for each language.
+worker_addresses = dict([(str(language), []) for language in languages])
+for job in qpsworker_jobs:
+ worker_addresses[str(job.language)].append(job.host_and_port)
+
+try:
+ scenarios = create_scenarios(languages,
+ workers_by_lang=worker_addresses,
+ remote_host=args.remote_driver_host)
+ if not scenarios:
+ raise Exception('No scenarios to run')
+
+ jobset.message('START', 'Running scenarios.', do_newline=True)
+ num_failures, _ = jobset.run(
+ scenarios, newline_on_success=True, maxjobs=1)
+ if num_failures == 0:
+ jobset.message('SUCCESS',
+ 'All scenarios finished successfully.',
+ do_newline=True)
+ else:
+ jobset.message('FAILED', 'Some of the scenarios failed.',
+ do_newline=True)
+ sys.exit(1)
+finally:
+ finish_qps_workers(qpsworker_jobs)
diff --git a/tools/run_tests/run_python.sh b/tools/run_tests/run_python.sh
index d4b7250cbb..a93ef2576d 100755
--- a/tools/run_tests/run_python.sh
+++ b/tools/run_tests/run_python.sh
@@ -1,5 +1,5 @@
#!/bin/bash
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -40,6 +40,7 @@ export PATH=$ROOT/bins/$CONFIG:$ROOT/bins/$CONFIG/protobuf:$PATH
export CFLAGS="-I$ROOT/include -std=c89"
export LDFLAGS="-L$ROOT/libs/$CONFIG"
export GRPC_PYTHON_BUILD_WITH_CYTHON=1
+export GRPC_PYTHON_USE_PRECOMPILED_BINARIES=0
if [ "$CONFIG" = "gcov" ]
then
diff --git a/tools/run_tests/run_stress_tests.py b/tools/run_tests/run_stress_tests.py
index d1faf7d964..0ba8f51c58 100755
--- a/tools/run_tests/run_stress_tests.py
+++ b/tools/run_tests/run_stress_tests.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python2.7
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py
index a9438045aa..a13f2a3a35 100755
--- a/tools/run_tests/run_tests.py
+++ b/tools/run_tests/run_tests.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python2.7
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -120,7 +120,12 @@ def get_c_tests(travis, test_lang) :
def _check_compiler(compiler, supported_compilers):
if compiler not in supported_compilers:
- raise Exception('Compiler %s not supported.' % compiler)
+ raise Exception('Compiler %s not supported (on this platform).' % compiler)
+
+
+def _check_arch(arch, supported_archs):
+ if arch not in supported_archs:
+ raise Exception('Architecture %s not supported.' % arch)
def _is_use_docker_child():
@@ -464,7 +469,20 @@ class CSharpLanguage(object):
def configure(self, config, args):
self.config = config
self.args = args
- _check_compiler(self.args.compiler, ['default'])
+ if self.platform == 'windows':
+ # Explicitly choosing between x86 and x64 arch doesn't work yet
+ _check_arch(self.args.arch, ['default'])
+ self._make_options = [_windows_toolset_option(self.args.compiler),
+ _windows_arch_option(self.args.arch)]
+ else:
+ _check_compiler(self.args.compiler, ['default'])
+ if self.platform == 'mac':
+ # On Mac, official distribution of mono is 32bit.
+ # TODO(jtattermusch): EMBED_ZLIB=true currently breaks the mac build
+ self._make_options = ['EMBED_OPENSSL=true',
+ 'CFLAGS=-m32', 'LDFLAGS=-m32']
+ else:
+ self._make_options = ['EMBED_OPENSSL=true', 'EMBED_ZLIB=true']
def test_specs(self):
with open('src/csharp/tests.json') as f:
@@ -511,23 +529,16 @@ class CSharpLanguage(object):
return [['tools/run_tests/pre_build_csharp.sh']]
def make_targets(self):
- # For Windows, this target doesn't really build anything,
- # everything is build by buildall script later.
- if self.platform == 'windows':
- return []
- else:
- return ['grpc_csharp_ext']
+ return ['grpc_csharp_ext']
def make_options(self):
- if self.platform == 'mac':
- # On Mac, official distribution of mono is 32bit.
- return ['CFLAGS=-arch i386', 'LDFLAGS=-arch i386']
- else:
- return []
+ return self._make_options;
def build_steps(self):
if self.platform == 'windows':
- return [['src\\csharp\\buildall.bat']]
+ return [[_windows_build_bat(self.args.compiler),
+ 'src/csharp/Grpc.sln',
+ '/p:Configuration=%s' % _MSBUILD_CONFIG[self.config.build_config]]]
else:
return [['tools/run_tests/build_csharp.sh']]
diff --git a/tools/run_tests/sanity/check_cache_mk.sh b/tools/run_tests/sanity/check_cache_mk.sh
index b738d6a965..d7ae3d0d65 100755
--- a/tools/run_tests/sanity/check_cache_mk.sh
+++ b/tools/run_tests/sanity/check_cache_mk.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/run_tests/sanity/check_sources_and_headers.py b/tools/run_tests/sanity/check_sources_and_headers.py
index b5f7912796..c028499ca6 100755
--- a/tools/run_tests/sanity/check_sources_and_headers.py
+++ b/tools/run_tests/sanity/check_sources_and_headers.py
@@ -1,5 +1,5 @@
#!/usr/bin/env python2.7
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/run_tests/sanity/check_submodules.sh b/tools/run_tests/sanity/check_submodules.sh
index 630e7fb3ae..06e66f0929 100755
--- a/tools/run_tests/sanity/check_submodules.sh
+++ b/tools/run_tests/sanity/check_submodules.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-# Copyright 2015-2016, Google Inc.
+# Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index 8653cf7017..bc1e34b744 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -393,6 +393,22 @@
{
"deps": [
"gpr",
+ "gpr_test_util",
+ "grpc",
+ "grpc_test_util"
+ ],
+ "headers": [],
+ "language": "c",
+ "name": "goaway_server_test",
+ "src": [
+ "test/core/end2end/goaway_server_test.c"
+ ],
+ "third_party": false,
+ "type": "target"
+ },
+ {
+ "deps": [
+ "gpr",
"gpr_test_util"
],
"headers": [],
@@ -891,6 +907,22 @@
],
"headers": [],
"language": "c",
+ "name": "hpack_parser_fuzzer_test",
+ "src": [
+ "test/core/transport/chttp2/hpack_parser_fuzzer_test.c"
+ ],
+ "third_party": false,
+ "type": "target"
+ },
+ {
+ "deps": [
+ "gpr",
+ "gpr_test_util",
+ "grpc",
+ "grpc_test_util"
+ ],
+ "headers": [],
+ "language": "c",
"name": "hpack_parser_test",
"src": [
"test/core/transport/chttp2/hpack_parser_test.c"
@@ -923,6 +955,22 @@
],
"headers": [],
"language": "c",
+ "name": "http_fuzzer_test",
+ "src": [
+ "test/core/http/fuzzer.c"
+ ],
+ "third_party": false,
+ "type": "target"
+ },
+ {
+ "deps": [
+ "gpr",
+ "gpr_test_util",
+ "grpc",
+ "grpc_test_util"
+ ],
+ "headers": [],
+ "language": "c",
"name": "http_parser_test",
"src": [
"test/core/http/parser_test.c"
@@ -1003,6 +1051,54 @@
],
"headers": [],
"language": "c",
+ "name": "internal_api_canary_iomgr_test",
+ "src": [
+ "test/core/internal_api_canaries/iomgr.c"
+ ],
+ "third_party": false,
+ "type": "target"
+ },
+ {
+ "deps": [
+ "gpr",
+ "gpr_test_util",
+ "grpc",
+ "grpc_test_util"
+ ],
+ "headers": [],
+ "language": "c",
+ "name": "internal_api_canary_support_test",
+ "src": [
+ "test/core/internal_api_canaries/iomgr.c"
+ ],
+ "third_party": false,
+ "type": "target"
+ },
+ {
+ "deps": [
+ "gpr",
+ "gpr_test_util",
+ "grpc",
+ "grpc_test_util"
+ ],
+ "headers": [],
+ "language": "c",
+ "name": "internal_api_canary_transport_test",
+ "src": [
+ "test/core/internal_api_canaries/iomgr.c"
+ ],
+ "third_party": false,
+ "type": "target"
+ },
+ {
+ "deps": [
+ "gpr",
+ "gpr_test_util",
+ "grpc",
+ "grpc_test_util"
+ ],
+ "headers": [],
+ "language": "c",
"name": "invalid_call_argument_test",
"src": [
"test/core/end2end/invalid_call_argument_test.c"
@@ -1013,6 +1109,22 @@
{
"deps": [
"gpr",
+ "gpr_test_util",
+ "grpc",
+ "grpc_test_util"
+ ],
+ "headers": [],
+ "language": "c",
+ "name": "json_fuzzer_test",
+ "src": [
+ "test/core/json/fuzzer.c"
+ ],
+ "third_party": false,
+ "type": "target"
+ },
+ {
+ "deps": [
+ "gpr",
"grpc"
],
"headers": [],
@@ -1544,6 +1656,22 @@
],
"headers": [],
"language": "c",
+ "name": "uri_fuzzer_test",
+ "src": [
+ "test/core/client_config/uri_fuzzer_test.c"
+ ],
+ "third_party": false,
+ "type": "target"
+ },
+ {
+ "deps": [
+ "gpr",
+ "gpr_test_util",
+ "grpc",
+ "grpc_test_util"
+ ],
+ "headers": [],
+ "language": "c",
"name": "uri_parser_test",
"src": [
"test/core/client_config/uri_parser_test.c"
@@ -3295,40 +3423,6 @@
],
"headers": [],
"language": "c",
- "name": "h2_full+poll_test",
- "src": [
- "test/core/end2end/fixtures/h2_full+poll.c"
- ],
- "third_party": false,
- "type": "target"
- },
- {
- "deps": [
- "end2end_tests",
- "gpr",
- "gpr_test_util",
- "grpc",
- "grpc_test_util"
- ],
- "headers": [],
- "language": "c",
- "name": "h2_full+poll+pipe_test",
- "src": [
- "test/core/end2end/fixtures/h2_full+poll+pipe.c"
- ],
- "third_party": false,
- "type": "target"
- },
- {
- "deps": [
- "end2end_tests",
- "gpr",
- "gpr_test_util",
- "grpc",
- "grpc_test_util"
- ],
- "headers": [],
- "language": "c",
"name": "h2_full+trace_test",
"src": [
"test/core/end2end/fixtures/h2_full+trace.c"
@@ -3448,23 +3542,6 @@
],
"headers": [],
"language": "c",
- "name": "h2_ssl+poll_test",
- "src": [
- "test/core/end2end/fixtures/h2_ssl+poll.c"
- ],
- "third_party": false,
- "type": "target"
- },
- {
- "deps": [
- "end2end_tests",
- "gpr",
- "gpr_test_util",
- "grpc",
- "grpc_test_util"
- ],
- "headers": [],
- "language": "c",
"name": "h2_ssl_proxy_test",
"src": [
"test/core/end2end/fixtures/h2_ssl_proxy.c"
@@ -3491,17 +3568,17 @@
},
{
"deps": [
- "end2end_tests",
+ "end2end_nosec_tests",
"gpr",
"gpr_test_util",
- "grpc",
- "grpc_test_util"
+ "grpc_test_util_unsecure",
+ "grpc_unsecure"
],
"headers": [],
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_census_nosec_test",
"src": [
- "test/core/end2end/fixtures/h2_uds+poll.c"
+ "test/core/end2end/fixtures/h2_census.c"
],
"third_party": false,
"type": "target"
@@ -3516,9 +3593,9 @@
],
"headers": [],
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_compress_nosec_test",
"src": [
- "test/core/end2end/fixtures/h2_census.c"
+ "test/core/end2end/fixtures/h2_compress.c"
],
"third_party": false,
"type": "target"
@@ -3533,9 +3610,9 @@
],
"headers": [],
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_full_nosec_test",
"src": [
- "test/core/end2end/fixtures/h2_compress.c"
+ "test/core/end2end/fixtures/h2_full.c"
],
"third_party": false,
"type": "target"
@@ -3550,9 +3627,9 @@
],
"headers": [],
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_full+pipe_nosec_test",
"src": [
- "test/core/end2end/fixtures/h2_full.c"
+ "test/core/end2end/fixtures/h2_full+pipe.c"
],
"third_party": false,
"type": "target"
@@ -3567,9 +3644,9 @@
],
"headers": [],
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"src": [
- "test/core/end2end/fixtures/h2_full+pipe.c"
+ "test/core/end2end/fixtures/h2_full+trace.c"
],
"third_party": false,
"type": "target"
@@ -3584,9 +3661,9 @@
],
"headers": [],
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "h2_proxy_nosec_test",
"src": [
- "test/core/end2end/fixtures/h2_full+poll.c"
+ "test/core/end2end/fixtures/h2_proxy.c"
],
"third_party": false,
"type": "target"
@@ -3601,9 +3678,9 @@
],
"headers": [],
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"src": [
- "test/core/end2end/fixtures/h2_full+poll+pipe.c"
+ "test/core/end2end/fixtures/h2_sockpair.c"
],
"third_party": false,
"type": "target"
@@ -3618,9 +3695,9 @@
],
"headers": [],
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"src": [
- "test/core/end2end/fixtures/h2_full+trace.c"
+ "test/core/end2end/fixtures/h2_sockpair+trace.c"
],
"third_party": false,
"type": "target"
@@ -3635,9 +3712,9 @@
],
"headers": [],
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"src": [
- "test/core/end2end/fixtures/h2_proxy.c"
+ "test/core/end2end/fixtures/h2_sockpair_1byte.c"
],
"third_party": false,
"type": "target"
@@ -3652,77 +3729,77 @@
],
"headers": [],
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "h2_uds_nosec_test",
"src": [
- "test/core/end2end/fixtures/h2_sockpair.c"
+ "test/core/end2end/fixtures/h2_uds.c"
],
"third_party": false,
"type": "target"
},
{
"deps": [
- "end2end_nosec_tests",
"gpr",
"gpr_test_util",
- "grpc_test_util_unsecure",
- "grpc_unsecure"
+ "grpc",
+ "grpc_test_util",
+ "one_input_fuzzer"
],
"headers": [],
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"src": [
- "test/core/end2end/fixtures/h2_sockpair+trace.c"
+ "test/core/transport/chttp2/hpack_parser_fuzzer_test.c"
],
"third_party": false,
"type": "target"
},
{
"deps": [
- "end2end_nosec_tests",
"gpr",
"gpr_test_util",
- "grpc_test_util_unsecure",
- "grpc_unsecure"
+ "grpc",
+ "grpc_test_util",
+ "one_input_fuzzer"
],
"headers": [],
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"src": [
- "test/core/end2end/fixtures/h2_sockpair_1byte.c"
+ "test/core/http/fuzzer.c"
],
"third_party": false,
"type": "target"
},
{
"deps": [
- "end2end_nosec_tests",
"gpr",
"gpr_test_util",
- "grpc_test_util_unsecure",
- "grpc_unsecure"
+ "grpc",
+ "grpc_test_util",
+ "one_input_fuzzer"
],
"headers": [],
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"src": [
- "test/core/end2end/fixtures/h2_uds.c"
+ "test/core/json/fuzzer.c"
],
"third_party": false,
"type": "target"
},
{
"deps": [
- "end2end_nosec_tests",
"gpr",
"gpr_test_util",
- "grpc_test_util_unsecure",
- "grpc_unsecure"
+ "grpc",
+ "grpc_test_util",
+ "one_input_fuzzer"
],
"headers": [],
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "uri_fuzzer_test_one_entry",
"src": [
- "test/core/end2end/fixtures/h2_uds+poll.c"
+ "test/core/client_config/uri_fuzzer_test.c"
],
"third_party": false,
"type": "target"
@@ -3924,11 +4001,35 @@
"include/grpc/impl/codegen/propagation_bits.h",
"include/grpc/impl/codegen/status.h",
"include/grpc/status.h",
- "src/core/lib/census/aggregation.h",
- "src/core/lib/census/grpc_filter.h",
- "src/core/lib/census/grpc_plugin.h",
- "src/core/lib/census/mlog.h",
- "src/core/lib/census/rpc_metric_id.h",
+ "src/core/ext/census/aggregation.h",
+ "src/core/ext/census/census_interface.h",
+ "src/core/ext/census/census_rpc_stats.h",
+ "src/core/ext/census/grpc_filter.h",
+ "src/core/ext/census/mlog.h",
+ "src/core/ext/census/rpc_metric_id.h",
+ "src/core/ext/lb_policy/grpclb/load_balancer_api.h",
+ "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h",
+ "src/core/ext/transport/chttp2/transport/alpn.h",
+ "src/core/ext/transport/chttp2/transport/bin_encoder.h",
+ "src/core/ext/transport/chttp2/transport/chttp2_transport.h",
+ "src/core/ext/transport/chttp2/transport/frame.h",
+ "src/core/ext/transport/chttp2/transport/frame_data.h",
+ "src/core/ext/transport/chttp2/transport/frame_goaway.h",
+ "src/core/ext/transport/chttp2/transport/frame_ping.h",
+ "src/core/ext/transport/chttp2/transport/frame_rst_stream.h",
+ "src/core/ext/transport/chttp2/transport/frame_settings.h",
+ "src/core/ext/transport/chttp2/transport/frame_window_update.h",
+ "src/core/ext/transport/chttp2/transport/hpack_encoder.h",
+ "src/core/ext/transport/chttp2/transport/hpack_parser.h",
+ "src/core/ext/transport/chttp2/transport/hpack_table.h",
+ "src/core/ext/transport/chttp2/transport/http2_errors.h",
+ "src/core/ext/transport/chttp2/transport/huffsyms.h",
+ "src/core/ext/transport/chttp2/transport/incoming_metadata.h",
+ "src/core/ext/transport/chttp2/transport/internal.h",
+ "src/core/ext/transport/chttp2/transport/status_conversion.h",
+ "src/core/ext/transport/chttp2/transport/stream_map.h",
+ "src/core/ext/transport/chttp2/transport/timeout_encoding.h",
+ "src/core/ext/transport/chttp2/transport/varint.h",
"src/core/lib/channel/channel_args.h",
"src/core/lib/channel/channel_stack.h",
"src/core/lib/channel/channel_stack_builder.h",
@@ -3942,17 +4043,12 @@
"src/core/lib/client_config/client_config.h",
"src/core/lib/client_config/connector.h",
"src/core/lib/client_config/initial_connect_string.h",
- "src/core/lib/client_config/lb_policies/load_balancer_api.h",
- "src/core/lib/client_config/lb_policies/pick_first.h",
- "src/core/lib/client_config/lb_policies/round_robin.h",
"src/core/lib/client_config/lb_policy.h",
"src/core/lib/client_config/lb_policy_factory.h",
"src/core/lib/client_config/lb_policy_registry.h",
"src/core/lib/client_config/resolver.h",
"src/core/lib/client_config/resolver_factory.h",
"src/core/lib/client_config/resolver_registry.h",
- "src/core/lib/client_config/resolvers/dns_resolver.h",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.h",
"src/core/lib/client_config/subchannel.h",
"src/core/lib/client_config/subchannel_factory.h",
"src/core/lib/client_config/subchannel_index.h",
@@ -3966,17 +4062,16 @@
"src/core/lib/iomgr/closure.h",
"src/core/lib/iomgr/endpoint.h",
"src/core/lib/iomgr/endpoint_pair.h",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.h",
+ "src/core/lib/iomgr/ev_posix.h",
"src/core/lib/iomgr/exec_ctx.h",
"src/core/lib/iomgr/executor.h",
- "src/core/lib/iomgr/fd_posix.h",
"src/core/lib/iomgr/iocp_windows.h",
"src/core/lib/iomgr/iomgr.h",
"src/core/lib/iomgr/iomgr_internal.h",
"src/core/lib/iomgr/iomgr_posix.h",
"src/core/lib/iomgr/pollset.h",
- "src/core/lib/iomgr/pollset_posix.h",
"src/core/lib/iomgr/pollset_set.h",
- "src/core/lib/iomgr/pollset_set_posix.h",
"src/core/lib/iomgr/pollset_set_windows.h",
"src/core/lib/iomgr/pollset_windows.h",
"src/core/lib/iomgr/resolve_address.h",
@@ -4004,7 +4099,6 @@
"src/core/lib/json/json_common.h",
"src/core/lib/json/json_reader.h",
"src/core/lib/json/json_writer.h",
- "src/core/lib/proto/grpc/lb/v0/load_balancer.pb.h",
"src/core/lib/security/auth_filters.h",
"src/core/lib/security/b64.h",
"src/core/lib/security/credentials.h",
@@ -4014,8 +4108,6 @@
"src/core/lib/security/secure_endpoint.h",
"src/core/lib/security/security_connector.h",
"src/core/lib/security/security_context.h",
- "src/core/lib/statistics/census_interface.h",
- "src/core/lib/statistics/census_rpc_stats.h",
"src/core/lib/surface/api_trace.h",
"src/core/lib/surface/call.h",
"src/core/lib/surface/call_test_only.h",
@@ -4029,27 +4121,6 @@
"src/core/lib/surface/server.h",
"src/core/lib/surface/surface_trace.h",
"src/core/lib/transport/byte_stream.h",
- "src/core/lib/transport/chttp2/alpn.h",
- "src/core/lib/transport/chttp2/bin_encoder.h",
- "src/core/lib/transport/chttp2/frame.h",
- "src/core/lib/transport/chttp2/frame_data.h",
- "src/core/lib/transport/chttp2/frame_goaway.h",
- "src/core/lib/transport/chttp2/frame_ping.h",
- "src/core/lib/transport/chttp2/frame_rst_stream.h",
- "src/core/lib/transport/chttp2/frame_settings.h",
- "src/core/lib/transport/chttp2/frame_window_update.h",
- "src/core/lib/transport/chttp2/hpack_encoder.h",
- "src/core/lib/transport/chttp2/hpack_parser.h",
- "src/core/lib/transport/chttp2/hpack_table.h",
- "src/core/lib/transport/chttp2/http2_errors.h",
- "src/core/lib/transport/chttp2/huffsyms.h",
- "src/core/lib/transport/chttp2/incoming_metadata.h",
- "src/core/lib/transport/chttp2/internal.h",
- "src/core/lib/transport/chttp2/status_conversion.h",
- "src/core/lib/transport/chttp2/stream_map.h",
- "src/core/lib/transport/chttp2/timeout_encoding.h",
- "src/core/lib/transport/chttp2/varint.h",
- "src/core/lib/transport/chttp2_transport.h",
"src/core/lib/transport/connectivity_state.h",
"src/core/lib/transport/metadata.h",
"src/core/lib/transport/metadata_batch.h",
@@ -4082,20 +4153,75 @@
"include/grpc/impl/codegen/propagation_bits.h",
"include/grpc/impl/codegen/status.h",
"include/grpc/status.h",
- "src/core/lib/census/aggregation.h",
- "src/core/lib/census/context.c",
- "src/core/lib/census/grpc_context.c",
- "src/core/lib/census/grpc_filter.c",
- "src/core/lib/census/grpc_filter.h",
- "src/core/lib/census/grpc_plugin.c",
- "src/core/lib/census/grpc_plugin.h",
- "src/core/lib/census/initialize.c",
- "src/core/lib/census/mlog.c",
- "src/core/lib/census/mlog.h",
- "src/core/lib/census/operation.c",
- "src/core/lib/census/placeholders.c",
- "src/core/lib/census/rpc_metric_id.h",
- "src/core/lib/census/tracing.c",
+ "src/core/ext/census/aggregation.h",
+ "src/core/ext/census/census_interface.h",
+ "src/core/ext/census/census_rpc_stats.h",
+ "src/core/ext/census/context.c",
+ "src/core/ext/census/grpc_context.c",
+ "src/core/ext/census/grpc_filter.c",
+ "src/core/ext/census/grpc_filter.h",
+ "src/core/ext/census/grpc_plugin.c",
+ "src/core/ext/census/initialize.c",
+ "src/core/ext/census/mlog.c",
+ "src/core/ext/census/mlog.h",
+ "src/core/ext/census/operation.c",
+ "src/core/ext/census/placeholders.c",
+ "src/core/ext/census/rpc_metric_id.h",
+ "src/core/ext/census/tracing.c",
+ "src/core/ext/lb_policy/grpclb/load_balancer_api.c",
+ "src/core/ext/lb_policy/grpclb/load_balancer_api.h",
+ "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c",
+ "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h",
+ "src/core/ext/lb_policy/pick_first/pick_first.c",
+ "src/core/ext/lb_policy/round_robin/round_robin.c",
+ "src/core/ext/resolver/dns/native/dns_resolver.c",
+ "src/core/ext/resolver/sockaddr/sockaddr_resolver.c",
+ "src/core/ext/transport/chttp2/client/insecure/channel_create.c",
+ "src/core/ext/transport/chttp2/client/secure/secure_channel_create.c",
+ "src/core/ext/transport/chttp2/server/insecure/server_chttp2.c",
+ "src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c",
+ "src/core/ext/transport/chttp2/transport/alpn.c",
+ "src/core/ext/transport/chttp2/transport/alpn.h",
+ "src/core/ext/transport/chttp2/transport/bin_encoder.c",
+ "src/core/ext/transport/chttp2/transport/bin_encoder.h",
+ "src/core/ext/transport/chttp2/transport/chttp2_transport.c",
+ "src/core/ext/transport/chttp2/transport/chttp2_transport.h",
+ "src/core/ext/transport/chttp2/transport/frame.h",
+ "src/core/ext/transport/chttp2/transport/frame_data.c",
+ "src/core/ext/transport/chttp2/transport/frame_data.h",
+ "src/core/ext/transport/chttp2/transport/frame_goaway.c",
+ "src/core/ext/transport/chttp2/transport/frame_goaway.h",
+ "src/core/ext/transport/chttp2/transport/frame_ping.c",
+ "src/core/ext/transport/chttp2/transport/frame_ping.h",
+ "src/core/ext/transport/chttp2/transport/frame_rst_stream.c",
+ "src/core/ext/transport/chttp2/transport/frame_rst_stream.h",
+ "src/core/ext/transport/chttp2/transport/frame_settings.c",
+ "src/core/ext/transport/chttp2/transport/frame_settings.h",
+ "src/core/ext/transport/chttp2/transport/frame_window_update.c",
+ "src/core/ext/transport/chttp2/transport/frame_window_update.h",
+ "src/core/ext/transport/chttp2/transport/hpack_encoder.c",
+ "src/core/ext/transport/chttp2/transport/hpack_encoder.h",
+ "src/core/ext/transport/chttp2/transport/hpack_parser.c",
+ "src/core/ext/transport/chttp2/transport/hpack_parser.h",
+ "src/core/ext/transport/chttp2/transport/hpack_table.c",
+ "src/core/ext/transport/chttp2/transport/hpack_table.h",
+ "src/core/ext/transport/chttp2/transport/http2_errors.h",
+ "src/core/ext/transport/chttp2/transport/huffsyms.c",
+ "src/core/ext/transport/chttp2/transport/huffsyms.h",
+ "src/core/ext/transport/chttp2/transport/incoming_metadata.c",
+ "src/core/ext/transport/chttp2/transport/incoming_metadata.h",
+ "src/core/ext/transport/chttp2/transport/internal.h",
+ "src/core/ext/transport/chttp2/transport/parsing.c",
+ "src/core/ext/transport/chttp2/transport/status_conversion.c",
+ "src/core/ext/transport/chttp2/transport/status_conversion.h",
+ "src/core/ext/transport/chttp2/transport/stream_lists.c",
+ "src/core/ext/transport/chttp2/transport/stream_map.c",
+ "src/core/ext/transport/chttp2/transport/stream_map.h",
+ "src/core/ext/transport/chttp2/transport/timeout_encoding.c",
+ "src/core/ext/transport/chttp2/transport/timeout_encoding.h",
+ "src/core/ext/transport/chttp2/transport/varint.c",
+ "src/core/ext/transport/chttp2/transport/varint.h",
+ "src/core/ext/transport/chttp2/transport/writing.c",
"src/core/lib/channel/channel_args.c",
"src/core/lib/channel/channel_args.h",
"src/core/lib/channel/channel_stack.c",
@@ -4122,12 +4248,6 @@
"src/core/lib/client_config/default_initial_connect_string.c",
"src/core/lib/client_config/initial_connect_string.c",
"src/core/lib/client_config/initial_connect_string.h",
- "src/core/lib/client_config/lb_policies/load_balancer_api.c",
- "src/core/lib/client_config/lb_policies/load_balancer_api.h",
- "src/core/lib/client_config/lb_policies/pick_first.c",
- "src/core/lib/client_config/lb_policies/pick_first.h",
- "src/core/lib/client_config/lb_policies/round_robin.c",
- "src/core/lib/client_config/lb_policies/round_robin.h",
"src/core/lib/client_config/lb_policy.c",
"src/core/lib/client_config/lb_policy.h",
"src/core/lib/client_config/lb_policy_factory.c",
@@ -4140,10 +4260,6 @@
"src/core/lib/client_config/resolver_factory.h",
"src/core/lib/client_config/resolver_registry.c",
"src/core/lib/client_config/resolver_registry.h",
- "src/core/lib/client_config/resolvers/dns_resolver.c",
- "src/core/lib/client_config/resolvers/dns_resolver.h",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.c",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.h",
"src/core/lib/client_config/subchannel.c",
"src/core/lib/client_config/subchannel.h",
"src/core/lib/client_config/subchannel_factory.c",
@@ -4172,12 +4288,14 @@
"src/core/lib/iomgr/endpoint_pair.h",
"src/core/lib/iomgr/endpoint_pair_posix.c",
"src/core/lib/iomgr/endpoint_pair_windows.c",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.c",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.h",
+ "src/core/lib/iomgr/ev_posix.c",
+ "src/core/lib/iomgr/ev_posix.h",
"src/core/lib/iomgr/exec_ctx.c",
"src/core/lib/iomgr/exec_ctx.h",
"src/core/lib/iomgr/executor.c",
"src/core/lib/iomgr/executor.h",
- "src/core/lib/iomgr/fd_posix.c",
- "src/core/lib/iomgr/fd_posix.h",
"src/core/lib/iomgr/iocp_windows.c",
"src/core/lib/iomgr/iocp_windows.h",
"src/core/lib/iomgr/iomgr.c",
@@ -4187,13 +4305,7 @@
"src/core/lib/iomgr/iomgr_posix.h",
"src/core/lib/iomgr/iomgr_windows.c",
"src/core/lib/iomgr/pollset.h",
- "src/core/lib/iomgr/pollset_multipoller_with_epoll.c",
- "src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c",
- "src/core/lib/iomgr/pollset_posix.c",
- "src/core/lib/iomgr/pollset_posix.h",
"src/core/lib/iomgr/pollset_set.h",
- "src/core/lib/iomgr/pollset_set_posix.c",
- "src/core/lib/iomgr/pollset_set_posix.h",
"src/core/lib/iomgr/pollset_set_windows.c",
"src/core/lib/iomgr/pollset_set_windows.h",
"src/core/lib/iomgr/pollset_windows.c",
@@ -4252,8 +4364,6 @@
"src/core/lib/json/json_string.c",
"src/core/lib/json/json_writer.c",
"src/core/lib/json/json_writer.h",
- "src/core/lib/proto/grpc/lb/v0/load_balancer.pb.c",
- "src/core/lib/proto/grpc/lb/v0/load_balancer.pb.h",
"src/core/lib/security/auth_filters.h",
"src/core/lib/security/b64.c",
"src/core/lib/security/b64.h",
@@ -4277,9 +4387,6 @@
"src/core/lib/security/security_context.c",
"src/core/lib/security/security_context.h",
"src/core/lib/security/server_auth_filter.c",
- "src/core/lib/security/server_secure_chttp2.c",
- "src/core/lib/statistics/census_interface.h",
- "src/core/lib/statistics/census_rpc_stats.h",
"src/core/lib/surface/alarm.c",
"src/core/lib/surface/api_trace.c",
"src/core/lib/surface/api_trace.h",
@@ -4293,7 +4400,6 @@
"src/core/lib/surface/channel.c",
"src/core/lib/surface/channel.h",
"src/core/lib/surface/channel_connectivity.c",
- "src/core/lib/surface/channel_create.c",
"src/core/lib/surface/channel_init.c",
"src/core/lib/surface/channel_init.h",
"src/core/lib/surface/channel_ping.c",
@@ -4309,57 +4415,13 @@
"src/core/lib/surface/lame_client.c",
"src/core/lib/surface/lame_client.h",
"src/core/lib/surface/metadata_array.c",
- "src/core/lib/surface/secure_channel_create.c",
"src/core/lib/surface/server.c",
"src/core/lib/surface/server.h",
- "src/core/lib/surface/server_chttp2.c",
"src/core/lib/surface/surface_trace.h",
"src/core/lib/surface/validate_metadata.c",
"src/core/lib/surface/version.c",
"src/core/lib/transport/byte_stream.c",
"src/core/lib/transport/byte_stream.h",
- "src/core/lib/transport/chttp2/alpn.c",
- "src/core/lib/transport/chttp2/alpn.h",
- "src/core/lib/transport/chttp2/bin_encoder.c",
- "src/core/lib/transport/chttp2/bin_encoder.h",
- "src/core/lib/transport/chttp2/frame.h",
- "src/core/lib/transport/chttp2/frame_data.c",
- "src/core/lib/transport/chttp2/frame_data.h",
- "src/core/lib/transport/chttp2/frame_goaway.c",
- "src/core/lib/transport/chttp2/frame_goaway.h",
- "src/core/lib/transport/chttp2/frame_ping.c",
- "src/core/lib/transport/chttp2/frame_ping.h",
- "src/core/lib/transport/chttp2/frame_rst_stream.c",
- "src/core/lib/transport/chttp2/frame_rst_stream.h",
- "src/core/lib/transport/chttp2/frame_settings.c",
- "src/core/lib/transport/chttp2/frame_settings.h",
- "src/core/lib/transport/chttp2/frame_window_update.c",
- "src/core/lib/transport/chttp2/frame_window_update.h",
- "src/core/lib/transport/chttp2/hpack_encoder.c",
- "src/core/lib/transport/chttp2/hpack_encoder.h",
- "src/core/lib/transport/chttp2/hpack_parser.c",
- "src/core/lib/transport/chttp2/hpack_parser.h",
- "src/core/lib/transport/chttp2/hpack_table.c",
- "src/core/lib/transport/chttp2/hpack_table.h",
- "src/core/lib/transport/chttp2/http2_errors.h",
- "src/core/lib/transport/chttp2/huffsyms.c",
- "src/core/lib/transport/chttp2/huffsyms.h",
- "src/core/lib/transport/chttp2/incoming_metadata.c",
- "src/core/lib/transport/chttp2/incoming_metadata.h",
- "src/core/lib/transport/chttp2/internal.h",
- "src/core/lib/transport/chttp2/parsing.c",
- "src/core/lib/transport/chttp2/status_conversion.c",
- "src/core/lib/transport/chttp2/status_conversion.h",
- "src/core/lib/transport/chttp2/stream_lists.c",
- "src/core/lib/transport/chttp2/stream_map.c",
- "src/core/lib/transport/chttp2/stream_map.h",
- "src/core/lib/transport/chttp2/timeout_encoding.c",
- "src/core/lib/transport/chttp2/timeout_encoding.h",
- "src/core/lib/transport/chttp2/varint.c",
- "src/core/lib/transport/chttp2/varint.h",
- "src/core/lib/transport/chttp2/writing.c",
- "src/core/lib/transport/chttp2_transport.c",
- "src/core/lib/transport/chttp2_transport.h",
"src/core/lib/transport/connectivity_state.c",
"src/core/lib/transport/connectivity_state.h",
"src/core/lib/transport/metadata.c",
@@ -4379,7 +4441,8 @@
"src/core/lib/tsi/ssl_types.h",
"src/core/lib/tsi/transport_security.c",
"src/core/lib/tsi/transport_security.h",
- "src/core/lib/tsi/transport_security_interface.h"
+ "src/core/lib/tsi/transport_security_interface.h",
+ "src/core/plugin_registry/grpc_plugin_registry.c"
],
"third_party": false,
"type": "lib"
@@ -4552,11 +4615,35 @@
"include/grpc/impl/codegen/propagation_bits.h",
"include/grpc/impl/codegen/status.h",
"include/grpc/status.h",
- "src/core/lib/census/aggregation.h",
- "src/core/lib/census/grpc_filter.h",
- "src/core/lib/census/grpc_plugin.h",
- "src/core/lib/census/mlog.h",
- "src/core/lib/census/rpc_metric_id.h",
+ "src/core/ext/census/aggregation.h",
+ "src/core/ext/census/census_interface.h",
+ "src/core/ext/census/census_rpc_stats.h",
+ "src/core/ext/census/grpc_filter.h",
+ "src/core/ext/census/mlog.h",
+ "src/core/ext/census/rpc_metric_id.h",
+ "src/core/ext/lb_policy/grpclb/load_balancer_api.h",
+ "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h",
+ "src/core/ext/transport/chttp2/transport/alpn.h",
+ "src/core/ext/transport/chttp2/transport/bin_encoder.h",
+ "src/core/ext/transport/chttp2/transport/chttp2_transport.h",
+ "src/core/ext/transport/chttp2/transport/frame.h",
+ "src/core/ext/transport/chttp2/transport/frame_data.h",
+ "src/core/ext/transport/chttp2/transport/frame_goaway.h",
+ "src/core/ext/transport/chttp2/transport/frame_ping.h",
+ "src/core/ext/transport/chttp2/transport/frame_rst_stream.h",
+ "src/core/ext/transport/chttp2/transport/frame_settings.h",
+ "src/core/ext/transport/chttp2/transport/frame_window_update.h",
+ "src/core/ext/transport/chttp2/transport/hpack_encoder.h",
+ "src/core/ext/transport/chttp2/transport/hpack_parser.h",
+ "src/core/ext/transport/chttp2/transport/hpack_table.h",
+ "src/core/ext/transport/chttp2/transport/http2_errors.h",
+ "src/core/ext/transport/chttp2/transport/huffsyms.h",
+ "src/core/ext/transport/chttp2/transport/incoming_metadata.h",
+ "src/core/ext/transport/chttp2/transport/internal.h",
+ "src/core/ext/transport/chttp2/transport/status_conversion.h",
+ "src/core/ext/transport/chttp2/transport/stream_map.h",
+ "src/core/ext/transport/chttp2/transport/timeout_encoding.h",
+ "src/core/ext/transport/chttp2/transport/varint.h",
"src/core/lib/channel/channel_args.h",
"src/core/lib/channel/channel_stack.h",
"src/core/lib/channel/channel_stack_builder.h",
@@ -4570,17 +4657,12 @@
"src/core/lib/client_config/client_config.h",
"src/core/lib/client_config/connector.h",
"src/core/lib/client_config/initial_connect_string.h",
- "src/core/lib/client_config/lb_policies/load_balancer_api.h",
- "src/core/lib/client_config/lb_policies/pick_first.h",
- "src/core/lib/client_config/lb_policies/round_robin.h",
"src/core/lib/client_config/lb_policy.h",
"src/core/lib/client_config/lb_policy_factory.h",
"src/core/lib/client_config/lb_policy_registry.h",
"src/core/lib/client_config/resolver.h",
"src/core/lib/client_config/resolver_factory.h",
"src/core/lib/client_config/resolver_registry.h",
- "src/core/lib/client_config/resolvers/dns_resolver.h",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.h",
"src/core/lib/client_config/subchannel.h",
"src/core/lib/client_config/subchannel_factory.h",
"src/core/lib/client_config/subchannel_index.h",
@@ -4594,17 +4676,16 @@
"src/core/lib/iomgr/closure.h",
"src/core/lib/iomgr/endpoint.h",
"src/core/lib/iomgr/endpoint_pair.h",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.h",
+ "src/core/lib/iomgr/ev_posix.h",
"src/core/lib/iomgr/exec_ctx.h",
"src/core/lib/iomgr/executor.h",
- "src/core/lib/iomgr/fd_posix.h",
"src/core/lib/iomgr/iocp_windows.h",
"src/core/lib/iomgr/iomgr.h",
"src/core/lib/iomgr/iomgr_internal.h",
"src/core/lib/iomgr/iomgr_posix.h",
"src/core/lib/iomgr/pollset.h",
- "src/core/lib/iomgr/pollset_posix.h",
"src/core/lib/iomgr/pollset_set.h",
- "src/core/lib/iomgr/pollset_set_posix.h",
"src/core/lib/iomgr/pollset_set_windows.h",
"src/core/lib/iomgr/pollset_windows.h",
"src/core/lib/iomgr/resolve_address.h",
@@ -4632,9 +4713,6 @@
"src/core/lib/json/json_common.h",
"src/core/lib/json/json_reader.h",
"src/core/lib/json/json_writer.h",
- "src/core/lib/proto/grpc/lb/v0/load_balancer.pb.h",
- "src/core/lib/statistics/census_interface.h",
- "src/core/lib/statistics/census_rpc_stats.h",
"src/core/lib/surface/api_trace.h",
"src/core/lib/surface/call.h",
"src/core/lib/surface/call_test_only.h",
@@ -4648,27 +4726,6 @@
"src/core/lib/surface/server.h",
"src/core/lib/surface/surface_trace.h",
"src/core/lib/transport/byte_stream.h",
- "src/core/lib/transport/chttp2/alpn.h",
- "src/core/lib/transport/chttp2/bin_encoder.h",
- "src/core/lib/transport/chttp2/frame.h",
- "src/core/lib/transport/chttp2/frame_data.h",
- "src/core/lib/transport/chttp2/frame_goaway.h",
- "src/core/lib/transport/chttp2/frame_ping.h",
- "src/core/lib/transport/chttp2/frame_rst_stream.h",
- "src/core/lib/transport/chttp2/frame_settings.h",
- "src/core/lib/transport/chttp2/frame_window_update.h",
- "src/core/lib/transport/chttp2/hpack_encoder.h",
- "src/core/lib/transport/chttp2/hpack_parser.h",
- "src/core/lib/transport/chttp2/hpack_table.h",
- "src/core/lib/transport/chttp2/http2_errors.h",
- "src/core/lib/transport/chttp2/huffsyms.h",
- "src/core/lib/transport/chttp2/incoming_metadata.h",
- "src/core/lib/transport/chttp2/internal.h",
- "src/core/lib/transport/chttp2/status_conversion.h",
- "src/core/lib/transport/chttp2/stream_map.h",
- "src/core/lib/transport/chttp2/timeout_encoding.h",
- "src/core/lib/transport/chttp2/varint.h",
- "src/core/lib/transport/chttp2_transport.h",
"src/core/lib/transport/connectivity_state.h",
"src/core/lib/transport/metadata.h",
"src/core/lib/transport/metadata_batch.h",
@@ -4695,20 +4752,73 @@
"include/grpc/impl/codegen/propagation_bits.h",
"include/grpc/impl/codegen/status.h",
"include/grpc/status.h",
- "src/core/lib/census/aggregation.h",
- "src/core/lib/census/context.c",
- "src/core/lib/census/grpc_context.c",
- "src/core/lib/census/grpc_filter.c",
- "src/core/lib/census/grpc_filter.h",
- "src/core/lib/census/grpc_plugin.c",
- "src/core/lib/census/grpc_plugin.h",
- "src/core/lib/census/initialize.c",
- "src/core/lib/census/mlog.c",
- "src/core/lib/census/mlog.h",
- "src/core/lib/census/operation.c",
- "src/core/lib/census/placeholders.c",
- "src/core/lib/census/rpc_metric_id.h",
- "src/core/lib/census/tracing.c",
+ "src/core/ext/census/aggregation.h",
+ "src/core/ext/census/census_interface.h",
+ "src/core/ext/census/census_rpc_stats.h",
+ "src/core/ext/census/context.c",
+ "src/core/ext/census/grpc_context.c",
+ "src/core/ext/census/grpc_filter.c",
+ "src/core/ext/census/grpc_filter.h",
+ "src/core/ext/census/grpc_plugin.c",
+ "src/core/ext/census/initialize.c",
+ "src/core/ext/census/mlog.c",
+ "src/core/ext/census/mlog.h",
+ "src/core/ext/census/operation.c",
+ "src/core/ext/census/placeholders.c",
+ "src/core/ext/census/rpc_metric_id.h",
+ "src/core/ext/census/tracing.c",
+ "src/core/ext/lb_policy/grpclb/load_balancer_api.c",
+ "src/core/ext/lb_policy/grpclb/load_balancer_api.h",
+ "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.c",
+ "src/core/ext/lb_policy/grpclb/proto/grpc/lb/v0/load_balancer.pb.h",
+ "src/core/ext/lb_policy/pick_first/pick_first.c",
+ "src/core/ext/lb_policy/round_robin/round_robin.c",
+ "src/core/ext/resolver/dns/native/dns_resolver.c",
+ "src/core/ext/resolver/sockaddr/sockaddr_resolver.c",
+ "src/core/ext/transport/chttp2/client/insecure/channel_create.c",
+ "src/core/ext/transport/chttp2/server/insecure/server_chttp2.c",
+ "src/core/ext/transport/chttp2/transport/alpn.c",
+ "src/core/ext/transport/chttp2/transport/alpn.h",
+ "src/core/ext/transport/chttp2/transport/bin_encoder.c",
+ "src/core/ext/transport/chttp2/transport/bin_encoder.h",
+ "src/core/ext/transport/chttp2/transport/chttp2_transport.c",
+ "src/core/ext/transport/chttp2/transport/chttp2_transport.h",
+ "src/core/ext/transport/chttp2/transport/frame.h",
+ "src/core/ext/transport/chttp2/transport/frame_data.c",
+ "src/core/ext/transport/chttp2/transport/frame_data.h",
+ "src/core/ext/transport/chttp2/transport/frame_goaway.c",
+ "src/core/ext/transport/chttp2/transport/frame_goaway.h",
+ "src/core/ext/transport/chttp2/transport/frame_ping.c",
+ "src/core/ext/transport/chttp2/transport/frame_ping.h",
+ "src/core/ext/transport/chttp2/transport/frame_rst_stream.c",
+ "src/core/ext/transport/chttp2/transport/frame_rst_stream.h",
+ "src/core/ext/transport/chttp2/transport/frame_settings.c",
+ "src/core/ext/transport/chttp2/transport/frame_settings.h",
+ "src/core/ext/transport/chttp2/transport/frame_window_update.c",
+ "src/core/ext/transport/chttp2/transport/frame_window_update.h",
+ "src/core/ext/transport/chttp2/transport/hpack_encoder.c",
+ "src/core/ext/transport/chttp2/transport/hpack_encoder.h",
+ "src/core/ext/transport/chttp2/transport/hpack_parser.c",
+ "src/core/ext/transport/chttp2/transport/hpack_parser.h",
+ "src/core/ext/transport/chttp2/transport/hpack_table.c",
+ "src/core/ext/transport/chttp2/transport/hpack_table.h",
+ "src/core/ext/transport/chttp2/transport/http2_errors.h",
+ "src/core/ext/transport/chttp2/transport/huffsyms.c",
+ "src/core/ext/transport/chttp2/transport/huffsyms.h",
+ "src/core/ext/transport/chttp2/transport/incoming_metadata.c",
+ "src/core/ext/transport/chttp2/transport/incoming_metadata.h",
+ "src/core/ext/transport/chttp2/transport/internal.h",
+ "src/core/ext/transport/chttp2/transport/parsing.c",
+ "src/core/ext/transport/chttp2/transport/status_conversion.c",
+ "src/core/ext/transport/chttp2/transport/status_conversion.h",
+ "src/core/ext/transport/chttp2/transport/stream_lists.c",
+ "src/core/ext/transport/chttp2/transport/stream_map.c",
+ "src/core/ext/transport/chttp2/transport/stream_map.h",
+ "src/core/ext/transport/chttp2/transport/timeout_encoding.c",
+ "src/core/ext/transport/chttp2/transport/timeout_encoding.h",
+ "src/core/ext/transport/chttp2/transport/varint.c",
+ "src/core/ext/transport/chttp2/transport/varint.h",
+ "src/core/ext/transport/chttp2/transport/writing.c",
"src/core/lib/channel/channel_args.c",
"src/core/lib/channel/channel_args.h",
"src/core/lib/channel/channel_stack.c",
@@ -4735,12 +4845,6 @@
"src/core/lib/client_config/default_initial_connect_string.c",
"src/core/lib/client_config/initial_connect_string.c",
"src/core/lib/client_config/initial_connect_string.h",
- "src/core/lib/client_config/lb_policies/load_balancer_api.c",
- "src/core/lib/client_config/lb_policies/load_balancer_api.h",
- "src/core/lib/client_config/lb_policies/pick_first.c",
- "src/core/lib/client_config/lb_policies/pick_first.h",
- "src/core/lib/client_config/lb_policies/round_robin.c",
- "src/core/lib/client_config/lb_policies/round_robin.h",
"src/core/lib/client_config/lb_policy.c",
"src/core/lib/client_config/lb_policy.h",
"src/core/lib/client_config/lb_policy_factory.c",
@@ -4753,10 +4857,6 @@
"src/core/lib/client_config/resolver_factory.h",
"src/core/lib/client_config/resolver_registry.c",
"src/core/lib/client_config/resolver_registry.h",
- "src/core/lib/client_config/resolvers/dns_resolver.c",
- "src/core/lib/client_config/resolvers/dns_resolver.h",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.c",
- "src/core/lib/client_config/resolvers/sockaddr_resolver.h",
"src/core/lib/client_config/subchannel.c",
"src/core/lib/client_config/subchannel.h",
"src/core/lib/client_config/subchannel_factory.c",
@@ -4784,12 +4884,14 @@
"src/core/lib/iomgr/endpoint_pair.h",
"src/core/lib/iomgr/endpoint_pair_posix.c",
"src/core/lib/iomgr/endpoint_pair_windows.c",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.c",
+ "src/core/lib/iomgr/ev_poll_and_epoll_posix.h",
+ "src/core/lib/iomgr/ev_posix.c",
+ "src/core/lib/iomgr/ev_posix.h",
"src/core/lib/iomgr/exec_ctx.c",
"src/core/lib/iomgr/exec_ctx.h",
"src/core/lib/iomgr/executor.c",
"src/core/lib/iomgr/executor.h",
- "src/core/lib/iomgr/fd_posix.c",
- "src/core/lib/iomgr/fd_posix.h",
"src/core/lib/iomgr/iocp_windows.c",
"src/core/lib/iomgr/iocp_windows.h",
"src/core/lib/iomgr/iomgr.c",
@@ -4799,13 +4901,7 @@
"src/core/lib/iomgr/iomgr_posix.h",
"src/core/lib/iomgr/iomgr_windows.c",
"src/core/lib/iomgr/pollset.h",
- "src/core/lib/iomgr/pollset_multipoller_with_epoll.c",
- "src/core/lib/iomgr/pollset_multipoller_with_poll_posix.c",
- "src/core/lib/iomgr/pollset_posix.c",
- "src/core/lib/iomgr/pollset_posix.h",
"src/core/lib/iomgr/pollset_set.h",
- "src/core/lib/iomgr/pollset_set_posix.c",
- "src/core/lib/iomgr/pollset_set_posix.h",
"src/core/lib/iomgr/pollset_set_windows.c",
"src/core/lib/iomgr/pollset_set_windows.h",
"src/core/lib/iomgr/pollset_windows.c",
@@ -4864,10 +4960,6 @@
"src/core/lib/json/json_string.c",
"src/core/lib/json/json_writer.c",
"src/core/lib/json/json_writer.h",
- "src/core/lib/proto/grpc/lb/v0/load_balancer.pb.c",
- "src/core/lib/proto/grpc/lb/v0/load_balancer.pb.h",
- "src/core/lib/statistics/census_interface.h",
- "src/core/lib/statistics/census_rpc_stats.h",
"src/core/lib/surface/alarm.c",
"src/core/lib/surface/api_trace.c",
"src/core/lib/surface/api_trace.h",
@@ -4881,7 +4973,6 @@
"src/core/lib/surface/channel.c",
"src/core/lib/surface/channel.h",
"src/core/lib/surface/channel_connectivity.c",
- "src/core/lib/surface/channel_create.c",
"src/core/lib/surface/channel_init.c",
"src/core/lib/surface/channel_init.h",
"src/core/lib/surface/channel_ping.c",
@@ -4899,54 +4990,11 @@
"src/core/lib/surface/metadata_array.c",
"src/core/lib/surface/server.c",
"src/core/lib/surface/server.h",
- "src/core/lib/surface/server_chttp2.c",
"src/core/lib/surface/surface_trace.h",
"src/core/lib/surface/validate_metadata.c",
"src/core/lib/surface/version.c",
"src/core/lib/transport/byte_stream.c",
"src/core/lib/transport/byte_stream.h",
- "src/core/lib/transport/chttp2/alpn.c",
- "src/core/lib/transport/chttp2/alpn.h",
- "src/core/lib/transport/chttp2/bin_encoder.c",
- "src/core/lib/transport/chttp2/bin_encoder.h",
- "src/core/lib/transport/chttp2/frame.h",
- "src/core/lib/transport/chttp2/frame_data.c",
- "src/core/lib/transport/chttp2/frame_data.h",
- "src/core/lib/transport/chttp2/frame_goaway.c",
- "src/core/lib/transport/chttp2/frame_goaway.h",
- "src/core/lib/transport/chttp2/frame_ping.c",
- "src/core/lib/transport/chttp2/frame_ping.h",
- "src/core/lib/transport/chttp2/frame_rst_stream.c",
- "src/core/lib/transport/chttp2/frame_rst_stream.h",
- "src/core/lib/transport/chttp2/frame_settings.c",
- "src/core/lib/transport/chttp2/frame_settings.h",
- "src/core/lib/transport/chttp2/frame_window_update.c",
- "src/core/lib/transport/chttp2/frame_window_update.h",
- "src/core/lib/transport/chttp2/hpack_encoder.c",
- "src/core/lib/transport/chttp2/hpack_encoder.h",
- "src/core/lib/transport/chttp2/hpack_parser.c",
- "src/core/lib/transport/chttp2/hpack_parser.h",
- "src/core/lib/transport/chttp2/hpack_table.c",
- "src/core/lib/transport/chttp2/hpack_table.h",
- "src/core/lib/transport/chttp2/http2_errors.h",
- "src/core/lib/transport/chttp2/huffsyms.c",
- "src/core/lib/transport/chttp2/huffsyms.h",
- "src/core/lib/transport/chttp2/incoming_metadata.c",
- "src/core/lib/transport/chttp2/incoming_metadata.h",
- "src/core/lib/transport/chttp2/internal.h",
- "src/core/lib/transport/chttp2/parsing.c",
- "src/core/lib/transport/chttp2/status_conversion.c",
- "src/core/lib/transport/chttp2/status_conversion.h",
- "src/core/lib/transport/chttp2/stream_lists.c",
- "src/core/lib/transport/chttp2/stream_map.c",
- "src/core/lib/transport/chttp2/stream_map.h",
- "src/core/lib/transport/chttp2/timeout_encoding.c",
- "src/core/lib/transport/chttp2/timeout_encoding.h",
- "src/core/lib/transport/chttp2/varint.c",
- "src/core/lib/transport/chttp2/varint.h",
- "src/core/lib/transport/chttp2/writing.c",
- "src/core/lib/transport/chttp2_transport.c",
- "src/core/lib/transport/chttp2_transport.h",
"src/core/lib/transport/connectivity_state.c",
"src/core/lib/transport/connectivity_state.h",
"src/core/lib/transport/metadata.c",
@@ -4958,7 +5006,8 @@
"src/core/lib/transport/transport.c",
"src/core/lib/transport/transport.h",
"src/core/lib/transport/transport_impl.h",
- "src/core/lib/transport/transport_op_string.c"
+ "src/core/lib/transport/transport_op_string.c",
+ "src/core/plugin_registry/grpc_unsecure_plugin_registry.c"
],
"third_party": false,
"type": "lib"
@@ -4969,15 +5018,26 @@
"grpc"
],
"headers": [
- "include/grpc/grpc_zookeeper.h",
- "src/core/lib/client_config/resolvers/zookeeper_resolver.h"
+ "include/grpc/grpc_zookeeper.h"
],
"language": "c",
"name": "grpc_zookeeper",
"src": [
"include/grpc/grpc_zookeeper.h",
- "src/core/lib/client_config/resolvers/zookeeper_resolver.c",
- "src/core/lib/client_config/resolvers/zookeeper_resolver.h"
+ "src/core/ext/resolver/zookeeper/zookeeper_resolver.c"
+ ],
+ "third_party": false,
+ "type": "lib"
+ },
+ {
+ "deps": [
+ "gpr"
+ ],
+ "headers": [],
+ "language": "c",
+ "name": "one_input_fuzzer",
+ "src": [
+ "test/core/util/one_corpus_entry_fuzzer.c"
],
"third_party": false,
"type": "lib"
@@ -5104,7 +5164,6 @@
"src/cpp/client/create_channel_internal.h",
"src/cpp/client/secure_credentials.h",
"src/cpp/common/core_codegen.h",
- "src/cpp/common/core_codegen.h",
"src/cpp/common/create_auth_context.h",
"src/cpp/common/secure_auth_context.h",
"src/cpp/server/dynamic_thread_pool.h",
@@ -5205,7 +5264,6 @@
"src/cpp/common/completion_queue.cc",
"src/cpp/common/core_codegen.cc",
"src/cpp/common/core_codegen.h",
- "src/cpp/common/core_codegen.h",
"src/cpp/common/create_auth_context.h",
"src/cpp/common/rpc_method.cc",
"src/cpp/common/secure_auth_context.cc",
@@ -6517,6 +6575,7 @@
"test/core/end2end/tests/graceful_server_shutdown.c",
"test/core/end2end/tests/high_initial_seqno.c",
"test/core/end2end/tests/hpack_size.c",
+ "test/core/end2end/tests/idempotent_request.c",
"test/core/end2end/tests/invoke_large_request.c",
"test/core/end2end/tests/large_metadata.c",
"test/core/end2end/tests/max_concurrent_streams.c",
@@ -6573,6 +6632,7 @@
"test/core/end2end/tests/graceful_server_shutdown.c",
"test/core/end2end/tests/high_initial_seqno.c",
"test/core/end2end/tests/hpack_size.c",
+ "test/core/end2end/tests/idempotent_request.c",
"test/core/end2end/tests/invoke_large_request.c",
"test/core/end2end/tests/large_metadata.c",
"test/core/end2end/tests/max_concurrent_streams.c",
diff --git a/tools/run_tests/stress_test/README.md b/tools/run_tests/stress_test/README.md
index 1a48e90c69..cc82b875cd 100644
--- a/tools/run_tests/stress_test/README.md
+++ b/tools/run_tests/stress_test/README.md
@@ -63,12 +63,14 @@
The stress tests are launched by the following script (path is relative to GRPC root directory) :
`tools/run_tests/stress_test/run_stress_tests_on_gke.py`
-The script has several parameters and you can find out more details by using the `--help` flag.
- - `<grpc_root_dir>$ tools/run_tests/stress_test/run_stress_tests_on_gke.py --help`
+You can find out more details by using the `--help` flag.
+ - `<grpc_root_dir>$ tools/run_tests/stress_test/run_on_gke.py --help`
> **Example**
-> `$ tools/run_tests/stress_test/run_stress_tests_on_gke.py --project_id=sree-gce --test_duration_secs=180 --num_clients=5`
+> ```bash
+> $ # Change to the grpc root directory
+> $ cd $GRPC_ROOT
+> $ tools/run_tests/stress_test/run_on_gke.py --project_id=sree-gce --config_file=tools/run_tests/stress_test/configs/opt.json
+> ```
-> Launches the 5 instances of stress test clients, 1 instance of stress test server and runs the test for 180 seconds. The test would be run on the default container cluster (that you have set in `gcloud`) in the project `sree-gce`.
-
-> Note: we currently do not have the ability to launch multiple instances of the server. This can be added very easily in future
+> The above runs the stress test on GKE under the project `sree-gce` in the default cluster (that you set by `gcloud` command earlier). The test settings (like number of client instances, servers, the parmeters to pass, test cases etc) are all loaded from the config file `$GRPC_ROOT/tools/run_tests/stress_test/opt.json`
diff --git a/tools/run_tests/stress_test/STRESS_CLIENT_SPEC.md b/tools/run_tests/stress_test/STRESS_CLIENT_SPEC.md
index c4c9f14513..f9b1667280 100644
--- a/tools/run_tests/stress_test/STRESS_CLIENT_SPEC.md
+++ b/tools/run_tests/stress_test/STRESS_CLIENT_SPEC.md
@@ -6,18 +6,18 @@ This document specifies the features a stress test client should implement in or
--------------
**1.** A stress test client should be able to repeatedly execute one or more of the existing 'interop test cases'. It may just be a wrapper around the existing interop test client. The exact command line arguments the client should support are listed in _Table 1_ below.
-**2.** The stress test client must implement a metrics server defined by _[metrics.proto](https://github.com/grpc/grpc/blob/master/src/proto/grpc/testing/metrics.proto)_ and must expose _qps_ as a long-valued Gauge. The client can track the overall _qps_ in one Gauge or in multiple Gagues (for example: One per Channel or Stub).
+**2.** The stress test client must implement a metrics server defined by _[metrics.proto](https://github.com/grpc/grpc/blob/master/src/proto/grpc/testing/metrics.proto)_ and must expose _qps_ as a long-valued Gauge. The client can track the overall _qps_ in one Gauge or in multiple Gauges (for example: One per Channel or Stub).
The framework periodically queries the _qps_ by calling the `GetAllGauges()` method (the framework assumes that all the returned Gauges are _qps_ Gauges) and uses this to determine if the stress test client is running or crashed or stalled.
> *Note:* In this context, the term _**qps**_ means _interop test cases per second_ (not _messages per second_ or _rpc calls per second_)
**Table 1:** Command line arguments that should be supported by the stress test client.
->_**Note** The current C++ [stress client](https://github.com/grpc/grpc/blob/master/test/cpp/interop/stress_test.cc) supports more flags than those listed here but those flags will soon be deprecated_|
+>_**Note** The current C++ [stress client](https://github.com/grpc/grpc/blob/master/test/cpp/interop/stress_test.cc) supports more flags than those listed here but those flags will soon be deprecated._
Parameter | Description
----------------------|---------------------------------
-`--server_address` | The stress client should accept a list of server addresses in the following format:<br> ```<name_1>:<port_1>,<name_2>:<port_2>..<name_N>:<port_N>``` <br> _Note:_ `<name>` can be either server name or IP address.<br><br>_Type:_ string <br>_default:_ ```localhost:8080``` <br>_Example:_ ``foo.foobar.com:8080,bar.foobar.com:8080`` <br><br> Currently, the stress test framework only passes one server address to the client.
+`--server_addresses` | The stress client should accept a list of server addresses in the following format:<br> ```<name_1>:<port_1>,<name_2>:<port_2>..<name_N>:<port_N>``` <br> _Note:_ `<name>` can be either server name or IP address.<br><br>_Type:_ string <br>_default:_ ```localhost:8080``` <br>_Example:_ ``foo.foobar.com:8080,bar.foobar.com:8080`` <br><br> Currently, the stress test framework only passes one server address to the client.
`--test_cases` | List of test cases along with the relative weights in the following format:<br> `<testcase_1:w_1>,<testcase_2:w_2>...<testcase_n:w_n>`. <br> The test cases names are the same as those currently used by the interop clients<br><br>_Type:_ string <br>_Example:_ `empty_unary:20,large_unary:10,empty_stream:70` <br>(The stress client would then make `empty_unary` calls 20% of the time, `large_unary` calls 10% of the time and `empty_stream` calls 70% of the time.) <br>_Note:_ The weights need not add up to 100.
`--test_duration-secs` | The test duration in seconds. A value of -1 means that the test should run forever until forcefully terminated. <br>_Type:_ int <br>_default:_ -1
`--num_channels_per_server` | Number of channels (i.e connections) to each server. <br> _Type:_ int <br> _default:_ 1 <br><br> _Note:_ Unfortunately, the term `channel` is used differently in `grpc-java` and `C based grpc`. In this context, this really means "number of connections to the server"
diff --git a/tools/run_tests/stress_test/configs/opt-tsan-asan.json b/tools/run_tests/stress_test/configs/opt-tsan-asan.json
new file mode 100644
index 0000000000..1dc2d3fe08
--- /dev/null
+++ b/tools/run_tests/stress_test/configs/opt-tsan-asan.json
@@ -0,0 +1,135 @@
+{
+ "dockerImages": {
+ "grpc_stress_cxx_opt" : {
+ "buildScript": "tools/jenkins/build_interop_stress_image.sh",
+ "dockerFileDir": "grpc_interop_stress_cxx",
+ "buildType": "opt"
+ },
+ "grpc_stress_cxx_tsan": {
+ "buildScript": "tools/jenkins/build_interop_stress_image.sh",
+ "dockerFileDir": "grpc_interop_stress_cxx",
+ "buildType": "tsan"
+ },
+ "grpc_stress_cxx_asan": {
+ "buildScript": "tools/jenkins/build_interop_stress_image.sh",
+ "dockerFileDir": "grpc_interop_stress_cxx",
+ "buildType": "asan"
+ }
+ },
+
+ "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,
+ "metrics_collection_interval_secs":60
+ },
+ "metricsPort": 8081,
+ "metricsArgs": {
+ "metrics_server_address": "localhost:8081",
+ "total_only": "true"
+ }
+ }
+ },
+ "templates": {
+ "cxx_client_opt": {
+ "baseTemplate": "default",
+ "clientImagePath": "/var/local/git/grpc/bins/opt/stress_test",
+ "metricsClientImagePath": "/var/local/git/grpc/bins/opt/metrics_client"
+ },
+ "cxx_client_tsan": {
+ "baseTemplate": "default",
+ "clientImagePath": "/var/local/git/grpc/bins/tsan/stress_test",
+ "metricsClientImagePath": "/var/local/git/grpc/bins/tsan/metrics_client"
+ },
+ "cxx_client_asan": {
+ "baseTemplate": "default",
+ "clientImagePath": "/var/local/git/grpc/bins/asan/stress_test",
+ "metricsClientImagePath": "/var/local/git/grpc/bins/asan/metrics_client"
+ }
+ }
+ },
+
+ "serverTemplates": {
+ "baseTemplates":{
+ "default": {
+ "wrapperScriptPath": "/var/local/git/grpc/tools/gcp/stress_test/run_server.py",
+ "serverPort": 8080,
+ "serverArgs": {
+ "port": 8080
+ }
+ }
+ },
+ "templates": {
+ "cxx_server_opt": {
+ "baseTemplate": "default",
+ "serverImagePath": "/var/local/git/grpc/bins/opt/interop_server"
+ },
+ "cxx_server_tsan": {
+ "baseTemplate": "default",
+ "serverImagePath": "/var/local/git/grpc/bins/tsan/interop_server"
+ },
+ "cxx_server_asan": {
+ "baseTemplate": "default",
+ "serverImagePath": "/var/local/git/grpc/bins/asan/interop_server"
+ }
+ }
+ },
+
+ "testMatrix": {
+ "serverPodSpecs": {
+ "stress-server-opt": {
+ "serverTemplate": "cxx_server_opt",
+ "dockerImage": "grpc_stress_cxx_opt",
+ "numInstances": 1
+ },
+ "stress-server-tsan": {
+ "serverTemplate": "cxx_server_tsan",
+ "dockerImage": "grpc_stress_cxx_tsan",
+ "numInstances": 1
+ },
+ "stress-server-asan": {
+ "serverTemplate": "cxx_server_asan",
+ "dockerImage": "grpc_stress_cxx_asan",
+ "numInstances": 1
+ }
+ },
+
+ "clientPodSpecs": {
+ "stress-client-opt": {
+ "clientTemplate": "cxx_client_opt",
+ "dockerImage": "grpc_stress_cxx_opt",
+ "numInstances": 3,
+ "serverPodSpec": "stress-server-opt"
+ },
+ "stress-client-tsan": {
+ "clientTemplate": "cxx_client_tsan",
+ "dockerImage": "grpc_stress_cxx_tsan",
+ "numInstances": 3,
+ "serverPodSpec": "stress-server-tsan"
+ },
+ "stress-client-asan": {
+ "clientTemplate": "cxx_client_asan",
+ "dockerImage": "grpc_stress_cxx_asan",
+ "numInstances": 3,
+ "serverPodSpec": "stress-server-asan"
+ }
+ }
+ },
+
+ "globalSettings": {
+ "buildDockerImages": true,
+ "pollIntervalSecs": 60,
+ "testDurationSecs": 7200,
+ "kubernetesProxyPort": 8001,
+ "datasetIdNamePrefix": "stress_test_opt_tsan",
+ "summaryTableId": "summary",
+ "qpsTableId": "qps",
+ "podWarmupSecs": 60
+ }
+}
diff --git a/tools/run_tests/stress_test/configs/opt.json b/tools/run_tests/stress_test/configs/opt.json
new file mode 100644
index 0000000000..7fc024034b
--- /dev/null
+++ b/tools/run_tests/stress_test/configs/opt.json
@@ -0,0 +1,86 @@
+{
+ "dockerImages": {
+ "grpc_stress_cxx_opt" : {
+ "buildScript": "tools/jenkins/build_interop_stress_image.sh",
+ "dockerFileDir": "grpc_interop_stress_cxx",
+ "buildType": "opt"
+ }
+ },
+
+ "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,
+ "metrics_collection_interval_secs":60
+ },
+ "metricsPort": 8081,
+ "metricsArgs": {
+ "metrics_server_address": "localhost:8081",
+ "total_only": "true"
+ }
+ }
+ },
+ "templates": {
+ "cxx_client_opt": {
+ "baseTemplate": "default",
+ "clientImagePath": "/var/local/git/grpc/bins/opt/stress_test",
+ "metricsClientImagePath": "/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": {
+ "cxx_server_opt": {
+ "baseTemplate": "default",
+ "serverImagePath": "/var/local/git/grpc/bins/opt/interop_server"
+ }
+ }
+ },
+
+ "testMatrix": {
+ "serverPodSpecs": {
+ "stress-server-opt": {
+ "serverTemplate": "cxx_server_opt",
+ "dockerImage": "grpc_stress_cxx_opt",
+ "numInstances": 1
+ }
+ },
+
+ "clientPodSpecs": {
+ "stress-client-opt": {
+ "clientTemplate": "cxx_client_opt",
+ "dockerImage": "grpc_stress_cxx_opt",
+ "numInstances": 10,
+ "serverPodSpec": "stress-server-opt"
+ }
+ }
+ },
+
+ "globalSettings": {
+ "buildDockerImages": true,
+ "pollIntervalSecs": 10,
+ "testDurationSecs": 120,
+ "kubernetesProxyPort": 8001,
+ "datasetIdNamePrefix": "stress_test_opt",
+ "summaryTableId": "summary",
+ "qpsTableId": "qps",
+ "podWarmupSecs": 60
+ }
+}
+
diff --git a/tools/run_tests/stress_test/run_on_gke.py b/tools/run_tests/stress_test/run_on_gke.py
new file mode 100755
index 0000000000..9d4ac7ac58
--- /dev/null
+++ b/tools/run_tests/stress_test/run_on_gke.py
@@ -0,0 +1,637 @@
+#!/usr/bin/env python2.7
+# 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 argparse
+import datetime
+import json
+import os
+import subprocess
+import sys
+import time
+
+stress_test_utils_dir = os.path.abspath(os.path.join(
+ os.path.dirname(__file__), '../../gcp/stress_test'))
+sys.path.append(stress_test_utils_dir)
+from stress_test_utils import BigQueryHelper
+
+kubernetes_api_dir = os.path.abspath(os.path.join(
+ os.path.dirname(__file__), '../../gcp/utils'))
+sys.path.append(kubernetes_api_dir)
+
+import kubernetes_api
+
+
+class GlobalSettings:
+
+ def __init__(self, gcp_project_id, build_docker_images,
+ test_poll_interval_secs, test_duration_secs,
+ kubernetes_proxy_port, dataset_id_prefix, summary_table_id,
+ qps_table_id, pod_warmup_secs):
+ self.gcp_project_id = gcp_project_id
+ self.build_docker_images = build_docker_images
+ self.test_poll_interval_secs = test_poll_interval_secs
+ self.test_duration_secs = test_duration_secs
+ self.kubernetes_proxy_port = kubernetes_proxy_port
+ self.dataset_id_prefix = dataset_id_prefix
+ self.summary_table_id = summary_table_id
+ self.qps_table_id = qps_table_id
+ self.pod_warmup_secs = pod_warmup_secs
+
+
+class ClientTemplate:
+ """ Contains all the common settings that are used by a stress client """
+
+ def __init__(self, name, client_image_path, metrics_client_image_path,
+ metrics_port, wrapper_script_path, poll_interval_secs,
+ client_args_dict, metrics_args_dict):
+ self.name = name
+ self.client_image_path = client_image_path
+ self.metrics_client_image_path = metrics_client_image_path
+ self.metrics_port = metrics_port
+ self.wrapper_script_path = wrapper_script_path
+ self.poll_interval_secs = poll_interval_secs
+ self.client_args_dict = client_args_dict
+ self.metrics_args_dict = metrics_args_dict
+
+
+class ServerTemplate:
+ """ Contains all the common settings used by a stress server """
+
+ def __init__(self, name, server_image_path, wrapper_script_path, server_port,
+ server_args_dict):
+ self.name = name
+ self.server_image_path = server_image_path
+ self.wrapper_script_path = wrapper_script_path
+ self.server_port = server_port
+ self.server_args_dict = server_args_dict
+
+
+class DockerImage:
+ """ Represents properties of a Docker image. Provides methods to build the
+ image and push it to GKE registry
+ """
+
+ def __init__(self, gcp_project_id, image_name, build_script_path,
+ dockerfile_dir, build_type):
+ """Args:
+
+ image_name: The docker image name
+ tag_name: The additional tag name. This is the name used when pushing the
+ docker image to GKE registry
+ build_script_path: The path to the build script that builds this docker
+ image
+ dockerfile_dir: The name of the directory under
+ '<grpc_root>/tools/dockerfile' that contains the dockerfile
+ """
+ self.image_name = image_name
+ self.gcp_project_id = gcp_project_id
+ self.build_script_path = build_script_path
+ self.dockerfile_dir = dockerfile_dir
+ self.build_type = build_type
+ self.tag_name = self._make_tag_name(gcp_project_id, image_name)
+
+ def _make_tag_name(self, project_id, image_name):
+ return 'gcr.io/%s/%s' % (project_id, image_name)
+
+ def build_image(self):
+ print 'Building docker image: %s (tag: %s)' % (self.image_name,
+ self.tag_name)
+ os.environ['INTEROP_IMAGE'] = self.image_name
+ os.environ['INTEROP_IMAGE_REPOSITORY_TAG'] = self.tag_name
+ os.environ['BASE_NAME'] = self.dockerfile_dir
+ os.environ['BUILD_TYPE'] = self.build_type
+ print 'DEBUG: path: ', self.build_script_path
+ if subprocess.call(args=[self.build_script_path]) != 0:
+ print 'Error in building the Docker image'
+ return False
+ return True
+
+ def push_to_gke_registry(self):
+ cmd = ['gcloud', 'docker', 'push', self.tag_name]
+ print 'Pushing %s to the GKE registry..' % self.tag_name
+ if subprocess.call(args=cmd) != 0:
+ print 'Error in pushing the image %s to the GKE registry' % self.tag_name
+ return False
+ return True
+
+
+class ServerPodSpec:
+ """ Contains the information required to launch server pods. """
+
+ def __init__(self, name, server_template, docker_image, num_instances):
+ self.name = name
+ self.template = server_template
+ self.docker_image = docker_image
+ self.num_instances = num_instances
+
+ def pod_names(self):
+ """ Return a list of names of server pods to create. """
+ return ['%s-%d' % (self.name, i) for i in range(1, self.num_instances + 1)]
+
+ def server_addresses(self):
+ """ Return string of server addresses in the following format:
+ '<server_pod_name_1>:<server_port>,<server_pod_name_2>:<server_port>...'
+ """
+ return ','.join(['%s:%d' % (pod_name, self.template.server_port)
+ for pod_name in self.pod_names()])
+
+
+class ClientPodSpec:
+ """ Contains the information required to launch client pods """
+
+ def __init__(self, name, client_template, docker_image, num_instances,
+ server_addresses):
+ self.name = name
+ self.template = client_template
+ self.docker_image = docker_image
+ self.num_instances = num_instances
+ self.server_addresses = server_addresses
+
+ def pod_names(self):
+ """ Return a list of names of client pods to create """
+ return ['%s-%d' % (self.name, i) for i in range(1, self.num_instances + 1)]
+
+ # The client args in the template do not have server addresses. This function
+ # adds the server addresses and returns the updated client args
+ def get_client_args_dict(self):
+ args_dict = self.template.client_args_dict.copy()
+ args_dict['server_addresses'] = self.server_addresses
+ return args_dict
+
+
+class Gke:
+ """ Class that has helper methods to interact with GKE """
+
+ class KubernetesProxy:
+ """Class to start a proxy on localhost to talk to the Kubernetes API server"""
+
+ def __init__(self, port):
+ cmd = ['kubectl', 'proxy', '--port=%d' % port]
+ self.p = subprocess.Popen(args=cmd)
+ time.sleep(2)
+ print '\nStarted kubernetes proxy on port: %d' % port
+
+ def __del__(self):
+ if self.p is not None:
+ print 'Shutting down Kubernetes proxy..'
+ self.p.kill()
+
+ def __init__(self, project_id, run_id, dataset_id, summary_table_id,
+ qps_table_id, kubernetes_port):
+ self.project_id = project_id
+ self.run_id = run_id
+ self.dataset_id = dataset_id
+ self.summary_table_id = summary_table_id
+ self.qps_table_id = qps_table_id
+
+ # The environment variables we would like to pass to every pod (both client
+ # and server) launched in GKE
+ self.gke_env = {
+ 'RUN_ID': self.run_id,
+ 'GCP_PROJECT_ID': self.project_id,
+ 'DATASET_ID': self.dataset_id,
+ 'SUMMARY_TABLE_ID': self.summary_table_id,
+ 'QPS_TABLE_ID': self.qps_table_id
+ }
+
+ self.kubernetes_port = kubernetes_port
+ # Start kubernetes proxy
+ self.kubernetes_proxy = Gke.KubernetesProxy(kubernetes_port)
+
+ def _args_dict_to_str(self, args_dict):
+ return ' '.join('--%s=%s' % (k, args_dict[k]) for k in args_dict.keys())
+
+ def launch_servers(self, server_pod_spec):
+ is_success = True
+
+ # The command to run inside the container is the wrapper script (which then
+ # launches the actual server)
+ container_cmd = server_pod_spec.template.wrapper_script_path
+
+ # The parameters to the wrapper script (defined in
+ # server_pod_spec.template.wrapper_script_path) are are injected into the
+ # container via environment variables
+ server_env = self.gke_env.copy()
+ server_env.update({
+ 'STRESS_TEST_IMAGE_TYPE': 'SERVER',
+ 'STRESS_TEST_IMAGE': server_pod_spec.template.server_image_path,
+ 'STRESS_TEST_ARGS_STR': self._args_dict_to_str(
+ server_pod_spec.template.server_args_dict)
+ })
+
+ for pod_name in server_pod_spec.pod_names():
+ server_env['POD_NAME'] = pod_name
+ print 'Creating server: %s' % pod_name
+ is_success = kubernetes_api.create_pod_and_service(
+ 'localhost',
+ self.kubernetes_port,
+ 'default', # Use 'default' namespace
+ pod_name,
+ server_pod_spec.docker_image.tag_name,
+ [server_pod_spec.template.server_port], # Ports to expose on the pod
+ [container_cmd],
+ [], # Args list is empty since we are passing all args via env variables
+ server_env,
+ True # Headless = True for server to that GKE creates a DNS record for pod_name
+ )
+ if not is_success:
+ print 'Error in launching server: %s' % pod_name
+ break
+
+ if is_success:
+ print 'Successfully created server(s)'
+
+ return is_success
+
+ def launch_clients(self, client_pod_spec):
+ is_success = True
+
+ # The command to run inside the container is the wrapper script (which then
+ # launches the actual stress client)
+ container_cmd = client_pod_spec.template.wrapper_script_path
+
+ # The parameters to the wrapper script (defined in
+ # client_pod_spec.template.wrapper_script_path) are are injected into the
+ # container via environment variables
+ client_env = self.gke_env.copy()
+ client_env.update({
+ 'STRESS_TEST_IMAGE_TYPE': 'CLIENT',
+ 'STRESS_TEST_IMAGE': client_pod_spec.template.client_image_path,
+ 'STRESS_TEST_ARGS_STR': self._args_dict_to_str(
+ client_pod_spec.get_client_args_dict()),
+ 'METRICS_CLIENT_IMAGE':
+ client_pod_spec.template.metrics_client_image_path,
+ 'METRICS_CLIENT_ARGS_STR': self._args_dict_to_str(
+ client_pod_spec.template.metrics_args_dict),
+ 'POLL_INTERVAL_SECS': str(client_pod_spec.template.poll_interval_secs)
+ })
+
+ for pod_name in client_pod_spec.pod_names():
+ client_env['POD_NAME'] = pod_name
+ print 'Creating client: %s' % pod_name
+ is_success = kubernetes_api.create_pod_and_service(
+ 'localhost',
+ self.kubernetes_port,
+ 'default', # default namespace,
+ pod_name,
+ client_pod_spec.docker_image.tag_name,
+ [client_pod_spec.template.metrics_port], # Ports to expose on the pod
+ [container_cmd],
+ [], # Empty args list since all args are passed via env variables
+ client_env,
+ False # Client is not a headless service.
+ )
+
+ if not is_success:
+ print 'Error in launching client %s' % pod_name
+ break
+
+ if is_success:
+ print 'Successfully created all client(s)'
+
+ return is_success
+
+ def _delete_pods(self, pod_name_list):
+ is_success = True
+ for pod_name in pod_name_list:
+ print 'Deleting %s' % pod_name
+ is_success = kubernetes_api.delete_pod_and_service(
+ 'localhost',
+ self.kubernetes_port,
+ 'default', # default namespace
+ pod_name)
+
+ if not is_success:
+ print 'Error in deleting pod %s' % pod_name
+ break
+
+ if is_success:
+ print 'Successfully deleted all pods'
+
+ return is_success
+
+ def delete_servers(self, server_pod_spec):
+ return self._delete_pods(server_pod_spec.pod_names())
+
+ def delete_clients(self, client_pod_spec):
+ return self._delete_pods(client_pod_spec.pod_names())
+
+
+class Config:
+
+ def __init__(self, config_filename, gcp_project_id):
+ print 'Loading configuration...'
+ config_dict = self._load_config(config_filename)
+
+ self.global_settings = self._parse_global_settings(config_dict,
+ gcp_project_id)
+ self.docker_images_dict = self._parse_docker_images(
+ config_dict, self.global_settings.gcp_project_id)
+ self.client_templates_dict = self._parse_client_templates(config_dict)
+ self.server_templates_dict = self._parse_server_templates(config_dict)
+ self.server_pod_specs_dict = self._parse_server_pod_specs(
+ config_dict, self.docker_images_dict, self.server_templates_dict)
+ self.client_pod_specs_dict = self._parse_client_pod_specs(
+ config_dict, self.docker_images_dict, self.client_templates_dict,
+ self.server_pod_specs_dict)
+ print 'Loaded Configuaration.'
+
+ def _parse_global_settings(self, config_dict, gcp_project_id):
+ global_settings_dict = config_dict['globalSettings']
+ return GlobalSettings(gcp_project_id,
+ global_settings_dict['buildDockerImages'],
+ global_settings_dict['pollIntervalSecs'],
+ global_settings_dict['testDurationSecs'],
+ global_settings_dict['kubernetesProxyPort'],
+ global_settings_dict['datasetIdNamePrefix'],
+ global_settings_dict['summaryTableId'],
+ global_settings_dict['qpsTableId'],
+ global_settings_dict['podWarmupSecs'])
+
+ def _parse_docker_images(self, config_dict, gcp_project_id):
+ """Parses the 'dockerImages' section of the config file and returns a
+ Dictionary of 'DockerImage' objects keyed by docker image names"""
+ docker_images_dict = {}
+
+ docker_config_dict = config_dict['dockerImages']
+ for image_name in docker_config_dict.keys():
+ build_script_path = docker_config_dict[image_name]['buildScript']
+ dockerfile_dir = docker_config_dict[image_name]['dockerFileDir']
+ build_type = docker_config_dict[image_name]['buildType']
+ docker_images_dict[image_name] = DockerImage(gcp_project_id, image_name,
+ build_script_path,
+ dockerfile_dir, build_type)
+ return docker_images_dict
+
+ def _parse_client_templates(self, config_dict):
+ """Parses the 'clientTemplates' section of the config file and returns a
+ Dictionary of 'ClientTemplate' objects keyed by client template names.
+
+ Note: The 'baseTemplates' sub section of the config file contains templates
+ with default values and the 'templates' sub section contains the actual
+ client templates (which refer to the base template name to use for default
+ values).
+ """
+ client_templates_dict = {}
+
+ templates_dict = config_dict['clientTemplates']['templates']
+ base_templates_dict = config_dict['clientTemplates'].get('baseTemplates',
+ {})
+ for template_name in templates_dict.keys():
+ # temp_dict is a temporary dictionary that merges base template dictionary
+ # and client template dictionary (with client template dictionary values
+ # overriding base template values)
+ temp_dict = {}
+
+ base_template_name = templates_dict[template_name].get('baseTemplate')
+ if not base_template_name is None:
+ temp_dict = base_templates_dict[base_template_name].copy()
+
+ temp_dict.update(templates_dict[template_name])
+
+ # Create and add ClientTemplate object to the final client_templates_dict
+ client_templates_dict[template_name] = ClientTemplate(
+ template_name, temp_dict['clientImagePath'],
+ temp_dict['metricsClientImagePath'], temp_dict['metricsPort'],
+ temp_dict['wrapperScriptPath'], temp_dict['pollIntervalSecs'],
+ temp_dict['clientArgs'].copy(), temp_dict['metricsArgs'].copy())
+
+ return client_templates_dict
+
+ def _parse_server_templates(self, config_dict):
+ """Parses the 'serverTemplates' section of the config file and returns a
+ Dictionary of 'serverTemplate' objects keyed by server template names.
+
+ Note: The 'baseTemplates' sub section of the config file contains templates
+ with default values and the 'templates' sub section contains the actual
+ server templates (which refer to the base template name to use for default
+ values).
+ """
+ server_templates_dict = {}
+
+ templates_dict = config_dict['serverTemplates']['templates']
+ base_templates_dict = config_dict['serverTemplates'].get('baseTemplates',
+ {})
+
+ for template_name in templates_dict.keys():
+ # temp_dict is a temporary dictionary that merges base template dictionary
+ # and server template dictionary (with server template dictionary values
+ # overriding base template values)
+ temp_dict = {}
+
+ base_template_name = templates_dict[template_name].get('baseTemplate')
+ if not base_template_name is None:
+ temp_dict = base_templates_dict[base_template_name].copy()
+
+ temp_dict.update(templates_dict[template_name])
+
+ # Create and add ServerTemplate object to the final server_templates_dict
+ server_templates_dict[template_name] = ServerTemplate(
+ template_name, temp_dict['serverImagePath'],
+ temp_dict['wrapperScriptPath'], temp_dict['serverPort'],
+ temp_dict['serverArgs'].copy())
+
+ return server_templates_dict
+
+ def _parse_server_pod_specs(self, config_dict, docker_images_dict,
+ server_templates_dict):
+ """Parses the 'serverPodSpecs' sub-section (under 'testMatrix' section) of
+ the config file and returns a Dictionary of 'ServerPodSpec' objects keyed
+ by server pod spec names"""
+ server_pod_specs_dict = {}
+
+ pod_specs_dict = config_dict['testMatrix'].get('serverPodSpecs', {})
+
+ for pod_name in pod_specs_dict.keys():
+ server_template_name = pod_specs_dict[pod_name]['serverTemplate']
+ docker_image_name = pod_specs_dict[pod_name]['dockerImage']
+ num_instances = pod_specs_dict[pod_name].get('numInstances', 1)
+
+ # Create and add the ServerPodSpec object to the final
+ # server_pod_specs_dict
+ server_pod_specs_dict[pod_name] = ServerPodSpec(
+ pod_name, server_templates_dict[server_template_name],
+ docker_images_dict[docker_image_name], num_instances)
+
+ return server_pod_specs_dict
+
+ def _parse_client_pod_specs(self, config_dict, docker_images_dict,
+ client_templates_dict, server_pod_specs_dict):
+ """Parses the 'clientPodSpecs' sub-section (under 'testMatrix' section) of
+ the config file and returns a Dictionary of 'ClientPodSpec' objects keyed
+ by client pod spec names"""
+ client_pod_specs_dict = {}
+
+ pod_specs_dict = config_dict['testMatrix'].get('clientPodSpecs', {})
+ for pod_name in pod_specs_dict.keys():
+ client_template_name = pod_specs_dict[pod_name]['clientTemplate']
+ docker_image_name = pod_specs_dict[pod_name]['dockerImage']
+ num_instances = pod_specs_dict[pod_name]['numInstances']
+
+ # Get the server addresses from the server pod spec object
+ server_pod_spec_name = pod_specs_dict[pod_name]['serverPodSpec']
+ server_addresses = server_pod_specs_dict[
+ server_pod_spec_name].server_addresses()
+
+ client_pod_specs_dict[pod_name] = ClientPodSpec(
+ pod_name, client_templates_dict[client_template_name],
+ docker_images_dict[docker_image_name], num_instances,
+ server_addresses)
+
+ return client_pod_specs_dict
+
+ def _load_config(self, config_filename):
+ """Opens the config file and converts the Json text to Dictionary"""
+ if not os.path.isabs(config_filename):
+ raise Exception('Config objects expects an absolute file path. '
+ 'config file name passed: %s' % config_filename)
+ with open(config_filename) as config_file:
+ return json.load(config_file)
+
+
+def run_tests(config):
+ """ The main function that launches the stress tests """
+ # Build docker images and push to GKE registry
+ if config.global_settings.build_docker_images:
+ for name, docker_image in config.docker_images_dict.iteritems():
+ if not (docker_image.build_image() and
+ docker_image.push_to_gke_registry()):
+ return False
+
+ # Create a unique id for this run (Note: Using timestamp instead of UUID to
+ # make it easier to deduce the date/time of the run just by looking at the run
+ # run id. This is useful in debugging when looking at records in Biq query)
+ run_id = datetime.datetime.now().strftime('%Y_%m_%d_%H_%M_%S')
+ dataset_id = '%s_%s' % (config.global_settings.dataset_id_prefix, run_id)
+
+ bq_helper = BigQueryHelper(run_id, '', '',
+ config.global_settings.gcp_project_id, dataset_id,
+ config.global_settings.summary_table_id,
+ config.global_settings.qps_table_id)
+ bq_helper.initialize()
+
+ gke = Gke(config.global_settings.gcp_project_id, run_id, dataset_id,
+ config.global_settings.summary_table_id,
+ config.global_settings.qps_table_id,
+ config.global_settings.kubernetes_proxy_port)
+
+ is_success = True
+
+ try:
+ print 'Launching servers..'
+ for name, server_pod_spec in config.server_pod_specs_dict.iteritems():
+ if not gke.launch_servers(server_pod_spec):
+ is_success = False # is_success is checked in the 'finally' block
+ return False
+
+ print('Launched servers. Waiting for %d seconds for the server pods to be '
+ 'fully online') % config.global_settings.pod_warmup_secs
+ time.sleep(config.global_settings.pod_warmup_secs)
+
+ for name, client_pod_spec in config.client_pod_specs_dict.iteritems():
+ if not gke.launch_clients(client_pod_spec):
+ is_success = False # is_success is checked in the 'finally' block
+ return False
+
+ print('Launched all clients. Waiting for %d seconds for the client pods to '
+ 'be fully online') % config.global_settings.pod_warmup_secs
+ time.sleep(config.global_settings.pod_warmup_secs)
+
+ start_time = datetime.datetime.now()
+ end_time = start_time + datetime.timedelta(
+ seconds=config.global_settings.test_duration_secs)
+ print 'Running the test until %s' % end_time.isoformat()
+
+ while True:
+ if datetime.datetime.now() > end_time:
+ print 'Test was run for %d seconds' % config.global_settings.test_duration_secs
+ break
+
+ # Check if either stress server or clients have failed (btw, the bq_helper
+ # monitors all the rows in the summary table and checks if any of them
+ # have a failure status)
+ if bq_helper.check_if_any_tests_failed():
+ is_success = False
+ print 'Some tests failed.'
+ break # Don't 'return' here. We still want to call bq_helper to print qps/summary tables
+
+ # Tests running fine. Wait until next poll time to check the status
+ print 'Sleeping for %d seconds..' % config.global_settings.test_poll_interval_secs
+ time.sleep(config.global_settings.test_poll_interval_secs)
+
+ # Print BiqQuery tables
+ bq_helper.print_qps_records()
+ bq_helper.print_summary_records()
+
+ finally:
+ # If there was a test failure, we should not delete the pods since they
+ # would contain useful debug information (logs, core dumps etc)
+ if is_success:
+ for name, server_pod_spec in config.server_pod_specs_dict.iteritems():
+ gke.delete_servers(server_pod_spec)
+ for name, client_pod_spec in config.client_pod_specs_dict.iteritems():
+ gke.delete_clients(client_pod_spec)
+
+ return is_success
+
+
+argp = argparse.ArgumentParser(
+ description='Launch stress tests in GKE',
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter)
+argp.add_argument('--gcp_project_id',
+ required=True,
+ help='The Google Cloud Platform Project Id')
+argp.add_argument('--config_file',
+ required=True,
+ type=str,
+ help='The test config file')
+
+if __name__ == '__main__':
+ args = argp.parse_args()
+
+ config_filename = args.config_file
+
+ # Since we will be changing the current working directory to grpc root in the
+ # next step, we should check if the config filename path is a relative path
+ # (i.e a path relative to the current working directory) and if so, convert it
+ # to abosulte path
+ if not os.path.isabs(config_filename):
+ config_filename = os.path.abspath(config_filename)
+
+ config = Config(config_filename, args.gcp_project_id)
+
+ # Change current working directory to grpc root
+ # (This is important because all relative file paths in the config file are
+ # supposed to interpreted as relative to the GRPC root)
+ grpc_root = os.path.abspath(os.path.join(
+ os.path.dirname(sys.argv[0]), '../../..'))
+ os.chdir(grpc_root)
+
+ if not run_tests(config):
+ sys.exit(1)
diff --git a/tools/run_tests/stress_test/run_stress_tests_on_gke.py b/tools/run_tests/stress_test/run_stress_tests_on_gke.py
deleted file mode 100755
index 634eb1aca5..0000000000
--- a/tools/run_tests/stress_test/run_stress_tests_on_gke.py
+++ /dev/null
@@ -1,556 +0,0 @@
-#!/usr/bin/env python2.7
-# 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.
-import argparse
-import datetime
-import os
-import subprocess
-import sys
-import time
-
-stress_test_utils_dir = os.path.abspath(os.path.join(
- os.path.dirname(__file__), '../../gcp/stress_test'))
-sys.path.append(stress_test_utils_dir)
-from stress_test_utils import BigQueryHelper
-
-kubernetes_api_dir = os.path.abspath(os.path.join(
- os.path.dirname(__file__), '../../gcp/utils'))
-sys.path.append(kubernetes_api_dir)
-
-import kubernetes_api
-
-_GRPC_ROOT = os.path.abspath(os.path.join(
- os.path.dirname(sys.argv[0]), '../../..'))
-os.chdir(_GRPC_ROOT)
-
-# num of seconds to wait for the GKE image to start and warmup
-_GKE_IMAGE_WARMUP_WAIT_SECS = 60
-
-_SERVER_POD_NAME = 'stress-server'
-_CLIENT_POD_NAME_PREFIX = 'stress-client'
-_DATASET_ID_PREFIX = 'stress_test'
-_SUMMARY_TABLE_ID = 'summary'
-_QPS_TABLE_ID = 'qps'
-
-_DEFAULT_DOCKER_IMAGE_NAME = 'grpc_stress_test'
-
-# The default port on which the kubernetes proxy server is started on localhost
-# (i.e kubectl proxy --port=<port>)
-_DEFAULT_KUBERNETES_PROXY_PORT = 8001
-
-# How frequently should the stress client wrapper script (running inside a GKE
-# container) poll the health of the stress client (also running inside the GKE
-# container) and upload metrics to BigQuery
-_DEFAULT_STRESS_CLIENT_POLL_INTERVAL_SECS = 60
-
-# The default setting for stress test server and client
-_DEFAULT_STRESS_SERVER_PORT = 8080
-_DEFAULT_METRICS_PORT = 8081
-_DEFAULT_TEST_CASES_STR = 'empty_unary:1,large_unary:1,client_streaming:1,server_streaming:1,empty_stream:1'
-_DEFAULT_NUM_CHANNELS_PER_SERVER = 5
-_DEFAULT_NUM_STUBS_PER_CHANNEL = 10
-_DEFAULT_METRICS_COLLECTION_INTERVAL_SECS = 30
-
-# Number of stress client instances to launch
-_DEFAULT_NUM_CLIENTS = 3
-
-# How frequently should this test monitor the health of Stress clients and
-# Servers running in GKE
-_DEFAULT_TEST_POLL_INTERVAL_SECS = 60
-
-# Default run time for this test (2 hour)
-_DEFAULT_TEST_DURATION_SECS = 7200
-
-# The number of seconds it would take a GKE pod to warm up (i.e get to 'Running'
-# state from the time of creation). Ideally this is something the test should
-# automatically determine by using Kubernetes API to poll the pods status.
-_DEFAULT_GKE_WARMUP_SECS = 60
-
-
-class KubernetesProxy:
- """ Class to start a proxy on localhost to the Kubernetes API server """
-
- def __init__(self, api_port):
- self.port = api_port
- self.p = None
- self.started = False
-
- def start(self):
- cmd = ['kubectl', 'proxy', '--port=%d' % self.port]
- self.p = subprocess.Popen(args=cmd)
- self.started = True
- time.sleep(2)
- print '..Started'
-
- def get_port(self):
- return self.port
-
- def is_started(self):
- return self.started
-
- def __del__(self):
- if self.p is not None:
- print 'Shutting down Kubernetes proxy..'
- self.p.kill()
-
-
-class TestSettings:
-
- def __init__(self, build_docker_image, test_poll_interval_secs,
- test_duration_secs, kubernetes_proxy_port):
- self.build_docker_image = build_docker_image
- self.test_poll_interval_secs = test_poll_interval_secs
- self.test_duration_secs = test_duration_secs
- self.kubernetes_proxy_port = kubernetes_proxy_port
-
-
-class GkeSettings:
-
- def __init__(self, project_id, docker_image_name):
- self.project_id = project_id
- self.docker_image_name = docker_image_name
- self.tag_name = 'gcr.io/%s/%s' % (project_id, docker_image_name)
-
-
-class BigQuerySettings:
-
- def __init__(self, run_id, dataset_id, summary_table_id, qps_table_id):
- self.run_id = run_id
- self.dataset_id = dataset_id
- self.summary_table_id = summary_table_id
- self.qps_table_id = qps_table_id
-
-
-class StressServerSettings:
-
- def __init__(self, server_pod_name, server_port):
- self.server_pod_name = server_pod_name
- self.server_port = server_port
-
-
-class StressClientSettings:
-
- def __init__(self, num_clients, client_pod_name_prefix, server_pod_name,
- server_port, metrics_port, metrics_collection_interval_secs,
- stress_client_poll_interval_secs, num_channels_per_server,
- num_stubs_per_channel, test_cases_str):
- self.num_clients = num_clients
- self.client_pod_name_prefix = client_pod_name_prefix
- self.server_pod_name = server_pod_name
- self.server_port = server_port
- self.metrics_port = metrics_port
- self.metrics_collection_interval_secs = metrics_collection_interval_secs
- self.stress_client_poll_interval_secs = stress_client_poll_interval_secs
- self.num_channels_per_server = num_channels_per_server
- self.num_stubs_per_channel = num_stubs_per_channel
- self.test_cases_str = test_cases_str
-
- # == Derived properties ==
- # Note: Client can accept a list of server addresses (a comma separated list
- # of 'server_name:server_port'). In this case, we only have one server
- # address to pass
- self.server_addresses = '%s.default.svc.cluster.local:%d' % (
- server_pod_name, server_port)
- self.client_pod_names_list = ['%s-%d' % (client_pod_name_prefix, i)
- for i in range(1, num_clients + 1)]
-
-
-def _build_docker_image(image_name, tag_name):
- """ Build the docker image and add tag it to the GKE repository """
- print 'Building docker image: %s' % image_name
- os.environ['INTEROP_IMAGE'] = image_name
- os.environ['INTEROP_IMAGE_REPOSITORY_TAG'] = tag_name
- # Note that 'BASE_NAME' HAS to be 'grpc_interop_stress_cxx' since the script
- # build_interop_stress_image.sh invokes the following script:
- # tools/dockerfile/$BASE_NAME/build_interop_stress.sh
- os.environ['BASE_NAME'] = 'grpc_interop_stress_cxx'
- cmd = ['tools/jenkins/build_interop_stress_image.sh']
- retcode = subprocess.call(args=cmd)
- if retcode != 0:
- print 'Error in building docker image'
- return False
- return True
-
-
-def _push_docker_image_to_gke_registry(docker_tag_name):
- """Executes 'gcloud docker push <docker_tag_name>' to push the image to GKE registry"""
- cmd = ['gcloud', 'docker', 'push', docker_tag_name]
- print 'Pushing %s to GKE registry..' % docker_tag_name
- retcode = subprocess.call(args=cmd)
- if retcode != 0:
- print 'Error in pushing docker image %s to the GKE registry' % docker_tag_name
- return False
- return True
-
-
-def _launch_server(gke_settings, stress_server_settings, bq_settings,
- kubernetes_proxy):
- """ Launches a stress test server instance in GKE cluster """
- if not kubernetes_proxy.is_started:
- print 'Kubernetes proxy must be started before calling this function'
- return False
-
- # This is the wrapper script that is run in the container. This script runs
- # the actual stress test server
- server_cmd_list = ['/var/local/git/grpc/tools/gcp/stress_test/run_server.py']
-
- # run_server.py does not take any args from the command line. The args are
- # instead passed via environment variables (see server_env below)
- server_arg_list = []
-
- # The parameters to the script run_server.py are injected into the container
- # via environment variables
- server_env = {
- 'STRESS_TEST_IMAGE_TYPE': 'SERVER',
- 'STRESS_TEST_IMAGE': '/var/local/git/grpc/bins/opt/interop_server',
- 'STRESS_TEST_ARGS_STR': '--port=%s' % stress_server_settings.server_port,
- 'RUN_ID': bq_settings.run_id,
- 'POD_NAME': stress_server_settings.server_pod_name,
- 'GCP_PROJECT_ID': gke_settings.project_id,
- 'DATASET_ID': bq_settings.dataset_id,
- 'SUMMARY_TABLE_ID': bq_settings.summary_table_id,
- 'QPS_TABLE_ID': bq_settings.qps_table_id
- }
-
- # Launch Server
- is_success = kubernetes_api.create_pod_and_service(
- 'localhost',
- kubernetes_proxy.get_port(),
- 'default', # Use 'default' namespace
- stress_server_settings.server_pod_name,
- gke_settings.tag_name,
- [stress_server_settings.server_port], # Port that should be exposed
- server_cmd_list,
- server_arg_list,
- server_env,
- True # Headless = True for server. Since we want DNS records to be created by GKE
- )
-
- return is_success
-
-
-def _launch_client(gke_settings, stress_server_settings, stress_client_settings,
- bq_settings, kubernetes_proxy):
- """ Launches a configurable number of stress test clients on GKE cluster """
- if not kubernetes_proxy.is_started:
- print 'Kubernetes proxy must be started before calling this function'
- return False
-
- stress_client_arg_list = [
- '--server_addresses=%s' % stress_client_settings.server_addresses,
- '--test_cases=%s' % stress_client_settings.test_cases_str,
- '--num_stubs_per_channel=%d' %
- stress_client_settings.num_stubs_per_channel
- ]
-
- # This is the wrapper script that is run in the container. This script runs
- # the actual stress client
- client_cmd_list = ['/var/local/git/grpc/tools/gcp/stress_test/run_client.py']
-
- # run_client.py takes no args. All args are passed as env variables (see
- # client_env)
- client_arg_list = []
-
- metrics_server_address = 'localhost:%d' % stress_client_settings.metrics_port
- metrics_client_arg_list = [
- '--metrics_server_address=%s' % metrics_server_address,
- '--total_only=true'
- ]
-
- # The parameters to the script run_client.py are injected into the container
- # via environment variables
- client_env = {
- 'STRESS_TEST_IMAGE_TYPE': 'CLIENT',
- 'STRESS_TEST_IMAGE': '/var/local/git/grpc/bins/opt/stress_test',
- 'STRESS_TEST_ARGS_STR': ' '.join(stress_client_arg_list),
- 'METRICS_CLIENT_IMAGE': '/var/local/git/grpc/bins/opt/metrics_client',
- 'METRICS_CLIENT_ARGS_STR': ' '.join(metrics_client_arg_list),
- 'RUN_ID': bq_settings.run_id,
- 'POLL_INTERVAL_SECS':
- str(stress_client_settings.stress_client_poll_interval_secs),
- 'GCP_PROJECT_ID': gke_settings.project_id,
- 'DATASET_ID': bq_settings.dataset_id,
- 'SUMMARY_TABLE_ID': bq_settings.summary_table_id,
- 'QPS_TABLE_ID': bq_settings.qps_table_id
- }
-
- for pod_name in stress_client_settings.client_pod_names_list:
- client_env['POD_NAME'] = pod_name
- is_success = kubernetes_api.create_pod_and_service(
- 'localhost', # Since proxy is running on localhost
- kubernetes_proxy.get_port(),
- 'default', # default namespace
- pod_name,
- gke_settings.tag_name,
- [stress_client_settings.metrics_port
- ], # Client pods expose metrics port
- client_cmd_list,
- client_arg_list,
- client_env,
- False # Client is not a headless service
- )
- if not is_success:
- print 'Error in launching client %s' % pod_name
- return False
-
- return True
-
-
-def _launch_server_and_client(gke_settings, stress_server_settings,
- stress_client_settings, bq_settings,
- kubernetes_proxy_port):
- # Start kubernetes proxy
- print 'Kubernetes proxy'
- kubernetes_proxy = KubernetesProxy(kubernetes_proxy_port)
- kubernetes_proxy.start()
-
- print 'Launching server..'
- is_success = _launch_server(gke_settings, stress_server_settings, bq_settings,
- kubernetes_proxy)
- if not is_success:
- print 'Error in launching server'
- return False
-
- # Server takes a while to start.
- # TODO(sree) Use Kubernetes API to query the status of the server instead of
- # sleeping
- print 'Waiting for %s seconds for the server to start...' % _GKE_IMAGE_WARMUP_WAIT_SECS
- time.sleep(_GKE_IMAGE_WARMUP_WAIT_SECS)
-
- # Launch client
- client_pod_name_prefix = 'stress-client'
- is_success = _launch_client(gke_settings, stress_server_settings,
- stress_client_settings, bq_settings,
- kubernetes_proxy)
-
- if not is_success:
- print 'Error in launching client(s)'
- return False
-
- print 'Waiting for %s seconds for the client images to start...' % _GKE_IMAGE_WARMUP_WAIT_SECS
- time.sleep(_GKE_IMAGE_WARMUP_WAIT_SECS)
- return True
-
-
-def _delete_server_and_client(stress_server_settings, stress_client_settings,
- kubernetes_proxy_port):
- kubernetes_proxy = KubernetesProxy(kubernetes_proxy_port)
- kubernetes_proxy.start()
-
- # Delete clients first
- is_success = True
- for pod_name in stress_client_settings.client_pod_names_list:
- is_success = kubernetes_api.delete_pod_and_service(
- 'localhost', kubernetes_proxy_port, 'default', pod_name)
- if not is_success:
- return False
-
- # Delete server
- is_success = kubernetes_api.delete_pod_and_service(
- 'localhost', kubernetes_proxy_port, 'default',
- stress_server_settings.server_pod_name)
- return is_success
-
-
-def run_test_main(test_settings, gke_settings, stress_server_settings,
- stress_client_clients):
- is_success = True
-
- if test_settings.build_docker_image:
- is_success = _build_docker_image(gke_settings.docker_image_name,
- gke_settings.tag_name)
- if not is_success:
- return False
-
- is_success = _push_docker_image_to_gke_registry(gke_settings.tag_name)
- if not is_success:
- return False
-
- # Create a unique id for this run (Note: Using timestamp instead of UUID to
- # make it easier to deduce the date/time of the run just by looking at the run
- # run id. This is useful in debugging when looking at records in Biq query)
- run_id = datetime.datetime.now().strftime('%Y_%m_%d_%H_%M_%S')
- dataset_id = '%s_%s' % (_DATASET_ID_PREFIX, run_id)
-
- # Big Query settings (common for both Stress Server and Client)
- bq_settings = BigQuerySettings(run_id, dataset_id, _SUMMARY_TABLE_ID,
- _QPS_TABLE_ID)
-
- bq_helper = BigQueryHelper(run_id, '', '', args.project_id, dataset_id,
- _SUMMARY_TABLE_ID, _QPS_TABLE_ID)
- bq_helper.initialize()
-
- try:
- is_success = _launch_server_and_client(gke_settings, stress_server_settings,
- stress_client_settings, bq_settings,
- test_settings.kubernetes_proxy_port)
- if not is_success:
- return False
-
- start_time = datetime.datetime.now()
- end_time = start_time + datetime.timedelta(
- seconds=test_settings.test_duration_secs)
- print 'Running the test until %s' % end_time.isoformat()
-
- while True:
- if datetime.datetime.now() > end_time:
- print 'Test was run for %d seconds' % test_settings.test_duration_secs
- break
-
- # Check if either stress server or clients have failed
- if bq_helper.check_if_any_tests_failed():
- is_success = False
- print 'Some tests failed.'
- break
-
- # Things seem to be running fine. Wait until next poll time to check the
- # status
- print 'Sleeping for %d seconds..' % test_settings.test_poll_interval_secs
- time.sleep(test_settings.test_poll_interval_secs)
-
- # Print BiqQuery tables
- bq_helper.print_summary_records()
- bq_helper.print_qps_records()
-
- finally:
- # If is_success is False at this point, it means that the stress tests were
- # started successfully but failed while running the tests. In this case we
- # do should not delete the pods (since they contain all the failure
- # information)
- if is_success:
- _delete_server_and_client(stress_server_settings, stress_client_settings,
- test_settings.kubernetes_proxy_port)
-
- return is_success
-
-
-argp = argparse.ArgumentParser(
- description='Launch stress tests in GKE',
- formatter_class=argparse.ArgumentDefaultsHelpFormatter)
-argp.add_argument('--project_id',
- required=True,
- help='The Google Cloud Platform Project Id')
-argp.add_argument('--num_clients',
- default=1,
- type=int,
- help='Number of client instances to start')
-argp.add_argument('--docker_image_name',
- default=_DEFAULT_DOCKER_IMAGE_NAME,
- help='The name of the docker image containing stress client '
- 'and stress servers')
-argp.add_argument('--build_docker_image',
- dest='build_docker_image',
- action='store_true',
- help='Build a docker image and push to Google Container '
- 'Registry')
-argp.add_argument('--do_not_build_docker_image',
- dest='build_docker_image',
- action='store_false',
- help='Do not build and push docker image to Google Container '
- 'Registry')
-argp.set_defaults(build_docker_image=True)
-
-argp.add_argument('--test_poll_interval_secs',
- default=_DEFAULT_TEST_POLL_INTERVAL_SECS,
- type=int,
- help='How frequently should this script should monitor the '
- 'health of stress clients and servers running in the GKE '
- 'cluster')
-argp.add_argument('--test_duration_secs',
- default=_DEFAULT_TEST_DURATION_SECS,
- type=int,
- help='How long should this test be run')
-argp.add_argument('--kubernetes_proxy_port',
- default=_DEFAULT_KUBERNETES_PROXY_PORT,
- type=int,
- help='The port on which the kubernetes proxy (on localhost)'
- ' is started')
-argp.add_argument('--stress_server_port',
- default=_DEFAULT_STRESS_SERVER_PORT,
- type=int,
- help='The port on which the stress server (in GKE '
- 'containers) listens')
-argp.add_argument('--stress_client_metrics_port',
- default=_DEFAULT_METRICS_PORT,
- type=int,
- help='The port on which the stress clients (in GKE '
- 'containers) expose metrics')
-argp.add_argument('--stress_client_poll_interval_secs',
- default=_DEFAULT_STRESS_CLIENT_POLL_INTERVAL_SECS,
- type=int,
- help='How frequently should the stress client wrapper script'
- ' running inside GKE should monitor health of the actual '
- ' stress client process and upload the metrics to BigQuery')
-argp.add_argument('--stress_client_metrics_collection_interval_secs',
- default=_DEFAULT_METRICS_COLLECTION_INTERVAL_SECS,
- type=int,
- help='How frequently should metrics be collected in-memory on'
- ' the stress clients (running inside GKE containers). Note '
- 'that this is NOT the same as the upload-to-BigQuery '
- 'frequency. The metrics upload frequency is controlled by the'
- ' --stress_client_poll_interval_secs flag')
-argp.add_argument('--stress_client_num_channels_per_server',
- default=_DEFAULT_NUM_CHANNELS_PER_SERVER,
- type=int,
- help='The number of channels created to each server from a '
- 'stress client')
-argp.add_argument('--stress_client_num_stubs_per_channel',
- default=_DEFAULT_NUM_STUBS_PER_CHANNEL,
- type=int,
- help='The number of stubs created per channel. This number '
- 'indicates the max number of RPCs that can be made in '
- 'parallel on each channel at any given time')
-argp.add_argument('--stress_client_test_cases',
- default=_DEFAULT_TEST_CASES_STR,
- help='List of test cases (with weights) to be executed by the'
- ' stress test client. The list is in the following format:\n'
- ' <testcase_1:w_1,<test_case2:w_2>..<testcase_n:w_n>\n'
- ' (Note: The weights do not have to add up to 100)')
-
-if __name__ == '__main__':
- args = argp.parse_args()
-
- test_settings = TestSettings(
- args.build_docker_image, args.test_poll_interval_secs,
- args.test_duration_secs, args.kubernetes_proxy_port)
-
- gke_settings = GkeSettings(args.project_id, args.docker_image_name)
-
- stress_server_settings = StressServerSettings(_SERVER_POD_NAME,
- args.stress_server_port)
- stress_client_settings = StressClientSettings(
- args.num_clients, _CLIENT_POD_NAME_PREFIX, _SERVER_POD_NAME,
- args.stress_server_port, args.stress_client_metrics_port,
- args.stress_client_metrics_collection_interval_secs,
- args.stress_client_poll_interval_secs,
- args.stress_client_num_channels_per_server,
- args.stress_client_num_stubs_per_channel, args.stress_client_test_cases)
-
- run_test_main(test_settings, gke_settings, stress_server_settings,
- stress_client_settings)
diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json
index 5f72b8c582..795b13d5ce 100644
--- a/tools/run_tests/tests.json
+++ b/tools/run_tests/tests.json
@@ -437,6 +437,25 @@
"ci_platforms": [
"linux",
"mac",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "gtest": false,
+ "language": "c",
+ "name": "goaway_server_test",
+ "platforms": [
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [],
+ "ci_platforms": [
+ "linux",
+ "mac",
"posix",
"windows"
],
@@ -4651,6 +4670,28 @@
},
{
"args": [
+ "idempotent_request"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_census_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
"invoke_large_request"
],
"ci_platforms": [
@@ -5443,6 +5484,28 @@
},
{
"args": [
+ "idempotent_request"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_compress_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
"invoke_large_request"
],
"ci_platforms": [
@@ -6218,6 +6281,27 @@
},
{
"args": [
+ "idempotent_request"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_fakesec_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
"invoke_large_request"
],
"ci_platforms": [
@@ -6991,6 +7075,28 @@
},
{
"args": [
+ "idempotent_request"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_full_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
"invoke_large_request"
],
"ci_platforms": [
@@ -7681,6 +7787,22 @@
},
{
"args": [
+ "idempotent_request"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_full+pipe_test",
+ "platforms": [
+ "linux"
+ ]
+ },
+ {
+ "args": [
"invoke_large_request"
],
"ci_platforms": [
@@ -7988,15 +8110,21 @@
"bad_hostname"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8004,15 +8132,21 @@
"binary_metadata"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8020,15 +8154,21 @@
"call_creds"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8036,15 +8176,21 @@
"cancel_after_accept"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8052,15 +8198,21 @@
"cancel_after_client_done"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8068,15 +8220,21 @@
"cancel_after_invoke"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8084,15 +8242,21 @@
"cancel_before_invoke"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8100,15 +8264,21 @@
"cancel_in_a_vacuum"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8116,15 +8286,21 @@
"cancel_with_status"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8132,15 +8308,21 @@
"compressed_payload"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8148,15 +8330,21 @@
"connectivity"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8164,15 +8352,21 @@
"default_host"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8180,15 +8374,21 @@
"disappearing_server"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8196,15 +8396,21 @@
"empty_batch"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8212,15 +8418,21 @@
"graceful_server_shutdown"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8228,31 +8440,43 @@
"high_initial_seqno"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
"args": [
- "hpack_size"
+ "idempotent_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8260,15 +8484,21 @@
"invoke_large_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8276,15 +8506,21 @@
"large_metadata"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8292,15 +8528,21 @@
"max_concurrent_streams"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8308,15 +8550,21 @@
"max_message_length"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8324,15 +8572,21 @@
"negative_deadline"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8340,15 +8594,21 @@
"no_op"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8356,15 +8616,21 @@
"payload"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8372,15 +8638,21 @@
"ping"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8388,15 +8660,21 @@
"ping_pong_streaming"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8404,15 +8682,21 @@
"registered_call"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8420,15 +8704,21 @@
"request_with_flags"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8436,15 +8726,21 @@
"request_with_payload"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8452,15 +8748,21 @@
"server_finishes_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8468,15 +8770,21 @@
"shutdown_finishes_calls"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8484,15 +8792,21 @@
"shutdown_finishes_tags"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8500,15 +8814,21 @@
"simple_delayed_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8516,15 +8836,21 @@
"simple_metadata"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8532,15 +8858,21 @@
"simple_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8548,15 +8880,21 @@
"trailing_metadata"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_test",
+ "name": "h2_full+trace_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8564,15 +8902,20 @@
"bad_hostname"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8580,15 +8923,20 @@
"binary_metadata"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8596,15 +8944,20 @@
"call_creds"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8612,15 +8965,20 @@
"cancel_after_accept"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8628,15 +8986,20 @@
"cancel_after_client_done"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8644,15 +9007,20 @@
"cancel_after_invoke"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8660,15 +9028,20 @@
"cancel_before_invoke"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8676,15 +9049,20 @@
"cancel_in_a_vacuum"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8692,15 +9070,20 @@
"cancel_with_status"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8708,15 +9091,20 @@
"compressed_payload"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8724,15 +9112,20 @@
"connectivity"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8740,15 +9133,20 @@
"default_host"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8756,15 +9154,20 @@
"disappearing_server"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8772,15 +9175,20 @@
"empty_batch"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8788,15 +9196,20 @@
"graceful_server_shutdown"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8804,15 +9217,20 @@
"high_initial_seqno"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8820,15 +9238,41 @@
"hpack_size"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "idempotent_request"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_oauth2_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8836,15 +9280,20 @@
"invoke_large_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8852,15 +9301,20 @@
"large_metadata"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8868,15 +9322,20 @@
"max_concurrent_streams"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8884,15 +9343,20 @@
"max_message_length"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8900,15 +9364,20 @@
"negative_deadline"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8916,15 +9385,20 @@
"no_op"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8932,15 +9406,20 @@
"payload"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8948,15 +9427,20 @@
"ping"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8964,15 +9448,20 @@
"ping_pong_streaming"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8980,15 +9469,20 @@
"registered_call"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -8996,15 +9490,20 @@
"request_with_flags"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -9012,15 +9511,20 @@
"request_with_payload"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -9028,15 +9532,20 @@
"server_finishes_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -9044,15 +9553,20 @@
"shutdown_finishes_calls"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -9060,15 +9574,20 @@
"shutdown_finishes_tags"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -9076,15 +9595,20 @@
"simple_delayed_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -9092,15 +9616,20 @@
"simple_metadata"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_test",
+ "name": "h2_oauth2_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -9108,48 +9637,15 @@
"simple_request"
],
"ci_platforms": [
- "linux"
- ],
- "cpu_cost": 1.0,
- "exclude_configs": [],
- "flaky": false,
- "language": "c",
- "name": "h2_full+poll+pipe_test",
- "platforms": [
- "linux"
- ]
- },
- {
- "args": [
- "trailing_metadata"
- ],
- "ci_platforms": [
- "linux"
- ],
- "cpu_cost": 1.0,
- "exclude_configs": [],
- "flaky": false,
- "language": "c",
- "name": "h2_full+poll+pipe_test",
- "platforms": [
- "linux"
- ]
- },
- {
- "args": [
- "bad_hostname"
- ],
- "ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_oauth2_test",
"platforms": [
"windows",
"linux",
@@ -9159,19 +9655,18 @@
},
{
"args": [
- "binary_metadata"
+ "trailing_metadata"
],
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_oauth2_test",
"platforms": [
"windows",
"linux",
@@ -9181,19 +9676,18 @@
},
{
"args": [
- "call_creds"
+ "bad_hostname"
],
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9203,19 +9697,18 @@
},
{
"args": [
- "cancel_after_accept"
+ "binary_metadata"
],
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
- "cpu_cost": 0.1,
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9225,19 +9718,18 @@
},
{
"args": [
- "cancel_after_client_done"
+ "call_creds"
],
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
- "cpu_cost": 0.1,
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9247,19 +9739,18 @@
},
{
"args": [
- "cancel_after_invoke"
+ "cancel_after_accept"
],
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9269,19 +9760,18 @@
},
{
"args": [
- "cancel_before_invoke"
+ "cancel_after_client_done"
],
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9291,19 +9781,18 @@
},
{
"args": [
- "cancel_in_a_vacuum"
+ "cancel_after_invoke"
],
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9313,19 +9802,18 @@
},
{
"args": [
- "cancel_with_status"
+ "cancel_before_invoke"
],
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9335,19 +9823,18 @@
},
{
"args": [
- "compressed_payload"
+ "cancel_in_a_vacuum"
],
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9357,19 +9844,18 @@
},
{
"args": [
- "connectivity"
+ "cancel_with_status"
],
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9384,14 +9870,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9406,14 +9891,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9428,14 +9912,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9450,14 +9933,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9472,14 +9954,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9489,19 +9970,18 @@
},
{
"args": [
- "invoke_large_request"
+ "idempotent_request"
],
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9511,19 +9991,18 @@
},
{
"args": [
- "large_metadata"
+ "invoke_large_request"
],
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9533,19 +10012,18 @@
},
{
"args": [
- "max_concurrent_streams"
+ "large_metadata"
],
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9560,14 +10038,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9582,14 +10059,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9604,14 +10080,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9626,36 +10101,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
- "platforms": [
- "windows",
- "linux",
- "mac",
- "posix"
- ]
- },
- {
- "args": [
- "ping"
- ],
- "ci_platforms": [
- "windows",
- "linux",
- "mac",
- "posix"
- ],
- "cpu_cost": 1.0,
- "exclude_configs": [],
- "flaky": false,
- "language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9670,14 +10122,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9692,36 +10143,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
- "platforms": [
- "windows",
- "linux",
- "mac",
- "posix"
- ]
- },
- {
- "args": [
- "request_with_flags"
- ],
- "ci_platforms": [
- "windows",
- "linux",
- "mac",
- "posix"
- ],
- "cpu_cost": 1.0,
- "exclude_configs": [],
- "flaky": false,
- "language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9736,14 +10164,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9758,14 +10185,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9780,14 +10206,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9802,14 +10227,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9824,14 +10248,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9846,14 +10269,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9868,14 +10290,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9890,14 +10311,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_test",
+ "name": "h2_proxy_test",
"platforms": [
"windows",
"linux",
@@ -9918,7 +10338,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -9939,7 +10359,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -9960,7 +10380,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -9981,7 +10401,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10002,7 +10422,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10023,7 +10443,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10044,7 +10464,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10065,7 +10485,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10086,7 +10506,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10107,28 +10527,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
- "platforms": [
- "windows",
- "linux",
- "mac",
- "posix"
- ]
- },
- {
- "args": [
- "connectivity"
- ],
- "ci_platforms": [
- "windows",
- "linux",
- "posix"
- ],
- "cpu_cost": 0.1,
- "exclude_configs": [],
- "flaky": false,
- "language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10138,7 +10537,7 @@
},
{
"args": [
- "default_host"
+ "empty_batch"
],
"ci_platforms": [
"windows",
@@ -10149,7 +10548,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10159,18 +10558,18 @@
},
{
"args": [
- "disappearing_server"
+ "graceful_server_shutdown"
],
"ci_platforms": [
"windows",
"linux",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10180,7 +10579,7 @@
},
{
"args": [
- "empty_batch"
+ "high_initial_seqno"
],
"ci_platforms": [
"windows",
@@ -10191,28 +10590,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
- "platforms": [
- "windows",
- "linux",
- "mac",
- "posix"
- ]
- },
- {
- "args": [
- "graceful_server_shutdown"
- ],
- "ci_platforms": [
- "windows",
- "linux",
- "posix"
- ],
- "cpu_cost": 0.1,
- "exclude_configs": [],
- "flaky": false,
- "language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10222,7 +10600,7 @@
},
{
"args": [
- "high_initial_seqno"
+ "hpack_size"
],
"ci_platforms": [
"windows",
@@ -10233,7 +10611,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10243,7 +10621,7 @@
},
{
"args": [
- "hpack_size"
+ "idempotent_request"
],
"ci_platforms": [
"windows",
@@ -10254,7 +10632,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10275,7 +10653,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10296,7 +10674,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10317,7 +10695,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10338,7 +10716,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10359,7 +10737,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10380,7 +10758,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10401,28 +10779,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
- "platforms": [
- "windows",
- "linux",
- "mac",
- "posix"
- ]
- },
- {
- "args": [
- "ping"
- ],
- "ci_platforms": [
- "windows",
- "linux",
- "posix"
- ],
- "cpu_cost": 1.0,
- "exclude_configs": [],
- "flaky": false,
- "language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10443,7 +10800,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10464,7 +10821,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10485,7 +10842,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10506,7 +10863,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10527,7 +10884,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10548,7 +10905,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10569,7 +10926,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10579,18 +10936,18 @@
},
{
"args": [
- "simple_delayed_request"
+ "simple_metadata"
],
"ci_platforms": [
"windows",
"linux",
"posix"
],
- "cpu_cost": 0.1,
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10600,7 +10957,7 @@
},
{
"args": [
- "simple_metadata"
+ "simple_request"
],
"ci_platforms": [
"windows",
@@ -10611,7 +10968,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10621,7 +10978,7 @@
},
{
"args": [
- "simple_request"
+ "trailing_metadata"
],
"ci_platforms": [
"windows",
@@ -10632,7 +10989,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair_test",
"platforms": [
"windows",
"linux",
@@ -10642,7 +10999,7 @@
},
{
"args": [
- "trailing_metadata"
+ "bad_hostname"
],
"ci_platforms": [
"windows",
@@ -10653,7 +11010,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_oauth2_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -10663,7 +11020,7 @@
},
{
"args": [
- "bad_hostname"
+ "binary_metadata"
],
"ci_platforms": [
"windows",
@@ -10674,7 +11031,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -10684,7 +11041,7 @@
},
{
"args": [
- "binary_metadata"
+ "call_creds"
],
"ci_platforms": [
"windows",
@@ -10695,7 +11052,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -10705,18 +11062,18 @@
},
{
"args": [
- "call_creds"
+ "cancel_after_accept"
],
"ci_platforms": [
"windows",
"linux",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -10726,7 +11083,7 @@
},
{
"args": [
- "cancel_after_accept"
+ "cancel_after_client_done"
],
"ci_platforms": [
"windows",
@@ -10737,7 +11094,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -10747,7 +11104,7 @@
},
{
"args": [
- "cancel_after_client_done"
+ "cancel_after_invoke"
],
"ci_platforms": [
"windows",
@@ -10758,7 +11115,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -10768,7 +11125,7 @@
},
{
"args": [
- "cancel_after_invoke"
+ "cancel_before_invoke"
],
"ci_platforms": [
"windows",
@@ -10779,7 +11136,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -10789,7 +11146,7 @@
},
{
"args": [
- "cancel_before_invoke"
+ "cancel_in_a_vacuum"
],
"ci_platforms": [
"windows",
@@ -10800,7 +11157,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -10810,7 +11167,7 @@
},
{
"args": [
- "cancel_in_a_vacuum"
+ "cancel_with_status"
],
"ci_platforms": [
"windows",
@@ -10821,7 +11178,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -10831,7 +11188,7 @@
},
{
"args": [
- "cancel_with_status"
+ "compressed_payload"
],
"ci_platforms": [
"windows",
@@ -10842,7 +11199,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -10852,7 +11209,7 @@
},
{
"args": [
- "default_host"
+ "empty_batch"
],
"ci_platforms": [
"windows",
@@ -10863,7 +11220,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -10873,18 +11230,18 @@
},
{
"args": [
- "disappearing_server"
+ "graceful_server_shutdown"
],
"ci_platforms": [
"windows",
"linux",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -10894,7 +11251,7 @@
},
{
"args": [
- "empty_batch"
+ "high_initial_seqno"
],
"ci_platforms": [
"windows",
@@ -10905,7 +11262,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -10915,18 +11272,18 @@
},
{
"args": [
- "graceful_server_shutdown"
+ "idempotent_request"
],
"ci_platforms": [
"windows",
"linux",
"posix"
],
- "cpu_cost": 0.1,
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -10936,7 +11293,7 @@
},
{
"args": [
- "high_initial_seqno"
+ "invoke_large_request"
],
"ci_platforms": [
"windows",
@@ -10947,7 +11304,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -10957,7 +11314,7 @@
},
{
"args": [
- "invoke_large_request"
+ "large_metadata"
],
"ci_platforms": [
"windows",
@@ -10968,7 +11325,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -10978,7 +11335,7 @@
},
{
"args": [
- "large_metadata"
+ "max_concurrent_streams"
],
"ci_platforms": [
"windows",
@@ -10989,7 +11346,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11010,7 +11367,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11031,7 +11388,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11052,7 +11409,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11073,7 +11430,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11094,7 +11451,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11115,7 +11472,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11125,7 +11482,7 @@
},
{
"args": [
- "request_with_payload"
+ "request_with_flags"
],
"ci_platforms": [
"windows",
@@ -11136,7 +11493,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11146,7 +11503,7 @@
},
{
"args": [
- "server_finishes_request"
+ "request_with_payload"
],
"ci_platforms": [
"windows",
@@ -11157,7 +11514,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11167,7 +11524,7 @@
},
{
"args": [
- "shutdown_finishes_calls"
+ "server_finishes_request"
],
"ci_platforms": [
"windows",
@@ -11178,7 +11535,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11188,7 +11545,7 @@
},
{
"args": [
- "shutdown_finishes_tags"
+ "shutdown_finishes_calls"
],
"ci_platforms": [
"windows",
@@ -11199,7 +11556,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11209,18 +11566,18 @@
},
{
"args": [
- "simple_delayed_request"
+ "shutdown_finishes_tags"
],
"ci_platforms": [
"windows",
"linux",
"posix"
],
- "cpu_cost": 0.1,
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11241,7 +11598,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11262,7 +11619,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11283,7 +11640,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_test",
+ "name": "h2_sockpair+trace_test",
"platforms": [
"windows",
"linux",
@@ -11304,7 +11661,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11325,7 +11682,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11346,7 +11703,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11367,7 +11724,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11388,7 +11745,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11409,7 +11766,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11430,7 +11787,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11451,7 +11808,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11472,7 +11829,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11493,7 +11850,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11514,7 +11871,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11535,7 +11892,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11556,7 +11913,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11577,7 +11934,28 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "idempotent_request"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11598,7 +11976,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11619,7 +11997,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11640,7 +12018,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11661,7 +12039,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11682,7 +12060,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11703,7 +12081,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11724,7 +12102,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11745,7 +12123,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11766,7 +12144,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11787,7 +12165,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11808,7 +12186,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11829,7 +12207,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11850,7 +12228,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11871,7 +12249,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11892,7 +12270,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11913,7 +12291,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11934,7 +12312,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_test",
+ "name": "h2_sockpair_1byte_test",
"platforms": [
"windows",
"linux",
@@ -11949,13 +12327,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -11970,13 +12349,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -11991,13 +12371,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12012,13 +12393,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12033,13 +12415,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12054,13 +12437,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12075,13 +12459,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12096,13 +12481,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12117,13 +12503,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12138,13 +12525,80 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "connectivity"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_ssl_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "default_host"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_ssl_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "disappearing_server"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12159,13 +12613,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12180,13 +12635,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12201,13 +12657,58 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "hpack_size"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_ssl_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "idempotent_request"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12222,13 +12723,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12243,13 +12745,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12264,13 +12767,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12285,13 +12789,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12306,13 +12811,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12327,13 +12833,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12348,13 +12855,36 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "ping"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12369,13 +12899,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12390,13 +12921,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12411,13 +12943,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12432,13 +12965,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12453,13 +12987,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12474,13 +13009,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12495,13 +13031,36 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "simple_delayed_request"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12516,13 +13075,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12537,13 +13097,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12558,13 +13119,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_test",
+ "name": "h2_ssl_test",
"platforms": [
"windows",
"linux",
@@ -12585,7 +13147,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12606,7 +13168,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12627,7 +13189,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12648,7 +13210,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12669,7 +13231,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12690,7 +13252,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12711,7 +13273,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12732,7 +13294,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12753,7 +13315,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12763,18 +13325,18 @@
},
{
"args": [
- "compressed_payload"
+ "default_host"
],
"ci_platforms": [
"windows",
"linux",
"posix"
],
- "cpu_cost": 0.1,
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12784,7 +13346,7 @@
},
{
"args": [
- "empty_batch"
+ "disappearing_server"
],
"ci_platforms": [
"windows",
@@ -12795,7 +13357,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12805,18 +13367,18 @@
},
{
"args": [
- "graceful_server_shutdown"
+ "empty_batch"
],
"ci_platforms": [
"windows",
"linux",
"posix"
],
- "cpu_cost": 0.1,
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12826,18 +13388,18 @@
},
{
"args": [
- "high_initial_seqno"
+ "graceful_server_shutdown"
],
"ci_platforms": [
"windows",
"linux",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12847,7 +13409,7 @@
},
{
"args": [
- "hpack_size"
+ "high_initial_seqno"
],
"ci_platforms": [
"windows",
@@ -12858,7 +13420,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12868,7 +13430,7 @@
},
{
"args": [
- "invoke_large_request"
+ "idempotent_request"
],
"ci_platforms": [
"windows",
@@ -12879,7 +13441,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12889,7 +13451,7 @@
},
{
"args": [
- "large_metadata"
+ "invoke_large_request"
],
"ci_platforms": [
"windows",
@@ -12900,7 +13462,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12910,7 +13472,7 @@
},
{
"args": [
- "max_concurrent_streams"
+ "large_metadata"
],
"ci_platforms": [
"windows",
@@ -12921,7 +13483,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12942,7 +13504,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12963,7 +13525,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -12984,7 +13546,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13005,7 +13567,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13026,7 +13588,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13047,7 +13609,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13057,7 +13619,7 @@
},
{
"args": [
- "request_with_flags"
+ "request_with_payload"
],
"ci_platforms": [
"windows",
@@ -13068,7 +13630,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13078,7 +13640,7 @@
},
{
"args": [
- "request_with_payload"
+ "server_finishes_request"
],
"ci_platforms": [
"windows",
@@ -13089,7 +13651,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13099,7 +13661,7 @@
},
{
"args": [
- "server_finishes_request"
+ "shutdown_finishes_calls"
],
"ci_platforms": [
"windows",
@@ -13110,7 +13672,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13120,7 +13682,7 @@
},
{
"args": [
- "shutdown_finishes_calls"
+ "shutdown_finishes_tags"
],
"ci_platforms": [
"windows",
@@ -13131,7 +13693,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13141,18 +13703,18 @@
},
{
"args": [
- "shutdown_finishes_tags"
+ "simple_delayed_request"
],
"ci_platforms": [
"windows",
"linux",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13173,7 +13735,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13194,7 +13756,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13215,7 +13777,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_test",
+ "name": "h2_ssl_proxy_test",
"platforms": [
"windows",
"linux",
@@ -13228,7 +13790,6 @@
"bad_hostname"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13237,9 +13798,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13250,7 +13810,6 @@
"binary_metadata"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13259,9 +13818,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13272,7 +13830,6 @@
"call_creds"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13281,9 +13838,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13294,7 +13850,6 @@
"cancel_after_accept"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13303,9 +13858,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13316,7 +13870,6 @@
"cancel_after_client_done"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13325,9 +13878,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13338,7 +13890,6 @@
"cancel_after_invoke"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13347,9 +13898,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13360,7 +13910,6 @@
"cancel_before_invoke"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13369,9 +13918,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13382,7 +13930,6 @@
"cancel_in_a_vacuum"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13391,9 +13938,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13404,7 +13950,6 @@
"cancel_with_status"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13413,9 +13958,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13426,7 +13970,6 @@
"compressed_payload"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13435,9 +13978,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13448,7 +13990,6 @@
"connectivity"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13457,9 +13998,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13467,10 +14007,9 @@
},
{
"args": [
- "default_host"
+ "disappearing_server"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13479,9 +14018,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13489,10 +14027,9 @@
},
{
"args": [
- "disappearing_server"
+ "empty_batch"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13501,9 +14038,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13511,21 +14047,19 @@
},
{
"args": [
- "empty_batch"
+ "graceful_server_shutdown"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13533,21 +14067,19 @@
},
{
"args": [
- "graceful_server_shutdown"
+ "high_initial_seqno"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
],
- "cpu_cost": 0.1,
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13555,10 +14087,9 @@
},
{
"args": [
- "high_initial_seqno"
+ "hpack_size"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13567,9 +14098,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13577,10 +14107,9 @@
},
{
"args": [
- "hpack_size"
+ "idempotent_request"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13589,9 +14118,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13602,7 +14130,6 @@
"invoke_large_request"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13611,9 +14138,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13624,7 +14150,6 @@
"large_metadata"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13633,9 +14158,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13646,7 +14170,6 @@
"max_concurrent_streams"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13655,9 +14178,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13668,7 +14190,6 @@
"max_message_length"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13677,9 +14198,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13690,7 +14210,6 @@
"negative_deadline"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13699,9 +14218,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13712,7 +14230,6 @@
"no_op"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13721,9 +14238,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13734,7 +14250,6 @@
"payload"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13743,9 +14258,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13756,7 +14270,6 @@
"ping"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13765,9 +14278,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13778,7 +14290,6 @@
"ping_pong_streaming"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13787,9 +14298,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13800,7 +14310,6 @@
"registered_call"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13809,9 +14318,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13822,7 +14330,6 @@
"request_with_flags"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13831,9 +14338,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13844,7 +14350,6 @@
"request_with_payload"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13853,9 +14358,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13866,7 +14370,6 @@
"server_finishes_request"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13875,9 +14378,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13888,7 +14390,6 @@
"shutdown_finishes_calls"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13897,9 +14398,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13910,7 +14410,6 @@
"shutdown_finishes_tags"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13919,9 +14418,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13932,7 +14430,6 @@
"simple_delayed_request"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13941,9 +14438,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13954,7 +14450,6 @@
"simple_metadata"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13963,9 +14458,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13976,7 +14470,6 @@
"simple_request"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13985,9 +14478,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -13998,7 +14490,6 @@
"trailing_metadata"
],
"ci_platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14007,9 +14498,8 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_test",
+ "name": "h2_uds_test",
"platforms": [
- "windows",
"linux",
"mac",
"posix"
@@ -14020,15 +14510,21 @@
"bad_hostname"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14036,31 +14532,21 @@
"binary_metadata"
],
"ci_platforms": [
- "linux"
- ],
- "cpu_cost": 1.0,
- "exclude_configs": [],
- "flaky": false,
- "language": "c",
- "name": "h2_ssl+poll_test",
- "platforms": [
- "linux"
- ]
- },
- {
- "args": [
- "call_creds"
- ],
- "ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14068,15 +14554,21 @@
"cancel_after_accept"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14084,15 +14576,21 @@
"cancel_after_client_done"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14100,15 +14598,21 @@
"cancel_after_invoke"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14116,15 +14620,21 @@
"cancel_before_invoke"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14132,15 +14642,21 @@
"cancel_in_a_vacuum"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14148,15 +14664,21 @@
"cancel_with_status"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14164,15 +14686,21 @@
"compressed_payload"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14180,15 +14708,21 @@
"connectivity"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14196,15 +14730,21 @@
"default_host"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14212,15 +14752,21 @@
"disappearing_server"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14228,15 +14774,21 @@
"empty_batch"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14244,15 +14796,21 @@
"graceful_server_shutdown"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14260,15 +14818,21 @@
"high_initial_seqno"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14276,15 +14840,43 @@
"hpack_size"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "idempotent_request"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_census_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14292,15 +14884,21 @@
"invoke_large_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14308,15 +14906,21 @@
"large_metadata"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14324,15 +14928,21 @@
"max_concurrent_streams"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14340,15 +14950,21 @@
"max_message_length"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14356,15 +14972,21 @@
"negative_deadline"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14372,15 +14994,21 @@
"no_op"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14388,15 +15016,21 @@
"payload"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14404,15 +15038,21 @@
"ping"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14420,15 +15060,21 @@
"ping_pong_streaming"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14436,15 +15082,21 @@
"registered_call"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14452,15 +15104,21 @@
"request_with_flags"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14468,15 +15126,21 @@
"request_with_payload"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14484,15 +15148,21 @@
"server_finishes_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14500,15 +15170,21 @@
"shutdown_finishes_calls"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14516,15 +15192,21 @@
"shutdown_finishes_tags"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14532,15 +15214,21 @@
"simple_delayed_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14548,15 +15236,21 @@
"simple_metadata"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14564,15 +15258,21 @@
"simple_request"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14580,15 +15280,21 @@
"trailing_metadata"
],
"ci_platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl+poll_test",
+ "name": "h2_census_nosec_test",
"platforms": [
- "linux"
+ "windows",
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -14598,13 +15304,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -14619,13 +15326,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -14635,18 +15343,19 @@
},
{
"args": [
- "call_creds"
+ "cancel_after_accept"
],
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -14656,18 +15365,19 @@
},
{
"args": [
- "cancel_after_accept"
+ "cancel_after_client_done"
],
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -14677,18 +15387,19 @@
},
{
"args": [
- "cancel_after_client_done"
+ "cancel_after_invoke"
],
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -14698,18 +15409,19 @@
},
{
"args": [
- "cancel_after_invoke"
+ "cancel_before_invoke"
],
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -14719,18 +15431,19 @@
},
{
"args": [
- "cancel_before_invoke"
+ "cancel_in_a_vacuum"
],
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -14740,18 +15453,19 @@
},
{
"args": [
- "cancel_in_a_vacuum"
+ "cancel_with_status"
],
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -14761,18 +15475,41 @@
},
{
"args": [
- "cancel_with_status"
+ "compressed_payload"
],
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "connectivity"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -14787,13 +15524,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -14808,13 +15546,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -14829,13 +15568,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -14850,13 +15590,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -14871,13 +15612,58 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "hpack_size"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_compress_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "idempotent_request"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -14892,13 +15678,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -14913,13 +15700,36 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "max_concurrent_streams"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -14934,13 +15744,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -14955,13 +15766,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -14976,13 +15788,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -14997,13 +15810,36 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "ping"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15018,13 +15854,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15039,13 +15876,36 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "request_with_flags"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15060,13 +15920,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15081,13 +15942,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15102,13 +15964,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15123,13 +15986,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15144,13 +16008,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15165,13 +16030,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15186,13 +16052,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15207,13 +16074,14 @@
"ci_platforms": [
"windows",
"linux",
+ "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_ssl_proxy_test",
+ "name": "h2_compress_nosec_test",
"platforms": [
"windows",
"linux",
@@ -15226,6 +16094,7 @@
"bad_hostname"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15234,8 +16103,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15246,6 +16116,7 @@
"binary_metadata"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15254,8 +16125,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15263,19 +16135,21 @@
},
{
"args": [
- "call_creds"
+ "cancel_after_accept"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15283,9 +16157,10 @@
},
{
"args": [
- "cancel_after_accept"
+ "cancel_after_client_done"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15294,8 +16169,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15303,9 +16179,10 @@
},
{
"args": [
- "cancel_after_client_done"
+ "cancel_after_invoke"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15314,8 +16191,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15323,9 +16201,10 @@
},
{
"args": [
- "cancel_after_invoke"
+ "cancel_before_invoke"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15334,8 +16213,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15343,9 +16223,10 @@
},
{
"args": [
- "cancel_before_invoke"
+ "cancel_in_a_vacuum"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15354,8 +16235,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15363,9 +16245,10 @@
},
{
"args": [
- "cancel_in_a_vacuum"
+ "cancel_with_status"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15374,8 +16257,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15383,9 +16267,10 @@
},
{
"args": [
- "cancel_with_status"
+ "compressed_payload"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15394,8 +16279,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15403,9 +16289,10 @@
},
{
"args": [
- "compressed_payload"
+ "connectivity"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15414,8 +16301,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15423,19 +16311,21 @@
},
{
"args": [
- "connectivity"
+ "default_host"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
],
- "cpu_cost": 0.1,
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15446,6 +16336,7 @@
"disappearing_server"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15454,8 +16345,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15466,6 +16358,7 @@
"empty_batch"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15474,8 +16367,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15486,6 +16380,7 @@
"graceful_server_shutdown"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15494,8 +16389,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15506,6 +16402,7 @@
"high_initial_seqno"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15514,8 +16411,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15526,6 +16424,7 @@
"hpack_size"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15534,8 +16433,31 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "idempotent_request"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15546,6 +16468,7 @@
"invoke_large_request"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15554,8 +16477,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15566,6 +16490,7 @@
"large_metadata"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15574,8 +16499,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15586,6 +16512,7 @@
"max_concurrent_streams"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15594,8 +16521,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15606,6 +16534,7 @@
"max_message_length"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15614,8 +16543,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15626,6 +16556,7 @@
"negative_deadline"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15634,8 +16565,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15646,6 +16578,7 @@
"no_op"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15654,8 +16587,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15666,6 +16600,7 @@
"payload"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15674,8 +16609,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15686,6 +16622,7 @@
"ping"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15694,8 +16631,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15706,6 +16644,7 @@
"ping_pong_streaming"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15714,8 +16653,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15726,6 +16666,7 @@
"registered_call"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15734,8 +16675,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15746,6 +16688,7 @@
"request_with_flags"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15754,8 +16697,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15766,6 +16710,7 @@
"request_with_payload"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15774,8 +16719,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15786,6 +16732,7 @@
"server_finishes_request"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15794,8 +16741,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15806,6 +16754,7 @@
"shutdown_finishes_calls"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15814,8 +16763,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15826,6 +16776,7 @@
"shutdown_finishes_tags"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15834,8 +16785,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15846,6 +16798,7 @@
"simple_delayed_request"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15854,8 +16807,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15866,6 +16820,7 @@
"simple_metadata"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15874,8 +16829,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15886,6 +16842,7 @@
"simple_request"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15894,8 +16851,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15906,6 +16864,7 @@
"trailing_metadata"
],
"ci_platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15914,8 +16873,9 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_test",
+ "name": "h2_full_nosec_test",
"platforms": [
+ "windows",
"linux",
"mac",
"posix"
@@ -15932,7 +16892,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -15948,30 +16908,30 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
},
{
"args": [
- "call_creds"
+ "cancel_after_accept"
],
"ci_platforms": [
"linux"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
},
{
"args": [
- "cancel_after_accept"
+ "cancel_after_client_done"
],
"ci_platforms": [
"linux"
@@ -15980,14 +16940,14 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
},
{
"args": [
- "cancel_after_client_done"
+ "cancel_after_invoke"
],
"ci_platforms": [
"linux"
@@ -15996,14 +16956,14 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
},
{
"args": [
- "cancel_after_invoke"
+ "cancel_before_invoke"
],
"ci_platforms": [
"linux"
@@ -16012,14 +16972,14 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
},
{
"args": [
- "cancel_before_invoke"
+ "cancel_in_a_vacuum"
],
"ci_platforms": [
"linux"
@@ -16028,14 +16988,14 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
},
{
"args": [
- "cancel_in_a_vacuum"
+ "cancel_with_status"
],
"ci_platforms": [
"linux"
@@ -16044,14 +17004,14 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
},
{
"args": [
- "cancel_with_status"
+ "compressed_payload"
],
"ci_platforms": [
"linux"
@@ -16060,14 +17020,14 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
},
{
"args": [
- "compressed_payload"
+ "connectivity"
],
"ci_platforms": [
"linux"
@@ -16076,23 +17036,23 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
},
{
"args": [
- "connectivity"
+ "default_host"
],
"ci_platforms": [
"linux"
],
- "cpu_cost": 0.1,
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16108,7 +17068,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16124,7 +17084,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16140,7 +17100,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16156,7 +17116,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16172,7 +17132,23 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
+ "platforms": [
+ "linux"
+ ]
+ },
+ {
+ "args": [
+ "idempotent_request"
+ ],
+ "ci_platforms": [
+ "linux"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16188,7 +17164,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16204,7 +17180,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16220,7 +17196,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16236,7 +17212,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16252,7 +17228,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16268,7 +17244,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16284,7 +17260,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16300,7 +17276,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16316,7 +17292,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16332,7 +17308,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16348,7 +17324,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16364,7 +17340,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16380,7 +17356,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16396,7 +17372,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16412,7 +17388,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16428,7 +17404,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16444,7 +17420,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16460,7 +17436,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16476,7 +17452,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_test",
+ "name": "h2_full+pipe_nosec_test",
"platforms": [
"linux"
]
@@ -16495,7 +17471,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16517,7 +17493,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16539,7 +17515,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16561,7 +17537,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16583,7 +17559,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16605,7 +17581,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16627,7 +17603,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16649,7 +17625,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16671,7 +17647,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16693,7 +17669,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16715,7 +17691,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16737,7 +17713,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16759,7 +17735,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16781,7 +17757,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16803,7 +17779,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16813,7 +17789,7 @@
},
{
"args": [
- "hpack_size"
+ "idempotent_request"
],
"ci_platforms": [
"windows",
@@ -16825,7 +17801,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16847,7 +17823,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16869,7 +17845,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16891,7 +17867,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16913,7 +17889,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16935,7 +17911,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16957,7 +17933,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -16979,7 +17955,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17001,7 +17977,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17023,7 +17999,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17045,7 +18021,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17067,7 +18043,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17089,7 +18065,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17111,7 +18087,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17133,7 +18109,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17155,7 +18131,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17177,7 +18153,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17199,7 +18175,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17221,7 +18197,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17243,7 +18219,7 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_census_nosec_test",
+ "name": "h2_full+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17258,14 +18234,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17280,14 +18255,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17302,14 +18276,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17324,14 +18297,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17346,14 +18318,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17368,14 +18339,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17390,14 +18360,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17412,14 +18381,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17429,19 +18397,39 @@
},
{
"args": [
- "compressed_payload"
+ "default_host"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_proxy_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "disappearing_server"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
- "cpu_cost": 0.1,
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17451,19 +18439,39 @@
},
{
"args": [
- "connectivity"
+ "empty_batch"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_proxy_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "graceful_server_shutdown"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17473,19 +18481,39 @@
},
{
"args": [
- "default_host"
+ "high_initial_seqno"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_proxy_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "idempotent_request"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17495,19 +18523,39 @@
},
{
"args": [
- "disappearing_server"
+ "invoke_large_request"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_proxy_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "large_metadata"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17517,19 +18565,39 @@
},
{
"args": [
- "empty_batch"
+ "max_message_length"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_proxy_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "negative_deadline"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17539,19 +18607,39 @@
},
{
"args": [
- "graceful_server_shutdown"
+ "no_op"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_proxy_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "payload"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17561,19 +18649,39 @@
},
{
"args": [
- "high_initial_seqno"
+ "ping_pong_streaming"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_proxy_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "registered_call"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17583,19 +18691,39 @@
},
{
"args": [
- "hpack_size"
+ "request_with_payload"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_proxy_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "server_finishes_request"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17605,19 +18733,39 @@
},
{
"args": [
- "invoke_large_request"
+ "shutdown_finishes_calls"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_proxy_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "shutdown_finishes_tags"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17627,19 +18775,39 @@
},
{
"args": [
- "large_metadata"
+ "simple_delayed_request"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_proxy_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "simple_metadata"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17649,19 +18817,39 @@
},
{
"args": [
- "max_concurrent_streams"
+ "simple_request"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_proxy_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "trailing_metadata"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_proxy_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17671,19 +18859,39 @@
},
{
"args": [
- "max_message_length"
+ "bad_hostname"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "binary_metadata"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
- "cpu_cost": 0.1,
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17693,19 +18901,39 @@
},
{
"args": [
- "negative_deadline"
+ "cancel_after_accept"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "cancel_after_client_done"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17715,19 +18943,39 @@
},
{
"args": [
- "no_op"
+ "cancel_after_invoke"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "cancel_before_invoke"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17737,19 +18985,39 @@
},
{
"args": [
- "payload"
+ "cancel_in_a_vacuum"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "cancel_with_status"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17759,19 +19027,39 @@
},
{
"args": [
- "ping"
+ "compressed_payload"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "empty_batch"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17781,19 +19069,39 @@
},
{
"args": [
- "ping_pong_streaming"
+ "graceful_server_shutdown"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "high_initial_seqno"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17803,19 +19111,60 @@
},
{
"args": [
- "registered_call"
+ "hpack_size"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "idempotent_request"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "invoke_large_request"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17825,19 +19174,39 @@
},
{
"args": [
- "request_with_flags"
+ "large_metadata"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "max_concurrent_streams"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17847,19 +19216,39 @@
},
{
"args": [
- "request_with_payload"
+ "max_message_length"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "negative_deadline"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17869,19 +19258,60 @@
},
{
"args": [
- "server_finishes_request"
+ "no_op"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "payload"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "ping_pong_streaming"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17891,19 +19321,39 @@
},
{
"args": [
- "shutdown_finishes_calls"
+ "registered_call"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "request_with_flags"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17913,19 +19363,39 @@
},
{
"args": [
- "shutdown_finishes_tags"
+ "request_with_payload"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "server_finishes_request"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17935,19 +19405,39 @@
},
{
"args": [
- "simple_delayed_request"
+ "shutdown_finishes_calls"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "shutdown_finishes_tags"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
- "cpu_cost": 0.1,
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17962,14 +19452,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -17984,14 +19473,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18006,14 +19494,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_compress_nosec_test",
+ "name": "h2_sockpair_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18028,14 +19515,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18050,14 +19536,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18072,14 +19557,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18094,14 +19578,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18116,14 +19599,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18138,14 +19620,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18160,14 +19641,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18182,14 +19662,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18204,14 +19683,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18221,19 +19699,39 @@
},
{
"args": [
- "connectivity"
+ "empty_batch"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair+trace_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "graceful_server_shutdown"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18243,19 +19741,60 @@
},
{
"args": [
- "default_host"
+ "high_initial_seqno"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair+trace_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "idempotent_request"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair+trace_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "invoke_large_request"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18265,19 +19804,39 @@
},
{
"args": [
- "disappearing_server"
+ "large_metadata"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair+trace_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "max_concurrent_streams"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18287,19 +19846,39 @@
},
{
"args": [
- "empty_batch"
+ "max_message_length"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair+trace_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "negative_deadline"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18309,19 +19888,39 @@
},
{
"args": [
- "graceful_server_shutdown"
+ "no_op"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair+trace_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "payload"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18331,19 +19930,39 @@
},
{
"args": [
- "high_initial_seqno"
+ "ping_pong_streaming"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair+trace_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "registered_call"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18353,19 +19972,39 @@
},
{
"args": [
- "hpack_size"
+ "request_with_flags"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair+trace_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "request_with_payload"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18375,19 +20014,39 @@
},
{
"args": [
- "invoke_large_request"
+ "server_finishes_request"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair+trace_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "shutdown_finishes_calls"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18397,19 +20056,39 @@
},
{
"args": [
- "large_metadata"
+ "shutdown_finishes_tags"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair+trace_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "simple_metadata"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18419,19 +20098,39 @@
},
{
"args": [
- "max_concurrent_streams"
+ "simple_request"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair+trace_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "trailing_metadata"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair+trace_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18441,19 +20140,39 @@
},
{
"args": [
- "max_message_length"
+ "bad_hostname"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "binary_metadata"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
- "cpu_cost": 0.1,
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18463,19 +20182,39 @@
},
{
"args": [
- "negative_deadline"
+ "cancel_after_accept"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "cancel_after_client_done"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18485,19 +20224,39 @@
},
{
"args": [
- "no_op"
+ "cancel_after_invoke"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "cancel_before_invoke"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18507,19 +20266,39 @@
},
{
"args": [
- "payload"
+ "cancel_in_a_vacuum"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "cancel_with_status"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18529,19 +20308,39 @@
},
{
"args": [
- "ping"
+ "compressed_payload"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "empty_batch"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18551,19 +20350,39 @@
},
{
"args": [
- "ping_pong_streaming"
+ "graceful_server_shutdown"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "high_initial_seqno"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18573,19 +20392,60 @@
},
{
"args": [
- "registered_call"
+ "hpack_size"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "idempotent_request"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "invoke_large_request"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18595,19 +20455,39 @@
},
{
"args": [
- "request_with_flags"
+ "large_metadata"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "max_concurrent_streams"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18617,19 +20497,39 @@
},
{
"args": [
- "request_with_payload"
+ "max_message_length"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "negative_deadline"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18639,19 +20539,60 @@
},
{
"args": [
- "server_finishes_request"
+ "no_op"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
+ "mac",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "payload"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "ping_pong_streaming"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18661,19 +20602,39 @@
},
{
"args": [
- "shutdown_finishes_calls"
+ "registered_call"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "request_with_flags"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18683,19 +20644,39 @@
},
{
"args": [
- "shutdown_finishes_tags"
+ "request_with_payload"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "server_finishes_request"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18705,19 +20686,39 @@
},
{
"args": [
- "simple_delayed_request"
+ "shutdown_finishes_calls"
],
"ci_platforms": [
"windows",
"linux",
+ "posix"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "h2_sockpair_1byte_nosec_test",
+ "platforms": [
+ "windows",
+ "linux",
"mac",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "shutdown_finishes_tags"
+ ],
+ "ci_platforms": [
+ "windows",
+ "linux",
+ "posix"
],
- "cpu_cost": 0.1,
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18732,14 +20733,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18754,14 +20754,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18776,14 +20775,13 @@
"ci_platforms": [
"windows",
"linux",
- "mac",
"posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full_nosec_test",
+ "name": "h2_sockpair_1byte_nosec_test",
"platforms": [
"windows",
"linux",
@@ -18796,15 +20794,19 @@
"bad_hostname"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -18812,15 +20814,19 @@
"binary_metadata"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -18828,15 +20834,19 @@
"cancel_after_accept"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -18844,15 +20854,19 @@
"cancel_after_client_done"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -18860,15 +20874,19 @@
"cancel_after_invoke"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -18876,15 +20894,19 @@
"cancel_before_invoke"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -18892,15 +20914,19 @@
"cancel_in_a_vacuum"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -18908,15 +20934,19 @@
"cancel_with_status"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -18924,15 +20954,19 @@
"compressed_payload"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -18940,111 +20974,139 @@
"connectivity"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
"args": [
- "default_host"
+ "disappearing_server"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
"args": [
- "disappearing_server"
+ "empty_batch"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
"args": [
- "empty_batch"
+ "graceful_server_shutdown"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
"args": [
- "graceful_server_shutdown"
+ "high_initial_seqno"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
- "cpu_cost": 0.1,
+ "cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
"args": [
- "high_initial_seqno"
+ "hpack_size"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
"args": [
- "hpack_size"
+ "idempotent_request"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19052,15 +21114,19 @@
"invoke_large_request"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19068,15 +21134,19 @@
"large_metadata"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19084,15 +21154,19 @@
"max_concurrent_streams"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19100,15 +21174,19 @@
"max_message_length"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19116,15 +21194,19 @@
"negative_deadline"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19132,15 +21214,19 @@
"no_op"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19148,15 +21234,19 @@
"payload"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19164,15 +21254,19 @@
"ping"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19180,15 +21274,19 @@
"ping_pong_streaming"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19196,15 +21294,19 @@
"registered_call"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19212,15 +21314,19 @@
"request_with_flags"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19228,15 +21334,19 @@
"request_with_payload"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19244,15 +21354,19 @@
"server_finishes_request"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19260,15 +21374,19 @@
"shutdown_finishes_calls"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19276,15 +21394,19 @@
"shutdown_finishes_tags"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19292,15 +21414,19 @@
"simple_delayed_request"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19308,15 +21434,19 @@
"simple_metadata"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19324,15 +21454,19 @@
"simple_request"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
@@ -19340,5585 +21474,17245 @@
"trailing_metadata"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
],
"cpu_cost": 1.0,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+pipe_nosec_test",
+ "name": "h2_uds_nosec_test",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "posix"
]
},
{
"args": [
- "bad_hostname"
+ "test/core/transport/chttp2/hpack_parser_corpus/0141fcddc9807ee093313b2256f1306fbbdc6cda"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "binary_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/0255050a9ccb25f46d6c1bf6a5a8a4c0c7635599"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_after_accept"
+ "test/core/transport/chttp2/hpack_parser_corpus/0320a995a8c76c64c8a0e0297f632b76d9bc92d6"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_after_client_done"
+ "test/core/transport/chttp2/hpack_parser_corpus/042091aeac4cc255506b96fa11c7354e699fde76"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_after_invoke"
+ "test/core/transport/chttp2/hpack_parser_corpus/0696e7bf7837d98de01c915d3c9d80e5d21b30d2"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_before_invoke"
+ "test/core/transport/chttp2/hpack_parser_corpus/06995c2f3f01c7ec50547415dc324c64030b7a3e"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_in_a_vacuum"
+ "test/core/transport/chttp2/hpack_parser_corpus/06f7ce769fe07804fc842462d4be8c1aa2ba82c2"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_with_status"
+ "test/core/transport/chttp2/hpack_parser_corpus/0781b055c85ab8fbd0a3d0080a32e394af8761c4"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "compressed_payload"
+ "test/core/transport/chttp2/hpack_parser_corpus/080e1f19e6061c5bcac31add2095f87f6ce46129"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "connectivity"
+ "test/core/transport/chttp2/hpack_parser_corpus/0828169ba82152a8907f1001e3d98804397d4610"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "default_host"
+ "test/core/transport/chttp2/hpack_parser_corpus/08ffc4a4160e9fe6f322c28870a89a41fd9c37d7"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "disappearing_server"
+ "test/core/transport/chttp2/hpack_parser_corpus/090a7a758898a6e7c9108b7e8a1cb9cda383e707"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "empty_batch"
+ "test/core/transport/chttp2/hpack_parser_corpus/0940663729501b750a18542e1041cc26385c6148"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "graceful_server_shutdown"
+ "test/core/transport/chttp2/hpack_parser_corpus/0a10bd140c6c5fb109a0816ca061739688a6db9a"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "high_initial_seqno"
+ "test/core/transport/chttp2/hpack_parser_corpus/0a4d3fda02cdcb7adad1daa80d65780c9c8d1464"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "hpack_size"
+ "test/core/transport/chttp2/hpack_parser_corpus/0ad812832efa33e086874fbf3496664d3f1b4dbe"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "invoke_large_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/0c9996d4fef87bacd7a001e99a515b3ba3d5788f"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "large_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/0d6210208831fe55951af56cdeee3d54a91a5361"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "max_concurrent_streams"
+ "test/core/transport/chttp2/hpack_parser_corpus/0d784965b2262df7ed7a1eb57b92a718cc76bde8"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "max_message_length"
+ "test/core/transport/chttp2/hpack_parser_corpus/0dc9e41eedf35ccedf4e2b0d230ead7c4d72fdb2"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "negative_deadline"
+ "test/core/transport/chttp2/hpack_parser_corpus/0dd470c8939ed535de6b36f7b7bfb68aeace493e"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "no_op"
+ "test/core/transport/chttp2/hpack_parser_corpus/0e61e471fa6d3405daef4276ee00cf5fc189f378"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "payload"
+ "test/core/transport/chttp2/hpack_parser_corpus/0e9196f951874edbb5ed098739ea5c8b6c0751c2"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "ping"
+ "test/core/transport/chttp2/hpack_parser_corpus/11442d93a554b9e7f9ab02782bbf9443bf6e1ddc"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "ping_pong_streaming"
+ "test/core/transport/chttp2/hpack_parser_corpus/11833b795d04eda5a3af56ef7b3c3a26a8ee3444"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "registered_call"
+ "test/core/transport/chttp2/hpack_parser_corpus/141272316382b0f3e9ec841c735b84e7aa517c3e"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "request_with_flags"
+ "test/core/transport/chttp2/hpack_parser_corpus/15ae43369798e48c396dfe7d53a21878b96e66c8"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "request_with_payload"
+ "test/core/transport/chttp2/hpack_parser_corpus/166bf1843c229d34a2880d234dd166c27bdc11fd"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "server_finishes_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/179e8ac763b4051a953a38b6b3b1f1e1f6cc6c9e"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "shutdown_finishes_calls"
+ "test/core/transport/chttp2/hpack_parser_corpus/17faf0ba8a491a835d35977a9007b90ab7d30d2a"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "shutdown_finishes_tags"
+ "test/core/transport/chttp2/hpack_parser_corpus/188f6cf2470e95b228341de305ef839b27f01a5c"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "simple_delayed_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/1ab3e52adace335d02e2b5130eb4f7c918add7fd"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "simple_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/1b5150514364e2c17f5a4edac1b7af99b936f55a"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "simple_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/1e8befb98cbaba059d6771abd1680e19484e7723"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "trailing_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/1e9b962969c359bc2ff766704c8ca8e25f5eccfc"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "bad_hostname"
+ "test/core/transport/chttp2/hpack_parser_corpus/1f80af104acf41b912bf4a48fb938267e3718719"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "binary_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/1fcc4afd6f48e83d61ea74970df3ca9dcd8ec291"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_after_accept"
+ "test/core/transport/chttp2/hpack_parser_corpus/213a734ccdb813b18ad9f2dd99b7f9967ee1460b"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_after_client_done"
+ "test/core/transport/chttp2/hpack_parser_corpus/2151945f43991c27e123c45dc72b93752a47e65f"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_after_invoke"
+ "test/core/transport/chttp2/hpack_parser_corpus/21545d998c27a5a1572a89a552937752432b1c14"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_before_invoke"
+ "test/core/transport/chttp2/hpack_parser_corpus/23c7443fa1ab713e7c34ec50222b1b8cceaedc65"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_in_a_vacuum"
+ "test/core/transport/chttp2/hpack_parser_corpus/2445bb2c6779712dc9e14c01fecb7103f8732858"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_with_status"
+ "test/core/transport/chttp2/hpack_parser_corpus/244b0a20500e31d3c538418800db816b07f4d210"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "compressed_payload"
+ "test/core/transport/chttp2/hpack_parser_corpus/2461b9fa6b5bc4b6424dec5b9a18d4ec7c309112"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "connectivity"
+ "test/core/transport/chttp2/hpack_parser_corpus/24ec2f3e17d3850564788f3fed17a5c586c44658"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "default_host"
+ "test/core/transport/chttp2/hpack_parser_corpus/2537b8d6b902b8dfc6e17f194cf7d05ddecf74cf"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "disappearing_server"
+ "test/core/transport/chttp2/hpack_parser_corpus/253ad01acea4b7038edc3f2a8c4a0c0f5c4dcd05"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "empty_batch"
+ "test/core/transport/chttp2/hpack_parser_corpus/256d0bbdbed22f5867a6f503bf082011e61ee12b"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "graceful_server_shutdown"
+ "test/core/transport/chttp2/hpack_parser_corpus/26f0e88adbd8f8cdf778131a35b33ecf8711fa49"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "high_initial_seqno"
+ "test/core/transport/chttp2/hpack_parser_corpus/2e5dd8fb9d2a31fad9d681eda697d085b647b57c"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "hpack_size"
+ "test/core/transport/chttp2/hpack_parser_corpus/2fdfd2abf30c636ec8c841f1ac26594e25664f0f"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "invoke_large_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/311dac5092e36134d3490f98aa4207425e0ee941"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "large_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/320fe6224a5b691c0425e34b6b14e8c6fe9f9620"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "max_concurrent_streams"
+ "test/core/transport/chttp2/hpack_parser_corpus/3255f1c7441a7150dc3c33022bfbe8c956c7b7b1"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "max_message_length"
+ "test/core/transport/chttp2/hpack_parser_corpus/33bc9db104eb72891fb096f34cbac191b3f9918d"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "negative_deadline"
+ "test/core/transport/chttp2/hpack_parser_corpus/342ff1db70a7616b4ef76c03a42802c6702c18cb"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "no_op"
+ "test/core/transport/chttp2/hpack_parser_corpus/344c011df992ccfc0ec682c14a1cb2d7959998c7"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "payload"
+ "test/core/transport/chttp2/hpack_parser_corpus/35775efb9d0d68fa07987b9a84934389b528e436"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "ping"
+ "test/core/transport/chttp2/hpack_parser_corpus/3650168db6fe115fb1e73eed4b76cd224d977d01"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "ping_pong_streaming"
+ "test/core/transport/chttp2/hpack_parser_corpus/38228bf98cdb50fd3fa830ba5a9d4c7399063dff"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "registered_call"
+ "test/core/transport/chttp2/hpack_parser_corpus/38717bee901151b22a10beb12c6623ccc844d3c2"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "request_with_flags"
+ "test/core/transport/chttp2/hpack_parser_corpus/3a4bb427a85bdc5bf66ac71db073c99e0dc9f881"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "request_with_payload"
+ "test/core/transport/chttp2/hpack_parser_corpus/3ab48621d9b8f075369099a8ec7517bd23fd6e70"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "server_finishes_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/3aec8d9311130dfbb6584fe6e619579c21992b5f"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "shutdown_finishes_calls"
+ "test/core/transport/chttp2/hpack_parser_corpus/3b14837f22905dcb04f93aed2aa69bf95924fb9d"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "shutdown_finishes_tags"
+ "test/core/transport/chttp2/hpack_parser_corpus/3be63c163805927e04fd7f84d96122c48240e601"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "simple_delayed_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/3bf2e349747c0f539181e0d4084a5fe506811a9e"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "simple_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/3c5af4d73e94d0e8ad5666b6acb340f929031e95"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "simple_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/3d2b25346a9671d83bd082d170a45eed739bae6b"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "trailing_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/3de7b860c3fba2bc55707fd6875dce276f2f249b"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+poll+pipe_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "bad_hostname"
+ "test/core/transport/chttp2/hpack_parser_corpus/3e2004ff9f40e398e0f41138a25a8b66e3d843d9"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/3f8983e457033cc85997c356935ba9c21460e86b"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/4105669086d83a20f8d991088553ba08202478cd"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "binary_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/4180619316eef7912d1cf52ffe85897242e1ae88"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/420291d7139d9246de747739fd98102434a742dd"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/4256437fc5897c0cd5d755816e4e68c7be326849"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_accept"
+ "test/core/transport/chttp2/hpack_parser_corpus/42b25a5413c536478a3e63da5adef4250babf2f4"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/42bef44ae751a45c671d9da5b1231d2ac747a48d"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/438c3c9045c3cf7910aceec34f77b47a70ca4abd"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_client_done"
+ "test/core/transport/chttp2/hpack_parser_corpus/43af96b4f65ed0ace7236427f2f8833c4835989e"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/44c6119bb91a452d6128ce0ea0d62938800779ea"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/46d595331689ae01d77aff387747a98ff3480096"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_invoke"
+ "test/core/transport/chttp2/hpack_parser_corpus/471a307b81dc37459087d41532741c5c9d7ba836"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/48900b4a5557530922ce45c15ad0d3b0a337520d"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/48bcce2c6487b18706ef0c609ca39c456215bac8"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_before_invoke"
+ "test/core/transport/chttp2/hpack_parser_corpus/49027bbd3f3f3cafa315843c8fe8280f86985273"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/499376c5e291da2f9c25999abf4960fab5a92ec8"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/4a3b7ce0cdf217963a0b692769e5d6f4befe73b8"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_in_a_vacuum"
+ "test/core/transport/chttp2/hpack_parser_corpus/4a3fdb96bc8c80f1992f0f72f963f84856cbade8"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/4aae80e05793d7adb42a7e6e8a5283b677318777"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/4c7a034d3a3b4f29d99caf021a0e9bbb89706c2e"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_with_status"
+ "test/core/transport/chttp2/hpack_parser_corpus/4ce8a43fb17a075627160812ad26c25210d8a82d"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/5032a75a98cd14d4dab75c1c5e2cd981abb19dcf"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/50b3f4b6aed97f442496d27f3b4315a18ba76d5f"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "compressed_payload"
+ "test/core/transport/chttp2/hpack_parser_corpus/51064b88a98658d48a0da7f1545c2d1293ad9538"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/51752f12d59fadaaa0dc72e6370612b84ee1555b"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/51eff6fcbfe1a51ceb3f5f2140c01eea89b4313d"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "connectivity"
+ "test/core/transport/chttp2/hpack_parser_corpus/51f65f681cf3a1218d83ad58642c06deaea86210"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/521809903d36db80b1ccd707f354361f2bf05075"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/52fe8f0e1fa270ea16f66c93f2ffab265ce059e8"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "default_host"
+ "test/core/transport/chttp2/hpack_parser_corpus/53de87ae94acdc8e58a369459c12a3240f1294fe"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/54a2b3993c3483745f6314c870a038a8e58f97a7"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/55d60c2e5040a38be8ca41de63e137e3fef892a4"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "disappearing_server"
+ "test/core/transport/chttp2/hpack_parser_corpus/5653c44a5b520bdf2bdc599b7966f1d7c44950b3"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/5838b5a683229ebb6e6277e2810863e642b8afc2"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/588d225784891ac88e30ac6eb5651d63fac34083"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "empty_batch"
+ "test/core/transport/chttp2/hpack_parser_corpus/58d51c21a20b6549567a0ab8fee29d162dd3fc5a"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/58f1036d8ff855841ec25b3c33e85a8fec0d94b7"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/5a99df42fb7bbafa2d55714ee235b1c46776b2ad"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "graceful_server_shutdown"
+ "test/core/transport/chttp2/hpack_parser_corpus/5b42793550699b2c015bed677cfcddc052f73513"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/5b8ca72ba00231c38b19f582127e6a146eba4282"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/5baa13dc95da05e7ba02bbe9583ea24517a29a1a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "high_initial_seqno"
+ "test/core/transport/chttp2/hpack_parser_corpus/5bab61eb53176449e25c2c82f172b82cb13ffb9d"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/5c6f6b6f7f3e7b435f060abb73c20d2b773a7f56"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/5c9fd9cc7100feaeead1e0e45201945a6e76fd85"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "invoke_large_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/5ff49c9edc7361797a951585f3e180222c8dd95d"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/6129954942e26c2a9ec071b6659675745613cf3c"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/61fa69b6b51b0ed91914fe48779173f8d26a1d54"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "large_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/6362ac61cfb6e964aff78f3cd648475dfd5fd4e9"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/644deba51c79b6ebd470bd4367452941045d112a"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/64beae98e2276749b133e6368c9e0f19a79eba96"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "max_concurrent_streams"
+ "test/core/transport/chttp2/hpack_parser_corpus/64d7add9192301fd878854dc96f9fa9053f03992"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/65566df65e8f55428b6672cc351df414fa8f936c"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/65bb703af35d5afb824cd68c41d7a1aeb3848d35"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "max_message_length"
+ "test/core/transport/chttp2/hpack_parser_corpus/66c537bf59cb3667c037b3517be3d31245c9da8a"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/66f576baeb0c9435a56eb7375dadc5b5d630ed87"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/67b4cec5183659aeae0f5bc71b3adf0542a11828"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "negative_deadline"
+ "test/core/transport/chttp2/hpack_parser_corpus/68c94721eda2f62481bff9f1d183df70498d0c5b"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/68ee8169a65d58edb9fc1c752ea81dfec383203c"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/6b203d49bbba6ee74def0d35c2266e06ad3c45d9"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "no_op"
+ "test/core/transport/chttp2/hpack_parser_corpus/6d580f28d785c0bf87ac351a31a89289449feadb"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/6f231dec759eb2105e09263d53e171de19a92c74"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/70ff6621a09e4f641538cb1b27e8b382b2f56a94"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "payload"
+ "test/core/transport/chttp2/hpack_parser_corpus/71981b55f27a1eb6274eda247048fa2c597f5004"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/71c2b0bebf7f0e916e4ab7eb36d47ccca2b9101c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/74610e278a5b90aa12ce1beaf222c4306b02ed43"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "ping"
+ "test/core/transport/chttp2/hpack_parser_corpus/748ee9817eba56ec9938601a0e380c74bad4563f"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/7727e3eeb2a48c46bf5a678c300ff8a38b8ffe3a"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/78176d80c1d74c4b1b820d386ae483ac4d1d92b7"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "ping_pong_streaming"
+ "test/core/transport/chttp2/hpack_parser_corpus/789abb571563a6795220046f76b7cf0ade90743c"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/78f5ff40e5554aa9c31b45f79a7ae9699f93e7fd"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/7a28fc2e9c72d51d29e87eed63ed405c9779b5e1"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "registered_call"
+ "test/core/transport/chttp2/hpack_parser_corpus/7a42083be21dce7f96edef1f3b3b2fea0bcaeb3f"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/7a51275b11ecb1efec9251390531681c8d6f2481"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/7b9682cd7a3984698f6eac034c59c0f91b4fb83d"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "request_with_flags"
+ "test/core/transport/chttp2/hpack_parser_corpus/7ba7239a29d6183960e3986abc8f19cfb548b905"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/7d3b3d5f23d0ede9f7e5dbd1115db58c8a54a213"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/8035c81c95dedfc27c3649064f98f49e3e72c21f"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "request_with_payload"
+ "test/core/transport/chttp2/hpack_parser_corpus/804e1052842ce4d44b9c775ade2b18fcb8ce7bcf"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/80514b85933ea9bdd3462595f949c5af24409b87"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/8057c32b8bd28a5ec2105d62f2abe8cf69c9f5fc"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "server_finishes_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/806a3bd4e078d91adeacedfd3e47ef8ae229244a"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/8090444f98218e65ff9594789ff22bbea3c0497c"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/80e516692955d5f224706f268e247858858e16d8"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "shutdown_finishes_calls"
+ "test/core/transport/chttp2/hpack_parser_corpus/810a1372fa97380265f5529c5043ae96f007f5bb"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/8127597d3c146b2a89579e44daef9d03a0f941ec"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/82ed571f8922caa572d13b4cc9b5c5fabafaade9"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "shutdown_finishes_tags"
+ "test/core/transport/chttp2/hpack_parser_corpus/8328e86178800f87a3bf6f80749984f45b0cd0e8"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/84441efd7d8bdb0ce2fac28f218d3d5d4d77f1d4"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/84cbf70f45a64d5a01d1c96367b6d6160134f1ad"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_delayed_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/85eb0f4502a51e646dab4ae08eabd90613cdf8e1"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/86080f33e4eae21b37863c253ce61eaa13021a97"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/862e3ccf601ee0f7fbd8b23e6811fd50485a118f"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/86bae059b18af8ae263e5ae0022b67da0cfc0fbe"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/870f9cc4bd89c6c04c6a51ceae1efa8634627cd6"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/8762a523cdb78d2344d553fa52a229bd63c44e51"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/894211571f9153c3c2ea4102541dac69be8aaa9c"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/894e9b7832c52acb04bfa994ef53c7105d8db206"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/8b0e12978b8e2eecf62346e438e47d0993845693"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "trailing_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/8b3fa0bd4f289eff6a04a5205e04baaeafbdf637"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/8d1deedd1e463f8c95129a6f839c380a7c83ab04"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_full+trace_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/8d1e029bd72381e382c87e61b4c5a9741d80d644"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "bad_hostname"
+ "test/core/transport/chttp2/hpack_parser_corpus/8dd1983889b6632228d4897c365a1e6124d101e1"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/8dfc2183691385432f92957cff0b2538e5a0ebfa"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/8eb9b86b4f0aa79b8ef84b44e1fb03094e7bb426"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "binary_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/8ec540c36da3814e93da765bf2ff0825b59c1bd0"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/8f1bec32f4b8e64062f5405a096543e61d771076"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/8f3e48c49d0794909f6e8e61e5a4312edf484c33"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_accept"
+ "test/core/transport/chttp2/hpack_parser_corpus/8fbbf3c0eaa25b64d0a97a8ee08006539e649199"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/907d0021d42d0fdc867fd02d3609cdce13c8a055"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/919511c217a3427c22cad4a71aae31a6cd47b193"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_client_done"
+ "test/core/transport/chttp2/hpack_parser_corpus/9267c81c3283da8193c198de05e05fa30631a453"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/92e80997a4237d76f10b70dae2870b7255c97435"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/935322db76f5d4c74c2dc68fc4631915b8e24323"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_invoke"
+ "test/core/transport/chttp2/hpack_parser_corpus/939f2627ef6263d0176566de267ff3eb910e6a60"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/94adea6a0d9a44bee6f5e88adcee57be9e9e3597"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/94dcbe0d3352bd9b230096b8dce9c6d8d63f9d51"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_before_invoke"
+ "test/core/transport/chttp2/hpack_parser_corpus/95dad738f60e3e5eb0f1cdafd91ad461f4418e8f"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/960c0a21c9e5c1a61b93b34da3189b0de1c264df"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/96903512b1f1dec08206123f024b62d0e31cd4dc"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_in_a_vacuum"
+ "test/core/transport/chttp2/hpack_parser_corpus/96a89c005e8d9992e34cc149b0be096ad0051446"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/97db8a66dd513eea47a5a25115508f4e59984854"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/98f2cb84ad89550cf56ee54e11f1448ae7287247"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_with_status"
+ "test/core/transport/chttp2/hpack_parser_corpus/993497422a59b7f9f0f6db8c867339b5c9e4c978"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/999821e3750a7f2c9db663d2d100b4404c225040"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/99b2ed83be40cab431d1940e8de2dc3ebfe9352f"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "default_host"
+ "test/core/transport/chttp2/hpack_parser_corpus/99e888b7372b29256dbefd476855ff73584cc00f"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/9b18087deb3cfafa1b964aa65d8ee980bc61404e"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/9b3c745ea3e313909a228a07b49aae110b02ae4a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "disappearing_server"
+ "test/core/transport/chttp2/hpack_parser_corpus/9be1ce0ba77758928ff5e9c45139b1624cbe9c2d"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/9c703141efd69eb8f32a58133c8035fb585e0f4c"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/9c7f77981677499f0426a0ffb5cb79d5fe55dcb2"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "empty_batch"
+ "test/core/transport/chttp2/hpack_parser_corpus/9ca59e6cadaa5be9af30dfe5620d1bcd70f442e5"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/9d139835d91474e8d8361d65698a31b8b38c4f7b"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/9e2179564a99e96e179c96f28802a0a2759b581c"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "graceful_server_shutdown"
+ "test/core/transport/chttp2/hpack_parser_corpus/9e56bb3b68d2e2617cb2d2f0f3941f7fc832e462"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/9f318b2c2ff9cf4615bd06ba13bdd086b4ad08c6"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/9f8d90b1480989fc46ea2f1c66cf687638994587"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "high_initial_seqno"
+ "test/core/transport/chttp2/hpack_parser_corpus/a09db5715f0bc3879a0e18e4db5a6b5640b254a3"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/a0c59a090818bca29d76ccf9843f7e2faf330ddf"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/a1cf10478e5e01a0d951c743a3dd45aa5fc409f2"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "invoke_large_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/a22c0f03f8c005a4612a9dcbcd6a643334c35d2f"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/a3154b8ed26b3461f2b091c732da00b63ce8bed3"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/a84a1ed1a24e753a27adfd3ba806f06fc44f899f"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "large_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/a871e7ce66afd4f57702cd1299de06cd08995561"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/a8dc736ea964586b7dcbf2bc065ec4675d1daba3"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/a91a835836c72217824f0b63491d9b623130502a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "max_message_length"
+ "test/core/transport/chttp2/hpack_parser_corpus/ab97c1f6033dc7d96f69b9e1461fd594c16f4ebf"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/ac8a8c23acd8c290a11dc7828f7f397957fa6400"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/ac94b2788f5252f9e2e8502c7c75e04bef4c0b76"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "negative_deadline"
+ "test/core/transport/chttp2/hpack_parser_corpus/ad03b4f58470c43db6593a35be48989486d754f9"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/af417c83e831a96fda1bdde99a1af6509ef2df3d"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/affd292cd2ce3306b4651cc7ec0ec0524cbbae3d"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "no_op"
+ "test/core/transport/chttp2/hpack_parser_corpus/b0587e6e319f4b56d877e7ed46bc7da9b1e7249c"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/b166aa66b5b3ad178bc38aee5768226c8adc082f"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/b1ade0571262c6e5f1d72f6d25ebb513d2055bc9"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "payload"
+ "test/core/transport/chttp2/hpack_parser_corpus/b244c690157ff21d073940ef8c77d1898f37cf8e"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/b523091ee4f17d20f51f9b5cf82293465cf61780"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/b7d4d49ac2c530eb8444a449feb689ee50fd210d"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "ping_pong_streaming"
+ "test/core/transport/chttp2/hpack_parser_corpus/b855c161121bfa29c6fb22d3c0236fae4af6984e"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/bcaa71abf23b2e5130e0cc464755fe769bf4aaa7"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/bcf4684ce097faa7e9d99b6e93cc2de24f57aee3"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "registered_call"
+ "test/core/transport/chttp2/hpack_parser_corpus/bdca6504d2ee7925f62e176355bb481344772075"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/beb208fd8675ba7de2ecb12998d2d628d579ca7c"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/bf0c98689ab81fc32787023300caf9a4175583dc"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "request_with_payload"
+ "test/core/transport/chttp2/hpack_parser_corpus/bf479e97b39b697e715663de6a1e78dd58d64122"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/bf826c96be94d1b42eea0666f7239cc5f699a375"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/c17650d19ae4a48abb36739c83d8979453f5705f"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "server_finishes_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/c1e5307d88feda2c3b15fc221cba92bcf41622bf"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/c249f408c552a0408eab3fe1d1cbeca95cd537c1"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/c26b460aebc9082c519539069f7e060042989696"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "shutdown_finishes_calls"
+ "test/core/transport/chttp2/hpack_parser_corpus/c2eae71daad0d3561ab4d09b8b85372b8d790bc1"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/c37fda8d02e99132a1de99f959596c784ab8a53c"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/c4836760377a7091fb20f4afa9c712875792b9a7"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "shutdown_finishes_tags"
+ "test/core/transport/chttp2/hpack_parser_corpus/c48caad597176404f776d532d4baf9faf7655ee2"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/c4eff0f59986fc5ab09d5bd95f394292f2882659"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/c5fc2086d167c8c3a7d9ec778db69c5fa14a59fe"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_delayed_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/c600877ce547166eb1b9d83afbe128d98767f8a3"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/c6a98fdaf6de78e59e1a149a43f3e42222d650b7"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/c8d22f7fb4f37f2d8cc7953fa2d599d38d899aec"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/c90951c19b24bac84296e3ec32cdeafe99e99cfb"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/c95ff2a172626efb50e94aa6781feba609820076"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/ca6c557afb9c571de62e9b65ca6469a6133760da"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/cb2d0fb23f66c968af2e80d59f71d4c1aed96fbd"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/cc60a642cc2037ad3c459a57381b8f65d8d7aa35"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/ccd3b8aa26c52f6d9c607c26ebdf621142aff745"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "trailing_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/ccdfd1354997eb117bd76b75440a7e4ff20bf564"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/cd7a7b8f08c189e95ae3e2ea44b9015000e823f3"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_proxy_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/ce05678d812a5f8ae8e115938410116ce9169456"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "bad_hostname"
+ "test/core/transport/chttp2/hpack_parser_corpus/ce6b642b81373f05baa2a6fe6e9d5d1387046285"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/cf84d06e4dddb997a79a41f9b6122bf620bbdb4b"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/cfbcc3e8cd65aa8b654688145ade34b8789468a6"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "binary_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/d000502f32ca5620d7745f39ff6be3b547e26a6d"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/d131f83ee73450ff45565d0c638be7d8beeb30d9"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/d2817b89d7aaa7fa880c077b1a67168ec2f4f0f7"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_accept"
+ "test/core/transport/chttp2/hpack_parser_corpus/d3ccd7039dd34baef465c4b78baa7a30312a8f07"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/d4cfaf3b59b22b654d7af80ee6715ce5015bfdc0"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/d5670827c8e8d4c95ac0f738c0790c19916c0336"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_client_done"
+ "test/core/transport/chttp2/hpack_parser_corpus/d59d7e94863f1ed89cacfbaabf7bc59946036c8f"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/d76d0c7f24ae3cc3f530d5306b8dcc15290c7ff2"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/d8b15e9e555ad9900ba4be8cc9f87bef75725b24"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_invoke"
+ "test/core/transport/chttp2/hpack_parser_corpus/d9748abd540810c2449c3dd39a0ebb62754e520f"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/da9fc821f0c1e00728b139b36269bc3d21c0a8cc"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/dcd1bd94ad97b4e67fd7e12ff1bf7c039eb17f66"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_before_invoke"
+ "test/core/transport/chttp2/hpack_parser_corpus/dd3ba9b139e13324fc76cd62af84b00ca8b87205"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/de0a9dce0ea4e4bfdcb13f788ae728bf979fed25"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/deb6f9a930d9b31586ede19fd8fd3caae0e5b1f2"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_in_a_vacuum"
+ "test/core/transport/chttp2/hpack_parser_corpus/dee95e0280b70681eddfb68e3b418126c5661e18"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/df01203edfa2dfe9e108ddde786ae48235624fef"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/df0adbe2523508e9afb42a58d98c2657710d6033"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_with_status"
+ "test/core/transport/chttp2/hpack_parser_corpus/e05fcba1b22f658c8bd6f3c330b2b3c9faebf977"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/e145caa75d73e3d819a9cb4b6217f1f53112f3f8"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/e1d86c0094657386197d191855b5645ac1dd5936"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "compressed_payload"
+ "test/core/transport/chttp2/hpack_parser_corpus/e25adf8de44f5978d00b7e8c52aee89c5cd1fe93"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/e29f05162e3d96d5549f96aa4a54c868535b2847"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/e3a970ac8636d29da3ded328b876ed3550cb3209"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "empty_batch"
+ "test/core/transport/chttp2/hpack_parser_corpus/e3cfdc862187b4ec28bd4fb2ced5094bb5b09909"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/e4ce52007d001806fc9368b62c124dfc56e8471c"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/e52173f0bc3325629046e85e2dc41acc6ba7d1c3"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "graceful_server_shutdown"
+ "test/core/transport/chttp2/hpack_parser_corpus/e6589006e3bda4c57247ad66fcd73ac00ee2cbe2"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/e6fab7572fb2a1c6e107b6f83cffd103a233d021"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/e790f5d312957dbfd20abdefe4b1735779ff9689"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "high_initial_seqno"
+ "test/core/transport/chttp2/hpack_parser_corpus/e8809017a4cf6c1e80a93f661166ead961f26bb4"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/e9733e973c33b38c2087b7f1deb36688b3b14259"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/ea8134769855d574f6673bf0301eb2e24632c6eb"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "hpack_size"
+ "test/core/transport/chttp2/hpack_parser_corpus/eb489536e4e5589a93a17cd36669475b8f2a5e1b"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/eb48ebd4d01e5623dd16ae61938b3333fab3ce78"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/eb6ca7624384239c7f7e0d83edb7cc334b7926d7"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "invoke_large_request"
+ "test/core/transport/chttp2/hpack_parser_corpus/ec9457ad41ed745ea9377ffdb16ad09f981daa7f"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/edff5256a2d60d0e51caef25dc1d6f1643dad6d5"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/ee4d9c5d22512da42726f47213ff56404d1d81d1"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "large_metadata"
+ "test/core/transport/chttp2/hpack_parser_corpus/eef2f30b5e2ecd98ebefb12d57aba8b4ad52d904"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/ef23911de1a27d03d2d4983ca1527e17d6a7092b"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/ef5b7fc62a2daecf1e8f928b1fa3ebd028413a41"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "max_concurrent_streams"
+ "test/core/transport/chttp2/hpack_parser_corpus/ef718258ca1870198e91a2fbc1eaa90b620673fb"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/efb46deb37a78f41dd760f6b7203b20956eb114e"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/efdd6824bd2456e3e408e0e84369c4fa3aa14f41"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "max_message_length"
+ "test/core/transport/chttp2/hpack_parser_corpus/efec040a5de1969df5e37e4bc50a0a8f0de341d8"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/f1e30464c24dc1d7cec7ec1dd2adec8512232b43"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/f27a617b936814476770a3b31a5afb80d0f3b423"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "negative_deadline"
+ "test/core/transport/chttp2/hpack_parser_corpus/f3f0d99ac2962f8fddb25c65fb4c8c6eb63518a9"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/f4628084cf46f139babb886a782b4ab5977d5d2e"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/f4753e8881e4b3c71f2728149be7d04cc648f6a6"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "no_op"
+ "test/core/transport/chttp2/hpack_parser_corpus/f4d6ff635ae4fda497221da4bfa3e593df59a44e"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/f52f4d51aaaed0f9c3a20936cf5efd25d0692f67"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/f7cf30724ab740918eee6e4a6b6658ae3d7706e8"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "payload"
+ "test/core/transport/chttp2/hpack_parser_corpus/f823828ffd2a60efee36f1de52cb0f024ac5b4bb"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/f8760761bd5ab7b47376bfbc5a44e16b2d5ca800"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/fb15042c268625089ef6c8aa3d8a6f12d1d02c74"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "ping_pong_streaming"
+ "test/core/transport/chttp2/hpack_parser_corpus/fc3dd4292d6884a770199596f5e9cbc1e869e5fb"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/fd34ec90fe8f9218fd25c3eac151aec998cff6d8"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/fdf548cde981fab4fb17bd63a124b75eddc5c836"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "registered_call"
+ "test/core/transport/chttp2/hpack_parser_corpus/fe47fb18b064e26479c3c3140082bd01065e897a"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/ff2097734bd7bb8451aece13c9336c4624735170"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "hpack_parser_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/transport/chttp2/hpack_parser_corpus/ff7d6ff060e63355701b2e655c802902338497de"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "hpack_parser_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "request_with_flags"
+ "test/core/http/corpus/0299ca2580e4398d170c4a336e0c33eb2cd9d427"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/05e613853d64a9669ea3cf41b0de777dc24931ba"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/069352518a1d1baa05f317c677d275cefda2ac97"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "request_with_payload"
+ "test/core/http/corpus/0925527c9358b1e10ec0f0387cd99f35204d9a34"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/0c5b7c2569410b526605e308309a7f36574e530d"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/0ef3d0a84360bb5ad66274f1226f5cb273ecdbcf"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "server_finishes_request"
+ "test/core/http/corpus/1e1273f90187fdf5df3625764245610f86af6aa4"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/1fbc57d118f3733287e9a9d808bb8947b3260e55"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/24756c396bc72894fd720092bb6f9c03e66b469f"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "shutdown_finishes_calls"
+ "test/core/http/corpus/276def41311933421ae7a9ee42e906c85b6a4d3f"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/29daa75432381937fd005cb25e314e328de6e9f9"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/2a75204bc492084ad853682f8de3fb137d5907bc"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "shutdown_finishes_tags"
+ "test/core/http/corpus/2d34ba249b755a880525cf53c665633a5e359305"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/33f4ea0c7ea27c37d8f95cfa64d282370efdafd2"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/35554617ea6418bd43161fe9a2c337ed82d7ec5b"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_metadata"
+ "test/core/http/corpus/35f0c561297cfc840ddaeebb9fc61091f4eadece"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/3953688866ccb3b4f371f1a858570d6afdb6452d"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/39b19c41ba537f37511eff7727733715db432e76"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_request"
+ "test/core/http/corpus/3e3c4756d5e40b5aa250954cbac86b826e70a7ac"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/3f03265921120c6ffa61b944e213e062a5538d4b"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/3fb034e66ee5494a67acae1b4e6ff64ba92a2046"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "trailing_metadata"
+ "test/core/http/corpus/466059ed07a0d55d6ad5e522c7d367cbf278eaf9"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/487725eb38511c79a9340bf4560a1411061fa6fa"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/48b9b205cae8ac21512a3f26f49fd53e21ee13c5"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "bad_hostname"
+ "test/core/http/corpus/4b1f1f79a0bfa3f942479dd5f8edb59a7c257c55"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/5028c56a5116a186b7343ff59567b47347a0796d"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/533f62b3f495ce704babf3ee8d840f196a714dff"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "binary_metadata"
+ "test/core/http/corpus/5892cbb284771fc9761caae37b19cd6e27dbc104"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/5aeab6e4f7c2a1c09d4ac0dbdb3beac4893607ee"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/5b6292bdf009b0daecbc90b85cca30a88c36eec5"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_accept"
+ "test/core/http/corpus/5c1659b77678b41faa4fa13df7772dae3238d1c0"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/5c81f61621e29ec9c6a64ac3af9b3b216141618e"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/657368df512ca6294b9df16adf935a3f374a8be2"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_client_done"
+ "test/core/http/corpus/7fc4520094902ce2c760d70eaad5b674d2817337"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/81f59a12b458ec3604035cb962165c604d1355e6"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/8f41c50e88ee8c17ecad3d41d63d38fb12aca0b9"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_invoke"
+ "test/core/http/corpus/97c16de7fe3c390a2e6c09ff5c28f17d5c67542c"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/97e4499d450c95660de86747f527e670f2012548"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/9a996857196e0998a1278994a9bab3d35526e7f1"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_before_invoke"
+ "test/core/http/corpus/9b7e00049ec356ecd84b1747e4e1941140139ae8"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/9f0c38ec455cc363369b3674a2d32bc21c206de1"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/a1dc7bc235e46eb21d91084d7b52d5ff9f45df85"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_in_a_vacuum"
+ "test/core/http/corpus/aa3bbb876eafa8ad8ca4ff2eabc6dd94341d2441"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/b04fea5c041c707db0ad9c09a81672557b52cc47"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/c4acff8aa2ff886f35439f72625d05002990c940"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_with_status"
+ "test/core/http/corpus/c55ce9995b002e88a102ae2891a71e8bacb346c8"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/ca5a0c00b8969310acb73d15ad0d0c602f1bd0c2"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/cce734f1b263de6994f7950e0df7bf0c81449f70"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "compressed_payload"
+ "test/core/http/corpus/d4c3e4cf5d035596433c30eaabbd2b2925f4b453"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/d51f7fcc089f269c7afecaaca51966bab5fde629"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/d936dad71c129cf659097dc3db64550c4dd467f4"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "empty_batch"
+ "test/core/http/corpus/e275b0466a8fb8d9e0e15856e343ddc7112ae66b"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/e5c364b205855a2991ce07482aebb2a3a6147089"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/ee2077e08c3cfccd9bd82adb574ac4fc7d429afb"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "graceful_server_shutdown"
+ "test/core/http/corpus/fc5d4b9117ba9e87388174aee4f4970bdfe8d066"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/fdeb2c7daa9e7704f67e141106384e6dd0042c0b"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/request1.txt"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "high_initial_seqno"
+ "test/core/http/corpus/request2.txt"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/request3.txt"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/request4.txt"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "invoke_large_request"
+ "test/core/http/corpus/request5.txt"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/response1.txt"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/response2.txt"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "large_metadata"
+ "test/core/http/corpus/response3.txt"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/response4.txt"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/response5.txt"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "max_concurrent_streams"
+ "test/core/http/corpus/response6.txt"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "http_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/http/corpus/toolong.txt"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "http_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/006d552e952c42b5340baaeb85c2cb80c81e78dd"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "max_message_length"
+ "test/core/json/corpus/007eb985c44b6089a34995a7d9ebf349f1c2bf18"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/03b74a08f23734691512cb12d0b38d189a8df905"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/0495693af07325fb0d52eafd2d4c4d802c6457c6"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "negative_deadline"
+ "test/core/json/corpus/05454ab015cf74e9c3e8574d995517e05dd56751"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/0716d9708d321ffb6a00818614779e779925365c"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/0a9b3522a8e711e3bd53e2c2eb9d28b34a003acc"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "no_op"
+ "test/core/json/corpus/0ade7c2cf97f75d009975f4d720d1fa6c19f4897"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/0b1fcf0ac07e1e50cfe27316c7e1c8cc997f1318"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/0bc13548356d08009703d35e9c8d74397367bdfb"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "payload"
+ "test/core/json/corpus/0ea9a160c57f2c705dce037196e360bf9be739c5"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/0f20d9c46991c0e97419e2cca07c7389f1d6bdf8"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/0f2e2e6346f70c419300b661251754d50f7ca8ea"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "ping_pong_streaming"
+ "test/core/json/corpus/108b310facc1a193833fc2971fd83081f775ea0c"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/108e5bcd69b19ad0df743641085163b84f376fe8"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/10e3ecd5624465020fdf0662a67e0f0885536cae"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "registered_call"
+ "test/core/json/corpus/113c8c97cbb0a2b6176d75eaa9ac9baaa7ccddcc"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/11479d936dd006410a5946b6081a94d573bf8efd"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/11aa091189b78d1cc35c7ff4907ac16a73aba547"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "request_with_flags"
+ "test/core/json/corpus/1227907b2ee5a9492a890beed55332e4560834c8"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/134d65130947ec69cf8df8483424b45e99cf04e3"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/13584505caa892d94982a968bbc4391ebcfe0d06"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "request_with_payload"
+ "test/core/json/corpus/137f554ee0f6b903acb81ab4e1f98c11fe92b008"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/1401ea03ec78b8f20dc7be952555004d7147f0f5"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/141d45a59b073aeec4443cd7bcf20f7833ddbc95"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "server_finishes_request"
+ "test/core/json/corpus/15a8f2e7f94aa00b46f1b991416aa015dd633580"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/15c9c1284c27c8893559e15c9b2a50cbd5bbb56f"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/15d1a6cda48ef569b368a0c4627435bc2c80a988"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "shutdown_finishes_calls"
+ "test/core/json/corpus/17a29f2ac6df774585d7713091b299729738030c"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/17b815f1f72cb64481bc40263e91ce063040f739"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/182d57403d2c973a394055017d35b7621aa0aa05"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "shutdown_finishes_tags"
+ "test/core/json/corpus/190fbe2da448f6bdec0706c5301ad13363ae3ad9"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/1b045a24b8f1f1fd6e8234d5019952ee7713a8b7"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/1b6453892473a467d07372d45eb05abc2031647a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_metadata"
+ "test/core/json/corpus/1c6463aa2dabcb4fadc8e5441d8b418535e768af"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/1dea95b5050b766274ef80847505c0e4f47f3ebb"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/1df0754d3e7970b3afe549b11ca128dcd0d4832b"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_request"
+ "test/core/json/corpus/1dfe267b623b20cd97c6e8969d8b9148af9f4a2c"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/1e5c2f367f02e47a8c160cda1cd9d91decbac441"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/20efdba13ca7a3657d071b3d56997aa3b083068a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "trailing_metadata"
+ "test/core/json/corpus/215a956168f77421253e947c2436371d56aa7ea1"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/2174b9ab6bf4f7c21fe1ed56957f1776ef611959"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair+trace_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/232f4bced4075545bb1469d5c2360f083ec7ec65"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "bad_hostname"
+ "test/core/json/corpus/26aca41ee8f199e7c0c7cf31d979952571c53fc9"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/27d84210636e9e83786be9e9b96b69f70b743b86"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/27da426a5883662d19ea78f306d7a992be52f827"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "binary_metadata"
+ "test/core/json/corpus/296dcda6f7e6979e68ddef7cbc1206a355084ad3"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/29b08c03ca5a6851fa4604a984cb7ff44433a5a5"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/2a3d964ec4527ad9f02129fcbf087b67a6ea6444"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_accept"
+ "test/core/json/corpus/2b04974149815b143afb17af4388d751217e54ec"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/2b3b1ad952e3acb566e32a84e2d503acde13eb53"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/2cc301a6ed7f01e2cd339f02bd0fda20c227a17e"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_client_done"
+ "test/core/json/corpus/2d3d5b9275553430b4cfa68114099120ad7809ee"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/2d5dbf403e0c12e2fe21b04ca3daff171c028ab7"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/2d7c769bed62004270034b976b1d940a5686106b"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_invoke"
+ "test/core/json/corpus/2db120231eea12d9cdc6a00f30839b3cef2046be"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/2db610e1a230409a205cf22fbad3348a54cbe703"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/2df1dd2e2f5d57e7d9d4e60a756a86e603573225"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_before_invoke"
+ "test/core/json/corpus/2e32faacd3ea4461ec7aace297b4be6904d9a389"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/2e756d91759d7e74f5b776c0d2a1935292f576d1"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/2f09b24f9f5fa0af2c29b604b4b0f97fa6163895"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_in_a_vacuum"
+ "test/core/json/corpus/3027d901361162b38fcaf17f97ba7d9646e32495"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/30d4467ecb771ece9ed6c78a46adc299072d9db9"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/311048bbf4c4bbabcde73607d7e76915cee9312e"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_with_status"
+ "test/core/json/corpus/323b48969d7bf9a50aacf0912f1b5cb02119e2ab"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/33400a242baeb5c46ddb1578c28b10d32a9c3cd3"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/356a192b7913b04c54574d18c28d46e6395428ab"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "compressed_payload"
+ "test/core/json/corpus/35e995c107a71caeb833bb3b79f9f54781b33fa1"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/373769c15c145472c8ec3bdde8fc84e85ec79211"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/3795d911970a1fd8416b93649051b418948e3edf"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "empty_batch"
+ "test/core/json/corpus/37d3333e1e2a384c3ba14a52682ca29f061d1ac7"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/38cd33bb390445e35b6514024b1317902cb7ba1b"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/3a90c688f44447a78efc111872b061a001f04d2b"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "graceful_server_shutdown"
+ "test/core/json/corpus/3b1e7b56ad4465d126ea994d34d20dcecbb3a50a"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/3c0a8d6c31edaca124714624eb64cb8ec0cbab13"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/3cc0c9adcf3882f01409c70391c3cd30588ef34c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "high_initial_seqno"
+ "test/core/json/corpus/3d0d9878b812ce4634962ba3dd755c0953550200"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/3d4d5887a2fcdc5dd360b8a6f89dbce6500d8580"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/3efb5b7ff94c5b9d411c93da9a70e1cc547f4c59"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "hpack_size"
+ "test/core/json/corpus/421b7e8ea86e3c07474af16ab3ccef55d1857205"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/428d051e437dd260f2a2f7ed920d9734ca34dc90"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/42adc281578ffb1b8684b78b47aa40a16d10b6e7"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "invoke_large_request"
+ "test/core/json/corpus/43620ecd2e2fd58fe5650da2e9783f980f29ec07"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/43b1ffcda49477adb1632822202631990ed3a269"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/45279f85bf2f533a629073caf89403006279fab2"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "large_metadata"
+ "test/core/json/corpus/455d9bb597f08bf698454157ecd86647b5dec4e0"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/4561eb5c7e43cae048c06aaaad3d5f5218b376e9"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/46417b001eeb87c32b642499fd5e1690d5d88c7f"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "max_concurrent_streams"
+ "test/core/json/corpus/468af040024e96e9878ef33cc52755c5e7f5cbd5"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/469e5ed2547e9e55a96e96eb832c615631e3b576"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/472b07b9fcf2c2451e8781e944bf5f77cd8457c8"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "max_message_length"
+ "test/core/json/corpus/486da8aff04083c5e0fe112e733f2ae510e312a1"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/488a5ed641e340ae51992e04ce6590bdec587218"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/4a0a19218e082a343a1b17e5333409af9d98f0f5"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "negative_deadline"
+ "test/core/json/corpus/4a6644a1a3d5218f4bbd60220cab79c0b7bef45e"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/4b39d4b8a9a04b9469e8fe4016322327fe540882"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/4bb0294e14946fb1f64213384097a676d3ef94f0"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "no_op"
+ "test/core/json/corpus/4cd66dfabbd964f8c6c4414b07cdb45dae692e19"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/4d134bc072212ace2df385dae143139da74ec0ef"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/4efa35221b2088e785048d0ff8fd99b03d5316fc"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "payload"
+ "test/core/json/corpus/4fa2a4a5a2f7dc4ddbdecae3ee85c787817b4cf8"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/4fed4bf2dc6259d9de54e9fa7db4fd5a61f2535e"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/4ff800de0863adb5851fa26935159aa53b11cba7"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "ping_pong_streaming"
+ "test/core/json/corpus/4ff99a030518a132748c44bc1d836018e5b82cd0"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/531c87b9772e54e3e183ef729f0a7d5a0d584f46"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/534d66e7b0709d1e7692faae9e7f7299c92bba4b"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "registered_call"
+ "test/core/json/corpus/548775f9d7d13339dba3001f8238b84e9a457533"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/54ec3b2d8a9b7a6d8204712eb1b90da703cf8a79"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/552cfe1d8958e6d003ec8e883c4983dd67ef255e"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "request_with_flags"
+ "test/core/json/corpus/55f0c61d096a08506076489ded3b868db4086770"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/56cd60743c2cee939f5f357905bd36ec9363f441"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/56e5f35e3d08b4e17e3558cacddf9e5ed13a0159"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "request_with_payload"
+ "test/core/json/corpus/580b03c49fba02bb8e399500eb66f2ff0482b22a"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/5852643fbbcf92b0181327b69b4874c6ba6fa9f4"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/58f497e5efaf9f69080f9eef63b0b9dabcfdbc0d"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "server_finishes_request"
+ "test/core/json/corpus/59129aacfb6cebbe2c52f30ef3424209f7252e82"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/598a287a3e56caae23ed63abc95d5f3457165eef"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/5a37a26dd2482226f534f79d321d28e7a615ab72"
+ ],
+ "ci_platforms": [
"linux",
"mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
"posix"
]
},
{
"args": [
- "shutdown_finishes_calls"
+ "test/core/json/corpus/5a710dcd4c78ca1a74ceb9fbfb011f7ac86a5f7b"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/5ae7b87f5377d5ffc16fd3f69b4a4aa7be8b1184"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/5b3fe86d5a309a6ba745881bd220fe1100b271ce"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "shutdown_finishes_tags"
+ "test/core/json/corpus/5c38b7da113ab4535dbc22777ce8a1480c1c9d1e"
],
"ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/5ca6c45a8d2e11c782806df43e7668beb4aba8f5"
+ ],
+ "ci_platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/5da7b543313339f84fd52e96bacf3a73368a1d2c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_metadata"
+ "test/core/json/corpus/5e12ae9117668bcc22832640cc626315940aeba8"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/5e397439a2680ed827c46704969c6711dabbda84"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/5e629dfb8b7533c7c2d173d4c3d587c88112cc29"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_request"
+ "test/core/json/corpus/5e785c7c26813577f3e30ef8f7e37ab2a9ffe39c"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/5f3394f5058822cc044b92654837625897176480"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/5fb9bcbbb30a377209eab0541d144e44e71508d7"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "trailing_metadata"
+ "test/core/json/corpus/6008213a61d06b4382b223768530c3452968b7b3"
],
"ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
+ "mac",
+ "windows",
"posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/60ba4b2daa4ed4d070fec06687e249e0e6f9ee45"
],
- "cpu_cost": 1.0,
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_sockpair_1byte_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/625ed64c30c8ab2f0b3bc75690f9faa4270f0041"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
"windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "bad_hostname"
+ "test/core/json/corpus/6314c2b304d04dc0108a95d29a93515e85e2b0b0"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "binary_metadata"
+ "test/core/json/corpus/6462d8079d2ea921617e7d073b85cfab706800d3"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_accept"
+ "test/core/json/corpus/6474383282788e556aa86f57fc8650137ad264d0"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_client_done"
+ "test/core/json/corpus/648c3f58ecc8fb4b8c779e6b11006ab5b1986dad"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_after_invoke"
+ "test/core/json/corpus/66328e03a2ccd5e54dab23b816182786e6f518b6"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_before_invoke"
+ "test/core/json/corpus/683e9045bc95e0cb5fc16ec64b118433475ba559"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_in_a_vacuum"
+ "test/core/json/corpus/689f13680f4682303c8aa6828b67955959dc9669"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "cancel_with_status"
+ "test/core/json/corpus/68c6ba7f0602a5410d1fa3c5de24fe264436b993"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "compressed_payload"
+ "test/core/json/corpus/699cafde80b1e1777306f781186d1253f018ab23"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "connectivity"
+ "test/core/json/corpus/69ab053b59e235fd6af246c5180f15bd95295113"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "disappearing_server"
+ "test/core/json/corpus/69afa12510b2e653b0af7c7030832647b2d63c37"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "empty_batch"
+ "test/core/json/corpus/6b75857f86be5c51b21a97f4a61e69e8bb6cd698"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "graceful_server_shutdown"
+ "test/core/json/corpus/6c75e71ecde9f073a7bad89f4831c8cde0bc1830"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "high_initial_seqno"
+ "test/core/json/corpus/6ce5170dc4f2eee3b31a875b6a41f2444959f3dd"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "hpack_size"
+ "test/core/json/corpus/6d2859436fbbee637f0a5981ca82e8f88a1d0d28"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "invoke_large_request"
+ "test/core/json/corpus/6d63e39f56d1d537bab9c2830303cabab3cd9035"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "large_metadata"
+ "test/core/json/corpus/6e05a0a240fe2974e14527bbe390d294564156e2"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "max_concurrent_streams"
+ "test/core/json/corpus/6e6c9d301adb0f0ddffd79cdf3426a2de99bad48"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "max_message_length"
+ "test/core/json/corpus/6e989edf725ec64849377681ce02641c3d1870e8"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "negative_deadline"
+ "test/core/json/corpus/70142f66475ae2fb33722d8d4750f386ecfefe7b"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "no_op"
+ "test/core/json/corpus/719edbe667ce2729ac78a22dac29263c91144029"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "payload"
+ "test/core/json/corpus/71f99ca2bda6ef2e15b965479a79587f9d794be0"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "ping"
+ "test/core/json/corpus/743e89b768af4bd591ea7228118550b1bfb8e7d1"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "ping_pong_streaming"
+ "test/core/json/corpus/7714a1a32872442a2eaff472685f3ea69451a732"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "registered_call"
+ "test/core/json/corpus/7719a1c782a1ba91c031a682a0a2f8658209adbf"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "request_with_flags"
+ "test/core/json/corpus/775e8ffda1f5d340dba472d06dc7c8bf8159e379"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "request_with_payload"
+ "test/core/json/corpus/77de68daecd823babbb58edb1c8e14d7106e83bb"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "server_finishes_request"
+ "test/core/json/corpus/7957dc9aac31e6a6783fb3a6ee073688fed6cf9d"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "shutdown_finishes_calls"
+ "test/core/json/corpus/7ae893cbbf9b11ff411640b80985ce618907559c"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "shutdown_finishes_tags"
+ "test/core/json/corpus/7b20ac50954063e3ad00813acab4a98b2bfdb858"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_delayed_request"
+ "test/core/json/corpus/7b6273145fb090de1c6163586f884a1da4b5cfbf"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_metadata"
+ "test/core/json/corpus/7cf84b5a78281e6c6b5a9884110f3dbc6a40e310"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "simple_request"
+ "test/core/json/corpus/7ef13b83e6bde582d9000be043e729cd3221c150"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "trailing_metadata"
+ "test/core/json/corpus/82059e250904b478f65daa0e647c1647ba6d6a3d"
],
"ci_platforms": [
"linux",
"mac",
+ "windows",
"posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
"linux",
"mac",
+ "windows",
"posix"
]
},
{
"args": [
- "bad_hostname"
+ "test/core/json/corpus/8207fdf4bd302d6b6b1894990b353944a8716aa7"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "binary_metadata"
+ "test/core/json/corpus/831a49ad81b59025c241ac9e58bd88463fd798eb"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_after_accept"
+ "test/core/json/corpus/84582c1dbe026475319df14c19967d1dd0bf751f"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_after_client_done"
+ "test/core/json/corpus/860d4ad0b7c026d1fcf51932b5e46500be7860a6"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_after_invoke"
+ "test/core/json/corpus/865c7cf36a4f4499a6242e51b77b58b868a7447b"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_before_invoke"
+ "test/core/json/corpus/87a2b80f9272583517c0207af176fc40ea55022c"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_in_a_vacuum"
+ "test/core/json/corpus/887309d048beef83ad3eabf2a79a64a389ab1c9f"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "cancel_with_status"
+ "test/core/json/corpus/88d89860ccaf21e5f0f002303a2cd853ecbb2acb"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "compressed_payload"
+ "test/core/json/corpus/88f658400b1870ddf081fb03020c3098b0b1e083"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "connectivity"
+ "test/core/json/corpus/88f8b0984bb2f081918ad883c8f0ffacb5a8ff0a"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "disappearing_server"
+ "test/core/json/corpus/89304953495f060c7abd3584d83cb1c8e6d6653b"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "empty_batch"
+ "test/core/json/corpus/8a5f6dc6873e3fd51fd866854d85258f8aa83a02"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "graceful_server_shutdown"
+ "test/core/json/corpus/8a87261277c15667e2957dd52c5db6757ebc8e88"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "high_initial_seqno"
+ "test/core/json/corpus/8aa61d8bd260942521bb1ba82cd4cce2324fdbee"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "hpack_size"
+ "test/core/json/corpus/8d8874439569824e371a0284460440175cdb8a27"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "invoke_large_request"
+ "test/core/json/corpus/8d952ec2e33b2a6a1c7876898719a610f5546388"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "large_metadata"
+ "test/core/json/corpus/8e6fec8a05b24f221b6e94fdfe205e5bf7709a2c"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "max_concurrent_streams"
+ "test/core/json/corpus/8e7fda77644ff91578d25243fad51a3cd6d60860"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "max_message_length"
+ "test/core/json/corpus/8ea6295ff82bb119acd44a91b463b19fedafb226"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "negative_deadline"
+ "test/core/json/corpus/8ee51caaa2c2f4ee2e5b4b7ef5a89db7df1068d7"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "no_op"
+ "test/core/json/corpus/8ef4dd9f2d0f9d770c937d9a43413d24df83f09b"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "payload"
+ "test/core/json/corpus/8efd86fb78a56a5145ed7739dcb00c78581c5375"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "ping"
+ "test/core/json/corpus/8f0ba762c2fed0fc993feb91948902ac397b0919"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "ping_pong_streaming"
+ "test/core/json/corpus/8fe81e450694cac1eb4c4a5c966ffbc56ade3513"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "registered_call"
+ "test/core/json/corpus/902ba3cda1883801594b6e1b452790cc53948fda"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "request_with_flags"
+ "test/core/json/corpus/910a1528b28ebc6ff2f2a4fedb013c86de4103e2"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "request_with_payload"
+ "test/core/json/corpus/92049bf3d8a0ec93c2d1633631c0082e66ca69e7"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "server_finishes_request"
+ "test/core/json/corpus/920a3c318f3127b9c30ab02a077555c7dfbb6edb"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "shutdown_finishes_calls"
+ "test/core/json/corpus/925fc05dd661aeb4a776dcbc5df3dcb2cefaf0a6"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "shutdown_finishes_tags"
+ "test/core/json/corpus/9367ba65affd5bf7aabf79c28e783cc5d93518e8"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "simple_delayed_request"
+ "test/core/json/corpus/939f5049b1eefb91ccbd3fcecaed8cb21ea6b285"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
"cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "simple_metadata"
+ "test/core/json/corpus/9405c2b00eaa5526f71cc78914dbd3ecaf093b6e"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "simple_request"
+ "test/core/json/corpus/94d3598751569d2a5be258e59665cbbf0692dfbe"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
},
{
"args": [
- "trailing_metadata"
+ "test/core/json/corpus/94f96d95d01e98fd2f04ce26c0913e5f9a882fb4"
],
"ci_platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
],
- "cpu_cost": 1.0,
+ "cpu_cost": 0.1,
"exclude_configs": [],
"flaky": false,
"language": "c",
- "name": "h2_uds+poll_nosec_test",
+ "name": "json_fuzzer_test_one_entry",
"platforms": [
- "linux"
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/95b54a84db75abab401d282fdb04440a879a9708"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/96189202e587ec951d5795da3e03062f2fb5d708"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/9711703428704ce2827a719eddb9d54be23a0cb7"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/9734597e96eebe99b2243121a51d178a338ec46f"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/9747c85a9510011bf87c23a80b029b9f2d04c37d"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/97d170e1550eee4afc0af065b78cda302a97674c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/98e02e7fc96479e8d10ff2cc7610be772e2d6fba"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/996156b191b619eff79b2fcbb7598518a09b06bc"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/99667fcfa6d583a742fb5450527fc86dfb78ebbf"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/9b1ead2dbeeb1a3e9a7bebcf6964c3cfbc7e8867"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/9b7669e201574bfb979d56110539a90da5aca2c0"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/9c24b456af3cb51a1ff2780c2d9cbdd7d93f6c76"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/9d0441f23ae7d5a3a5b1140497868ee6eeab656b"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/9d890bd3139a8f9a44d435ff8edfbeb5b072ded0"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/9e6a55b6b4563e652a23be9d623ca5055c356940"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/9ec88420ef0408642f6930996e35f5b9f18ec88c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/9edd067c569315d5e93b0d14c7eac9fa6d81d3cd"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/9fbda4f714043d975389b536b4497c6d713452e5"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/9fc8cb8ab3b05e306e5e81d9d949e69f931244ea"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a02b857f2eff73e8e188f35529dd91f8144b23b9"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a060d5bfd1235cbbe4bcecf332fa3b03bc2282e3"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a0931fae1d43e7887c1cabde83fdfc52eaeedba8"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a0d4af29c6c223b48fe34d6a09b3a7466242f33c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a1abe8a785030d475a7350438fd23a05c382c110"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a1fb86293eac950c2b4f5182d9e4b5d9e0982ef6"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a2d4e3d6f5ba43c9199d5d2011678f82cfd55afc"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a39653cb3d97c58c44013197f4d7557577700177"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a4c74ad56ae0e94e96101a8f2ce9b1e588df5e44"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a6b34b06b00e9226f2bd961483f9da81d8de99a8"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a72c3b9cc71eb7f0e0e4dabcd2dcd2b997f21c07"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a749d24bac55bc19465acc92b12244c56ca0f20d"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a78009ff8b3f4d722ee0eb84795e857e74a58aea"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a7ae4b16677806d78d0016c276b6722eba8eef3c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a806f43dd48e35e75c27814c13a2a96c12449bd1"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a90a858013f90d2a94e0d62a7156ffd6848bf238"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a94bfbfe16d026b52d7f73cf78fdf7d6a6c5c58b"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/a9718f029d11a9335ef596cbd42794de5b0b18b5"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/aa6e08a488d1ed00aa51f20c2477fc89e7b0a852"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/aaa038513c192fec501e4e7302156872ce2fde37"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/ac2686c095a5a1c92a1d4209a6c287778720c86d"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/ac9231da4082430afe8f4d40127814c613648d8e"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/adc83b19e793491b1c6ea0fd8b46cd9f32e592fc"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/aff25e569bd8c93157e08cd18ebcd896438e34c9"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/affced8168ec801de89deac663f708f0c96cf1a4"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b015dfc2f62b640d7c25adab7b38c5fcb5cb64c8"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b021dd7cd98b63092685ea092df0dc01c8f63334"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b17485b8bdec8809b3819a83753ca893871df403"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b32ef51eca9c6c658e6fb75fdf96bbba066404e7"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b3f0c7f6bb763af1be91d9e74eabfeb199dc1f1f"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b45a1635ec526bcc890f9d735976704e516c5f19"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b50ce51a7baa28cd298ebd05b4a3b9b70f9d4370"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b5126721812b925426b30d283d2bb8b6969f230a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b57af943a3ee411bffeaa3872eec9c6fb01569a4"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b5abf6fd22ed0f852781de35d043059d0f86f3cd"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b6589fc6ab0dc82cf12099d1c2d40ab994e8410c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b6f19238d2b04c5b86a17369093dafda34f332e7"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b858cb282617fb0956d960215c8e84d1ccf909c6"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/b9c38fad09c80db7781fefbe51039752de575ecc"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/bb407c8992800444201dccfe744dac49c0295fde"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/bc335734f73502b92d2bd3587259ce915985f0ee"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/bd113c2c8a2328e3674c680c7cff829a6c8ab924"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/be051d58015d4af1977a5dfd14ef3fd070ecc9d2"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/be461a0cd1fda052a69c3fd94f8cf5f6f86afa34"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/bef524502f8dbbc45af717ece01ec88edd7f903b"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/bf21a9e8fbc5a3846fb05b4fa0859e0917b2202f"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c0b6a90832b78ed5f6d129d3640c612540527c85"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c18d315f0d35849b2aae4a47cab4608204b85d76"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c257fd6bc9e5254a733378ab4ddd39629c4a3069"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c2bf7f49d8f2e13a60af4473b3b3451b65b3aa9a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c308517acf6f7088634d491a1608240f83a3ac95"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c3badd71ef8a51b97ce93cbfe99f6778048f2128"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c482a632702ae7f532d126e70149dda4fadc3cd7"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c541bb86e55b98e083b141114066f9c17d853374"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c5b50b9015b6aaedd7eb1077b1204858f837b53c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c62ef0dbd1350da9ea5a32e56672d385837643e7"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c7a34d6d49e1da1ccd490350c2df3a168ed09ae8"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c88c4bec8d440c56d3ea7abce39276f0927dbe0a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c92f147bfc034003ac42ed9e62a16c84102ab417"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/c96b0fe6034668edf37ef0f5f391d5107953dc06"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/cac74aa5d7aab7fce0253f00c1a025980c1f9b7a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/caea0a0e6d8708cf682eaa446c344da56a7d5515"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/cc8a3dd2678d4b400ad630f402012b894e841b05"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/cd851bec7adad52f79777fb9347d5fd2f9486aa7"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/ce3899b62ba3efe00eb31ddad2861ffe16a30d06"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/ce8b76fdcdbf1c951afc2b115be9acc8a6358b32"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/cec87b67871fc7a59652bc3546fbbb68e4d31e28"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/cf32406111908544e504c84731147f072cdf2fbd"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/cf35dc76bf9a2052636c1ecc92942161830dcdc3"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/cf6a5e6bfe4f15b43e411dd2782e10f1670c9767"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/cfc45616f5f0e7c25df91f6984ff5f6f1648beab"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/cff891e5858ae68d08ecc8470ca6a68c9438bfa3"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/cfff4e9d08cba81b663dd1999710008342851e19"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/crash-f21867fe8b6df0b54c13e2e6e613dce871ecf0f0"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/d1db03c626fb16c3b9cd44cc38cf40ebd355a194"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/d85ca051da784c0441898c5affbf11a2ae8f56bc"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/da03f536ceaf609972aa2a699687cc6f73ac0dcd"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/da4b9237bacccdf19c0760cab7aec4a8359010b0"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/dcc45e405208d7a2db33d0b5b9da2a2f1b034957"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/dcc60d3aaa1fc4d00201a3512284fcb79b5b68ef"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/dd0567ae57bf3cc85891a1ca988c2945d9186678"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/dd890a5a32e9f0489c6c77695f2155041f00fc9a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/df88e2baf7b76ffb2e94b9da57fd8d137f44b1ef"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e00ee378c3f6e0b3cd89bd6e7517478d093f73dd"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e0c124e90d068e2a70a3e148052869033453ec58"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e0d87b1f3e54e5adc5c2205f9e14772822a25766"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e1199df649697c570db5d6b2ea09d755eddd32b7"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e235f6f2a8b6a22117f1baa932fb6c69799e1136"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e3a654055a867ae62d8e68fa2c410228ac55cb6d"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e3c680aac46b9c46392e3b2c43ecdcc1547f2023"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e3d134b35cc25a4861d90023c95988ec6103ddd5"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e3ff65de4b1622315c3b34b7a5e39bffb275489d"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e4a4085cc31476f5de9047422851d8ccf86339df"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e4e3c69da200af932c8a79fa055d7aeea28eb1d1"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e6c3dd630428fd54834172b8fd2735fed9416da4"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e71eb37fca2070521e1e07c503c2bcd6445b35ea"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e760e6e22ae8cd1ea78fe28b5eb1f3d7b5fdc536"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e95ff1142118a2ca5b84935612a8a64d55360e64"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/e9c5e2c67930513941753c2d54591c7098c82f6c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/eb26070d17ffa908204912e75cb4313835042038"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/ebc6aee49e5ae57722df86e7fa33c420f045a449"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/ed1dc11d713e7487de18ce8317b62916959206d0"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/ede3f66106acd7796da8b3942d029fe213058286"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/eed7bd220cd511b6d42ce6553019266a22a3d56a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/f090932162756b798b1a050b05e3d36a3437c4fc"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/f1905eaa84ba6a3593ec6ac0486a5b42893c01f1"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/f4635fbbf765ead81a261ca152df02622e182d2c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/f46eeb1020c7c4153e742a50bc24c2c6939dab1e"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/f473451610783521d51bc08cdd920ddd97f8a71f"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/f63aa599600f6e7d648c4287905e16e8e6e479fd"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/f667dcf1c06e87db2dc49d86ea1c285e796f8f8c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/f8d0f85975e49b959799cc52847110cc940b9db1"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/f92c47e35da42d79a48beff54b93cd28f55f05fb"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/f9a33bb8bd78d869fbafa402d9be58940ce2c318"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/fbf6f3156c1bd4bb701839bc0e26533bdccd1c9a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/fe2ef495a1152561572949784c16bf23abb28057"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/fe5dbbcea5ce7e2988b8c69bcfdfde8904aabc1f"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/ff8fb34603c7f772768d61504954553e6bed173c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/test1.json"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/test2.json"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/test3.json"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/test4.json"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/test5.json"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/test6.json"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/test7.json"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/test8.json"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/json/corpus/test9.json"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "json_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/042dc4512fa3d391c5170cf3aa61e6a638f84342"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/0e9bbe975f2027e8c39c89f85f667530368e7d11"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/14b57bcbf1e17b1db1de491ef2ba3768f704b7dc"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/1794310671a060eead6e5ee66ac978a18ec7e84f"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/1d30b2a79afbaf2828ff42b9a9647e942ba1ab80"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/1fcf5d9c333b70596cf5ba04d1f7affdf445b971"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/23162c8a8936e20b195404c21337ee734d02a6bc"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/23f3198b815ca60bdadcaae682b9f965dda387f1"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/2ef3893b43f1f60b77b59ce06a6bce9815d78eaf"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/356c3c129e203b5c74550b4209764d74b9caefce"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/3b58860f3451d3e7aad99690a8d39782ca5116fc"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/47b5228404451fc9d4071fa69192514bb4ce33c1"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/636c5606fc23713a1bae88c8899c0541cfad4fd8"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/63fe493b270b17426d77a27cbf3abac5b2c2794a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/655300a902b62662296a8e46bfb04fbcb07182cb"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/6b70979a70a038ff6607d6cf85485ee95baf58e6"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/7314ab3545a7535a26e0e8aad67caea5534d68b1"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/884dcaee2908ffe5f12b65b8eba81016099c4266"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/96c8d266b7dc037288ef305c996608270f72e7fb"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/975536c71ade4800415a7e9c2f1b45c35a6d5ea8"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/99750aa67d30beaea8af565c829d4999aa8cb91b"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/a1f0f9b75bb354eb063d7cba4fcfa2d0b88d63de"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/a296eb3d1d436ed7df7195b10aa3c4de3896f98d"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/a8b8e66050b424f1b8c07d46f868199fb7f60e38"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/af55baf8c8855e563befdf1eefbcbd46c5ddb8d2"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/b3c0bf66c2bf5d24ef1daf4cc5a9d6d5bd0e8bfd"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/ceb4e2264ba7a8d5be47d276b37ec09489e00245"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/cf4395958f5bfb46fd6f535a39657d016c75114c"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/d46668372b7e20154a89409a7430a28e642afdca"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/d6fe7412a0a1d1c733160246f3fa425f4f97682a"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/dns.txt"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/ea02d9fea9bad5b89cf353a0169238f584177e71"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/ec4731dddf94ed3ea92ae4d5a71f145ab6e3f6ee"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/ed2f78646f19fc47dd85ff0877c232b71913ece2"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/f6889f4a6350fea1596a3adea5cdac02bd5d1ff3"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/f6f3bd030f0d321efe7c51ca3f057de23509af67"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/f97598cff03306af3c70400608fec47268b5075d"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/f9e1ec1fc642b575bc9955618b7065747f56b101"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/fe0630a3aeed2ec6f474f362e4c839478290d5c4"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/ipv4.txt"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/ipv6.txt"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ]
+ },
+ {
+ "args": [
+ "test/core/client_config/uri_corpus/unix.txt"
+ ],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
+ ],
+ "cpu_cost": 0.1,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
+ "name": "uri_fuzzer_test_one_entry",
+ "platforms": [
+ "linux",
+ "mac",
+ "windows",
+ "posix"
]
}
]
diff --git a/vsprojects/build_vs2010.bat b/vsprojects/build_vs2010.bat
index 64b0ed5d3f..1bc3c86a92 100644
--- a/vsprojects/build_vs2010.bat
+++ b/vsprojects/build_vs2010.bat
@@ -1,5 +1,5 @@
@rem Convenience wrapper that runs specified gRPC target using msbuild
-@rem Usage: build.bat TARGET_NAME
+@rem Usage: build_vs2010.bat TARGET_NAME
setlocal
@rem Set VS variables (uses Visual Studio 2010)
diff --git a/vsprojects/build_vs2013.bat b/vsprojects/build_vs2013.bat
index be3caa9298..82c0a3ad82 100644
--- a/vsprojects/build_vs2013.bat
+++ b/vsprojects/build_vs2013.bat
@@ -1,5 +1,5 @@
@rem Convenience wrapper that runs specified gRPC target using msbuild
-@rem Usage: build.bat TARGET_NAME
+@rem Usage: build_vs2013.bat TARGET_NAME
setlocal
@rem Set VS variables (uses Visual Studio 2013)
diff --git a/vsprojects/build_vs2015.bat b/vsprojects/build_vs2015.bat
index 50485a30f3..c6e1b433a3 100644
--- a/vsprojects/build_vs2015.bat
+++ b/vsprojects/build_vs2015.bat
@@ -1,5 +1,5 @@
@rem Convenience wrapper that runs specified gRPC target using msbuild
-@rem Usage: build.bat TARGET_NAME
+@rem Usage: build_vs2015.bat TARGET_NAME
setlocal
@rem Set VS variables (uses Visual Studio 2015)
diff --git a/vsprojects/buildtests_c.sln b/vsprojects/buildtests_c.sln
index 96dc4eb107..01c060421c 100644
--- a/vsprojects/buildtests_c.sln
+++ b/vsprojects/buildtests_c.sln
@@ -61,6 +61,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_unsecure", "vcxproj\.\
{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
EndProjectSection
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "one_input_fuzzer", "vcxproj\.\one_input_fuzzer\one_input_fuzzer.vcxproj", "{3589BCA3-CB0E-58FE-2F67-C4475D5CA517}"
+ ProjectSection(myProperties) = preProject
+ lib = "True"
+ EndProjectSection
+ ProjectSection(ProjectDependencies) = postProject
+ {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
+ EndProjectSection
+EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "reconnect_server", "vcxproj\.\reconnect_server\reconnect_server.vcxproj", "{929C90AE-483F-AC80-EF93-226199F9E428}"
ProjectSection(myProperties) = preProject
lib = "True"
@@ -696,6 +704,39 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "init_test", "vcxproj\test\i
{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
EndProjectSection
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "internal_api_canary_iomgr_test", "vcxproj\test\internal_api_canary_iomgr_test\internal_api_canary_iomgr_test.vcxproj", "{28AE726B-1BFB-202B-48D2-41AF9D09B9EA}"
+ ProjectSection(myProperties) = preProject
+ lib = "False"
+ EndProjectSection
+ ProjectSection(ProjectDependencies) = postProject
+ {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}
+ {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9}
+ {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037}
+ {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "internal_api_canary_support_test", "vcxproj\test\internal_api_canary_support_test\internal_api_canary_support_test.vcxproj", "{D53575C6-713C-E6E3-FD74-E65F20916498}"
+ ProjectSection(myProperties) = preProject
+ lib = "False"
+ EndProjectSection
+ ProjectSection(ProjectDependencies) = postProject
+ {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}
+ {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9}
+ {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037}
+ {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "internal_api_canary_transport_test", "vcxproj\test\internal_api_canary_transport_test\internal_api_canary_transport_test.vcxproj", "{ED24E700-964E-B426-6A6A-1944E2EF7BCB}"
+ ProjectSection(myProperties) = preProject
+ lib = "False"
+ EndProjectSection
+ ProjectSection(ProjectDependencies) = postProject
+ {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}
+ {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9}
+ {EAB0A629-17A9-44DB-B5FF-E91A721FE037} = {EAB0A629-17A9-44DB-B5FF-E91A721FE037}
+ {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
+ EndProjectSection
+EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "invalid_call_argument_test", "vcxproj\test\invalid_call_argument_test\invalid_call_argument_test.vcxproj", "{C32CA8A3-58E6-8EB9-B72F-C295547D36A6}"
ProjectSection(myProperties) = preProject
lib = "False"
@@ -1461,6 +1502,22 @@ Global
{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|Win32.Build.0 = Release-DLL|Win32
{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|x64.ActiveCfg = Release-DLL|x64
{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|x64.Build.0 = Release-DLL|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug|Win32.ActiveCfg = Debug|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug|x64.ActiveCfg = Debug|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release|Win32.ActiveCfg = Release|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release|x64.ActiveCfg = Release|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug|Win32.Build.0 = Debug|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug|x64.Build.0 = Debug|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release|Win32.Build.0 = Release|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release|x64.Build.0 = Release|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug-DLL|Win32.ActiveCfg = Debug|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug-DLL|Win32.Build.0 = Debug|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug-DLL|x64.ActiveCfg = Debug|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug-DLL|x64.Build.0 = Debug|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release-DLL|Win32.ActiveCfg = Release|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release-DLL|Win32.Build.0 = Release|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release-DLL|x64.ActiveCfg = Release|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release-DLL|x64.Build.0 = Release|x64
{929C90AE-483F-AC80-EF93-226199F9E428}.Debug|Win32.ActiveCfg = Debug|Win32
{929C90AE-483F-AC80-EF93-226199F9E428}.Debug|x64.ActiveCfg = Debug|x64
{929C90AE-483F-AC80-EF93-226199F9E428}.Release|Win32.ActiveCfg = Release|Win32
@@ -2453,6 +2510,54 @@ Global
{117CA7AD-C42B-9217-6C95-42A801777BC5}.Release-DLL|Win32.Build.0 = Release|Win32
{117CA7AD-C42B-9217-6C95-42A801777BC5}.Release-DLL|x64.ActiveCfg = Release|x64
{117CA7AD-C42B-9217-6C95-42A801777BC5}.Release-DLL|x64.Build.0 = Release|x64
+ {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug|Win32.ActiveCfg = Debug|Win32
+ {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug|x64.ActiveCfg = Debug|x64
+ {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release|Win32.ActiveCfg = Release|Win32
+ {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release|x64.ActiveCfg = Release|x64
+ {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug|Win32.Build.0 = Debug|Win32
+ {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug|x64.Build.0 = Debug|x64
+ {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release|Win32.Build.0 = Release|Win32
+ {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release|x64.Build.0 = Release|x64
+ {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug-DLL|Win32.ActiveCfg = Debug|Win32
+ {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug-DLL|Win32.Build.0 = Debug|Win32
+ {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug-DLL|x64.ActiveCfg = Debug|x64
+ {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Debug-DLL|x64.Build.0 = Debug|x64
+ {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release-DLL|Win32.ActiveCfg = Release|Win32
+ {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release-DLL|Win32.Build.0 = Release|Win32
+ {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release-DLL|x64.ActiveCfg = Release|x64
+ {28AE726B-1BFB-202B-48D2-41AF9D09B9EA}.Release-DLL|x64.Build.0 = Release|x64
+ {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug|Win32.ActiveCfg = Debug|Win32
+ {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug|x64.ActiveCfg = Debug|x64
+ {D53575C6-713C-E6E3-FD74-E65F20916498}.Release|Win32.ActiveCfg = Release|Win32
+ {D53575C6-713C-E6E3-FD74-E65F20916498}.Release|x64.ActiveCfg = Release|x64
+ {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug|Win32.Build.0 = Debug|Win32
+ {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug|x64.Build.0 = Debug|x64
+ {D53575C6-713C-E6E3-FD74-E65F20916498}.Release|Win32.Build.0 = Release|Win32
+ {D53575C6-713C-E6E3-FD74-E65F20916498}.Release|x64.Build.0 = Release|x64
+ {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug-DLL|Win32.ActiveCfg = Debug|Win32
+ {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug-DLL|Win32.Build.0 = Debug|Win32
+ {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug-DLL|x64.ActiveCfg = Debug|x64
+ {D53575C6-713C-E6E3-FD74-E65F20916498}.Debug-DLL|x64.Build.0 = Debug|x64
+ {D53575C6-713C-E6E3-FD74-E65F20916498}.Release-DLL|Win32.ActiveCfg = Release|Win32
+ {D53575C6-713C-E6E3-FD74-E65F20916498}.Release-DLL|Win32.Build.0 = Release|Win32
+ {D53575C6-713C-E6E3-FD74-E65F20916498}.Release-DLL|x64.ActiveCfg = Release|x64
+ {D53575C6-713C-E6E3-FD74-E65F20916498}.Release-DLL|x64.Build.0 = Release|x64
+ {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug|Win32.ActiveCfg = Debug|Win32
+ {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug|x64.ActiveCfg = Debug|x64
+ {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release|Win32.ActiveCfg = Release|Win32
+ {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release|x64.ActiveCfg = Release|x64
+ {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug|Win32.Build.0 = Debug|Win32
+ {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug|x64.Build.0 = Debug|x64
+ {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release|Win32.Build.0 = Release|Win32
+ {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release|x64.Build.0 = Release|x64
+ {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug-DLL|Win32.ActiveCfg = Debug|Win32
+ {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug-DLL|Win32.Build.0 = Debug|Win32
+ {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug-DLL|x64.ActiveCfg = Debug|x64
+ {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Debug-DLL|x64.Build.0 = Debug|x64
+ {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release-DLL|Win32.ActiveCfg = Release|Win32
+ {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release-DLL|Win32.Build.0 = Release|Win32
+ {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release-DLL|x64.ActiveCfg = Release|x64
+ {ED24E700-964E-B426-6A6A-1944E2EF7BCB}.Release-DLL|x64.Build.0 = Release|x64
{C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Debug|Win32.ActiveCfg = Debug|Win32
{C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Debug|x64.ActiveCfg = Debug|x64
{C32CA8A3-58E6-8EB9-B72F-C295547D36A6}.Release|Win32.ActiveCfg = Release|Win32
diff --git a/vsprojects/grpc.sln b/vsprojects/grpc.sln
index 851bca0d1c..650b857a88 100644
--- a/vsprojects/grpc.sln
+++ b/vsprojects/grpc.sln
@@ -61,6 +61,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_unsecure", "vcxproj\.\
{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
EndProjectSection
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "one_input_fuzzer", "vcxproj\.\one_input_fuzzer\one_input_fuzzer.vcxproj", "{3589BCA3-CB0E-58FE-2F67-C4475D5CA517}"
+ ProjectSection(myProperties) = preProject
+ lib = "True"
+ EndProjectSection
+ ProjectSection(ProjectDependencies) = postProject
+ {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
+ EndProjectSection
+EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "reconnect_server", "vcxproj\.\reconnect_server\reconnect_server.vcxproj", "{929C90AE-483F-AC80-EF93-226199F9E428}"
ProjectSection(myProperties) = preProject
lib = "True"
@@ -298,6 +306,22 @@ Global
{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|Win32.Build.0 = Release-DLL|Win32
{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|x64.ActiveCfg = Release-DLL|x64
{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|x64.Build.0 = Release-DLL|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug|Win32.ActiveCfg = Debug|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug|x64.ActiveCfg = Debug|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release|Win32.ActiveCfg = Release|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release|x64.ActiveCfg = Release|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug|Win32.Build.0 = Debug|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug|x64.Build.0 = Debug|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release|Win32.Build.0 = Release|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release|x64.Build.0 = Release|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug-DLL|Win32.ActiveCfg = Debug|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug-DLL|Win32.Build.0 = Debug|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug-DLL|x64.ActiveCfg = Debug|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Debug-DLL|x64.Build.0 = Debug|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release-DLL|Win32.ActiveCfg = Release|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release-DLL|Win32.Build.0 = Release|Win32
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release-DLL|x64.ActiveCfg = Release|x64
+ {3589BCA3-CB0E-58FE-2F67-C4475D5CA517}.Release-DLL|x64.Build.0 = Release|x64
{929C90AE-483F-AC80-EF93-226199F9E428}.Debug|Win32.ActiveCfg = Debug|Win32
{929C90AE-483F-AC80-EF93-226199F9E428}.Debug|x64.ActiveCfg = Debug|x64
{929C90AE-483F-AC80-EF93-226199F9E428}.Release|Win32.ActiveCfg = Release|Win32
diff --git a/vsprojects/vcxproj/gpr/gpr.vcxproj b/vsprojects/vcxproj/gpr/gpr.vcxproj
index cdb128e48e..870246cbe1 100644
--- a/vsprojects/vcxproj/gpr/gpr.vcxproj
+++ b/vsprojects/vcxproj/gpr/gpr.vcxproj
@@ -147,6 +147,20 @@
</ItemDefinitionGroup>
<ItemGroup>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\alloc.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_gcc_atomic.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_gcc_sync.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_win32.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\log.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\port_platform.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\slice.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\slice_buffer.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_generic.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_posix.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_win32.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\time.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\support\alloc.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\support\atm.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\support\atm_gcc_atomic.h" />
@@ -175,20 +189,6 @@
<ClInclude Include="$(SolutionDir)\..\include\grpc\support\tls_msvc.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\support\tls_pthread.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\support\useful.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\alloc.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_gcc_atomic.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_gcc_sync.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_win32.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\log.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\port_platform.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\slice.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\slice_buffer.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_generic.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_posix.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_win32.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\time.h" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\profiling\timers.h" />
diff --git a/vsprojects/vcxproj/gpr/gpr.vcxproj.filters b/vsprojects/vcxproj/gpr/gpr.vcxproj.filters
index 8af6fdd44c..b932420d98 100644
--- a/vsprojects/vcxproj/gpr/gpr.vcxproj.filters
+++ b/vsprojects/vcxproj/gpr/gpr.vcxproj.filters
@@ -135,6 +135,48 @@
</ClCompile>
</ItemGroup>
<ItemGroup>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\alloc.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_gcc_atomic.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_gcc_sync.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_win32.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\log.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\port_platform.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\slice.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\slice_buffer.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_generic.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_posix.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_win32.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\time.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
<ClInclude Include="$(SolutionDir)\..\include\grpc\support\alloc.h">
<Filter>include\grpc\support</Filter>
</ClInclude>
@@ -219,48 +261,6 @@
<ClInclude Include="$(SolutionDir)\..\include\grpc\support\useful.h">
<Filter>include\grpc\support</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\alloc.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_gcc_atomic.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_gcc_sync.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_win32.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\log.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\port_platform.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\slice.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\slice_buffer.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_generic.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_posix.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_win32.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\time.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\profiling\timers.h">
diff --git a/vsprojects/vcxproj/grpc++/grpc++.vcxproj b/vsprojects/vcxproj/grpc++/grpc++.vcxproj
index d29e68902f..2c644215de 100644
--- a/vsprojects/vcxproj/grpc++/grpc++.vcxproj
+++ b/vsprojects/vcxproj/grpc++/grpc++.vcxproj
@@ -268,6 +268,37 @@
<ClInclude Include="$(SolutionDir)\..\include\grpc++\grpc++.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\call.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\client_unary_call.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\async_stream.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\async_unary_call.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\call.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\call_hook.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\channel_interface.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\client_context.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\client_unary_call.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\completion_queue.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\completion_queue_tag.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\config.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\config_protobuf.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\core_codegen_interface.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\grpc_library.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\method_handler_impl.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\proto_utils.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\rpc_method.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\rpc_service_method.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\security\auth_context.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\serialization_traits.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\server_context.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\server_interface.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\service_type.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\status.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\status_code_enum.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\string_ref.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\stub_options.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_cxx11.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_no_cxx11.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_stream.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\time.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\grpc_library.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\method_handler_impl.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\proto_utils.h" />
@@ -302,62 +333,18 @@
<ClInclude Include="$(SolutionDir)\..\include\grpc++\support\stub_options.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\support\sync_stream.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\support\time.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\async_stream.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\async_unary_call.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\call.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\call_hook.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\channel_interface.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\client_context.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\client_unary_call.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\completion_queue.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\completion_queue_tag.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\config.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\config_protobuf.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\core_codegen_interface.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\grpc_library.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\method_handler_impl.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\proto_utils.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\rpc_method.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\rpc_service_method.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\security\auth_context.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\serialization_traits.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\server_context.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\server_interface.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\service_type.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\status.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\status_code_enum.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\string_ref.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\stub_options.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_cxx11.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_no_cxx11.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_stream.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\time.h" />
</ItemGroup>
<ItemGroup>
- <ClInclude Include="$(SolutionDir)\..\src\cpp\client\secure_credentials.h" />
- <ClInclude Include="$(SolutionDir)\..\src\cpp\common\core_codegen.h" />
- <ClInclude Include="$(SolutionDir)\..\src\cpp\common\secure_auth_context.h" />
- <ClInclude Include="$(SolutionDir)\..\src\cpp\server\secure_server_credentials.h" />
<ClInclude Include="$(SolutionDir)\..\src\cpp\client\create_channel_internal.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\cpp\client\secure_credentials.h" />
<ClInclude Include="$(SolutionDir)\..\src\cpp\common\core_codegen.h" />
<ClInclude Include="$(SolutionDir)\..\src\cpp\common\create_auth_context.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\cpp\common\secure_auth_context.h" />
<ClInclude Include="$(SolutionDir)\..\src\cpp\server\dynamic_thread_pool.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\cpp\server\secure_server_credentials.h" />
<ClInclude Include="$(SolutionDir)\..\src\cpp\server\thread_pool_interface.h" />
</ItemGroup>
<ItemGroup>
- <ClCompile Include="$(SolutionDir)\..\src\cpp\client\secure_credentials.cc">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\cpp\common\auth_property_iterator.cc">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\cpp\common\secure_auth_context.cc">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\cpp\common\secure_channel_arguments.cc">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\cpp\common\secure_create_auth_context.cc">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\cpp\server\secure_server_credentials.cc">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\client\channel.cc">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\client\client_context.cc">
@@ -372,6 +359,12 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\client\insecure_credentials.cc">
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\cpp\client\secure_credentials.cc">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\cpp\codegen\codegen_init.cc">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\cpp\common\auth_property_iterator.cc">
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\common\channel_arguments.cc">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\common\completion_queue.cc">
@@ -380,6 +373,12 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\common\rpc_method.cc">
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\cpp\common\secure_auth_context.cc">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\cpp\common\secure_channel_arguments.cc">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\cpp\common\secure_create_auth_context.cc">
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\server\async_generic_service.cc">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\server\create_default_thread_pool.cc">
@@ -388,6 +387,8 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\server\insecure_server_credentials.cc">
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\cpp\server\secure_server_credentials.cc">
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\server\server.cc">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\server\server_builder.cc">
@@ -406,8 +407,6 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\util\time.cc">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\cpp\codegen\codegen_init.cc">
- </ClCompile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc\grpc.vcxproj">
diff --git a/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters b/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters
index c9b3bb9500..35468ea34c 100644
--- a/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc++/grpc++.vcxproj.filters
@@ -1,24 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
- <ClCompile Include="$(SolutionDir)\..\src\cpp\client\secure_credentials.cc">
- <Filter>src\cpp\client</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\cpp\common\auth_property_iterator.cc">
- <Filter>src\cpp\common</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\cpp\common\secure_auth_context.cc">
- <Filter>src\cpp\common</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\cpp\common\secure_channel_arguments.cc">
- <Filter>src\cpp\common</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\cpp\common\secure_create_auth_context.cc">
- <Filter>src\cpp\common</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\cpp\server\secure_server_credentials.cc">
- <Filter>src\cpp\server</Filter>
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\client\channel.cc">
<Filter>src\cpp\client</Filter>
</ClCompile>
@@ -40,6 +22,15 @@
<ClCompile Include="$(SolutionDir)\..\src\cpp\client\insecure_credentials.cc">
<Filter>src\cpp\client</Filter>
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\cpp\client\secure_credentials.cc">
+ <Filter>src\cpp\client</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\cpp\codegen\codegen_init.cc">
+ <Filter>src\cpp\codegen</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\cpp\common\auth_property_iterator.cc">
+ <Filter>src\cpp\common</Filter>
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\common\channel_arguments.cc">
<Filter>src\cpp\common</Filter>
</ClCompile>
@@ -52,6 +43,15 @@
<ClCompile Include="$(SolutionDir)\..\src\cpp\common\rpc_method.cc">
<Filter>src\cpp\common</Filter>
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\cpp\common\secure_auth_context.cc">
+ <Filter>src\cpp\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\cpp\common\secure_channel_arguments.cc">
+ <Filter>src\cpp\common</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\cpp\common\secure_create_auth_context.cc">
+ <Filter>src\cpp\common</Filter>
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\server\async_generic_service.cc">
<Filter>src\cpp\server</Filter>
</ClCompile>
@@ -64,6 +64,9 @@
<ClCompile Include="$(SolutionDir)\..\src\cpp\server\insecure_server_credentials.cc">
<Filter>src\cpp\server</Filter>
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\cpp\server\secure_server_credentials.cc">
+ <Filter>src\cpp\server</Filter>
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\server\server.cc">
<Filter>src\cpp\server</Filter>
</ClCompile>
@@ -91,9 +94,6 @@
<ClCompile Include="$(SolutionDir)\..\src\cpp\util\time.cc">
<Filter>src\cpp\util</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\cpp\codegen\codegen_init.cc">
- <Filter>src\cpp\codegen</Filter>
- </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(SolutionDir)\..\include\grpc++\alarm.h">
@@ -126,6 +126,99 @@
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\client_unary_call.h">
<Filter>include\grpc++\impl</Filter>
</ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\async_stream.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\async_unary_call.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\call.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\call_hook.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\channel_interface.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\client_context.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\client_unary_call.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\completion_queue.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\completion_queue_tag.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\config.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\config_protobuf.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\core_codegen_interface.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\grpc_library.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\method_handler_impl.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\proto_utils.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\rpc_method.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\rpc_service_method.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\security\auth_context.h">
+ <Filter>include\grpc++\impl\codegen\security</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\serialization_traits.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\server_context.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\server_interface.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\service_type.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\status.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\status_code_enum.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\string_ref.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\stub_options.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_cxx11.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_no_cxx11.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_stream.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\time.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\grpc_library.h">
<Filter>include\grpc++\impl</Filter>
</ClInclude>
@@ -228,114 +321,12 @@
<ClInclude Include="$(SolutionDir)\..\include\grpc++\support\time.h">
<Filter>include\grpc++\support</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\async_stream.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\async_unary_call.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\call.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\call_hook.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\channel_interface.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\client_context.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\client_unary_call.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\completion_queue.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\completion_queue_tag.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\config.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\config_protobuf.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\core_codegen_interface.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\grpc_library.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\method_handler_impl.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\proto_utils.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\rpc_method.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\rpc_service_method.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\security\auth_context.h">
- <Filter>include\grpc++\impl\codegen\security</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\serialization_traits.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\server_context.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\server_interface.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\service_type.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\status.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\status_code_enum.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\string_ref.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\stub_options.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_cxx11.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_no_cxx11.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_stream.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\time.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
</ItemGroup>
<ItemGroup>
- <ClInclude Include="$(SolutionDir)\..\src\cpp\client\secure_credentials.h">
+ <ClInclude Include="$(SolutionDir)\..\src\cpp\client\create_channel_internal.h">
<Filter>src\cpp\client</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\cpp\common\core_codegen.h">
- <Filter>src\cpp\common</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\cpp\common\secure_auth_context.h">
- <Filter>src\cpp\common</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\cpp\server\secure_server_credentials.h">
- <Filter>src\cpp\server</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\cpp\client\create_channel_internal.h">
+ <ClInclude Include="$(SolutionDir)\..\src\cpp\client\secure_credentials.h">
<Filter>src\cpp\client</Filter>
</ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\cpp\common\core_codegen.h">
@@ -344,9 +335,15 @@
<ClInclude Include="$(SolutionDir)\..\src\cpp\common\create_auth_context.h">
<Filter>src\cpp\common</Filter>
</ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\cpp\common\secure_auth_context.h">
+ <Filter>src\cpp\common</Filter>
+ </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\cpp\server\dynamic_thread_pool.h">
<Filter>src\cpp\server</Filter>
</ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\cpp\server\secure_server_credentials.h">
+ <Filter>src\cpp\server</Filter>
+ </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\cpp\server\thread_pool_interface.h">
<Filter>src\cpp\server</Filter>
</ClInclude>
diff --git a/vsprojects/vcxproj/grpc++_codegen_lib/grpc++_codegen_lib.vcxproj b/vsprojects/vcxproj/grpc++_codegen_lib/grpc++_codegen_lib.vcxproj
index de2526bd87..fa56d2a099 100644
--- a/vsprojects/vcxproj/grpc++_codegen_lib/grpc++_codegen_lib.vcxproj
+++ b/vsprojects/vcxproj/grpc++_codegen_lib/grpc++_codegen_lib.vcxproj
@@ -147,26 +147,6 @@
</ItemDefinitionGroup>
<ItemGroup>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\alloc.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_gcc_atomic.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_gcc_sync.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_win32.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\log.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\port_platform.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\slice.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\slice_buffer.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_generic.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_posix.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_win32.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\time.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\compression_types.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\connectivity_state.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\grpc_types.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\propagation_bits.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\status.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\async_stream.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\async_unary_call.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\call.h" />
@@ -198,6 +178,26 @@
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_no_cxx11.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_stream.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\time.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\alloc.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_gcc_atomic.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_gcc_sync.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_win32.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\compression_types.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\connectivity_state.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\grpc_types.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\log.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\port_platform.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\propagation_bits.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\slice.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\slice_buffer.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\status.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_generic.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_posix.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_win32.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\time.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(SolutionDir)\..\src\cpp\codegen\codegen_init.cc">
diff --git a/vsprojects/vcxproj/grpc++_codegen_lib/grpc++_codegen_lib.vcxproj.filters b/vsprojects/vcxproj/grpc++_codegen_lib/grpc++_codegen_lib.vcxproj.filters
index 3cc00829d8..3259e98707 100644
--- a/vsprojects/vcxproj/grpc++_codegen_lib/grpc++_codegen_lib.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc++_codegen_lib/grpc++_codegen_lib.vcxproj.filters
@@ -6,66 +6,6 @@
</ClCompile>
</ItemGroup>
<ItemGroup>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\alloc.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_gcc_atomic.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_gcc_sync.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_win32.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\log.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\port_platform.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\slice.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\slice_buffer.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_generic.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_posix.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_win32.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\time.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\compression_types.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\connectivity_state.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\grpc_types.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\propagation_bits.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\status.h">
- <Filter>include\grpc\impl\codegen</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\async_stream.h">
<Filter>include\grpc++\impl\codegen</Filter>
</ClInclude>
@@ -159,6 +99,66 @@
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\time.h">
<Filter>include\grpc++\impl\codegen</Filter>
</ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\alloc.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_gcc_atomic.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_gcc_sync.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_win32.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\compression_types.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\connectivity_state.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\grpc_types.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\log.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\port_platform.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\propagation_bits.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\slice.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\slice_buffer.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\status.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_generic.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_posix.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_win32.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\time.h">
+ <Filter>include\grpc\impl\codegen</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
diff --git a/vsprojects/vcxproj/grpc++_test_util/grpc++_test_util.vcxproj b/vsprojects/vcxproj/grpc++_test_util/grpc++_test_util.vcxproj
index 33860af620..0b4498f22e 100644
--- a/vsprojects/vcxproj/grpc++_test_util/grpc++_test_util.vcxproj
+++ b/vsprojects/vcxproj/grpc++_test_util/grpc++_test_util.vcxproj
@@ -156,13 +156,13 @@
<ClInclude Include="$(SolutionDir)\..\test\cpp\util\test_credentials_provider.h" />
</ItemGroup>
<ItemGroup>
- <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\echo_messages.pb.cc">
+ <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\duplicate\echo_duplicate.pb.cc">
</ClCompile>
- <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\echo_messages.pb.h">
+ <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\duplicate\echo_duplicate.pb.h">
</ClInclude>
- <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\echo_messages.grpc.pb.cc">
+ <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\duplicate\echo_duplicate.grpc.pb.cc">
</ClCompile>
- <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\echo_messages.grpc.pb.h">
+ <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\duplicate\echo_duplicate.grpc.pb.h">
</ClInclude>
<ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\echo.pb.cc">
</ClCompile>
@@ -172,13 +172,13 @@
</ClCompile>
<ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\echo.grpc.pb.h">
</ClInclude>
- <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\duplicate\echo_duplicate.pb.cc">
+ <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\echo_messages.pb.cc">
</ClCompile>
- <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\duplicate\echo_duplicate.pb.h">
+ <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\echo_messages.pb.h">
</ClInclude>
- <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\duplicate\echo_duplicate.grpc.pb.cc">
+ <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\echo_messages.grpc.pb.cc">
</ClCompile>
- <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\duplicate\echo_duplicate.grpc.pb.h">
+ <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\echo_messages.grpc.pb.h">
</ClInclude>
<ClCompile Include="$(SolutionDir)\..\test\cpp\end2end\test_service_impl.cc">
</ClCompile>
diff --git a/vsprojects/vcxproj/grpc++_test_util/grpc++_test_util.vcxproj.filters b/vsprojects/vcxproj/grpc++_test_util/grpc++_test_util.vcxproj.filters
index b35ba1fd91..3a16c65747 100644
--- a/vsprojects/vcxproj/grpc++_test_util/grpc++_test_util.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc++_test_util/grpc++_test_util.vcxproj.filters
@@ -1,14 +1,14 @@
<?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\echo_messages.proto">
- <Filter>src\proto\grpc\testing</Filter>
+ <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\duplicate\echo_duplicate.proto">
+ <Filter>src\proto\grpc\testing\duplicate</Filter>
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\echo.proto">
<Filter>src\proto\grpc\testing</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\duplicate\echo_duplicate.proto">
- <Filter>src\proto\grpc\testing\duplicate</Filter>
+ <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\echo_messages.proto">
+ <Filter>src\proto\grpc\testing</Filter>
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\test\cpp\end2end\test_service_impl.cc">
<Filter>test\cpp\end2end</Filter>
diff --git a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj
index 3d1aee09bd..7455e88b28 100644
--- a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj
+++ b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj
@@ -268,6 +268,37 @@
<ClInclude Include="$(SolutionDir)\..\include\grpc++\grpc++.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\call.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\client_unary_call.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\async_stream.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\async_unary_call.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\call.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\call_hook.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\channel_interface.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\client_context.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\client_unary_call.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\completion_queue.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\completion_queue_tag.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\config.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\config_protobuf.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\core_codegen_interface.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\grpc_library.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\method_handler_impl.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\proto_utils.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\rpc_method.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\rpc_service_method.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\security\auth_context.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\serialization_traits.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\server_context.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\server_interface.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\service_type.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\status.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\status_code_enum.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\string_ref.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\stub_options.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_cxx11.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_no_cxx11.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_stream.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\time.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\grpc_library.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\method_handler_impl.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\proto_utils.h" />
@@ -302,37 +333,6 @@
<ClInclude Include="$(SolutionDir)\..\include\grpc++\support\stub_options.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\support\sync_stream.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc++\support\time.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\async_stream.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\async_unary_call.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\call.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\call_hook.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\channel_interface.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\client_context.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\client_unary_call.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\completion_queue.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\completion_queue_tag.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\config.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\config_protobuf.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\core_codegen_interface.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\grpc_library.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\method_handler_impl.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\proto_utils.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\rpc_method.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\rpc_service_method.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\security\auth_context.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\serialization_traits.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\server_context.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\server_interface.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\service_type.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\status.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\status_code_enum.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\string_ref.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\stub_options.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_cxx11.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_no_cxx11.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_stream.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\time.h" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(SolutionDir)\..\src\cpp\client\create_channel_internal.h" />
@@ -342,8 +342,6 @@
<ClInclude Include="$(SolutionDir)\..\src\cpp\server\thread_pool_interface.h" />
</ItemGroup>
<ItemGroup>
- <ClCompile Include="$(SolutionDir)\..\src\cpp\common\insecure_create_auth_context.cc">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\client\channel.cc">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\client\client_context.cc">
@@ -358,12 +356,16 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\client\insecure_credentials.cc">
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\cpp\codegen\codegen_init.cc">
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\common\channel_arguments.cc">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\common\completion_queue.cc">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\common\core_codegen.cc">
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\cpp\common\insecure_create_auth_context.cc">
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\common\rpc_method.cc">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\server\async_generic_service.cc">
@@ -392,8 +394,6 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\util\time.cc">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\cpp\codegen\codegen_init.cc">
- </ClCompile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\gpr\gpr.vcxproj">
diff --git a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
index 70a23bfae1..dda90b1094 100644
--- a/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
@@ -1,9 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
- <ClCompile Include="$(SolutionDir)\..\src\cpp\common\insecure_create_auth_context.cc">
- <Filter>src\cpp\common</Filter>
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\client\channel.cc">
<Filter>src\cpp\client</Filter>
</ClCompile>
@@ -25,6 +22,9 @@
<ClCompile Include="$(SolutionDir)\..\src\cpp\client\insecure_credentials.cc">
<Filter>src\cpp\client</Filter>
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\cpp\codegen\codegen_init.cc">
+ <Filter>src\cpp\codegen</Filter>
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\common\channel_arguments.cc">
<Filter>src\cpp\common</Filter>
</ClCompile>
@@ -34,6 +34,9 @@
<ClCompile Include="$(SolutionDir)\..\src\cpp\common\core_codegen.cc">
<Filter>src\cpp\common</Filter>
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\cpp\common\insecure_create_auth_context.cc">
+ <Filter>src\cpp\common</Filter>
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\cpp\common\rpc_method.cc">
<Filter>src\cpp\common</Filter>
</ClCompile>
@@ -76,9 +79,6 @@
<ClCompile Include="$(SolutionDir)\..\src\cpp\util\time.cc">
<Filter>src\cpp\util</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\cpp\codegen\codegen_init.cc">
- <Filter>src\cpp\codegen</Filter>
- </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(SolutionDir)\..\include\grpc++\alarm.h">
@@ -111,6 +111,99 @@
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\client_unary_call.h">
<Filter>include\grpc++\impl</Filter>
</ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\async_stream.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\async_unary_call.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\call.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\call_hook.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\channel_interface.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\client_context.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\client_unary_call.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\completion_queue.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\completion_queue_tag.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\config.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\config_protobuf.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\core_codegen_interface.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\grpc_library.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\method_handler_impl.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\proto_utils.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\rpc_method.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\rpc_service_method.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\security\auth_context.h">
+ <Filter>include\grpc++\impl\codegen\security</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\serialization_traits.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\server_context.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\server_interface.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\service_type.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\status.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\status_code_enum.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\string_ref.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\stub_options.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_cxx11.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_no_cxx11.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_stream.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\time.h">
+ <Filter>include\grpc++\impl\codegen</Filter>
+ </ClInclude>
<ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\grpc_library.h">
<Filter>include\grpc++\impl</Filter>
</ClInclude>
@@ -213,99 +306,6 @@
<ClInclude Include="$(SolutionDir)\..\include\grpc++\support\time.h">
<Filter>include\grpc++\support</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\async_stream.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\async_unary_call.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\call.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\call_hook.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\channel_interface.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\client_context.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\client_unary_call.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\completion_queue.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\completion_queue_tag.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\config.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\config_protobuf.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\core_codegen_interface.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\grpc_library.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\method_handler_impl.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\proto_utils.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\rpc_method.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\rpc_service_method.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\security\auth_context.h">
- <Filter>include\grpc++\impl\codegen\security</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\serialization_traits.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\server_context.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\server_interface.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\service_type.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\status.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\status_code_enum.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\string_ref.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\stub_options.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_cxx11.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_no_cxx11.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\sync_stream.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc++\impl\codegen\time.h">
- <Filter>include\grpc++\impl\codegen</Filter>
- </ClInclude>
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(SolutionDir)\..\src\cpp\client\create_channel_internal.h">
diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj b/vsprojects/vcxproj/grpc/grpc.vcxproj
index b09abb28c4..f54c8c643d 100644
--- a/vsprojects/vcxproj/grpc/grpc.vcxproj
+++ b/vsprojects/vcxproj/grpc/grpc.vcxproj
@@ -267,23 +267,50 @@
</ItemDefinitionGroup>
<ItemGroup>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\grpc_security.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\byte_buffer.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\byte_buffer_reader.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\census.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\compression.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\grpc.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\status.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\grpc_security.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\compression_types.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\connectivity_state.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\grpc_types.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\propagation_bits.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\status.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\census.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\status.h" />
</ItemGroup>
<ItemGroup>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\grpc_filter.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\grpc_plugin.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\aggregation.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\census_interface.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\census_rpc_stats.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\grpc_filter.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\mlog.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\rpc_metric_id.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0\load_balancer.pb.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\alpn.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\bin_encoder.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\chttp2_transport.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_data.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_goaway.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_ping.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_rst_stream.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_settings.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_window_update.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\hpack_encoder.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\hpack_parser.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\hpack_table.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\http2_errors.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\huffsyms.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\incoming_metadata.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\internal.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\status_conversion.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\stream_map.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\timeout_encoding.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\varint.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\channel_args.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\channel_stack.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\channel_stack_builder.h" />
@@ -297,17 +324,12 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\client_config.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\connector.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\initial_connect_string.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policies\load_balancer_api.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policies\pick_first.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policies\round_robin.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy_factory.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy_registry.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_factory.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_registry.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\dns_resolver.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\sockaddr_resolver.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_factory.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_index.h" />
@@ -321,17 +343,16 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\closure.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\fd_posix.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\iocp_windows.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_internal.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_posix.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_posix.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_posix.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_windows.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address.h" />
@@ -359,9 +380,15 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\json\json_common.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\json\json_reader.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\json\json_writer.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\proto\grpc\lb\v0\load_balancer.pb.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\statistics\census_interface.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\statistics\census_rpc_stats.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\auth_filters.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\b64.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\credentials.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\handshake.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\json_token.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\jwt_verifier.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\secure_endpoint.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\security_connector.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\security_context.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\surface\api_trace.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\surface\call.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\surface\call_test_only.h" />
@@ -375,61 +402,102 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\surface\server.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\surface\surface_trace.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\byte_stream.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\alpn.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\bin_encoder.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_data.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_goaway.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_ping.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_rst_stream.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_settings.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_window_update.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\hpack_encoder.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\hpack_parser.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\hpack_table.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\http2_errors.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\huffsyms.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\incoming_metadata.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\internal.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\status_conversion.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\stream_map.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\timeout_encoding.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\varint.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2_transport.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\connectivity_state.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\metadata.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\metadata_batch.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\static_metadata.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\transport.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\transport_impl.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\auth_filters.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\b64.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\credentials.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\handshake.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\json_token.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\jwt_verifier.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\secure_endpoint.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\security_connector.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\security_context.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\tsi\fake_transport_security.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\tsi\ssl_transport_security.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\tsi\ssl_types.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\tsi\transport_security.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\tsi\transport_security_interface.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\aggregation.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\mlog.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\rpc_metric_id.h" />
<ClInclude Include="$(SolutionDir)\..\third_party\nanopb\pb.h" />
<ClInclude Include="$(SolutionDir)\..\third_party\nanopb\pb_common.h" />
<ClInclude Include="$(SolutionDir)\..\third_party\nanopb\pb_decode.h" />
<ClInclude Include="$(SolutionDir)\..\third_party\nanopb\pb_encode.h" />
</ItemGroup>
<ItemGroup>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\grpc_context.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\context.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\grpc_context.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\grpc_filter.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\grpc_plugin.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\initialize.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\mlog.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\operation.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\placeholders.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\tracing.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0\load_balancer.pb.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\pick_first\pick_first.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\round_robin\round_robin.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\native\dns_resolver.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\sockaddr\sockaddr_resolver.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\client\insecure\channel_create.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\client\secure\secure_channel_create.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\server\insecure\server_chttp2.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\server\secure\server_secure_chttp2.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\grpc_filter.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\alpn.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\grpc_plugin.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\bin_encoder.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\chttp2_transport.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_data.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_goaway.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_ping.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_rst_stream.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_settings.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_window_update.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\hpack_encoder.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\hpack_parser.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\hpack_table.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\huffsyms.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\incoming_metadata.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\parsing.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\status_conversion.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\stream_lists.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\stream_map.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\timeout_encoding.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\varint.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\writing.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\channel_args.c">
</ClCompile>
@@ -457,12 +525,6 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\initial_connect_string.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policies\load_balancer_api.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policies\pick_first.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policies\round_robin.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy_factory.c">
@@ -475,10 +537,6 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_registry.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\dns_resolver.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\sockaddr_resolver.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_factory.c">
@@ -497,6 +555,8 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\http\httpcli.c">
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\http\httpcli_security_connector.c">
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\http\parser.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\closure.c">
@@ -507,12 +567,14 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_windows.c">
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.c">
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\fd_posix.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iocp_windows.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr.c">
@@ -521,14 +583,6 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_windows.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_multipoller_with_epoll.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_multipoller_with_poll_posix.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_posix.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_posix.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_windows.c">
@@ -591,7 +645,33 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\json\json_writer.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\proto\grpc\lb\v0\load_balancer.pb.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\b64.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\client_auth_filter.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials_metadata.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials_posix.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials_win32.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\google_default_credentials.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\handshake.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\json_token.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\jwt_verifier.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\secure_endpoint.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\security_connector.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\security_context.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\server_auth_filter.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\alarm.c">
</ClCompile>
@@ -611,8 +691,6 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel_connectivity.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel_create.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel_init.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel_ping.c">
@@ -625,62 +703,20 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\init.c">
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\init_secure.c">
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\lame_client.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\metadata_array.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\server.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\server_chttp2.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\validate_metadata.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\version.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\byte_stream.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\alpn.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\bin_encoder.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_data.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_goaway.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_ping.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_rst_stream.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_settings.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_window_update.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\hpack_encoder.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\hpack_parser.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\hpack_table.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\huffsyms.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\incoming_metadata.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\parsing.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\status_conversion.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\stream_lists.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\stream_map.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\timeout_encoding.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\varint.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\writing.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2_transport.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\connectivity_state.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\metadata.c">
@@ -693,59 +729,13 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\transport_op_string.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\http\httpcli_security_connector.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\b64.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\client_auth_filter.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials_metadata.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials_posix.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials_win32.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\google_default_credentials.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\handshake.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\json_token.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\jwt_verifier.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\secure_endpoint.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\security_connector.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\security_context.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\server_auth_filter.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\server_secure_chttp2.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\init_secure.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\secure_channel_create.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\tsi\fake_transport_security.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\tsi\ssl_transport_security.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\tsi\transport_security.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\context.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\initialize.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\mlog.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\operation.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\placeholders.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\tracing.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\plugin_registry\grpc_plugin_registry.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\third_party\nanopb\pb_common.c">
</ClCompile>
diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj.filters b/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
index 81136ebb93..c00b928571 100644
--- a/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc/grpc.vcxproj.filters
@@ -1,14 +1,125 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\grpc_context.c">
- <Filter>src\core\lib\census</Filter>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\context.c">
+ <Filter>src\core\ext\census</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\grpc_filter.c">
- <Filter>src\core\lib\census</Filter>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\grpc_context.c">
+ <Filter>src\core\ext\census</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\grpc_plugin.c">
- <Filter>src\core\lib\census</Filter>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\grpc_filter.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\grpc_plugin.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\initialize.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\mlog.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\operation.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\placeholders.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\tracing.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.c">
+ <Filter>src\core\ext\lb_policy\grpclb</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0\load_balancer.pb.c">
+ <Filter>src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\pick_first\pick_first.c">
+ <Filter>src\core\ext\lb_policy\pick_first</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\round_robin\round_robin.c">
+ <Filter>src\core\ext\lb_policy\round_robin</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\native\dns_resolver.c">
+ <Filter>src\core\ext\resolver\dns\native</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\sockaddr\sockaddr_resolver.c">
+ <Filter>src\core\ext\resolver\sockaddr</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\client\insecure\channel_create.c">
+ <Filter>src\core\ext\transport\chttp2\client\insecure</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\client\secure\secure_channel_create.c">
+ <Filter>src\core\ext\transport\chttp2\client\secure</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\server\insecure\server_chttp2.c">
+ <Filter>src\core\ext\transport\chttp2\server\insecure</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\server\secure\server_secure_chttp2.c">
+ <Filter>src\core\ext\transport\chttp2\server\secure</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\alpn.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\bin_encoder.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\chttp2_transport.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_data.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_goaway.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_ping.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_rst_stream.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_settings.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_window_update.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\hpack_encoder.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\hpack_parser.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\hpack_table.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\huffsyms.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\incoming_metadata.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\parsing.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\status_conversion.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\stream_lists.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\stream_map.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\timeout_encoding.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\varint.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\writing.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\channel_args.c">
<Filter>src\core\lib\channel</Filter>
@@ -49,15 +160,6 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\initial_connect_string.c">
<Filter>src\core\lib\client_config</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policies\load_balancer_api.c">
- <Filter>src\core\lib\client_config\lb_policies</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policies\pick_first.c">
- <Filter>src\core\lib\client_config\lb_policies</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policies\round_robin.c">
- <Filter>src\core\lib\client_config\lb_policies</Filter>
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy.c">
<Filter>src\core\lib\client_config</Filter>
</ClCompile>
@@ -76,12 +178,6 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_registry.c">
<Filter>src\core\lib\client_config</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\dns_resolver.c">
- <Filter>src\core\lib\client_config\resolvers</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\sockaddr_resolver.c">
- <Filter>src\core\lib\client_config\resolvers</Filter>
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel.c">
<Filter>src\core\lib\client_config</Filter>
</ClCompile>
@@ -109,6 +205,9 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\http\httpcli.c">
<Filter>src\core\lib\http</Filter>
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\http\httpcli_security_connector.c">
+ <Filter>src\core\lib\http</Filter>
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\http\parser.c">
<Filter>src\core\lib\http</Filter>
</ClCompile>
@@ -124,13 +223,16 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_windows.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\fd_posix.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.c">
+ <Filter>src\core\lib\iomgr</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iocp_windows.c">
@@ -145,18 +247,6 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_windows.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_multipoller_with_epoll.c">
- <Filter>src\core\lib\iomgr</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_multipoller_with_poll_posix.c">
- <Filter>src\core\lib\iomgr</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_posix.c">
- <Filter>src\core\lib\iomgr</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_posix.c">
- <Filter>src\core\lib\iomgr</Filter>
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
@@ -250,8 +340,47 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\json\json_writer.c">
<Filter>src\core\lib\json</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\proto\grpc\lb\v0\load_balancer.pb.c">
- <Filter>src\core\lib\proto\grpc\lb\v0</Filter>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\b64.c">
+ <Filter>src\core\lib\security</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\client_auth_filter.c">
+ <Filter>src\core\lib\security</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials.c">
+ <Filter>src\core\lib\security</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials_metadata.c">
+ <Filter>src\core\lib\security</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials_posix.c">
+ <Filter>src\core\lib\security</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials_win32.c">
+ <Filter>src\core\lib\security</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\google_default_credentials.c">
+ <Filter>src\core\lib\security</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\handshake.c">
+ <Filter>src\core\lib\security</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\json_token.c">
+ <Filter>src\core\lib\security</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\jwt_verifier.c">
+ <Filter>src\core\lib\security</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\secure_endpoint.c">
+ <Filter>src\core\lib\security</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\security_connector.c">
+ <Filter>src\core\lib\security</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\security_context.c">
+ <Filter>src\core\lib\security</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\server_auth_filter.c">
+ <Filter>src\core\lib\security</Filter>
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\alarm.c">
<Filter>src\core\lib\surface</Filter>
@@ -280,9 +409,6 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel_connectivity.c">
<Filter>src\core\lib\surface</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel_create.c">
- <Filter>src\core\lib\surface</Filter>
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel_init.c">
<Filter>src\core\lib\surface</Filter>
</ClCompile>
@@ -301,6 +427,9 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\init.c">
<Filter>src\core\lib\surface</Filter>
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\init_secure.c">
+ <Filter>src\core\lib\surface</Filter>
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\lame_client.c">
<Filter>src\core\lib\surface</Filter>
</ClCompile>
@@ -310,9 +439,6 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\server.c">
<Filter>src\core\lib\surface</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\server_chttp2.c">
- <Filter>src\core\lib\surface</Filter>
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\validate_metadata.c">
<Filter>src\core\lib\surface</Filter>
</ClCompile>
@@ -322,69 +448,6 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\byte_stream.c">
<Filter>src\core\lib\transport</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\alpn.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\bin_encoder.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_data.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_goaway.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_ping.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_rst_stream.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_settings.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_window_update.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\hpack_encoder.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\hpack_parser.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\hpack_table.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\huffsyms.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\incoming_metadata.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\parsing.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\status_conversion.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\stream_lists.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\stream_map.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\timeout_encoding.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\varint.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\writing.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2_transport.c">
- <Filter>src\core\lib\transport</Filter>
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\connectivity_state.c">
<Filter>src\core\lib\transport</Filter>
</ClCompile>
@@ -403,60 +466,6 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\transport_op_string.c">
<Filter>src\core\lib\transport</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\http\httpcli_security_connector.c">
- <Filter>src\core\lib\http</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\b64.c">
- <Filter>src\core\lib\security</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\client_auth_filter.c">
- <Filter>src\core\lib\security</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials.c">
- <Filter>src\core\lib\security</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials_metadata.c">
- <Filter>src\core\lib\security</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials_posix.c">
- <Filter>src\core\lib\security</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials_win32.c">
- <Filter>src\core\lib\security</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\google_default_credentials.c">
- <Filter>src\core\lib\security</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\handshake.c">
- <Filter>src\core\lib\security</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\json_token.c">
- <Filter>src\core\lib\security</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\jwt_verifier.c">
- <Filter>src\core\lib\security</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\secure_endpoint.c">
- <Filter>src\core\lib\security</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\security_connector.c">
- <Filter>src\core\lib\security</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\security_context.c">
- <Filter>src\core\lib\security</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\server_auth_filter.c">
- <Filter>src\core\lib\security</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\server_secure_chttp2.c">
- <Filter>src\core\lib\security</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\init_secure.c">
- <Filter>src\core\lib\surface</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\secure_channel_create.c">
- <Filter>src\core\lib\surface</Filter>
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\tsi\fake_transport_security.c">
<Filter>src\core\lib\tsi</Filter>
</ClCompile>
@@ -466,23 +475,8 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\tsi\transport_security.c">
<Filter>src\core\lib\tsi</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\context.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\initialize.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\mlog.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\operation.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\placeholders.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\tracing.c">
- <Filter>src\core\lib\census</Filter>
+ <ClCompile Include="$(SolutionDir)\..\src\core\plugin_registry\grpc_plugin_registry.c">
+ <Filter>src\core\plugin_registry</Filter>
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\third_party\nanopb\pb_common.c">
<Filter>third_party\nanopb</Filter>
@@ -495,22 +489,22 @@
</ClCompile>
</ItemGroup>
<ItemGroup>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\grpc_security.h">
- <Filter>include\grpc</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\include\grpc\byte_buffer.h">
<Filter>include\grpc</Filter>
</ClInclude>
<ClInclude Include="$(SolutionDir)\..\include\grpc\byte_buffer_reader.h">
<Filter>include\grpc</Filter>
</ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\census.h">
+ <Filter>include\grpc</Filter>
+ </ClInclude>
<ClInclude Include="$(SolutionDir)\..\include\grpc\compression.h">
<Filter>include\grpc</Filter>
</ClInclude>
<ClInclude Include="$(SolutionDir)\..\include\grpc\grpc.h">
<Filter>include\grpc</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\status.h">
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\grpc_security.h">
<Filter>include\grpc</Filter>
</ClInclude>
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer.h">
@@ -531,16 +525,97 @@
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\status.h">
<Filter>include\grpc\impl\codegen</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\census.h">
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\status.h">
<Filter>include\grpc</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\grpc_filter.h">
- <Filter>src\core\lib\census</Filter>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\aggregation.h">
+ <Filter>src\core\ext\census</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\census_interface.h">
+ <Filter>src\core\ext\census</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\census_rpc_stats.h">
+ <Filter>src\core\ext\census</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\grpc_filter.h">
+ <Filter>src\core\ext\census</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\mlog.h">
+ <Filter>src\core\ext\census</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\rpc_metric_id.h">
+ <Filter>src\core\ext\census</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.h">
+ <Filter>src\core\ext\lb_policy\grpclb</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0\load_balancer.pb.h">
+ <Filter>src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\alpn.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\bin_encoder.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\chttp2_transport.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_data.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_goaway.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_ping.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_rst_stream.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_settings.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_window_update.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\hpack_encoder.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\hpack_parser.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\hpack_table.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\http2_errors.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\huffsyms.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\grpc_plugin.h">
- <Filter>src\core\lib\census</Filter>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\incoming_metadata.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\internal.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\status_conversion.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\stream_map.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\timeout_encoding.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\varint.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
</ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\channel_args.h">
<Filter>src\core\lib\channel</Filter>
@@ -581,15 +656,6 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\initial_connect_string.h">
<Filter>src\core\lib\client_config</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policies\load_balancer_api.h">
- <Filter>src\core\lib\client_config\lb_policies</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policies\pick_first.h">
- <Filter>src\core\lib\client_config\lb_policies</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policies\round_robin.h">
- <Filter>src\core\lib\client_config\lb_policies</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy.h">
<Filter>src\core\lib\client_config</Filter>
</ClInclude>
@@ -608,12 +674,6 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_registry.h">
<Filter>src\core\lib\client_config</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\dns_resolver.h">
- <Filter>src\core\lib\client_config\resolvers</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\sockaddr_resolver.h">
- <Filter>src\core\lib\client_config\resolvers</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel.h">
<Filter>src\core\lib\client_config</Filter>
</ClInclude>
@@ -653,13 +713,16 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.h">
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.h">
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.h">
+ <Filter>src\core\lib\iomgr</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\fd_posix.h">
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\iocp_windows.h">
@@ -677,15 +740,9 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_posix.h">
- <Filter>src\core\lib\iomgr</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_posix.h">
- <Filter>src\core\lib\iomgr</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
@@ -767,14 +824,32 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\json\json_writer.h">
<Filter>src\core\lib\json</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\proto\grpc\lb\v0\load_balancer.pb.h">
- <Filter>src\core\lib\proto\grpc\lb\v0</Filter>
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\auth_filters.h">
+ <Filter>src\core\lib\security</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\statistics\census_interface.h">
- <Filter>src\core\lib\statistics</Filter>
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\b64.h">
+ <Filter>src\core\lib\security</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\statistics\census_rpc_stats.h">
- <Filter>src\core\lib\statistics</Filter>
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\credentials.h">
+ <Filter>src\core\lib\security</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\handshake.h">
+ <Filter>src\core\lib\security</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\json_token.h">
+ <Filter>src\core\lib\security</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\jwt_verifier.h">
+ <Filter>src\core\lib\security</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\secure_endpoint.h">
+ <Filter>src\core\lib\security</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\security_connector.h">
+ <Filter>src\core\lib\security</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\security_context.h">
+ <Filter>src\core\lib\security</Filter>
</ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\surface\api_trace.h">
<Filter>src\core\lib\surface</Filter>
@@ -815,69 +890,6 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\byte_stream.h">
<Filter>src\core\lib\transport</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\alpn.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\bin_encoder.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_data.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_goaway.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_ping.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_rst_stream.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_settings.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_window_update.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\hpack_encoder.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\hpack_parser.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\hpack_table.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\http2_errors.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\huffsyms.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\incoming_metadata.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\internal.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\status_conversion.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\stream_map.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\timeout_encoding.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\varint.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2_transport.h">
- <Filter>src\core\lib\transport</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\connectivity_state.h">
<Filter>src\core\lib\transport</Filter>
</ClInclude>
@@ -896,33 +908,6 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\transport_impl.h">
<Filter>src\core\lib\transport</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\auth_filters.h">
- <Filter>src\core\lib\security</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\b64.h">
- <Filter>src\core\lib\security</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\credentials.h">
- <Filter>src\core\lib\security</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\handshake.h">
- <Filter>src\core\lib\security</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\json_token.h">
- <Filter>src\core\lib\security</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\jwt_verifier.h">
- <Filter>src\core\lib\security</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\secure_endpoint.h">
- <Filter>src\core\lib\security</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\security_connector.h">
- <Filter>src\core\lib\security</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\security\security_context.h">
- <Filter>src\core\lib\security</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\tsi\fake_transport_security.h">
<Filter>src\core\lib\tsi</Filter>
</ClInclude>
@@ -938,15 +923,6 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\tsi\transport_security_interface.h">
<Filter>src\core\lib\tsi</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\aggregation.h">
- <Filter>src\core\lib\census</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\mlog.h">
- <Filter>src\core\lib\census</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\rpc_metric_id.h">
- <Filter>src\core\lib\census</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\third_party\nanopb\pb.h">
<Filter>third_party\nanopb</Filter>
</ClInclude>
@@ -980,24 +956,84 @@
<Filter Include="src\core">
<UniqueIdentifier>{ea745680-21ea-9c5e-679b-64dc40562d08}</UniqueIdentifier>
</Filter>
+ <Filter Include="src\core\ext">
+ <UniqueIdentifier>{3f32a58f-394f-5f13-06aa-6cc52cc2daaf}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\census">
+ <UniqueIdentifier>{9bf70bd2-f553-11b2-c237-abd148971eea}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\lb_policy">
+ <UniqueIdentifier>{030f00ff-6c54-76c8-12df-37e3008335d1}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\lb_policy\grpclb">
+ <UniqueIdentifier>{fe41339e-53fb-39b3-7457-7a0fbb238dbe}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\lb_policy\grpclb\proto">
+ <UniqueIdentifier>{a7c27f6b-6d15-01cf-76d9-c30dddea0990}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\lb_policy\grpclb\proto\grpc">
+ <UniqueIdentifier>{bc714e6d-8aba-91df-7db9-7f189f05a6ff}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\lb_policy\grpclb\proto\grpc\lb">
+ <UniqueIdentifier>{adf7e553-94ef-14fd-e845-03104f00a06f}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0">
+ <UniqueIdentifier>{0406d191-8817-38c3-a562-e3541201f424}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\lb_policy\pick_first">
+ <UniqueIdentifier>{b63ded00-b24f-708e-333f-ce199e421875}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\lb_policy\round_robin">
+ <UniqueIdentifier>{2472d352-cf94-f317-646e-72b769cea846}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\resolver">
+ <UniqueIdentifier>{6bfa6808-9dcb-8990-deed-5cf58a149dda}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\resolver\dns">
+ <UniqueIdentifier>{e8fe6413-ab8c-48d5-2c7b-aa79e3db4ab2}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\resolver\dns\native">
+ <UniqueIdentifier>{94e34be0-29d2-1731-3c1e-617ec4986acb}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\resolver\sockaddr">
+ <UniqueIdentifier>{98c1ccc2-2c91-a3d2-6040-a2e15993d51a}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\transport">
+ <UniqueIdentifier>{e3abfd0a-064e-0f2f-c8e8-7c5a7e98142a}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\transport\chttp2">
+ <UniqueIdentifier>{ac42667b-bbba-3571-20bc-7a4240ef26ca}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\transport\chttp2\client">
+ <UniqueIdentifier>{dbffebe0-eebb-577d-1860-ef6837f4cf50}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\transport\chttp2\client\insecure">
+ <UniqueIdentifier>{4e699b02-fae4-dabd-afd2-2e41b05bef0e}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\transport\chttp2\client\secure">
+ <UniqueIdentifier>{e98ed28e-8dc5-3bb4-22a2-8893831a0ab8}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\transport\chttp2\server">
+ <UniqueIdentifier>{1d36fe16-b004-6bee-c661-328234bbb469}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\transport\chttp2\server\insecure">
+ <UniqueIdentifier>{e8539863-6029-cca4-44a9-5481cacf8144}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\transport\chttp2\server\secure">
+ <UniqueIdentifier>{0afa539f-8c83-d4b9-cdea-550091f09638}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\transport\chttp2\transport">
+ <UniqueIdentifier>{6f34254e-e69f-c9b4-156d-5024bade5408}</UniqueIdentifier>
+ </Filter>
<Filter Include="src\core\lib">
<UniqueIdentifier>{5b2ded3f-84a5-f6b4-2060-286c7d1dc945}</UniqueIdentifier>
</Filter>
- <Filter Include="src\core\lib\census">
- <UniqueIdentifier>{f4108884-98c3-ac2e-c669-83cd41343975}</UniqueIdentifier>
- </Filter>
<Filter Include="src\core\lib\channel">
<UniqueIdentifier>{1931b044-90f3-cd68-b5f8-23be77ca8efc}</UniqueIdentifier>
</Filter>
<Filter Include="src\core\lib\client_config">
<UniqueIdentifier>{2f3260de-be57-d18d-6882-61d115baa159}</UniqueIdentifier>
</Filter>
- <Filter Include="src\core\lib\client_config\lb_policies">
- <UniqueIdentifier>{118d2bb5-086f-54f3-11de-26d7d7f73f9d}</UniqueIdentifier>
- </Filter>
- <Filter Include="src\core\lib\client_config\resolvers">
- <UniqueIdentifier>{b9d8db6c-2c68-1c90-fe5e-37da90f47ae6}</UniqueIdentifier>
- </Filter>
<Filter Include="src\core\lib\compression">
<UniqueIdentifier>{dadf7fe9-3f15-d431-e4f6-f987b090536c}</UniqueIdentifier>
</Filter>
@@ -1013,36 +1049,21 @@
<Filter Include="src\core\lib\json">
<UniqueIdentifier>{cb2b0073-f2a7-5c63-d182-8874b24bdf36}</UniqueIdentifier>
</Filter>
- <Filter Include="src\core\lib\proto">
- <UniqueIdentifier>{b4b19f9a-1575-8a21-0bca-537746f858b7}</UniqueIdentifier>
- </Filter>
- <Filter Include="src\core\lib\proto\grpc">
- <UniqueIdentifier>{cbc8ce67-4a97-d533-8dc3-f949c63e2771}</UniqueIdentifier>
- </Filter>
- <Filter Include="src\core\lib\proto\grpc\lb">
- <UniqueIdentifier>{933530ae-447b-ea8d-3531-98f0556960b0}</UniqueIdentifier>
- </Filter>
- <Filter Include="src\core\lib\proto\grpc\lb\v0">
- <UniqueIdentifier>{c33f944f-37d4-42fd-abc3-61f0d4400462}</UniqueIdentifier>
- </Filter>
<Filter Include="src\core\lib\security">
<UniqueIdentifier>{c4661d64-349f-01c1-1ba8-0602f9047595}</UniqueIdentifier>
</Filter>
- <Filter Include="src\core\lib\statistics">
- <UniqueIdentifier>{4dc3c48b-e931-ed47-ffa2-b4ea3a7956ec}</UniqueIdentifier>
- </Filter>
<Filter Include="src\core\lib\surface">
<UniqueIdentifier>{a21971fb-304f-da08-b1b2-7bd8df8ac373}</UniqueIdentifier>
</Filter>
<Filter Include="src\core\lib\transport">
<UniqueIdentifier>{e9d0d3fc-c100-f3e6-89b8-649f241155bf}</UniqueIdentifier>
</Filter>
- <Filter Include="src\core\lib\transport\chttp2">
- <UniqueIdentifier>{a47fedfc-b6c6-d588-14fc-6645d736bcd6}</UniqueIdentifier>
- </Filter>
<Filter Include="src\core\lib\tsi">
<UniqueIdentifier>{95ad2811-c8d0-7a42-2a73-baf03fcbf699}</UniqueIdentifier>
</Filter>
+ <Filter Include="src\core\plugin_registry">
+ <UniqueIdentifier>{02bec99b-ff39-88d7-9dea-e0ff9f4a2701}</UniqueIdentifier>
+ </Filter>
<Filter Include="third_party">
<UniqueIdentifier>{aaab30a4-2a15-732e-c141-3fbc0f0f5a7a}</UniqueIdentifier>
</Filter>
diff --git a/vsprojects/vcxproj/grpc_codegen_lib/grpc_codegen_lib.vcxproj b/vsprojects/vcxproj/grpc_codegen_lib/grpc_codegen_lib.vcxproj
index a6a5a858a4..7d7a60915f 100644
--- a/vsprojects/vcxproj/grpc_codegen_lib/grpc_codegen_lib.vcxproj
+++ b/vsprojects/vcxproj/grpc_codegen_lib/grpc_codegen_lib.vcxproj
@@ -152,21 +152,21 @@
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_gcc_atomic.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_gcc_sync.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_win32.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\compression_types.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\connectivity_state.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\grpc_types.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\log.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\port_platform.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\propagation_bits.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\slice.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\slice_buffer.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\status.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_generic.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_posix.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_win32.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\time.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\compression_types.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\connectivity_state.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\grpc_types.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\propagation_bits.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\status.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(SolutionDir)\..\vsprojects\dummy.c">
diff --git a/vsprojects/vcxproj/grpc_codegen_lib/grpc_codegen_lib.vcxproj.filters b/vsprojects/vcxproj/grpc_codegen_lib/grpc_codegen_lib.vcxproj.filters
index be1e623482..891dff031f 100644
--- a/vsprojects/vcxproj/grpc_codegen_lib/grpc_codegen_lib.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc_codegen_lib/grpc_codegen_lib.vcxproj.filters
@@ -16,49 +16,49 @@
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\atm_win32.h">
<Filter>include\grpc\impl\codegen</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\log.h">
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer.h">
<Filter>include\grpc\impl\codegen</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\port_platform.h">
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\compression_types.h">
<Filter>include\grpc\impl\codegen</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\slice.h">
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\connectivity_state.h">
<Filter>include\grpc\impl\codegen</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\slice_buffer.h">
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\grpc_types.h">
<Filter>include\grpc\impl\codegen</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync.h">
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\log.h">
<Filter>include\grpc\impl\codegen</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_generic.h">
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\port_platform.h">
<Filter>include\grpc\impl\codegen</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_posix.h">
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\propagation_bits.h">
<Filter>include\grpc\impl\codegen</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_win32.h">
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\slice.h">
<Filter>include\grpc\impl\codegen</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\time.h">
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\slice_buffer.h">
<Filter>include\grpc\impl\codegen</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer.h">
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\status.h">
<Filter>include\grpc\impl\codegen</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\compression_types.h">
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync.h">
<Filter>include\grpc\impl\codegen</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\connectivity_state.h">
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_generic.h">
<Filter>include\grpc\impl\codegen</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\grpc_types.h">
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_posix.h">
<Filter>include\grpc\impl\codegen</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\propagation_bits.h">
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\sync_win32.h">
<Filter>include\grpc\impl\codegen</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\status.h">
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\time.h">
<Filter>include\grpc\impl\codegen</Filter>
</ClInclude>
</ItemGroup>
diff --git a/vsprojects/vcxproj/grpc_test_util/grpc_test_util.vcxproj b/vsprojects/vcxproj/grpc_test_util/grpc_test_util.vcxproj
index 487ffe0fd8..668f8a5607 100644
--- a/vsprojects/vcxproj/grpc_test_util/grpc_test_util.vcxproj
+++ b/vsprojects/vcxproj/grpc_test_util/grpc_test_util.vcxproj
@@ -147,11 +147,11 @@
</ItemDefinitionGroup>
<ItemGroup>
- <ClInclude Include="$(SolutionDir)\..\test\core\end2end\data\ssl_test_data.h" />
- <ClInclude Include="$(SolutionDir)\..\test\core\security\oauth2_utils.h" />
<ClInclude Include="$(SolutionDir)\..\test\core\end2end\cq_verifier.h" />
+ <ClInclude Include="$(SolutionDir)\..\test\core\end2end\data\ssl_test_data.h" />
<ClInclude Include="$(SolutionDir)\..\test\core\end2end\fixtures\proxy.h" />
<ClInclude Include="$(SolutionDir)\..\test\core\iomgr\endpoint_tests.h" />
+ <ClInclude Include="$(SolutionDir)\..\test\core\security\oauth2_utils.h" />
<ClInclude Include="$(SolutionDir)\..\test\core\util\grpc_profiler.h" />
<ClInclude Include="$(SolutionDir)\..\test\core\util\parse_hexstring.h" />
<ClInclude Include="$(SolutionDir)\..\test\core\util\port.h" />
@@ -159,20 +159,20 @@
<ClInclude Include="$(SolutionDir)\..\test\core\util\slice_splitter.h" />
</ItemGroup>
<ItemGroup>
+ <ClCompile Include="$(SolutionDir)\..\test\core\end2end\cq_verifier.c">
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\test\core\end2end\data\server1_cert.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\test\core\end2end\data\server1_key.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\test\core\end2end\data\test_root_cert.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\test\core\security\oauth2_utils.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\test\core\end2end\cq_verifier.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\test\core\end2end\fixtures\proxy.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\test\core\iomgr\endpoint_tests.c">
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\test\core\security\oauth2_utils.c">
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\test\core\util\grpc_profiler.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\test\core\util\parse_hexstring.c">
diff --git a/vsprojects/vcxproj/grpc_test_util/grpc_test_util.vcxproj.filters b/vsprojects/vcxproj/grpc_test_util/grpc_test_util.vcxproj.filters
index 68c75e8a17..7f2876d5e4 100644
--- a/vsprojects/vcxproj/grpc_test_util/grpc_test_util.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc_test_util/grpc_test_util.vcxproj.filters
@@ -1,6 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
+ <ClCompile Include="$(SolutionDir)\..\test\core\end2end\cq_verifier.c">
+ <Filter>test\core\end2end</Filter>
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\test\core\end2end\data\server1_cert.c">
<Filter>test\core\end2end\data</Filter>
</ClCompile>
@@ -10,18 +13,15 @@
<ClCompile Include="$(SolutionDir)\..\test\core\end2end\data\test_root_cert.c">
<Filter>test\core\end2end\data</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\test\core\security\oauth2_utils.c">
- <Filter>test\core\security</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\test\core\end2end\cq_verifier.c">
- <Filter>test\core\end2end</Filter>
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\test\core\end2end\fixtures\proxy.c">
<Filter>test\core\end2end\fixtures</Filter>
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\test\core\iomgr\endpoint_tests.c">
<Filter>test\core\iomgr</Filter>
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\test\core\security\oauth2_utils.c">
+ <Filter>test\core\security</Filter>
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\test\core\util\grpc_profiler.c">
<Filter>test\core\util</Filter>
</ClCompile>
@@ -42,21 +42,21 @@
</ClCompile>
</ItemGroup>
<ItemGroup>
- <ClInclude Include="$(SolutionDir)\..\test\core\end2end\data\ssl_test_data.h">
- <Filter>test\core\end2end\data</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\test\core\security\oauth2_utils.h">
- <Filter>test\core\security</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\test\core\end2end\cq_verifier.h">
<Filter>test\core\end2end</Filter>
</ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\test\core\end2end\data\ssl_test_data.h">
+ <Filter>test\core\end2end\data</Filter>
+ </ClInclude>
<ClInclude Include="$(SolutionDir)\..\test\core\end2end\fixtures\proxy.h">
<Filter>test\core\end2end\fixtures</Filter>
</ClInclude>
<ClInclude Include="$(SolutionDir)\..\test\core\iomgr\endpoint_tests.h">
<Filter>test\core\iomgr</Filter>
</ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\test\core\security\oauth2_utils.h">
+ <Filter>test\core\security</Filter>
+ </ClInclude>
<ClInclude Include="$(SolutionDir)\..\test\core\util\grpc_profiler.h">
<Filter>test\core\util</Filter>
</ClInclude>
diff --git a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
index 0512501cfc..ec8624fb34 100644
--- a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
+++ b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj
@@ -260,20 +260,47 @@
<ItemGroup>
<ClInclude Include="$(SolutionDir)\..\include\grpc\byte_buffer.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\byte_buffer_reader.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\census.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\compression.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\grpc.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\status.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\compression_types.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\connectivity_state.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\grpc_types.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\propagation_bits.h" />
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\status.h" />
- <ClInclude Include="$(SolutionDir)\..\include\grpc\census.h" />
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\status.h" />
</ItemGroup>
<ItemGroup>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\grpc_filter.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\grpc_plugin.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\aggregation.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\census_interface.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\census_rpc_stats.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\grpc_filter.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\mlog.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\rpc_metric_id.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0\load_balancer.pb.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\alpn.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\bin_encoder.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\chttp2_transport.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_data.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_goaway.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_ping.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_rst_stream.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_settings.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_window_update.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\hpack_encoder.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\hpack_parser.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\hpack_table.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\http2_errors.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\huffsyms.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\incoming_metadata.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\internal.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\status_conversion.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\stream_map.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\timeout_encoding.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\varint.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\channel_args.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\channel_stack.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\channel_stack_builder.h" />
@@ -287,17 +314,12 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\client_config.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\connector.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\initial_connect_string.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policies\load_balancer_api.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policies\pick_first.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policies\round_robin.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy_factory.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy_registry.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_factory.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_registry.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\dns_resolver.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\sockaddr_resolver.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_factory.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_index.h" />
@@ -311,17 +333,16 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\closure.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.h" />
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\fd_posix.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\iocp_windows.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_internal.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_posix.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_posix.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_posix.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_windows.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address.h" />
@@ -349,9 +370,6 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\json\json_common.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\json\json_reader.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\json\json_writer.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\proto\grpc\lb\v0\load_balancer.pb.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\statistics\census_interface.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\statistics\census_rpc_stats.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\surface\api_trace.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\surface\call.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\surface\call_test_only.h" />
@@ -365,49 +383,93 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\surface\server.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\surface\surface_trace.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\byte_stream.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\alpn.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\bin_encoder.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_data.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_goaway.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_ping.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_rst_stream.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_settings.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_window_update.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\hpack_encoder.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\hpack_parser.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\hpack_table.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\http2_errors.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\huffsyms.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\incoming_metadata.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\internal.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\status_conversion.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\stream_map.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\timeout_encoding.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\varint.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2_transport.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\connectivity_state.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\metadata.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\metadata_batch.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\static_metadata.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\transport.h" />
<ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\transport_impl.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\aggregation.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\mlog.h" />
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\rpc_metric_id.h" />
<ClInclude Include="$(SolutionDir)\..\third_party\nanopb\pb.h" />
<ClInclude Include="$(SolutionDir)\..\third_party\nanopb\pb_common.h" />
<ClInclude Include="$(SolutionDir)\..\third_party\nanopb\pb_decode.h" />
<ClInclude Include="$(SolutionDir)\..\third_party\nanopb\pb_encode.h" />
</ItemGroup>
<ItemGroup>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\init_unsecure.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\context.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\grpc_context.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\grpc_filter.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\grpc_plugin.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\initialize.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\mlog.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\operation.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\placeholders.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\tracing.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0\load_balancer.pb.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\pick_first\pick_first.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\round_robin\round_robin.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\native\dns_resolver.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\sockaddr\sockaddr_resolver.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\client\insecure\channel_create.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\server\insecure\server_chttp2.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\grpc_context.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\alpn.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\grpc_filter.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\bin_encoder.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\grpc_plugin.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\chttp2_transport.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_data.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_goaway.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_ping.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_rst_stream.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_settings.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_window_update.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\hpack_encoder.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\hpack_parser.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\hpack_table.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\huffsyms.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\incoming_metadata.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\parsing.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\status_conversion.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\stream_lists.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\stream_map.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\timeout_encoding.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\varint.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\writing.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\channel_args.c">
</ClCompile>
@@ -435,12 +497,6 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\initial_connect_string.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policies\load_balancer_api.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policies\pick_first.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policies\round_robin.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy_factory.c">
@@ -453,10 +509,6 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_registry.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\dns_resolver.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\sockaddr_resolver.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel_factory.c">
@@ -485,12 +537,14 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_windows.c">
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.c">
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.c">
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\fd_posix.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iocp_windows.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr.c">
@@ -499,14 +553,6 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_windows.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_multipoller_with_epoll.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_multipoller_with_poll_posix.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_posix.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_posix.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_windows.c">
@@ -569,8 +615,6 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\json\json_writer.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\proto\grpc\lb\v0\load_balancer.pb.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\alarm.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\api_trace.c">
@@ -589,8 +633,6 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel_connectivity.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel_create.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel_init.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel_ping.c">
@@ -603,62 +645,20 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\init.c">
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\init_unsecure.c">
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\lame_client.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\metadata_array.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\server.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\server_chttp2.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\validate_metadata.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\version.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\byte_stream.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\alpn.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\bin_encoder.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_data.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_goaway.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_ping.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_rst_stream.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_settings.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_window_update.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\hpack_encoder.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\hpack_parser.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\hpack_table.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\huffsyms.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\incoming_metadata.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\parsing.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\status_conversion.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\stream_lists.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\stream_map.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\timeout_encoding.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\varint.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\writing.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2_transport.c">
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\connectivity_state.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\metadata.c">
@@ -671,17 +671,7 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\transport_op_string.c">
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\context.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\initialize.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\mlog.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\operation.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\placeholders.c">
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\tracing.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\plugin_registry\grpc_unsecure_plugin_registry.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\third_party\nanopb\pb_common.c">
</ClCompile>
diff --git a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters
index 5309b18729..95b76b33de 100644
--- a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters
+++ b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters
@@ -1,17 +1,119 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\init_unsecure.c">
- <Filter>src\core\lib\surface</Filter>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\context.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\grpc_context.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\grpc_filter.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\grpc_plugin.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\initialize.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\mlog.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\operation.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\placeholders.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\census\tracing.c">
+ <Filter>src\core\ext\census</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.c">
+ <Filter>src\core\ext\lb_policy\grpclb</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0\load_balancer.pb.c">
+ <Filter>src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\pick_first\pick_first.c">
+ <Filter>src\core\ext\lb_policy\pick_first</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\lb_policy\round_robin\round_robin.c">
+ <Filter>src\core\ext\lb_policy\round_robin</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\dns\native\dns_resolver.c">
+ <Filter>src\core\ext\resolver\dns\native</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\resolver\sockaddr\sockaddr_resolver.c">
+ <Filter>src\core\ext\resolver\sockaddr</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\client\insecure\channel_create.c">
+ <Filter>src\core\ext\transport\chttp2\client\insecure</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\server\insecure\server_chttp2.c">
+ <Filter>src\core\ext\transport\chttp2\server\insecure</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\alpn.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\bin_encoder.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\chttp2_transport.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_data.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_goaway.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_ping.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_rst_stream.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\grpc_context.c">
- <Filter>src\core\lib\census</Filter>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_settings.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\grpc_filter.c">
- <Filter>src\core\lib\census</Filter>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_window_update.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\grpc_plugin.c">
- <Filter>src\core\lib\census</Filter>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\hpack_encoder.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\hpack_parser.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\hpack_table.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\huffsyms.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\incoming_metadata.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\parsing.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\status_conversion.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\stream_lists.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\stream_map.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\timeout_encoding.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\varint.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\writing.c">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\channel\channel_args.c">
<Filter>src\core\lib\channel</Filter>
@@ -52,15 +154,6 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\initial_connect_string.c">
<Filter>src\core\lib\client_config</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policies\load_balancer_api.c">
- <Filter>src\core\lib\client_config\lb_policies</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policies\pick_first.c">
- <Filter>src\core\lib\client_config\lb_policies</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policies\round_robin.c">
- <Filter>src\core\lib\client_config\lb_policies</Filter>
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy.c">
<Filter>src\core\lib\client_config</Filter>
</ClCompile>
@@ -79,12 +172,6 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_registry.c">
<Filter>src\core\lib\client_config</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\dns_resolver.c">
- <Filter>src\core\lib\client_config\resolvers</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\sockaddr_resolver.c">
- <Filter>src\core\lib\client_config\resolvers</Filter>
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel.c">
<Filter>src\core\lib\client_config</Filter>
</ClCompile>
@@ -127,13 +214,16 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_windows.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.c">
+ <Filter>src\core\lib\iomgr</Filter>
+ </ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\fd_posix.c">
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iocp_windows.c">
@@ -148,18 +238,6 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_windows.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_multipoller_with_epoll.c">
- <Filter>src\core\lib\iomgr</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_multipoller_with_poll_posix.c">
- <Filter>src\core\lib\iomgr</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_posix.c">
- <Filter>src\core\lib\iomgr</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_posix.c">
- <Filter>src\core\lib\iomgr</Filter>
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.c">
<Filter>src\core\lib\iomgr</Filter>
</ClCompile>
@@ -253,9 +331,6 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\json\json_writer.c">
<Filter>src\core\lib\json</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\proto\grpc\lb\v0\load_balancer.pb.c">
- <Filter>src\core\lib\proto\grpc\lb\v0</Filter>
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\alarm.c">
<Filter>src\core\lib\surface</Filter>
</ClCompile>
@@ -283,9 +358,6 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel_connectivity.c">
<Filter>src\core\lib\surface</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel_create.c">
- <Filter>src\core\lib\surface</Filter>
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\channel_init.c">
<Filter>src\core\lib\surface</Filter>
</ClCompile>
@@ -304,6 +376,9 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\init.c">
<Filter>src\core\lib\surface</Filter>
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\init_unsecure.c">
+ <Filter>src\core\lib\surface</Filter>
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\lame_client.c">
<Filter>src\core\lib\surface</Filter>
</ClCompile>
@@ -313,9 +388,6 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\server.c">
<Filter>src\core\lib\surface</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\server_chttp2.c">
- <Filter>src\core\lib\surface</Filter>
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\surface\validate_metadata.c">
<Filter>src\core\lib\surface</Filter>
</ClCompile>
@@ -325,69 +397,6 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\byte_stream.c">
<Filter>src\core\lib\transport</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\alpn.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\bin_encoder.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_data.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_goaway.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_ping.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_rst_stream.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_settings.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_window_update.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\hpack_encoder.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\hpack_parser.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\hpack_table.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\huffsyms.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\incoming_metadata.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\parsing.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\status_conversion.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\stream_lists.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\stream_map.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\timeout_encoding.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\varint.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\writing.c">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\chttp2_transport.c">
- <Filter>src\core\lib\transport</Filter>
- </ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\connectivity_state.c">
<Filter>src\core\lib\transport</Filter>
</ClCompile>
@@ -406,23 +415,8 @@
<ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\transport_op_string.c">
<Filter>src\core\lib\transport</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\context.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\initialize.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\mlog.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\operation.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\placeholders.c">
- <Filter>src\core\lib\census</Filter>
- </ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\core\lib\census\tracing.c">
- <Filter>src\core\lib\census</Filter>
+ <ClCompile Include="$(SolutionDir)\..\src\core\plugin_registry\grpc_unsecure_plugin_registry.c">
+ <Filter>src\core\plugin_registry</Filter>
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\third_party\nanopb\pb_common.c">
<Filter>third_party\nanopb</Filter>
@@ -441,13 +435,13 @@
<ClInclude Include="$(SolutionDir)\..\include\grpc\byte_buffer_reader.h">
<Filter>include\grpc</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\compression.h">
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\census.h">
<Filter>include\grpc</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\grpc.h">
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\compression.h">
<Filter>include\grpc</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\status.h">
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\grpc.h">
<Filter>include\grpc</Filter>
</ClInclude>
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\byte_buffer.h">
@@ -468,16 +462,97 @@
<ClInclude Include="$(SolutionDir)\..\include\grpc\impl\codegen\status.h">
<Filter>include\grpc\impl\codegen</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\include\grpc\census.h">
+ <ClInclude Include="$(SolutionDir)\..\include\grpc\status.h">
<Filter>include\grpc</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\grpc_filter.h">
- <Filter>src\core\lib\census</Filter>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\aggregation.h">
+ <Filter>src\core\ext\census</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\census_interface.h">
+ <Filter>src\core\ext\census</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\grpc_plugin.h">
- <Filter>src\core\lib\census</Filter>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\census_rpc_stats.h">
+ <Filter>src\core\ext\census</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\grpc_filter.h">
+ <Filter>src\core\ext\census</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\mlog.h">
+ <Filter>src\core\ext\census</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\census\rpc_metric_id.h">
+ <Filter>src\core\ext\census</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\load_balancer_api.h">
+ <Filter>src\core\ext\lb_policy\grpclb</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0\load_balancer.pb.h">
+ <Filter>src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\alpn.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\bin_encoder.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\chttp2_transport.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_data.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_goaway.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_ping.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_rst_stream.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_settings.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\frame_window_update.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\hpack_encoder.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\hpack_parser.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\hpack_table.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\http2_errors.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\huffsyms.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\incoming_metadata.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\internal.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\status_conversion.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\stream_map.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\timeout_encoding.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\ext\transport\chttp2\transport\varint.h">
+ <Filter>src\core\ext\transport\chttp2\transport</Filter>
</ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\channel\channel_args.h">
<Filter>src\core\lib\channel</Filter>
@@ -518,15 +593,6 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\initial_connect_string.h">
<Filter>src\core\lib\client_config</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policies\load_balancer_api.h">
- <Filter>src\core\lib\client_config\lb_policies</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policies\pick_first.h">
- <Filter>src\core\lib\client_config\lb_policies</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policies\round_robin.h">
- <Filter>src\core\lib\client_config\lb_policies</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\lb_policy.h">
<Filter>src\core\lib\client_config</Filter>
</ClInclude>
@@ -545,12 +611,6 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolver_registry.h">
<Filter>src\core\lib\client_config</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\dns_resolver.h">
- <Filter>src\core\lib\client_config\resolvers</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\resolvers\sockaddr_resolver.h">
- <Filter>src\core\lib\client_config\resolvers</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\client_config\subchannel.h">
<Filter>src\core\lib\client_config</Filter>
</ClInclude>
@@ -590,13 +650,16 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.h">
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_poll_and_epoll_posix.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.h">
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\ev_posix.h">
+ <Filter>src\core\lib\iomgr</Filter>
+ </ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\exec_ctx.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\fd_posix.h">
+ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\executor.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\iocp_windows.h">
@@ -614,15 +677,9 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_posix.h">
- <Filter>src\core\lib\iomgr</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_posix.h">
- <Filter>src\core\lib\iomgr</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.h">
<Filter>src\core\lib\iomgr</Filter>
</ClInclude>
@@ -704,15 +761,6 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\json\json_writer.h">
<Filter>src\core\lib\json</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\proto\grpc\lb\v0\load_balancer.pb.h">
- <Filter>src\core\lib\proto\grpc\lb\v0</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\statistics\census_interface.h">
- <Filter>src\core\lib\statistics</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\statistics\census_rpc_stats.h">
- <Filter>src\core\lib\statistics</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\surface\api_trace.h">
<Filter>src\core\lib\surface</Filter>
</ClInclude>
@@ -752,69 +800,6 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\byte_stream.h">
<Filter>src\core\lib\transport</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\alpn.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\bin_encoder.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_data.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_goaway.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_ping.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_rst_stream.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_settings.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\frame_window_update.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\hpack_encoder.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\hpack_parser.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\hpack_table.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\http2_errors.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\huffsyms.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\incoming_metadata.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\internal.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\status_conversion.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\stream_map.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\timeout_encoding.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2\varint.h">
- <Filter>src\core\lib\transport\chttp2</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\chttp2_transport.h">
- <Filter>src\core\lib\transport</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\connectivity_state.h">
<Filter>src\core\lib\transport</Filter>
</ClInclude>
@@ -833,15 +818,6 @@
<ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\transport_impl.h">
<Filter>src\core\lib\transport</Filter>
</ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\aggregation.h">
- <Filter>src\core\lib\census</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\mlog.h">
- <Filter>src\core\lib\census</Filter>
- </ClInclude>
- <ClInclude Include="$(SolutionDir)\..\src\core\lib\census\rpc_metric_id.h">
- <Filter>src\core\lib\census</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\third_party\nanopb\pb.h">
<Filter>third_party\nanopb</Filter>
</ClInclude>
@@ -875,24 +851,78 @@
<Filter Include="src\core">
<UniqueIdentifier>{88491077-386b-2039-d14c-0c40136b5f7a}</UniqueIdentifier>
</Filter>
+ <Filter Include="src\core\ext">
+ <UniqueIdentifier>{82f86e8c-00a4-f566-d235-670fc629798d}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\census">
+ <UniqueIdentifier>{3f21cd12-b8b9-18f8-8780-e21bbe2285d0}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\lb_policy">
+ <UniqueIdentifier>{a23781d2-27e4-7cb0-12cd-59782ecb21ce}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\lb_policy\grpclb">
+ <UniqueIdentifier>{25a465c8-d1e8-6248-c005-bb2062206472}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\lb_policy\grpclb\proto">
+ <UniqueIdentifier>{40fc2615-d244-0d36-4486-ba6f0fa468bb}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\lb_policy\grpclb\proto\grpc">
+ <UniqueIdentifier>{1d129f24-a399-12ef-68de-023aff7dde52}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\lb_policy\grpclb\proto\grpc\lb">
+ <UniqueIdentifier>{21858d9d-30b5-8847-5882-6b47df0fa293}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\lb_policy\grpclb\proto\grpc\lb\v0">
+ <UniqueIdentifier>{1795a20b-3e7c-e27d-eae1-96582fa9a958}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\lb_policy\pick_first">
+ <UniqueIdentifier>{e27f9ecf-97bb-1a2e-3135-a41f732dcf55}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\lb_policy\round_robin">
+ <UniqueIdentifier>{e5fc1091-5d60-404f-775b-686ef4b3266f}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\resolver">
+ <UniqueIdentifier>{88c78e27-267a-95df-07c5-50e5fbc2f40c}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\resolver\dns">
+ <UniqueIdentifier>{2e0a9b4f-6394-7c0e-6e5a-0f8b3ee29b41}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\resolver\dns\native">
+ <UniqueIdentifier>{3d5398c8-928b-9096-8eb7-f8c40ee68c4d}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\resolver\sockaddr">
+ <UniqueIdentifier>{71686ed0-fbf9-02a4-d65a-a73f7dc4e2be}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\transport">
+ <UniqueIdentifier>{967c89fe-c97c-27e2-aac0-9ba5854cb5fa}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\transport\chttp2">
+ <UniqueIdentifier>{702829f0-099e-2ab7-6b44-ed7cff3ec083}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\transport\chttp2\client">
+ <UniqueIdentifier>{0d589e16-e470-4968-318c-796af5a33637}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\transport\chttp2\client\insecure">
+ <UniqueIdentifier>{34dfdc9b-ab97-47f0-c1e1-b2e7381c3de6}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\transport\chttp2\server">
+ <UniqueIdentifier>{81fb55f4-9216-441b-8389-a7120bbcd45e}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\transport\chttp2\server\insecure">
+ <UniqueIdentifier>{3f53dcb6-71d7-28ff-1794-26a08e4601fe}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="src\core\ext\transport\chttp2\transport">
+ <UniqueIdentifier>{45b20f28-376c-9dea-1800-8a0193411946}</UniqueIdentifier>
+ </Filter>
<Filter Include="src\core\lib">
<UniqueIdentifier>{8bd5b461-bff8-6aa8-b5a6-85da2834eb8a}</UniqueIdentifier>
</Filter>
- <Filter Include="src\core\lib\census">
- <UniqueIdentifier>{19582d5a-dab7-9dc1-c7e9-cc147fd52e5f}</UniqueIdentifier>
- </Filter>
<Filter Include="src\core\lib\channel">
<UniqueIdentifier>{fb964f3d-a59c-a7ba-fee5-6072dbb94a7b}</UniqueIdentifier>
</Filter>
<Filter Include="src\core\lib\client_config">
<UniqueIdentifier>{29ca2974-89e4-1a74-3e4d-0d63e2f77566}</UniqueIdentifier>
</Filter>
- <Filter Include="src\core\lib\client_config\lb_policies">
- <UniqueIdentifier>{6c7e36d4-6117-e0cd-c886-b9eb3c994927}</UniqueIdentifier>
- </Filter>
- <Filter Include="src\core\lib\client_config\resolvers">
- <UniqueIdentifier>{2d959ef9-9703-dc92-a56f-9fe136dadfb9}</UniqueIdentifier>
- </Filter>
<Filter Include="src\core\lib\compression">
<UniqueIdentifier>{b88002e9-185e-4e64-49f5-2d8989ce87f6}</UniqueIdentifier>
</Filter>
@@ -908,29 +938,14 @@
<Filter Include="src\core\lib\json">
<UniqueIdentifier>{681cdaeb-c47f-8853-d985-bf13c2873947}</UniqueIdentifier>
</Filter>
- <Filter Include="src\core\lib\proto">
- <UniqueIdentifier>{4bfbd6c6-f6a8-c6b3-5186-b788f4e11e23}</UniqueIdentifier>
- </Filter>
- <Filter Include="src\core\lib\proto\grpc">
- <UniqueIdentifier>{60f3ab7d-ea44-348f-671e-77fdebbd18bb}</UniqueIdentifier>
- </Filter>
- <Filter Include="src\core\lib\proto\grpc\lb">
- <UniqueIdentifier>{bcd33510-32e7-c2fb-e11d-a3655f97bc84}</UniqueIdentifier>
- </Filter>
- <Filter Include="src\core\lib\proto\grpc\lb\v0">
- <UniqueIdentifier>{bb9b8c80-9eff-5ab6-5b29-c2d54f0fc192}</UniqueIdentifier>
- </Filter>
- <Filter Include="src\core\lib\statistics">
- <UniqueIdentifier>{d0ab6d54-ae25-fc49-3656-91d9db57366a}</UniqueIdentifier>
- </Filter>
<Filter Include="src\core\lib\surface">
<UniqueIdentifier>{506dc3b3-d884-2b59-0dfa-57ed6affa2d3}</UniqueIdentifier>
</Filter>
<Filter Include="src\core\lib\transport">
<UniqueIdentifier>{6c3394d1-27e9-003e-19ed-8116d210f7cc}</UniqueIdentifier>
</Filter>
- <Filter Include="src\core\lib\transport\chttp2">
- <UniqueIdentifier>{212a6997-9b9c-3b47-d953-aaff34d608b1}</UniqueIdentifier>
+ <Filter Include="src\core\plugin_registry">
+ <UniqueIdentifier>{babf0a90-e934-f599-5475-e6937d9580fe}</UniqueIdentifier>
</Filter>
<Filter Include="third_party">
<UniqueIdentifier>{025c051e-8eba-125b-67f9-173f95176eb2}</UniqueIdentifier>
diff --git a/vsprojects/vcxproj/one_input_fuzzer/one_input_fuzzer.vcxproj b/vsprojects/vcxproj/one_input_fuzzer/one_input_fuzzer.vcxproj
new file mode 100644
index 0000000000..ad343e0b4d
--- /dev/null
+++ b/vsprojects/vcxproj/one_input_fuzzer/one_input_fuzzer.vcxproj
@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{3589BCA3-CB0E-58FE-2F67-C4475D5CA517}</ProjectGuid>
+ <IgnoreWarnIntDirInTempDetected>true</IgnoreWarnIntDirInTempDetected>
+ <IntDir>$(SolutionDir)IntDir\$(MSBuildProjectName)\</IntDir>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '10.0'" Label="Configuration">
+ <PlatformToolset>v100</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '11.0'" Label="Configuration">
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '12.0'" Label="Configuration">
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '14.0'" Label="Configuration">
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
+ <ConfigurationType>StaticLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(SolutionDir)\..\vsprojects\global.props" />
+ <Import Project="$(SolutionDir)\..\vsprojects\winsock.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)'=='Debug'">
+ <TargetName>one_input_fuzzer</TargetName>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)'=='Release'">
+ <TargetName>one_input_fuzzer</TargetName>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Windows</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemGroup>
+ <ClCompile Include="$(SolutionDir)\..\test\core\util\one_corpus_entry_fuzzer.c">
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\gpr\gpr.vcxproj">
+ <Project>{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+ <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+ <PropertyGroup>
+ <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
+ </PropertyGroup>
+ </Target>
+</Project>
+
diff --git a/vsprojects/vcxproj/one_input_fuzzer/one_input_fuzzer.vcxproj.filters b/vsprojects/vcxproj/one_input_fuzzer/one_input_fuzzer.vcxproj.filters
new file mode 100644
index 0000000000..8935dfab0f
--- /dev/null
+++ b/vsprojects/vcxproj/one_input_fuzzer/one_input_fuzzer.vcxproj.filters
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <ClCompile Include="$(SolutionDir)\..\test\core\util\one_corpus_entry_fuzzer.c">
+ <Filter>test\core\util</Filter>
+ </ClCompile>
+ </ItemGroup>
+
+ <ItemGroup>
+ <Filter Include="test">
+ <UniqueIdentifier>{178c17dc-766b-aa84-e928-d6bd0e456ff9}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="test\core">
+ <UniqueIdentifier>{f08c2f86-ff65-4ce8-1ae6-e40fae0cef67}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="test\core\util">
+ <UniqueIdentifier>{17c672ec-2cce-5636-14c8-4812cd2e1b9a}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
+
diff --git a/vsprojects/vcxproj/qps/qps.vcxproj b/vsprojects/vcxproj/qps/qps.vcxproj
index a57b7409b6..d458664c8d 100644
--- a/vsprojects/vcxproj/qps/qps.vcxproj
+++ b/vsprojects/vcxproj/qps/qps.vcxproj
@@ -161,6 +161,14 @@
<ClInclude Include="$(SolutionDir)\..\test\cpp\util\benchmark_config.h" />
</ItemGroup>
<ItemGroup>
+ <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\control.pb.cc">
+ </ClCompile>
+ <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\control.pb.h">
+ </ClInclude>
+ <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\control.grpc.pb.cc">
+ </ClCompile>
+ <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\control.grpc.pb.h">
+ </ClInclude>
<ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.pb.cc">
</ClCompile>
<ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.pb.h">
@@ -177,21 +185,13 @@
</ClCompile>
<ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\payloads.grpc.pb.h">
</ClInclude>
- <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\stats.pb.cc">
- </ClCompile>
- <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\stats.pb.h">
- </ClInclude>
- <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\stats.grpc.pb.cc">
- </ClCompile>
- <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\stats.grpc.pb.h">
- </ClInclude>
- <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\control.pb.cc">
+ <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\perf_db.pb.cc">
</ClCompile>
- <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\control.pb.h">
+ <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\perf_db.pb.h">
</ClInclude>
- <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\control.grpc.pb.cc">
+ <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\perf_db.grpc.pb.cc">
</ClCompile>
- <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\control.grpc.pb.h">
+ <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\perf_db.grpc.pb.h">
</ClInclude>
<ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\services.pb.cc">
</ClCompile>
@@ -201,13 +201,13 @@
</ClCompile>
<ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\services.grpc.pb.h">
</ClInclude>
- <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\perf_db.pb.cc">
+ <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\stats.pb.cc">
</ClCompile>
- <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\perf_db.pb.h">
+ <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\stats.pb.h">
</ClInclude>
- <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\perf_db.grpc.pb.cc">
+ <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\stats.grpc.pb.cc">
</ClCompile>
- <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\perf_db.grpc.pb.h">
+ <ClInclude Include="$(SolutionDir)\..\src\proto\grpc\testing\stats.grpc.pb.h">
</ClInclude>
<ClCompile Include="$(SolutionDir)\..\test\cpp\qps\client_async.cc">
</ClCompile>
diff --git a/vsprojects/vcxproj/qps/qps.vcxproj.filters b/vsprojects/vcxproj/qps/qps.vcxproj.filters
index eeb9555a6a..c3ea63d04e 100644
--- a/vsprojects/vcxproj/qps/qps.vcxproj.filters
+++ b/vsprojects/vcxproj/qps/qps.vcxproj.filters
@@ -1,22 +1,22 @@
<?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\messages.proto">
+ <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\control.proto">
<Filter>src\proto\grpc\testing</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\payloads.proto">
+ <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\messages.proto">
<Filter>src\proto\grpc\testing</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\stats.proto">
+ <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\payloads.proto">
<Filter>src\proto\grpc\testing</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\control.proto">
+ <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\perf_db.proto">
<Filter>src\proto\grpc\testing</Filter>
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\services.proto">
<Filter>src\proto\grpc\testing</Filter>
</ClCompile>
- <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\perf_db.proto">
+ <ClCompile Include="$(SolutionDir)\..\src\proto\grpc\testing\stats.proto">
<Filter>src\proto\grpc\testing</Filter>
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\test\cpp\qps\client_async.cc">
diff --git a/vsprojects/vcxproj/test/end2end/tests/end2end_nosec_tests/end2end_nosec_tests.vcxproj b/vsprojects/vcxproj/test/end2end/tests/end2end_nosec_tests/end2end_nosec_tests.vcxproj
index 2f3b591dfc..d54d21b66e 100644
--- a/vsprojects/vcxproj/test/end2end/tests/end2end_nosec_tests/end2end_nosec_tests.vcxproj
+++ b/vsprojects/vcxproj/test/end2end/tests/end2end_nosec_tests/end2end_nosec_tests.vcxproj
@@ -147,8 +147,8 @@
</ItemDefinitionGroup>
<ItemGroup>
- <ClInclude Include="$(SolutionDir)\..\test\core\end2end\tests\cancel_test_helpers.h" />
<ClInclude Include="$(SolutionDir)\..\test\core\end2end\end2end_tests.h" />
+ <ClInclude Include="$(SolutionDir)\..\test\core\end2end\tests\cancel_test_helpers.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(SolutionDir)\..\test\core\end2end\end2end_nosec_tests.c">
@@ -185,6 +185,8 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\test\core\end2end\tests\hpack_size.c">
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\test\core\end2end\tests\idempotent_request.c">
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\test\core\end2end\tests\invoke_large_request.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\test\core\end2end\tests\large_metadata.c">
diff --git a/vsprojects/vcxproj/test/end2end/tests/end2end_nosec_tests/end2end_nosec_tests.vcxproj.filters b/vsprojects/vcxproj/test/end2end/tests/end2end_nosec_tests/end2end_nosec_tests.vcxproj.filters
index c63ebe7d81..99622e228d 100644
--- a/vsprojects/vcxproj/test/end2end/tests/end2end_nosec_tests/end2end_nosec_tests.vcxproj.filters
+++ b/vsprojects/vcxproj/test/end2end/tests/end2end_nosec_tests/end2end_nosec_tests.vcxproj.filters
@@ -52,6 +52,9 @@
<ClCompile Include="$(SolutionDir)\..\test\core\end2end\tests\hpack_size.c">
<Filter>test\core\end2end\tests</Filter>
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\test\core\end2end\tests\idempotent_request.c">
+ <Filter>test\core\end2end\tests</Filter>
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\test\core\end2end\tests\invoke_large_request.c">
<Filter>test\core\end2end\tests</Filter>
</ClCompile>
@@ -111,12 +114,12 @@
</ClCompile>
</ItemGroup>
<ItemGroup>
- <ClInclude Include="$(SolutionDir)\..\test\core\end2end\tests\cancel_test_helpers.h">
- <Filter>test\core\end2end\tests</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\test\core\end2end\end2end_tests.h">
<Filter>test\core\end2end</Filter>
</ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\test\core\end2end\tests\cancel_test_helpers.h">
+ <Filter>test\core\end2end\tests</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
diff --git a/vsprojects/vcxproj/test/end2end/tests/end2end_tests/end2end_tests.vcxproj b/vsprojects/vcxproj/test/end2end/tests/end2end_tests/end2end_tests.vcxproj
index f3b311ba70..c0b21c9ae1 100644
--- a/vsprojects/vcxproj/test/end2end/tests/end2end_tests/end2end_tests.vcxproj
+++ b/vsprojects/vcxproj/test/end2end/tests/end2end_tests/end2end_tests.vcxproj
@@ -147,8 +147,8 @@
</ItemDefinitionGroup>
<ItemGroup>
- <ClInclude Include="$(SolutionDir)\..\test\core\end2end\tests\cancel_test_helpers.h" />
<ClInclude Include="$(SolutionDir)\..\test\core\end2end\end2end_tests.h" />
+ <ClInclude Include="$(SolutionDir)\..\test\core\end2end\tests\cancel_test_helpers.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(SolutionDir)\..\test\core\end2end\end2end_tests.c">
@@ -187,6 +187,8 @@
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\test\core\end2end\tests\hpack_size.c">
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\test\core\end2end\tests\idempotent_request.c">
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\test\core\end2end\tests\invoke_large_request.c">
</ClCompile>
<ClCompile Include="$(SolutionDir)\..\test\core\end2end\tests\large_metadata.c">
diff --git a/vsprojects/vcxproj/test/end2end/tests/end2end_tests/end2end_tests.vcxproj.filters b/vsprojects/vcxproj/test/end2end/tests/end2end_tests/end2end_tests.vcxproj.filters
index c30054a17b..791589863e 100644
--- a/vsprojects/vcxproj/test/end2end/tests/end2end_tests/end2end_tests.vcxproj.filters
+++ b/vsprojects/vcxproj/test/end2end/tests/end2end_tests/end2end_tests.vcxproj.filters
@@ -55,6 +55,9 @@
<ClCompile Include="$(SolutionDir)\..\test\core\end2end\tests\hpack_size.c">
<Filter>test\core\end2end\tests</Filter>
</ClCompile>
+ <ClCompile Include="$(SolutionDir)\..\test\core\end2end\tests\idempotent_request.c">
+ <Filter>test\core\end2end\tests</Filter>
+ </ClCompile>
<ClCompile Include="$(SolutionDir)\..\test\core\end2end\tests\invoke_large_request.c">
<Filter>test\core\end2end\tests</Filter>
</ClCompile>
@@ -114,12 +117,12 @@
</ClCompile>
</ItemGroup>
<ItemGroup>
- <ClInclude Include="$(SolutionDir)\..\test\core\end2end\tests\cancel_test_helpers.h">
- <Filter>test\core\end2end\tests</Filter>
- </ClInclude>
<ClInclude Include="$(SolutionDir)\..\test\core\end2end\end2end_tests.h">
<Filter>test\core\end2end</Filter>
</ClInclude>
+ <ClInclude Include="$(SolutionDir)\..\test\core\end2end\tests\cancel_test_helpers.h">
+ <Filter>test\core\end2end\tests</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
diff --git a/vsprojects/vcxproj/test/internal_api_canary_iomgr_test/internal_api_canary_iomgr_test.vcxproj b/vsprojects/vcxproj/test/internal_api_canary_iomgr_test/internal_api_canary_iomgr_test.vcxproj
new file mode 100644
index 0000000000..11d89a01c1
--- /dev/null
+++ b/vsprojects/vcxproj/test/internal_api_canary_iomgr_test/internal_api_canary_iomgr_test.vcxproj
@@ -0,0 +1,199 @@
+<?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>{28AE726B-1BFB-202B-48D2-41AF9D09B9EA}</ProjectGuid>
+ <IgnoreWarnIntDirInTempDetected>true</IgnoreWarnIntDirInTempDetected>
+ <IntDir>$(SolutionDir)IntDir\$(MSBuildProjectName)\</IntDir>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '10.0'" Label="Configuration">
+ <PlatformToolset>v100</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '11.0'" Label="Configuration">
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '12.0'" Label="Configuration">
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '14.0'" Label="Configuration">
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(SolutionDir)\..\vsprojects\global.props" />
+ <Import Project="$(SolutionDir)\..\vsprojects\openssl.props" />
+ <Import Project="$(SolutionDir)\..\vsprojects\winsock.props" />
+ <Import Project="$(SolutionDir)\..\vsprojects\zlib.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)'=='Debug'">
+ <TargetName>internal_api_canary_iomgr_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>internal_api_canary_iomgr_test</TargetName>
+ <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib>
+ <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib>
+ <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl>
+ <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemGroup>
+ <ClCompile Include="$(SolutionDir)\..\test\core\internal_api_canaries\iomgr.c">
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc_test_util\grpc_test_util.vcxproj">
+ <Project>{17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}</Project>
+ </ProjectReference>
+ <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc\grpc.vcxproj">
+ <Project>{29D16885-7228-4C31-81ED-5F9187C7F2A9}</Project>
+ </ProjectReference>
+ <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\gpr_test_util\gpr_test_util.vcxproj">
+ <Project>{EAB0A629-17A9-44DB-B5FF-E91A721FE037}</Project>
+ </ProjectReference>
+ <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\gpr\gpr.vcxproj">
+ <Project>{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="packages.config" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies.zlib.redist.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies\grpc.dependencies.zlib.targets')" />
+ <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies.zlib.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies\grpc.dependencies.zlib.targets')" />
+ <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies.openssl.redist.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies\grpc.dependencies.openssl.targets')" />
+ <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies\grpc.dependencies.openssl.targets')" />
+ </ImportGroup>
+ <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+ <PropertyGroup>
+ <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
+ </PropertyGroup>
+ <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies.zlib.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies.zlib.redist.targets')" />
+ <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies.zlib.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies.zlib.targets')" />
+ <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies.openssl.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies.openssl.redist.targets')" />
+ <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.props')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.props')" />
+ <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.targets')" />
+ </Target>
+</Project>
+
diff --git a/vsprojects/vcxproj/test/internal_api_canary_iomgr_test/internal_api_canary_iomgr_test.vcxproj.filters b/vsprojects/vcxproj/test/internal_api_canary_iomgr_test/internal_api_canary_iomgr_test.vcxproj.filters
new file mode 100644
index 0000000000..f1ee82d1f4
--- /dev/null
+++ b/vsprojects/vcxproj/test/internal_api_canary_iomgr_test/internal_api_canary_iomgr_test.vcxproj.filters
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <ClCompile Include="$(SolutionDir)\..\test\core\internal_api_canaries\iomgr.c">
+ <Filter>test\core\internal_api_canaries</Filter>
+ </ClCompile>
+ </ItemGroup>
+
+ <ItemGroup>
+ <Filter Include="test">
+ <UniqueIdentifier>{881986d1-d1fe-b377-cf26-b3377af95009}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="test\core">
+ <UniqueIdentifier>{4f9a544e-5680-18ee-30d7-38179bf82cee}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="test\core\internal_api_canaries">
+ <UniqueIdentifier>{6ab29f78-ec9d-d63a-8e8f-0d7552b3edd4}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
+
diff --git a/vsprojects/vcxproj/test/internal_api_canary_support_test/internal_api_canary_support_test.vcxproj b/vsprojects/vcxproj/test/internal_api_canary_support_test/internal_api_canary_support_test.vcxproj
new file mode 100644
index 0000000000..59092dc2b3
--- /dev/null
+++ b/vsprojects/vcxproj/test/internal_api_canary_support_test/internal_api_canary_support_test.vcxproj
@@ -0,0 +1,199 @@
+<?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>{D53575C6-713C-E6E3-FD74-E65F20916498}</ProjectGuid>
+ <IgnoreWarnIntDirInTempDetected>true</IgnoreWarnIntDirInTempDetected>
+ <IntDir>$(SolutionDir)IntDir\$(MSBuildProjectName)\</IntDir>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '10.0'" Label="Configuration">
+ <PlatformToolset>v100</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '11.0'" Label="Configuration">
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '12.0'" Label="Configuration">
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '14.0'" Label="Configuration">
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(SolutionDir)\..\vsprojects\global.props" />
+ <Import Project="$(SolutionDir)\..\vsprojects\openssl.props" />
+ <Import Project="$(SolutionDir)\..\vsprojects\winsock.props" />
+ <Import Project="$(SolutionDir)\..\vsprojects\zlib.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)'=='Debug'">
+ <TargetName>internal_api_canary_support_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>internal_api_canary_support_test</TargetName>
+ <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib>
+ <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib>
+ <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl>
+ <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemGroup>
+ <ClCompile Include="$(SolutionDir)\..\test\core\internal_api_canaries\iomgr.c">
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc_test_util\grpc_test_util.vcxproj">
+ <Project>{17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}</Project>
+ </ProjectReference>
+ <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc\grpc.vcxproj">
+ <Project>{29D16885-7228-4C31-81ED-5F9187C7F2A9}</Project>
+ </ProjectReference>
+ <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\gpr_test_util\gpr_test_util.vcxproj">
+ <Project>{EAB0A629-17A9-44DB-B5FF-E91A721FE037}</Project>
+ </ProjectReference>
+ <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\gpr\gpr.vcxproj">
+ <Project>{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="packages.config" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies.zlib.redist.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies\grpc.dependencies.zlib.targets')" />
+ <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies.zlib.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies\grpc.dependencies.zlib.targets')" />
+ <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies.openssl.redist.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies\grpc.dependencies.openssl.targets')" />
+ <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies\grpc.dependencies.openssl.targets')" />
+ </ImportGroup>
+ <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+ <PropertyGroup>
+ <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
+ </PropertyGroup>
+ <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies.zlib.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies.zlib.redist.targets')" />
+ <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies.zlib.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies.zlib.targets')" />
+ <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies.openssl.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies.openssl.redist.targets')" />
+ <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.props')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.props')" />
+ <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.targets')" />
+ </Target>
+</Project>
+
diff --git a/vsprojects/vcxproj/test/internal_api_canary_support_test/internal_api_canary_support_test.vcxproj.filters b/vsprojects/vcxproj/test/internal_api_canary_support_test/internal_api_canary_support_test.vcxproj.filters
new file mode 100644
index 0000000000..f7f4e3200e
--- /dev/null
+++ b/vsprojects/vcxproj/test/internal_api_canary_support_test/internal_api_canary_support_test.vcxproj.filters
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <ClCompile Include="$(SolutionDir)\..\test\core\internal_api_canaries\iomgr.c">
+ <Filter>test\core\internal_api_canaries</Filter>
+ </ClCompile>
+ </ItemGroup>
+
+ <ItemGroup>
+ <Filter Include="test">
+ <UniqueIdentifier>{a6c31cba-af9d-78ea-8980-8b77c9fc4485}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="test\core">
+ <UniqueIdentifier>{d84283b8-4529-6c09-18bf-20a69f14f7ab}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="test\core\internal_api_canaries">
+ <UniqueIdentifier>{ea379f93-9285-7180-0d69-24a56da2b201}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
+
diff --git a/vsprojects/vcxproj/test/internal_api_canary_transport_test/internal_api_canary_transport_test.vcxproj b/vsprojects/vcxproj/test/internal_api_canary_transport_test/internal_api_canary_transport_test.vcxproj
new file mode 100644
index 0000000000..110f7e3b04
--- /dev/null
+++ b/vsprojects/vcxproj/test/internal_api_canary_transport_test/internal_api_canary_transport_test.vcxproj
@@ -0,0 +1,199 @@
+<?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>{ED24E700-964E-B426-6A6A-1944E2EF7BCB}</ProjectGuid>
+ <IgnoreWarnIntDirInTempDetected>true</IgnoreWarnIntDirInTempDetected>
+ <IntDir>$(SolutionDir)IntDir\$(MSBuildProjectName)\</IntDir>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '10.0'" Label="Configuration">
+ <PlatformToolset>v100</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '11.0'" Label="Configuration">
+ <PlatformToolset>v110</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '12.0'" Label="Configuration">
+ <PlatformToolset>v120</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(VisualStudioVersion)' == '14.0'" Label="Configuration">
+ <PlatformToolset>v140</PlatformToolset>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
+ <ConfigurationType>Application</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <WholeProgramOptimization>true</WholeProgramOptimization>
+ <CharacterSet>Unicode</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ <Import Project="$(SolutionDir)\..\vsprojects\global.props" />
+ <Import Project="$(SolutionDir)\..\vsprojects\openssl.props" />
+ <Import Project="$(SolutionDir)\..\vsprojects\winsock.props" />
+ <Import Project="$(SolutionDir)\..\vsprojects\zlib.props" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)'=='Debug'">
+ <TargetName>internal_api_canary_transport_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>internal_api_canary_transport_test</TargetName>
+ <Linkage-grpc_dependencies_zlib>static</Linkage-grpc_dependencies_zlib>
+ <Configuration-grpc_dependencies_zlib>Release</Configuration-grpc_dependencies_zlib>
+ <Linkage-grpc_dependencies_openssl>static</Linkage-grpc_dependencies_openssl>
+ <Configuration-grpc_dependencies_openssl>Release</Configuration-grpc_dependencies_openssl>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>Disabled</Optimization>
+ <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <FunctionLevelLinking>true</FunctionLevelLinking>
+ <IntrinsicFunctions>true</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <TreatWarningAsError>true</TreatWarningAsError>
+ <DebugInformationFormat Condition="$(Jenkins)">None</DebugInformationFormat>
+ <MinimalRebuild Condition="$(Jenkins)">false</MinimalRebuild>
+ </ClCompile>
+ <Link>
+ <SubSystem>Console</SubSystem>
+ <GenerateDebugInformation Condition="!$(Jenkins)">true</GenerateDebugInformation>
+ <GenerateDebugInformation Condition="$(Jenkins)">false</GenerateDebugInformation>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ </Link>
+ </ItemDefinitionGroup>
+
+ <ItemGroup>
+ <ClCompile Include="$(SolutionDir)\..\test\core\internal_api_canaries\iomgr.c">
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc_test_util\grpc_test_util.vcxproj">
+ <Project>{17BCAFC0-5FDC-4C94-AEB9-95F3E220614B}</Project>
+ </ProjectReference>
+ <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\grpc\grpc.vcxproj">
+ <Project>{29D16885-7228-4C31-81ED-5F9187C7F2A9}</Project>
+ </ProjectReference>
+ <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\gpr_test_util\gpr_test_util.vcxproj">
+ <Project>{EAB0A629-17A9-44DB-B5FF-E91A721FE037}</Project>
+ </ProjectReference>
+ <ProjectReference Include="$(SolutionDir)\..\vsprojects\vcxproj\.\gpr\gpr.vcxproj">
+ <Project>{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}</Project>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="packages.config" />
+ </ItemGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies.zlib.redist.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies\grpc.dependencies.zlib.targets')" />
+ <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies.zlib.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies\grpc.dependencies.zlib.targets')" />
+ <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies.openssl.redist.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies\grpc.dependencies.openssl.targets')" />
+ <Import Project="$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.targets" Condition="Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies\grpc.dependencies.openssl.targets')" />
+ </ImportGroup>
+ <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
+ <PropertyGroup>
+ <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
+ </PropertyGroup>
+ <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies.zlib.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.redist.1.2.8.10\build\native\grpc.dependencies.zlib.redist.targets')" />
+ <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies.zlib.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.zlib.1.2.8.10\build\native\grpc.dependencies.zlib.targets')" />
+ <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies.openssl.redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.redist.1.0.204.1\build\native\grpc.dependencies.openssl.redist.targets')" />
+ <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.props')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.props')" />
+ <Error Condition="!Exists('$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\..\vsprojects\packages\grpc.dependencies.openssl.1.0.204.1\build\native\grpc.dependencies.openssl.targets')" />
+ </Target>
+</Project>
+
diff --git a/vsprojects/vcxproj/test/internal_api_canary_transport_test/internal_api_canary_transport_test.vcxproj.filters b/vsprojects/vcxproj/test/internal_api_canary_transport_test/internal_api_canary_transport_test.vcxproj.filters
new file mode 100644
index 0000000000..1e0b4c5557
--- /dev/null
+++ b/vsprojects/vcxproj/test/internal_api_canary_transport_test/internal_api_canary_transport_test.vcxproj.filters
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <ClCompile Include="$(SolutionDir)\..\test\core\internal_api_canaries\iomgr.c">
+ <Filter>test\core\internal_api_canaries</Filter>
+ </ClCompile>
+ </ItemGroup>
+
+ <ItemGroup>
+ <Filter Include="test">
+ <UniqueIdentifier>{38e59e26-aad9-60fd-a1a7-c8fd9b606e2f}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="test\core">
+ <UniqueIdentifier>{79aad60f-59b8-09e2-2cad-5b5e083ac008}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="test\core\internal_api_canaries">
+ <UniqueIdentifier>{e4f0214e-e3ec-b5b8-c00b-2932b5ec2422}</UniqueIdentifier>
+ </Filter>
+ </ItemGroup>
+</Project>
+