Use InProc Channel for callback tests

pull/16842/head
Yash Tibrewal 6 years ago
parent d8cfd96fb2
commit 6e00b3bb88
  1. 42
      CMakeLists.txt
  2. 48
      Makefile
  3. 14
      build.yaml
  4. 42
      test/cpp/end2end/client_interceptors_end2end_test.cc
  5. 19
      tools/run_tests/generated/sources_and_headers.json
  6. 24
      tools/run_tests/generated/tests.json

@ -585,6 +585,7 @@ if(_gRPC_PLATFORM_LINUX OR _gRPC_PLATFORM_MAC OR _gRPC_PLATFORM_POSIX)
add_dependencies(buildtests_cxx client_crash_test) add_dependencies(buildtests_cxx client_crash_test)
endif() endif()
add_dependencies(buildtests_cxx client_crash_test_server) add_dependencies(buildtests_cxx client_crash_test_server)
add_dependencies(buildtests_cxx client_interceptors_end2end_test)
add_dependencies(buildtests_cxx client_lb_end2end_test) add_dependencies(buildtests_cxx client_lb_end2end_test)
add_dependencies(buildtests_cxx codegen_test_full) add_dependencies(buildtests_cxx codegen_test_full)
add_dependencies(buildtests_cxx codegen_test_minimal) add_dependencies(buildtests_cxx codegen_test_minimal)
@ -12391,6 +12392,47 @@ target_link_libraries(client_crash_test_server
) )
endif (gRPC_BUILD_TESTS)
if (gRPC_BUILD_TESTS)
add_executable(client_interceptors_end2end_test
test/cpp/end2end/client_interceptors_end2end_test.cc
third_party/googletest/googletest/src/gtest-all.cc
third_party/googletest/googlemock/src/gmock-all.cc
)
target_include_directories(client_interceptors_end2end_test
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include
PRIVATE ${_gRPC_SSL_INCLUDE_DIR}
PRIVATE ${_gRPC_PROTOBUF_INCLUDE_DIR}
PRIVATE ${_gRPC_ZLIB_INCLUDE_DIR}
PRIVATE ${_gRPC_BENCHMARK_INCLUDE_DIR}
PRIVATE ${_gRPC_CARES_INCLUDE_DIR}
PRIVATE ${_gRPC_GFLAGS_INCLUDE_DIR}
PRIVATE ${_gRPC_ADDRESS_SORTING_INCLUDE_DIR}
PRIVATE ${_gRPC_NANOPB_INCLUDE_DIR}
PRIVATE third_party/googletest/googletest/include
PRIVATE third_party/googletest/googletest
PRIVATE third_party/googletest/googlemock/include
PRIVATE third_party/googletest/googlemock
PRIVATE ${_gRPC_PROTO_GENS_DIR}
)
target_link_libraries(client_interceptors_end2end_test
${_gRPC_PROTOBUF_LIBRARIES}
${_gRPC_ALLTARGETS_LIBRARIES}
grpc++_test_util
grpc_test_util
grpc++
grpc
gpr_test_util
gpr
${_gRPC_GFLAGS_LIBRARIES}
)
endif (gRPC_BUILD_TESTS) endif (gRPC_BUILD_TESTS)
if (gRPC_BUILD_TESTS) if (gRPC_BUILD_TESTS)

@ -1164,6 +1164,7 @@ client_callback_end2end_test: $(BINDIR)/$(CONFIG)/client_callback_end2end_test
client_channel_stress_test: $(BINDIR)/$(CONFIG)/client_channel_stress_test client_channel_stress_test: $(BINDIR)/$(CONFIG)/client_channel_stress_test
client_crash_test: $(BINDIR)/$(CONFIG)/client_crash_test client_crash_test: $(BINDIR)/$(CONFIG)/client_crash_test
client_crash_test_server: $(BINDIR)/$(CONFIG)/client_crash_test_server client_crash_test_server: $(BINDIR)/$(CONFIG)/client_crash_test_server
client_interceptors_end2end_test: $(BINDIR)/$(CONFIG)/client_interceptors_end2end_test
client_lb_end2end_test: $(BINDIR)/$(CONFIG)/client_lb_end2end_test client_lb_end2end_test: $(BINDIR)/$(CONFIG)/client_lb_end2end_test
codegen_test_full: $(BINDIR)/$(CONFIG)/codegen_test_full codegen_test_full: $(BINDIR)/$(CONFIG)/codegen_test_full
codegen_test_minimal: $(BINDIR)/$(CONFIG)/codegen_test_minimal codegen_test_minimal: $(BINDIR)/$(CONFIG)/codegen_test_minimal
@ -1669,6 +1670,7 @@ buildtests_cxx: privatelibs_cxx \
$(BINDIR)/$(CONFIG)/client_channel_stress_test \ $(BINDIR)/$(CONFIG)/client_channel_stress_test \
$(BINDIR)/$(CONFIG)/client_crash_test \ $(BINDIR)/$(CONFIG)/client_crash_test \
$(BINDIR)/$(CONFIG)/client_crash_test_server \ $(BINDIR)/$(CONFIG)/client_crash_test_server \
$(BINDIR)/$(CONFIG)/client_interceptors_end2end_test \
$(BINDIR)/$(CONFIG)/client_lb_end2end_test \ $(BINDIR)/$(CONFIG)/client_lb_end2end_test \
$(BINDIR)/$(CONFIG)/codegen_test_full \ $(BINDIR)/$(CONFIG)/codegen_test_full \
$(BINDIR)/$(CONFIG)/codegen_test_minimal \ $(BINDIR)/$(CONFIG)/codegen_test_minimal \
@ -1850,6 +1852,7 @@ buildtests_cxx: privatelibs_cxx \
$(BINDIR)/$(CONFIG)/client_channel_stress_test \ $(BINDIR)/$(CONFIG)/client_channel_stress_test \
$(BINDIR)/$(CONFIG)/client_crash_test \ $(BINDIR)/$(CONFIG)/client_crash_test \
$(BINDIR)/$(CONFIG)/client_crash_test_server \ $(BINDIR)/$(CONFIG)/client_crash_test_server \
$(BINDIR)/$(CONFIG)/client_interceptors_end2end_test \
$(BINDIR)/$(CONFIG)/client_lb_end2end_test \ $(BINDIR)/$(CONFIG)/client_lb_end2end_test \
$(BINDIR)/$(CONFIG)/codegen_test_full \ $(BINDIR)/$(CONFIG)/codegen_test_full \
$(BINDIR)/$(CONFIG)/codegen_test_minimal \ $(BINDIR)/$(CONFIG)/codegen_test_minimal \
@ -2308,6 +2311,8 @@ test_cxx: buildtests_cxx
$(Q) $(BINDIR)/$(CONFIG)/client_channel_stress_test || ( echo test client_channel_stress_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/client_channel_stress_test || ( echo test client_channel_stress_test failed ; exit 1 )
$(E) "[RUN] Testing client_crash_test" $(E) "[RUN] Testing client_crash_test"
$(Q) $(BINDIR)/$(CONFIG)/client_crash_test || ( echo test client_crash_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/client_crash_test || ( echo test client_crash_test failed ; exit 1 )
$(E) "[RUN] Testing client_interceptors_end2end_test"
$(Q) $(BINDIR)/$(CONFIG)/client_interceptors_end2end_test || ( echo test client_interceptors_end2end_test failed ; exit 1 )
$(E) "[RUN] Testing client_lb_end2end_test" $(E) "[RUN] Testing client_lb_end2end_test"
$(Q) $(BINDIR)/$(CONFIG)/client_lb_end2end_test || ( echo test client_lb_end2end_test failed ; exit 1 ) $(Q) $(BINDIR)/$(CONFIG)/client_lb_end2end_test || ( echo test client_lb_end2end_test failed ; exit 1 )
$(E) "[RUN] Testing codegen_test_full" $(E) "[RUN] Testing codegen_test_full"
@ -17271,6 +17276,49 @@ endif
endif endif
CLIENT_INTERCEPTORS_END2END_TEST_SRC = \
test/cpp/end2end/client_interceptors_end2end_test.cc \
CLIENT_INTERCEPTORS_END2END_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CLIENT_INTERCEPTORS_END2END_TEST_SRC))))
ifeq ($(NO_SECURE),true)
# You can't build secure targets if you don't have OpenSSL.
$(BINDIR)/$(CONFIG)/client_interceptors_end2end_test: openssl_dep_error
else
ifeq ($(NO_PROTOBUF),true)
# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.5.0+.
$(BINDIR)/$(CONFIG)/client_interceptors_end2end_test: protobuf_dep_error
else
$(BINDIR)/$(CONFIG)/client_interceptors_end2end_test: $(PROTOBUF_DEP) $(CLIENT_INTERCEPTORS_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
$(E) "[LD] Linking $@"
$(Q) mkdir -p `dirname $@`
$(Q) $(LDXX) $(LDFLAGS) $(CLIENT_INTERCEPTORS_END2END_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/client_interceptors_end2end_test
endif
endif
$(OBJDIR)/$(CONFIG)/test/cpp/end2end/client_interceptors_end2end_test.o: $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
deps_client_interceptors_end2end_test: $(CLIENT_INTERCEPTORS_END2END_TEST_OBJS:.o=.dep)
ifneq ($(NO_SECURE),true)
ifneq ($(NO_DEPS),true)
-include $(CLIENT_INTERCEPTORS_END2END_TEST_OBJS:.o=.dep)
endif
endif
CLIENT_LB_END2END_TEST_SRC = \ CLIENT_LB_END2END_TEST_SRC = \
test/cpp/end2end/client_lb_end2end_test.cc \ test/cpp/end2end/client_lb_end2end_test.cc \

@ -4512,6 +4512,20 @@ targets:
- grpc - grpc
- gpr_test_util - gpr_test_util
- gpr - gpr
- name: client_interceptors_end2end_test
gtest: true
cpu_cost: 0.5
build: test
language: c++
src:
- test/cpp/end2end/client_interceptors_end2end_test.cc
deps:
- grpc++_test_util
- grpc_test_util
- grpc++
- grpc
- gpr_test_util
- gpr
- name: client_lb_end2end_test - name: client_lb_end2end_test
gtest: true gtest: true
build: test build: test

@ -121,7 +121,7 @@ class HijackingInterceptor : public experimental::Interceptor {
experimental::InterceptionHookPoints::PRE_SEND_INITIAL_METADATA)) { experimental::InterceptionHookPoints::PRE_SEND_INITIAL_METADATA)) {
auto* map = methods->GetSendInitialMetadata(); auto* map = methods->GetSendInitialMetadata();
// Check that we can see the test metadata // Check that we can see the test metadata
ASSERT_EQ(map->size(), 1); ASSERT_EQ(map->size(), static_cast<unsigned>(1));
auto iterator = map->begin(); auto iterator = map->begin();
EXPECT_EQ("testkey", iterator->first); EXPECT_EQ("testkey", iterator->first);
EXPECT_EQ("testvalue", iterator->second); EXPECT_EQ("testvalue", iterator->second);
@ -143,7 +143,7 @@ class HijackingInterceptor : public experimental::Interceptor {
experimental::InterceptionHookPoints::POST_RECV_INITIAL_METADATA)) { experimental::InterceptionHookPoints::POST_RECV_INITIAL_METADATA)) {
auto* map = methods->GetRecvInitialMetadata(); auto* map = methods->GetRecvInitialMetadata();
// Got nothing better to do here for now // Got nothing better to do here for now
EXPECT_EQ(map->size(), 0); EXPECT_EQ(map->size(), static_cast<unsigned>(0));
} }
if (methods->QueryInterceptionHookPoint( if (methods->QueryInterceptionHookPoint(
experimental::InterceptionHookPoints::POST_RECV_MESSAGE)) { experimental::InterceptionHookPoints::POST_RECV_MESSAGE)) {
@ -172,7 +172,7 @@ class HijackingInterceptor : public experimental::Interceptor {
experimental::InterceptionHookPoints::PRE_RECV_INITIAL_METADATA)) { experimental::InterceptionHookPoints::PRE_RECV_INITIAL_METADATA)) {
auto* map = methods->GetRecvInitialMetadata(); auto* map = methods->GetRecvInitialMetadata();
// Got nothing better to do here at the moment // Got nothing better to do here at the moment
EXPECT_EQ(map->size(), 0); EXPECT_EQ(map->size(), static_cast<unsigned>(0));
} }
if (methods->QueryInterceptionHookPoint( if (methods->QueryInterceptionHookPoint(
experimental::InterceptionHookPoints::PRE_RECV_MESSAGE)) { experimental::InterceptionHookPoints::PRE_RECV_MESSAGE)) {
@ -185,7 +185,7 @@ class HijackingInterceptor : public experimental::Interceptor {
experimental::InterceptionHookPoints::PRE_RECV_STATUS)) { experimental::InterceptionHookPoints::PRE_RECV_STATUS)) {
auto* map = methods->GetRecvTrailingMetadata(); auto* map = methods->GetRecvTrailingMetadata();
// insert the metadata that we want // insert the metadata that we want
EXPECT_EQ(map->size(), 0); EXPECT_EQ(map->size(), static_cast<unsigned>(0));
map->insert(std::make_pair("testkey", "testvalue")); map->insert(std::make_pair("testkey", "testvalue"));
auto* status = methods->GetRecvStatus(); auto* status = methods->GetRecvStatus();
*status = Status(StatusCode::OK, ""); *status = Status(StatusCode::OK, "");
@ -224,7 +224,7 @@ class HijackingInterceptorMakesAnotherCall : public experimental::Interceptor {
experimental::InterceptionHookPoints::PRE_SEND_INITIAL_METADATA)) { experimental::InterceptionHookPoints::PRE_SEND_INITIAL_METADATA)) {
auto* map = methods->GetSendInitialMetadata(); auto* map = methods->GetSendInitialMetadata();
// Check that we can see the test metadata // Check that we can see the test metadata
ASSERT_EQ(map->size(), 1); ASSERT_EQ(map->size(), static_cast<unsigned>(1));
auto iterator = map->begin(); auto iterator = map->begin();
EXPECT_EQ("testkey", iterator->first); EXPECT_EQ("testkey", iterator->first);
EXPECT_EQ("testvalue", iterator->second); EXPECT_EQ("testvalue", iterator->second);
@ -239,12 +239,12 @@ class HijackingInterceptorMakesAnotherCall : public experimental::Interceptor {
SerializationTraits<EchoRequest>::Deserialize(&copied_buffer, &req); SerializationTraits<EchoRequest>::Deserialize(&copied_buffer, &req);
EXPECT_EQ(req.message(), "Hello"); EXPECT_EQ(req.message(), "Hello");
req_ = req; req_ = req;
auto stub = grpc::testing::EchoTestService::NewStub( stub_ = grpc::testing::EchoTestService::NewStub(
methods->GetInterceptedChannel()); methods->GetInterceptedChannel());
ctx_.AddMetadata(metadata_map_.begin()->first, ctx_.AddMetadata(metadata_map_.begin()->first,
metadata_map_.begin()->second); metadata_map_.begin()->second);
stub->experimental_async()->Echo(&ctx_, &req_, &resp_, stub_->experimental_async()->Echo(&ctx_, &req_, &resp_,
[this, &methods](Status s) { [this, methods](Status s) {
EXPECT_EQ(s.ok(), true); EXPECT_EQ(s.ok(), true);
EXPECT_EQ(resp_.message(), "Hello"); EXPECT_EQ(resp_.message(), "Hello");
methods->Hijack(); methods->Hijack();
@ -261,7 +261,7 @@ class HijackingInterceptorMakesAnotherCall : public experimental::Interceptor {
experimental::InterceptionHookPoints::POST_RECV_INITIAL_METADATA)) { experimental::InterceptionHookPoints::POST_RECV_INITIAL_METADATA)) {
auto* map = methods->GetRecvInitialMetadata(); auto* map = methods->GetRecvInitialMetadata();
// Got nothing better to do here for now // Got nothing better to do here for now
EXPECT_EQ(map->size(), 0); EXPECT_EQ(map->size(), static_cast<unsigned>(0));
} }
if (methods->QueryInterceptionHookPoint( if (methods->QueryInterceptionHookPoint(
experimental::InterceptionHookPoints::POST_RECV_MESSAGE)) { experimental::InterceptionHookPoints::POST_RECV_MESSAGE)) {
@ -289,7 +289,7 @@ class HijackingInterceptorMakesAnotherCall : public experimental::Interceptor {
experimental::InterceptionHookPoints::PRE_RECV_INITIAL_METADATA)) { experimental::InterceptionHookPoints::PRE_RECV_INITIAL_METADATA)) {
auto* map = methods->GetRecvInitialMetadata(); auto* map = methods->GetRecvInitialMetadata();
// Got nothing better to do here at the moment // Got nothing better to do here at the moment
EXPECT_EQ(map->size(), 0); EXPECT_EQ(map->size(), static_cast<unsigned>(0));
} }
if (methods->QueryInterceptionHookPoint( if (methods->QueryInterceptionHookPoint(
experimental::InterceptionHookPoints::PRE_RECV_MESSAGE)) { experimental::InterceptionHookPoints::PRE_RECV_MESSAGE)) {
@ -302,7 +302,7 @@ class HijackingInterceptorMakesAnotherCall : public experimental::Interceptor {
experimental::InterceptionHookPoints::PRE_RECV_STATUS)) { experimental::InterceptionHookPoints::PRE_RECV_STATUS)) {
auto* map = methods->GetRecvTrailingMetadata(); auto* map = methods->GetRecvTrailingMetadata();
// insert the metadata that we want // insert the metadata that we want
EXPECT_EQ(map->size(), 0); EXPECT_EQ(map->size(), static_cast<unsigned>(0));
*map = ctx_.GetServerTrailingMetadata(); *map = ctx_.GetServerTrailingMetadata();
auto* status = methods->GetRecvStatus(); auto* status = methods->GetRecvStatus();
*status = Status(StatusCode::OK, ""); *status = Status(StatusCode::OK, "");
@ -317,6 +317,7 @@ class HijackingInterceptorMakesAnotherCall : public experimental::Interceptor {
ClientContext ctx_; ClientContext ctx_;
EchoRequest req_; EchoRequest req_;
EchoResponse resp_; EchoResponse resp_;
std::unique_ptr<grpc::testing::EchoTestService::Stub> stub_;
}; };
class HijackingInterceptorMakesAnotherCallFactory class HijackingInterceptorMakesAnotherCallFactory
@ -342,7 +343,7 @@ class LoggingInterceptor : public experimental::Interceptor {
experimental::InterceptionHookPoints::PRE_SEND_INITIAL_METADATA)) { experimental::InterceptionHookPoints::PRE_SEND_INITIAL_METADATA)) {
auto* map = methods->GetSendInitialMetadata(); auto* map = methods->GetSendInitialMetadata();
// Check that we can see the test metadata // Check that we can see the test metadata
ASSERT_EQ(map->size(), 1); ASSERT_EQ(map->size(), static_cast<unsigned>(1));
auto iterator = map->begin(); auto iterator = map->begin();
EXPECT_EQ("testkey", iterator->first); EXPECT_EQ("testkey", iterator->first);
EXPECT_EQ("testvalue", iterator->second); EXPECT_EQ("testvalue", iterator->second);
@ -363,7 +364,7 @@ class LoggingInterceptor : public experimental::Interceptor {
experimental::InterceptionHookPoints::POST_RECV_INITIAL_METADATA)) { experimental::InterceptionHookPoints::POST_RECV_INITIAL_METADATA)) {
auto* map = methods->GetRecvInitialMetadata(); auto* map = methods->GetRecvInitialMetadata();
// Got nothing better to do here for now // Got nothing better to do here for now
EXPECT_EQ(map->size(), 0); EXPECT_EQ(map->size(), static_cast<unsigned>(0));
} }
if (methods->QueryInterceptionHookPoint( if (methods->QueryInterceptionHookPoint(
experimental::InterceptionHookPoints::POST_RECV_MESSAGE)) { experimental::InterceptionHookPoints::POST_RECV_MESSAGE)) {
@ -401,7 +402,7 @@ class LoggingInterceptorFactory
} }
}; };
void MakeCall(std::shared_ptr<Channel> channel) { void MakeCall(const std::shared_ptr<Channel> channel) {
auto stub = grpc::testing::EchoTestService::NewStub(channel); auto stub = grpc::testing::EchoTestService::NewStub(channel);
ClientContext ctx; ClientContext ctx;
EchoRequest req; EchoRequest req;
@ -414,7 +415,7 @@ void MakeCall(std::shared_ptr<Channel> channel) {
EXPECT_EQ(resp.message(), "Hello"); EXPECT_EQ(resp.message(), "Hello");
} }
void MakeCallbackCall(std::shared_ptr<Channel> channel) { void MakeCallbackCall(const std::shared_ptr<Channel> channel) {
auto stub = grpc::testing::EchoTestService::NewStub(channel); auto stub = grpc::testing::EchoTestService::NewStub(channel);
ClientContext ctx; ClientContext ctx;
EchoRequest req; EchoRequest req;
@ -525,8 +526,11 @@ TEST_F(ClientInterceptorsEnd2endTest,
creators->push_back(std::unique_ptr<DummyInterceptorFactory>( creators->push_back(std::unique_ptr<DummyInterceptorFactory>(
new DummyInterceptorFactory())); new DummyInterceptorFactory()));
} }
auto channel = experimental::CreateCustomChannelWithInterceptors( // auto channel = experimental::CreateCustomChannelWithInterceptors(
server_address_, InsecureChannelCredentials(), args, std::move(creators)); // server_address_, InsecureChannelCredentials(), args,
// std::move(creators));
auto channel = server_->experimental().InProcessChannelWithInterceptors(
args, std::move(creators));
MakeCall(channel); MakeCall(channel);
// Make sure all interceptors were run once, since the hijacking interceptor // Make sure all interceptors were run once, since the hijacking interceptor
@ -549,8 +553,8 @@ TEST_F(ClientInterceptorsEnd2endTest,
creators->push_back(std::unique_ptr<DummyInterceptorFactory>( creators->push_back(std::unique_ptr<DummyInterceptorFactory>(
new DummyInterceptorFactory())); new DummyInterceptorFactory()));
} }
auto channel = experimental::CreateCustomChannelWithInterceptors( auto channel = server_->experimental().InProcessChannelWithInterceptors(
server_address_, InsecureChannelCredentials(), args, std::move(creators)); args, std::move(creators));
MakeCallbackCall(channel); MakeCallbackCall(channel);
// Make sure all 20 dummy interceptors were run // Make sure all 20 dummy interceptors were run
EXPECT_EQ(DummyInterceptor::GetNumTimesRun(), 20); EXPECT_EQ(DummyInterceptor::GetNumTimesRun(), 20);

@ -3385,6 +3385,25 @@
"third_party": false, "third_party": false,
"type": "target" "type": "target"
}, },
{
"deps": [
"gpr",
"gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
"grpc_test_util"
],
"headers": [],
"is_filegroup": false,
"language": "c++",
"name": "client_interceptors_end2end_test",
"src": [
"test/cpp/end2end/client_interceptors_end2end_test.cc"
],
"third_party": false,
"type": "target"
},
{ {
"deps": [ "deps": [
"gpr", "gpr",

@ -4027,6 +4027,30 @@
], ],
"uses_polling": true "uses_polling": true
}, },
{
"args": [],
"benchmark": false,
"ci_platforms": [
"linux",
"mac",
"posix",
"windows"
],
"cpu_cost": 0.5,
"exclude_configs": [],
"exclude_iomgrs": [],
"flaky": false,
"gtest": true,
"language": "c++",
"name": "client_interceptors_end2end_test",
"platforms": [
"linux",
"mac",
"posix",
"windows"
],
"uses_polling": true
},
{ {
"args": [], "args": [],
"benchmark": false, "benchmark": false,

Loading…
Cancel
Save