diff --git a/BUILD b/BUILD index 3a7792f456e..8d73a68c23d 100644 --- a/BUILD +++ b/BUILD @@ -305,7 +305,6 @@ GRPCXX_SRCS = [ "src/cpp/client/create_channel_posix.cc", "src/cpp/common/alarm.cc", "src/cpp/common/channel_arguments.cc", - "src/cpp/common/channel_filter.cc", "src/cpp/common/completion_queue_cc.cc", "src/cpp/common/resource_quota_cc.cc", "src/cpp/common/rpc_method.cc", @@ -332,7 +331,6 @@ GRPCXX_SRCS = [ GRPCXX_HDRS = [ "src/cpp/client/create_channel_internal.h", "src/cpp/client/client_stats_interceptor.h", - "src/cpp/common/channel_filter.h", "src/cpp/server/dynamic_thread_pool.h", "src/cpp/server/external_connection_acceptor_impl.h", "src/cpp/server/health/default_health_check_service.h", diff --git a/CMakeLists.txt b/CMakeLists.txt index 09736548f1a..45141e2ed8c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -924,7 +924,6 @@ if(gRPC_BUILD_TESTS) add_dependencies(buildtests_cxx channel_args_test) add_dependencies(buildtests_cxx channel_arguments_test) add_dependencies(buildtests_cxx channel_creds_registry_test) - add_dependencies(buildtests_cxx channel_filter_test) add_dependencies(buildtests_cxx channel_stack_builder_test) add_dependencies(buildtests_cxx channel_stack_test) add_dependencies(buildtests_cxx channel_trace_test) @@ -1019,7 +1018,6 @@ if(gRPC_BUILD_TESTS) add_dependencies(buildtests_cxx file_watcher_certificate_provider_factory_test) add_dependencies(buildtests_cxx filter_causes_close_test) add_dependencies(buildtests_cxx filter_context_test) - add_dependencies(buildtests_cxx filter_end2end_test) add_dependencies(buildtests_cxx filter_init_fails_test) add_dependencies(buildtests_cxx filter_test_test) add_dependencies(buildtests_cxx filtered_metadata_test) @@ -3853,7 +3851,6 @@ add_library(grpc++ src/cpp/common/alarm.cc src/cpp/common/auth_property_iterator.cc src/cpp/common/channel_arguments.cc - src/cpp/common/channel_filter.cc src/cpp/common/completion_queue_cc.cc src/cpp/common/resource_quota_cc.cc src/cpp/common/rpc_method.cc @@ -4555,7 +4552,6 @@ add_library(grpc++_unsecure src/cpp/client/insecure_credentials.cc src/cpp/common/alarm.cc src/cpp/common/channel_arguments.cc - src/cpp/common/channel_filter.cc src/cpp/common/completion_queue_cc.cc src/cpp/common/insecure_create_auth_context.cc src/cpp/common/resource_quota_cc.cc @@ -7286,7 +7282,6 @@ add_executable(binder_transport_test src/cpp/common/alarm.cc src/cpp/common/auth_property_iterator.cc src/cpp/common/channel_arguments.cc - src/cpp/common/channel_filter.cc src/cpp/common/completion_queue_cc.cc src/cpp/common/resource_quota_cc.cc src/cpp/common/rpc_method.cc @@ -8455,40 +8450,6 @@ target_link_libraries(channel_creds_registry_test ) -endif() -if(gRPC_BUILD_TESTS) - -add_executable(channel_filter_test - test/cpp/common/channel_filter_test.cc -) -target_compile_features(channel_filter_test PUBLIC cxx_std_14) -target_include_directories(channel_filter_test - PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/include - ${_gRPC_ADDRESS_SORTING_INCLUDE_DIR} - ${_gRPC_RE2_INCLUDE_DIR} - ${_gRPC_SSL_INCLUDE_DIR} - ${_gRPC_UPB_GENERATED_DIR} - ${_gRPC_UPB_GRPC_GENERATED_DIR} - ${_gRPC_UPB_INCLUDE_DIR} - ${_gRPC_XXHASH_INCLUDE_DIR} - ${_gRPC_ZLIB_INCLUDE_DIR} - third_party/googletest/googletest/include - third_party/googletest/googletest - third_party/googletest/googlemock/include - third_party/googletest/googlemock - ${_gRPC_PROTO_GENS_DIR} -) - -target_link_libraries(channel_filter_test - ${_gRPC_ALLTARGETS_LIBRARIES} - gtest - grpc++ - grpc_test_util -) - - endif() if(gRPC_BUILD_TESTS) @@ -10663,7 +10624,6 @@ add_executable(endpoint_binder_pool_test src/cpp/common/alarm.cc src/cpp/common/auth_property_iterator.cc src/cpp/common/channel_arguments.cc - src/cpp/common/channel_filter.cc src/cpp/common/completion_queue_cc.cc src/cpp/common/resource_quota_cc.cc src/cpp/common/rpc_method.cc @@ -11375,7 +11335,6 @@ add_executable(fake_binder_test src/cpp/common/alarm.cc src/cpp/common/auth_property_iterator.cc src/cpp/common/channel_arguments.cc - src/cpp/common/channel_filter.cc src/cpp/common/completion_queue_cc.cc src/cpp/common/resource_quota_cc.cc src/cpp/common/rpc_method.cc @@ -11671,59 +11630,6 @@ target_link_libraries(filter_context_test ) -endif() -if(gRPC_BUILD_TESTS) - -add_executable(filter_end2end_test - ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.cc - ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.pb.h - ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.cc - ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.pb.h - ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.cc - ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.pb.h - ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/echo_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.cc - ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.pb.h - ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/simple_messages.grpc.pb.h - ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.cc - ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.cc - ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.pb.h - ${_gRPC_PROTO_GENS_DIR}/src/proto/grpc/testing/xds/v3/orca_load_report.grpc.pb.h - test/cpp/end2end/filter_end2end_test.cc -) -target_compile_features(filter_end2end_test PUBLIC cxx_std_14) -target_include_directories(filter_end2end_test - PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_SOURCE_DIR}/include - ${_gRPC_ADDRESS_SORTING_INCLUDE_DIR} - ${_gRPC_RE2_INCLUDE_DIR} - ${_gRPC_SSL_INCLUDE_DIR} - ${_gRPC_UPB_GENERATED_DIR} - ${_gRPC_UPB_GRPC_GENERATED_DIR} - ${_gRPC_UPB_INCLUDE_DIR} - ${_gRPC_XXHASH_INCLUDE_DIR} - ${_gRPC_ZLIB_INCLUDE_DIR} - third_party/googletest/googletest/include - third_party/googletest/googletest - third_party/googletest/googlemock/include - third_party/googletest/googlemock - ${_gRPC_PROTO_GENS_DIR} -) - -target_link_libraries(filter_end2end_test - ${_gRPC_ALLTARGETS_LIBRARIES} - gtest - grpc++_test_util -) - - endif() if(gRPC_BUILD_TESTS) @@ -25324,7 +25230,6 @@ add_executable(transport_stream_receiver_test src/cpp/common/alarm.cc src/cpp/common/auth_property_iterator.cc src/cpp/common/channel_arguments.cc - src/cpp/common/channel_filter.cc src/cpp/common/completion_queue_cc.cc src/cpp/common/resource_quota_cc.cc src/cpp/common/rpc_method.cc @@ -26014,7 +25919,6 @@ add_executable(wire_reader_test src/cpp/common/alarm.cc src/cpp/common/auth_property_iterator.cc src/cpp/common/channel_arguments.cc - src/cpp/common/channel_filter.cc src/cpp/common/completion_queue_cc.cc src/cpp/common/resource_quota_cc.cc src/cpp/common/rpc_method.cc @@ -26112,7 +26016,6 @@ add_executable(wire_writer_test src/cpp/common/alarm.cc src/cpp/common/auth_property_iterator.cc src/cpp/common/channel_arguments.cc - src/cpp/common/channel_filter.cc src/cpp/common/completion_queue_cc.cc src/cpp/common/resource_quota_cc.cc src/cpp/common/rpc_method.cc diff --git a/build_autogenerated.yaml b/build_autogenerated.yaml index 1fd043b862e..c0680f25ad7 100644 --- a/build_autogenerated.yaml +++ b/build_autogenerated.yaml @@ -3565,7 +3565,6 @@ libs: - src/cpp/client/client_stats_interceptor.h - src/cpp/client/create_channel_internal.h - src/cpp/client/secure_credentials.h - - src/cpp/common/channel_filter.h - src/cpp/common/secure_auth_context.h - src/cpp/server/backend_metric_recorder.h - src/cpp/server/dynamic_thread_pool.h @@ -3607,7 +3606,6 @@ libs: - src/cpp/common/alarm.cc - src/cpp/common/auth_property_iterator.cc - src/cpp/common/channel_arguments.cc - - src/cpp/common/channel_filter.cc - src/cpp/common/completion_queue_cc.cc - src/cpp/common/resource_quota_cc.cc - src/cpp/common/rpc_method.cc @@ -3967,7 +3965,6 @@ libs: headers: - src/cpp/client/client_stats_interceptor.h - src/cpp/client/create_channel_internal.h - - src/cpp/common/channel_filter.h - src/cpp/server/backend_metric_recorder.h - src/cpp/server/dynamic_thread_pool.h - src/cpp/server/external_connection_acceptor_impl.h @@ -3986,7 +3983,6 @@ libs: - src/cpp/client/insecure_credentials.cc - src/cpp/common/alarm.cc - src/cpp/common/channel_arguments.cc - - src/cpp/common/channel_filter.cc - src/cpp/common/completion_queue_cc.cc - src/cpp/common/insecure_create_auth_context.cc - src/cpp/common/resource_quota_cc.cc @@ -5715,7 +5711,6 @@ targets: - src/cpp/client/client_stats_interceptor.h - src/cpp/client/create_channel_internal.h - src/cpp/client/secure_credentials.h - - src/cpp/common/channel_filter.h - src/cpp/common/secure_auth_context.h - src/cpp/server/backend_metric_recorder.h - src/cpp/server/dynamic_thread_pool.h @@ -5757,7 +5752,6 @@ targets: - src/cpp/common/alarm.cc - src/cpp/common/auth_property_iterator.cc - src/cpp/common/channel_arguments.cc - - src/cpp/common/channel_filter.cc - src/cpp/common/completion_queue_cc.cc - src/cpp/common/resource_quota_cc.cc - src/cpp/common/rpc_method.cc @@ -6585,18 +6579,6 @@ targets: deps: - gtest - grpc_test_util -- name: channel_filter_test - gtest: true - build: test - language: c++ - headers: [] - src: - - test/cpp/common/channel_filter_test.cc - deps: - - gtest - - grpc++ - - grpc_test_util - uses_polling: false - name: channel_stack_builder_test gtest: true build: test @@ -7704,7 +7686,6 @@ targets: - src/cpp/client/client_stats_interceptor.h - src/cpp/client/create_channel_internal.h - src/cpp/client/secure_credentials.h - - src/cpp/common/channel_filter.h - src/cpp/common/secure_auth_context.h - src/cpp/server/backend_metric_recorder.h - src/cpp/server/dynamic_thread_pool.h @@ -7746,7 +7727,6 @@ targets: - src/cpp/common/alarm.cc - src/cpp/common/auth_property_iterator.cc - src/cpp/common/channel_arguments.cc - - src/cpp/common/channel_filter.cc - src/cpp/common/completion_queue_cc.cc - src/cpp/common/resource_quota_cc.cc - src/cpp/common/rpc_method.cc @@ -8188,7 +8168,6 @@ targets: - src/cpp/client/client_stats_interceptor.h - src/cpp/client/create_channel_internal.h - src/cpp/client/secure_credentials.h - - src/cpp/common/channel_filter.h - src/cpp/common/secure_auth_context.h - src/cpp/server/backend_metric_recorder.h - src/cpp/server/dynamic_thread_pool.h @@ -8230,7 +8209,6 @@ targets: - src/cpp/common/alarm.cc - src/cpp/common/auth_property_iterator.cc - src/cpp/common/channel_arguments.cc - - src/cpp/common/channel_filter.cc - src/cpp/common/completion_queue_cc.cc - src/cpp/common/resource_quota_cc.cc - src/cpp/common/rpc_method.cc @@ -8410,21 +8388,6 @@ targets: - grpc_authorization_provider - grpc_unsecure - grpc_test_util -- name: filter_end2end_test - gtest: true - build: test - language: c++ - headers: [] - src: - - src/proto/grpc/testing/duplicate/echo_duplicate.proto - - src/proto/grpc/testing/echo.proto - - src/proto/grpc/testing/echo_messages.proto - - src/proto/grpc/testing/simple_messages.proto - - src/proto/grpc/testing/xds/v3/orca_load_report.proto - - test/cpp/end2end/filter_end2end_test.cc - deps: - - gtest - - grpc++_test_util - name: filter_init_fails_test gtest: true build: test @@ -16716,7 +16679,6 @@ targets: - src/cpp/client/client_stats_interceptor.h - src/cpp/client/create_channel_internal.h - src/cpp/client/secure_credentials.h - - src/cpp/common/channel_filter.h - src/cpp/common/secure_auth_context.h - src/cpp/server/backend_metric_recorder.h - src/cpp/server/dynamic_thread_pool.h @@ -16757,7 +16719,6 @@ targets: - src/cpp/common/alarm.cc - src/cpp/common/auth_property_iterator.cc - src/cpp/common/channel_arguments.cc - - src/cpp/common/channel_filter.cc - src/cpp/common/completion_queue_cc.cc - src/cpp/common/resource_quota_cc.cc - src/cpp/common/rpc_method.cc @@ -17084,7 +17045,6 @@ targets: - src/cpp/client/client_stats_interceptor.h - src/cpp/client/create_channel_internal.h - src/cpp/client/secure_credentials.h - - src/cpp/common/channel_filter.h - src/cpp/common/secure_auth_context.h - src/cpp/server/backend_metric_recorder.h - src/cpp/server/dynamic_thread_pool.h @@ -17126,7 +17086,6 @@ targets: - src/cpp/common/alarm.cc - src/cpp/common/auth_property_iterator.cc - src/cpp/common/channel_arguments.cc - - src/cpp/common/channel_filter.cc - src/cpp/common/completion_queue_cc.cc - src/cpp/common/resource_quota_cc.cc - src/cpp/common/rpc_method.cc @@ -17193,7 +17152,6 @@ targets: - src/cpp/client/client_stats_interceptor.h - src/cpp/client/create_channel_internal.h - src/cpp/client/secure_credentials.h - - src/cpp/common/channel_filter.h - src/cpp/common/secure_auth_context.h - src/cpp/server/backend_metric_recorder.h - src/cpp/server/dynamic_thread_pool.h @@ -17235,7 +17193,6 @@ targets: - src/cpp/common/alarm.cc - src/cpp/common/auth_property_iterator.cc - src/cpp/common/channel_arguments.cc - - src/cpp/common/channel_filter.cc - src/cpp/common/completion_queue_cc.cc - src/cpp/common/resource_quota_cc.cc - src/cpp/common/rpc_method.cc diff --git a/gRPC-C++.podspec b/gRPC-C++.podspec index 2586537f30c..4dd7f6d1561 100644 --- a/gRPC-C++.podspec +++ b/gRPC-C++.podspec @@ -1142,8 +1142,6 @@ Pod::Spec.new do |s| 'src/cpp/common/alarm.cc', 'src/cpp/common/auth_property_iterator.cc', 'src/cpp/common/channel_arguments.cc', - 'src/cpp/common/channel_filter.cc', - 'src/cpp/common/channel_filter.h', 'src/cpp/common/completion_queue_cc.cc', 'src/cpp/common/resource_quota_cc.cc', 'src/cpp/common/rpc_method.cc', @@ -2200,7 +2198,6 @@ Pod::Spec.new do |s| 'src/cpp/client/client_stats_interceptor.h', 'src/cpp/client/create_channel_internal.h', 'src/cpp/client/secure_credentials.h', - 'src/cpp/common/channel_filter.h', 'src/cpp/common/secure_auth_context.h', 'src/cpp/server/backend_metric_recorder.h', 'src/cpp/server/dynamic_thread_pool.h', diff --git a/grpc.gyp b/grpc.gyp index 1c324e60c95..7641499f837 100644 --- a/grpc.gyp +++ b/grpc.gyp @@ -1781,7 +1781,6 @@ 'src/cpp/common/alarm.cc', 'src/cpp/common/auth_property_iterator.cc', 'src/cpp/common/channel_arguments.cc', - 'src/cpp/common/channel_filter.cc', 'src/cpp/common/completion_queue_cc.cc', 'src/cpp/common/resource_quota_cc.cc', 'src/cpp/common/rpc_method.cc', @@ -1922,7 +1921,6 @@ 'src/cpp/client/insecure_credentials.cc', 'src/cpp/common/alarm.cc', 'src/cpp/common/channel_arguments.cc', - 'src/cpp/common/channel_filter.cc', 'src/cpp/common/completion_queue_cc.cc', 'src/cpp/common/insecure_create_auth_context.cc', 'src/cpp/common/resource_quota_cc.cc', diff --git a/src/cpp/common/channel_filter.cc b/src/cpp/common/channel_filter.cc deleted file mode 100644 index 300979f7ef2..00000000000 --- a/src/cpp/common/channel_filter.cc +++ /dev/null @@ -1,96 +0,0 @@ -// -// -// Copyright 2016 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// - -#include "src/cpp/common/channel_filter.h" - -#include "absl/strings/str_cat.h" -#include "absl/strings/string_view.h" - -#include - -#include "src/core/lib/channel/channel_args.h" -#include "src/core/lib/channel/channel_stack.h" -#include "src/core/lib/channel/channel_stack_builder.h" -#include "src/core/lib/config/core_configuration.h" -#include "src/core/lib/slice/slice.h" - -namespace grpc { - -// MetadataBatch - -void MetadataBatch::AddMetadata(const string& key, const string& value) { - batch_->Append(key, grpc_core::Slice::FromCopiedString(value), - [&](absl::string_view error, const grpc_core::Slice&) { - gpr_log(GPR_INFO, "%s", - absl::StrCat("MetadataBatch::AddMetadata error:", - error, " key=", key, " value=", value) - .c_str()); - }); -} - -// ChannelData - -void ChannelData::StartTransportOp(grpc_channel_element* elem, - TransportOp* op) { - grpc_channel_next_op(elem, op->op()); -} - -void ChannelData::GetInfo(grpc_channel_element* elem, - const grpc_channel_info* channel_info) { - grpc_channel_next_get_info(elem, channel_info); -} - -// CallData - -void CallData::StartTransportStreamOpBatch(grpc_call_element* elem, - TransportStreamOpBatch* op) { - grpc_call_next_op(elem, op->op()); -} - -void CallData::SetPollsetOrPollsetSet(grpc_call_element* elem, - grpc_polling_entity* pollent) { - grpc_call_stack_ignore_set_pollset_or_pollset_set(elem, pollent); -} - -namespace internal { - -void RegisterChannelFilter( - grpc_channel_stack_type stack_type, int priority, - std::function include_filter, - const grpc_channel_filter* filter) { - auto maybe_add_filter = [include_filter, - filter](grpc_core::ChannelStackBuilder* builder) { - if (include_filter != nullptr) { - if (!include_filter(builder->channel_args())) { - return true; - } - } - builder->PrependFilter(filter); - return true; - }; - grpc_core::CoreConfiguration::RegisterBuilder( - [stack_type, priority, - maybe_add_filter](grpc_core::CoreConfiguration::Builder* builder) { - builder->channel_init()->RegisterStage(stack_type, priority, - maybe_add_filter); - }); -} - -} // namespace internal - -} // namespace grpc diff --git a/src/cpp/common/channel_filter.h b/src/cpp/common/channel_filter.h deleted file mode 100644 index 6b3ccec93ba..00000000000 --- a/src/cpp/common/channel_filter.h +++ /dev/null @@ -1,344 +0,0 @@ -// -// -// Copyright 2016 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// - -#ifndef GRPC_SRC_CPP_COMMON_CHANNEL_FILTER_H -#define GRPC_SRC_CPP_COMMON_CHANNEL_FILTER_H - -#include - -#include -#include -#include -#include - -#include "absl/status/status.h" -#include "absl/types/optional.h" - -#include -#include - -#include "src/core/lib/channel/channel_args.h" -#include "src/core/lib/channel/channel_fwd.h" -#include "src/core/lib/channel/channel_stack.h" -#include "src/core/lib/channel/context.h" -#include "src/core/lib/iomgr/closure.h" -#include "src/core/lib/iomgr/error.h" -#include "src/core/lib/iomgr/polling_entity.h" -#include "src/core/lib/slice/slice_buffer.h" -#include "src/core/lib/surface/channel_stack_type.h" -#include "src/core/lib/transport/metadata_batch.h" -#include "src/core/lib/transport/transport.h" - -/// An interface to define filters. -/// -/// To define a filter, implement a subclass of each of \c CallData and -/// \c ChannelData. Then register the filter using something like this: -/// \code{.cpp} -/// RegisterChannelFilter( -/// "name-of-filter", GRPC_SERVER_CHANNEL, INT_MAX, nullptr); -/// \endcode - -namespace grpc { - -/// A C++ wrapper for the \c grpc_metadata_batch struct. -class MetadataBatch { - public: - /// Borrows a pointer to \a batch, but does NOT take ownership. - /// The caller must ensure that \a batch continues to exist for as - /// long as the MetadataBatch object does. - explicit MetadataBatch(grpc_metadata_batch* batch) : batch_(batch) {} - - grpc_metadata_batch* batch() const { return batch_; } - - /// Adds metadata. - void AddMetadata(const string& key, const string& value); - - private: - grpc_metadata_batch* batch_; // Not owned. -}; - -/// A C++ wrapper for the \c grpc_transport_op struct. -class TransportOp { - public: - /// Borrows a pointer to \a op, but does NOT take ownership. - /// The caller must ensure that \a op continues to exist for as - /// long as the TransportOp object does. - explicit TransportOp(grpc_transport_op* op) : op_(op) {} - - grpc_transport_op* op() const { return op_; } - - // TODO(roth): Add a C++ wrapper for grpc_error? - grpc_error_handle disconnect_with_error() const { - return op_->disconnect_with_error; - } - bool send_goaway() const { return !op_->goaway_error.ok(); } - - // TODO(roth): Add methods for additional fields as needed. - - private: - grpc_transport_op* op_; // Not owned. -}; - -/// A C++ wrapper for the \c grpc_transport_stream_op_batch struct. -class TransportStreamOpBatch { - public: - /// Borrows a pointer to \a op, but does NOT take ownership. - /// The caller must ensure that \a op continues to exist for as - /// long as the TransportStreamOpBatch object does. - explicit TransportStreamOpBatch(grpc_transport_stream_op_batch* op) - : op_(op), - send_initial_metadata_( - op->send_initial_metadata - ? op->payload->send_initial_metadata.send_initial_metadata - : nullptr), - send_trailing_metadata_( - op->send_trailing_metadata - ? op->payload->send_trailing_metadata.send_trailing_metadata - : nullptr), - recv_initial_metadata_( - op->recv_initial_metadata - ? op->payload->recv_initial_metadata.recv_initial_metadata - : nullptr), - recv_trailing_metadata_( - op->recv_trailing_metadata - ? op->payload->recv_trailing_metadata.recv_trailing_metadata - : nullptr) {} - - grpc_transport_stream_op_batch* op() const { return op_; } - - grpc_closure* on_complete() const { return op_->on_complete; } - void set_on_complete(grpc_closure* closure) { op_->on_complete = closure; } - - MetadataBatch* send_initial_metadata() { - return op_->send_initial_metadata ? &send_initial_metadata_ : nullptr; - } - MetadataBatch* send_trailing_metadata() { - return op_->send_trailing_metadata ? &send_trailing_metadata_ : nullptr; - } - MetadataBatch* recv_initial_metadata() { - return op_->recv_initial_metadata ? &recv_initial_metadata_ : nullptr; - } - MetadataBatch* recv_trailing_metadata() { - return op_->recv_trailing_metadata ? &recv_trailing_metadata_ : nullptr; - } - - grpc_closure* recv_initial_metadata_ready() const { - return op_->recv_initial_metadata - ? op_->payload->recv_initial_metadata.recv_initial_metadata_ready - : nullptr; - } - void set_recv_initial_metadata_ready(grpc_closure* closure) { - op_->payload->recv_initial_metadata.recv_initial_metadata_ready = closure; - } - - grpc_core::SliceBuffer* send_message() const { - return op_->send_message ? op_->payload->send_message.send_message - : nullptr; - } - - void set_send_message(grpc_core::SliceBuffer* send_message) { - op_->send_message = true; - op_->payload->send_message.send_message = send_message; - } - - absl::optional* recv_message() const { - return op_->recv_message ? op_->payload->recv_message.recv_message - : nullptr; - } - void set_recv_message(absl::optional* recv_message) { - op_->recv_message = true; - op_->payload->recv_message.recv_message = recv_message; - } - - census_context* get_census_context() const { - return static_cast( - op_->payload->context[GRPC_CONTEXT_TRACING].value); - } - - private: - grpc_transport_stream_op_batch* op_; // Not owned. - MetadataBatch send_initial_metadata_; - MetadataBatch send_trailing_metadata_; - MetadataBatch recv_initial_metadata_; - MetadataBatch recv_trailing_metadata_; -}; - -/// Represents channel data. -class ChannelData { - public: - ChannelData() {} - virtual ~ChannelData() {} - - // TODO(roth): Come up with a more C++-like API for the channel element. - - /// Initializes the channel data. - virtual grpc_error_handle Init(grpc_channel_element* /*elem*/, - grpc_channel_element_args* /*args*/) { - return absl::OkStatus(); - } - - // Called before destruction. - virtual void Destroy(grpc_channel_element* /*elem*/) {} - - virtual void StartTransportOp(grpc_channel_element* elem, TransportOp* op); - - virtual void GetInfo(grpc_channel_element* elem, - const grpc_channel_info* channel_info); -}; - -/// Represents call data. -class CallData { - public: - CallData() {} - virtual ~CallData() {} - - // TODO(roth): Come up with a more C++-like API for the call element. - - /// Initializes the call data. - virtual grpc_error_handle Init(grpc_call_element* /*elem*/, - const grpc_call_element_args* /*args*/) { - return absl::OkStatus(); - } - - // Called before destruction. - virtual void Destroy(grpc_call_element* /*elem*/, - const grpc_call_final_info* /*final_info*/, - grpc_closure* /*then_call_closure*/) {} - - /// Starts a new stream operation. - virtual void StartTransportStreamOpBatch(grpc_call_element* elem, - TransportStreamOpBatch* op); - - /// Sets a pollset or pollset set. - virtual void SetPollsetOrPollsetSet(grpc_call_element* elem, - grpc_polling_entity* pollent); -}; - -namespace internal { - -// Defines static members for passing to C core. -// Members of this class correspond to the members of the C -// grpc_channel_filter struct. -template -class ChannelFilter final { - public: - static const size_t channel_data_size = sizeof(ChannelDataType); - - static grpc_error_handle InitChannelElement(grpc_channel_element* elem, - grpc_channel_element_args* args) { - // Construct the object in the already-allocated memory. - ChannelDataType* channel_data = new (elem->channel_data) ChannelDataType(); - return channel_data->Init(elem, args); - } - - static void DestroyChannelElement(grpc_channel_element* elem) { - ChannelDataType* channel_data = - static_cast(elem->channel_data); - channel_data->Destroy(elem); - channel_data->~ChannelDataType(); - } - - static void StartTransportOp(grpc_channel_element* elem, - grpc_transport_op* op) { - ChannelDataType* channel_data = - static_cast(elem->channel_data); - TransportOp op_wrapper(op); - channel_data->StartTransportOp(elem, &op_wrapper); - } - - static void GetChannelInfo(grpc_channel_element* elem, - const grpc_channel_info* channel_info) { - ChannelDataType* channel_data = - static_cast(elem->channel_data); - channel_data->GetInfo(elem, channel_info); - } - - static const size_t call_data_size = sizeof(CallDataType); - - static grpc_error_handle InitCallElement(grpc_call_element* elem, - const grpc_call_element_args* args) { - // Construct the object in the already-allocated memory. - CallDataType* call_data = new (elem->call_data) CallDataType(); - return call_data->Init(elem, args); - } - - static void DestroyCallElement(grpc_call_element* elem, - const grpc_call_final_info* final_info, - grpc_closure* then_call_closure) { - CallDataType* call_data = static_cast(elem->call_data); - call_data->Destroy(elem, final_info, then_call_closure); - call_data->~CallDataType(); - } - - static void StartTransportStreamOpBatch(grpc_call_element* elem, - grpc_transport_stream_op_batch* op) { - CallDataType* call_data = static_cast(elem->call_data); - TransportStreamOpBatch op_wrapper(op); - call_data->StartTransportStreamOpBatch(elem, &op_wrapper); - } - - static void SetPollsetOrPollsetSet(grpc_call_element* elem, - grpc_polling_entity* pollent) { - CallDataType* call_data = static_cast(elem->call_data); - call_data->SetPollsetOrPollsetSet(elem, pollent); - } -}; - -void RegisterChannelFilter( - grpc_channel_stack_type stack_type, int priority, - std::function include_filter, - const grpc_channel_filter* filter); - -} // namespace internal - -/// Registers a new filter. -/// Must be called by only one thread at a time. -/// The \a include_filter argument specifies a function that will be called -/// to determine at run-time whether or not to add the filter. If the -/// value is nullptr, the filter will be added unconditionally. -/// If the channel stack type is GRPC_CLIENT_SUBCHANNEL, the caller should -/// ensure that subchannels with different filter lists will always have -/// different channel args. This requires setting a channel arg in case the -/// registration function relies on some condition other than channel args to -/// decide whether to add a filter or not. -template -void RegisterChannelFilter( - const char* name, grpc_channel_stack_type stack_type, int priority, - std::function include_filter) { - using FilterType = internal::ChannelFilter; - static const grpc_channel_filter filter = { - FilterType::StartTransportStreamOpBatch, - nullptr, - FilterType::StartTransportOp, - FilterType::call_data_size, - FilterType::InitCallElement, - FilterType::SetPollsetOrPollsetSet, - FilterType::DestroyCallElement, - FilterType::channel_data_size, - FilterType::InitChannelElement, - grpc_channel_stack_no_post_init, - FilterType::DestroyChannelElement, - FilterType::GetChannelInfo, - name}; - grpc::internal::RegisterChannelFilter(stack_type, priority, - std::move(include_filter), &filter); -} - -} // namespace grpc - -#endif // GRPC_SRC_CPP_COMMON_CHANNEL_FILTER_H diff --git a/test/cpp/common/BUILD b/test/cpp/common/BUILD index 44e2eaafffb..1039685d5cc 100644 --- a/test/cpp/common/BUILD +++ b/test/cpp/common/BUILD @@ -96,20 +96,6 @@ grpc_cc_test( ], ) -grpc_cc_test( - name = "channel_filter_test", - srcs = ["channel_filter_test.cc"], - external_deps = [ - "gtest", - ], - uses_event_engine = False, - uses_polling = False, - deps = [ - "//:grpc++", - "//test/core/util:grpc_test_util", - ], -) - grpc_cc_test( name = "secure_auth_context_test", srcs = ["secure_auth_context_test.cc"], diff --git a/test/cpp/common/channel_filter_test.cc b/test/cpp/common/channel_filter_test.cc deleted file mode 100644 index fc6a7f5ce1a..00000000000 --- a/test/cpp/common/channel_filter_test.cc +++ /dev/null @@ -1,66 +0,0 @@ -// -// Copyright 2016 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -#include "src/cpp/common/channel_filter.h" - -#include - -#include - -#include - -namespace grpc { -namespace testing { - -class MyChannelData : public ChannelData { - public: - MyChannelData() {} - - grpc_error_handle Init(grpc_channel_element* /*elem*/, - grpc_channel_element_args* args) override { - (void)args->channel_args; // Make sure field is available. - return absl::OkStatus(); - } -}; - -class MyCallData : public CallData { - public: - MyCallData() {} - - grpc_error_handle Init(grpc_call_element* /*elem*/, - const grpc_call_element_args* args) override { - (void)args->path; // Make sure field is available. - return absl::OkStatus(); - } -}; - -// This test ensures that when we make changes to the filter API in -// C-core, we don't accidentally break the C++ filter API. -TEST(ChannelFilterTest, RegisterChannelFilter) { - grpc::RegisterChannelFilter( - "myfilter", GRPC_CLIENT_CHANNEL, INT_MAX, nullptr); -} - -// TODO(roth): When we have time, add tests for all methods of the -// filter API. - -} // namespace testing -} // namespace grpc - -int main(int argc, char** argv) { - ::testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); -} diff --git a/test/cpp/end2end/BUILD b/test/cpp/end2end/BUILD index 3e4ad020be2..24bfaf0fbf6 100644 --- a/test/cpp/end2end/BUILD +++ b/test/cpp/end2end/BUILD @@ -367,25 +367,6 @@ grpc_cc_test( ], ) -grpc_cc_test( - name = "filter_end2end_test", - srcs = ["filter_end2end_test.cc"], - external_deps = [ - "gtest", - ], - tags = ["cpp_end2end_test"], - deps = [ - "//:gpr", - "//:grpc", - "//:grpc++", - "//src/proto/grpc/testing:echo_messages_proto", - "//src/proto/grpc/testing:echo_proto", - "//src/proto/grpc/testing/duplicate:echo_duplicate_proto", - "//test/core/util:grpc_test_util", - "//test/cpp/util:test_util", - ], -) - grpc_cc_test( name = "generic_end2end_test", srcs = ["generic_end2end_test.cc"], diff --git a/test/cpp/end2end/filter_end2end_test.cc b/test/cpp/end2end/filter_end2end_test.cc deleted file mode 100644 index ef51f6ff9e5..00000000000 --- a/test/cpp/end2end/filter_end2end_test.cc +++ /dev/null @@ -1,344 +0,0 @@ -// -// -// Copyright 2016 gRPC authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// - -#include -#include -#include - -#include - -#include "absl/memory/memory.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "src/cpp/common/channel_filter.h" -#include "src/proto/grpc/testing/echo.grpc.pb.h" -#include "test/core/util/port.h" -#include "test/core/util/test_config.h" -#include "test/cpp/util/byte_buffer_proto_helper.h" - -namespace grpc { -namespace testing { -namespace { - -void* tag(int i) { return reinterpret_cast(i); } - -void verify_ok(CompletionQueue* cq, int i, bool expect_ok) { - bool ok; - void* got_tag; - EXPECT_TRUE(cq->Next(&got_tag, &ok)); - EXPECT_EQ(expect_ok, ok); - EXPECT_EQ(tag(i), got_tag); -} - -namespace { - -int global_num_connections = 0; -int global_num_calls = 0; -std::mutex global_mu; - -void IncrementConnectionCounter() { - std::unique_lock lock(global_mu); - ++global_num_connections; -} - -void ResetConnectionCounter() { - std::unique_lock lock(global_mu); - global_num_connections = 0; -} - -int GetConnectionCounterValue() { - std::unique_lock lock(global_mu); - return global_num_connections; -} - -void IncrementCallCounter() { - std::unique_lock lock(global_mu); - ++global_num_calls; -} - -void ResetCallCounter() { - std::unique_lock lock(global_mu); - global_num_calls = 0; -} - -int GetCallCounterValue() { - std::unique_lock lock(global_mu); - return global_num_calls; -} - -} // namespace - -class ChannelDataImpl : public ChannelData { - public: - grpc_error_handle Init(grpc_channel_element* /*elem*/, - grpc_channel_element_args* /*args*/) override { - IncrementConnectionCounter(); - return absl::OkStatus(); - } -}; - -class CallDataImpl : public CallData { - public: - void StartTransportStreamOpBatch(grpc_call_element* elem, - TransportStreamOpBatch* op) override { - // Incrementing the counter could be done from Init(), but we want - // to test that the individual methods are actually called correctly. - if (op->recv_initial_metadata() != nullptr) IncrementCallCounter(); - grpc_call_next_op(elem, op->op()); - } -}; - -class FilterEnd2endTest : public ::testing::Test { - protected: - FilterEnd2endTest() : server_host_("localhost") {} - - static void SetUpTestSuite() { - // Workaround for - // https://github.com/google/google-toolbox-for-mac/issues/242 - static bool setup_done = false; - if (!setup_done) { - setup_done = true; - grpc::RegisterChannelFilter( - "test-filter", GRPC_SERVER_CHANNEL, INT_MAX, nullptr); - } - } - - void SetUp() override { - int port = grpc_pick_unused_port_or_die(); - server_address_ << server_host_ << ":" << port; - // Setup server - ServerBuilder builder; - builder.AddListeningPort(server_address_.str(), - InsecureServerCredentials()); - builder.RegisterAsyncGenericService(&generic_service_); - srv_cq_ = builder.AddCompletionQueue(); - server_ = builder.BuildAndStart(); - } - - void TearDown() override { - server_->Shutdown(); - void* ignored_tag; - bool ignored_ok; - cli_cq_.Shutdown(); - srv_cq_->Shutdown(); - while (cli_cq_.Next(&ignored_tag, &ignored_ok)) { - } - while (srv_cq_->Next(&ignored_tag, &ignored_ok)) { - } - } - - void ResetStub() { - std::shared_ptr channel = grpc::CreateChannel( - server_address_.str(), InsecureChannelCredentials()); - generic_stub_ = std::make_unique(channel); - ResetConnectionCounter(); - ResetCallCounter(); - } - - void server_ok(int i) { verify_ok(srv_cq_.get(), i, true); } - void client_ok(int i) { verify_ok(&cli_cq_, i, true); } - void server_fail(int i) { verify_ok(srv_cq_.get(), i, false); } - void client_fail(int i) { verify_ok(&cli_cq_, i, false); } - - void SendRpc(int num_rpcs) { - const std::string kMethodName("/grpc.cpp.test.util.EchoTestService/Echo"); - for (int i = 0; i < num_rpcs; i++) { - EchoRequest send_request; - EchoRequest recv_request; - EchoResponse send_response; - EchoResponse recv_response; - Status recv_status; - - ClientContext cli_ctx; - GenericServerContext srv_ctx; - GenericServerAsyncReaderWriter stream(&srv_ctx); - - // The string needs to be long enough to test heap-based slice. - send_request.set_message("Hello world. Hello world. Hello world."); - std::thread request_call([this]() { server_ok(4); }); - std::unique_ptr call = - generic_stub_->PrepareCall(&cli_ctx, kMethodName, &cli_cq_); - call->StartCall(tag(1)); - client_ok(1); - std::unique_ptr send_buffer = - SerializeToByteBuffer(&send_request); - call->Write(*send_buffer, tag(2)); - // Send ByteBuffer can be destroyed after calling Write. - send_buffer.reset(); - client_ok(2); - call->WritesDone(tag(3)); - client_ok(3); - - generic_service_.RequestCall(&srv_ctx, &stream, srv_cq_.get(), - srv_cq_.get(), tag(4)); - - request_call.join(); - EXPECT_EQ(server_host_, srv_ctx.host().substr(0, server_host_.length())); - EXPECT_EQ(kMethodName, srv_ctx.method()); - ByteBuffer recv_buffer; - stream.Read(&recv_buffer, tag(5)); - server_ok(5); - EXPECT_TRUE(ParseFromByteBuffer(&recv_buffer, &recv_request)); - EXPECT_EQ(send_request.message(), recv_request.message()); - - send_response.set_message(recv_request.message()); - send_buffer = SerializeToByteBuffer(&send_response); - stream.Write(*send_buffer, tag(6)); - send_buffer.reset(); - server_ok(6); - - stream.Finish(Status::OK, tag(7)); - server_ok(7); - - recv_buffer.Clear(); - call->Read(&recv_buffer, tag(8)); - client_ok(8); - EXPECT_TRUE(ParseFromByteBuffer(&recv_buffer, &recv_response)); - - call->Finish(&recv_status, tag(9)); - client_ok(9); - - EXPECT_EQ(send_response.message(), recv_response.message()); - EXPECT_TRUE(recv_status.ok()); - } - } - - CompletionQueue cli_cq_; - std::unique_ptr srv_cq_; - std::unique_ptr stub_; - std::unique_ptr generic_stub_; - std::unique_ptr server_; - AsyncGenericService generic_service_; - const std::string server_host_; - std::ostringstream server_address_; -}; - -TEST_F(FilterEnd2endTest, SimpleRpc) { - ResetStub(); - EXPECT_EQ(0, GetConnectionCounterValue()); - EXPECT_EQ(0, GetCallCounterValue()); - SendRpc(1); - EXPECT_EQ(1, GetConnectionCounterValue()); - EXPECT_EQ(1, GetCallCounterValue()); -} - -TEST_F(FilterEnd2endTest, SequentialRpcs) { - ResetStub(); - EXPECT_EQ(0, GetConnectionCounterValue()); - EXPECT_EQ(0, GetCallCounterValue()); - SendRpc(10); - EXPECT_EQ(1, GetConnectionCounterValue()); - EXPECT_EQ(10, GetCallCounterValue()); -} - -// One ping, one pong. -TEST_F(FilterEnd2endTest, SimpleBidiStreaming) { - ResetStub(); - EXPECT_EQ(0, GetConnectionCounterValue()); - EXPECT_EQ(0, GetCallCounterValue()); - - const std::string kMethodName( - "/grpc.cpp.test.util.EchoTestService/BidiStream"); - EchoRequest send_request; - EchoRequest recv_request; - EchoResponse send_response; - EchoResponse recv_response; - Status recv_status; - ClientContext cli_ctx; - GenericServerContext srv_ctx; - GenericServerAsyncReaderWriter srv_stream(&srv_ctx); - - cli_ctx.set_compression_algorithm(GRPC_COMPRESS_GZIP); - send_request.set_message("Hello"); - std::thread request_call([this]() { server_ok(2); }); - std::unique_ptr cli_stream = - generic_stub_->PrepareCall(&cli_ctx, kMethodName, &cli_cq_); - cli_stream->StartCall(tag(1)); - client_ok(1); - - generic_service_.RequestCall(&srv_ctx, &srv_stream, srv_cq_.get(), - srv_cq_.get(), tag(2)); - - request_call.join(); - EXPECT_EQ(server_host_, srv_ctx.host().substr(0, server_host_.length())); - EXPECT_EQ(kMethodName, srv_ctx.method()); - - std::unique_ptr send_buffer = - SerializeToByteBuffer(&send_request); - cli_stream->Write(*send_buffer, tag(3)); - send_buffer.reset(); - client_ok(3); - - ByteBuffer recv_buffer; - srv_stream.Read(&recv_buffer, tag(4)); - server_ok(4); - EXPECT_TRUE(ParseFromByteBuffer(&recv_buffer, &recv_request)); - EXPECT_EQ(send_request.message(), recv_request.message()); - - send_response.set_message(recv_request.message()); - send_buffer = SerializeToByteBuffer(&send_response); - srv_stream.Write(*send_buffer, tag(5)); - send_buffer.reset(); - server_ok(5); - - cli_stream->Read(&recv_buffer, tag(6)); - client_ok(6); - EXPECT_TRUE(ParseFromByteBuffer(&recv_buffer, &recv_response)); - EXPECT_EQ(send_response.message(), recv_response.message()); - - cli_stream->WritesDone(tag(7)); - client_ok(7); - - srv_stream.Read(&recv_buffer, tag(8)); - server_fail(8); - - srv_stream.Finish(Status::OK, tag(9)); - server_ok(9); - - cli_stream->Finish(&recv_status, tag(10)); - client_ok(10); - - EXPECT_EQ(send_response.message(), recv_response.message()); - EXPECT_TRUE(recv_status.ok()); - - EXPECT_EQ(1, GetCallCounterValue()); - EXPECT_EQ(1, GetConnectionCounterValue()); -} - -} // namespace -} // namespace testing -} // namespace grpc - -int main(int argc, char** argv) { - grpc::testing::TestEnvironment env(&argc, argv); - ::testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); -} diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal index a911b6e4f06..793e0ffa6ce 100644 --- a/tools/doxygen/Doxyfile.c++.internal +++ b/tools/doxygen/Doxyfile.c++.internal @@ -2797,8 +2797,6 @@ src/cpp/client/xds_credentials.cc \ src/cpp/common/alarm.cc \ src/cpp/common/auth_property_iterator.cc \ src/cpp/common/channel_arguments.cc \ -src/cpp/common/channel_filter.cc \ -src/cpp/common/channel_filter.h \ src/cpp/common/completion_queue_cc.cc \ src/cpp/common/resource_quota_cc.cc \ src/cpp/common/rpc_method.cc \ diff --git a/tools/run_tests/generated/tests.json b/tools/run_tests/generated/tests.json index e86c7b211bf..2e182fefd31 100644 --- a/tools/run_tests/generated/tests.json +++ b/tools/run_tests/generated/tests.json @@ -1729,30 +1729,6 @@ ], "uses_polling": true }, - { - "args": [], - "benchmark": false, - "ci_platforms": [ - "linux", - "mac", - "posix", - "windows" - ], - "cpu_cost": 1.0, - "exclude_configs": [], - "exclude_iomgrs": [], - "flaky": false, - "gtest": true, - "language": "c++", - "name": "channel_filter_test", - "platforms": [ - "linux", - "mac", - "posix", - "windows" - ], - "uses_polling": false - }, { "args": [], "benchmark": false, @@ -3469,30 +3445,6 @@ ], "uses_polling": true }, - { - "args": [], - "benchmark": false, - "ci_platforms": [ - "linux", - "mac", - "posix", - "windows" - ], - "cpu_cost": 1.0, - "exclude_configs": [], - "exclude_iomgrs": [], - "flaky": false, - "gtest": true, - "language": "c++", - "name": "filter_end2end_test", - "platforms": [ - "linux", - "mac", - "posix", - "windows" - ], - "uses_polling": true - }, { "args": [], "benchmark": false,