end2end_binder_transport_test.cc
Go to the documentation of this file.
1 // Copyright 2021 gRPC authors.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #include <string>
16 #include <thread>
17 #include <utility>
18 
19 #include <gmock/gmock.h>
20 #include <gtest/gtest.h>
21 
22 #include "absl/memory/memory.h"
23 #include "absl/time/time.h"
24 
25 #include <grpcpp/grpcpp.h>
26 
33 
34 namespace grpc_binder {
35 
36 namespace {
37 
38 class End2EndBinderTransportTest
39  : public ::testing::TestWithParam<absl::Duration> {
40  public:
41  End2EndBinderTransportTest() {
43  new end2end_testing::TransactionProcessor(GetParam());
44  service_ = absl::make_unique<grpc::testing::TestServiceImpl>();
46  builder.RegisterService(service_.get());
47  server_ = builder.BuildAndStart();
48  }
49 
50  ~End2EndBinderTransportTest() override {
51  server_->Shutdown();
52  service_.reset();
54  }
55 
56  std::unique_ptr<grpc::testing::EchoTestService::Stub> NewStub() {
58  std::shared_ptr<grpc::Channel> channel = BinderChannel(server_.get(), args);
59  return grpc::testing::EchoTestService::NewStub(channel);
60  }
61 
62  static void SetUpTestSuite() { grpc_init(); }
63  static void TearDownTestSuite() { grpc_shutdown(); }
64 
65  std::shared_ptr<grpc::Channel> BinderChannel(
68  }
69 
70  protected:
71  std::unique_ptr<grpc::testing::TestServiceImpl> service_;
72  std::unique_ptr<grpc::Server> server_;
73 
74  private:
76 };
77 
78 } // namespace
79 
80 TEST_P(End2EndBinderTransportTest, SetupTransport) {
81  grpc_transport *client_transport, *server_transport;
82  std::tie(client_transport, server_transport) =
84  EXPECT_NE(client_transport, nullptr);
85  EXPECT_NE(server_transport, nullptr);
86 
87  grpc_transport_destroy(client_transport);
88  grpc_transport_destroy(server_transport);
89 }
90 
91 TEST_P(End2EndBinderTransportTest, UnaryCall) {
92  std::unique_ptr<grpc::testing::EchoTestService::Stub> stub = NewStub();
94  grpc::testing::EchoRequest request;
95  grpc::testing::EchoResponse response;
96  request.set_message("UnaryCall");
99  EXPECT_EQ(response.message(), "UnaryCall");
100 }
101 
102 TEST_P(End2EndBinderTransportTest, UnaryCallWithNonOkStatus) {
103  std::unique_ptr<grpc::testing::EchoTestService::Stub> stub = NewStub();
105  grpc::testing::EchoRequest request;
106  grpc::testing::EchoResponse response;
107  request.set_message("UnaryCallWithNonOkStatus");
108  request.mutable_param()->mutable_expected_error()->set_code(
110  request.mutable_param()->mutable_expected_error()->set_error_message(
111  "expected to fail");
112  // Server will not response the client with message data, however, since all
113  // callbacks after the trailing metadata are cancelled, we shall not be
114  // blocked here.
118  EXPECT_THAT(status.error_message(), ::testing::HasSubstr("expected to fail"));
119 }
120 
121 TEST_P(End2EndBinderTransportTest, UnaryCallServerTimeout) {
122  std::unique_ptr<grpc::testing::EchoTestService::Stub> stub = NewStub();
125  grpc::testing::EchoRequest request;
126  grpc::testing::EchoResponse response;
127  request.set_message("UnaryCallServerTimeout");
128  // Server will sleep for 2 seconds before responding us.
129  request.mutable_param()->set_server_sleep_us(2000000);
130  // Disable cancellation check because the request will time out.
131  request.mutable_param()->set_skip_cancelled_check(true);
135 }
136 
137 TEST_P(End2EndBinderTransportTest, UnaryCallClientTimeout) {
138  std::unique_ptr<grpc::testing::EchoTestService::Stub> stub = NewStub();
139 
140  // Set transaction delay to a large number. This happens after the channel
141  // creation so that we don't need to wait that long for client and server to
142  // be connected.
144 
147  grpc::testing::EchoRequest request;
148  grpc::testing::EchoResponse response;
149  request.set_message("UnaryCallClientTimeout");
153 }
154 
155 TEST_P(End2EndBinderTransportTest, UnaryCallUnimplemented) {
156  std::unique_ptr<grpc::testing::EchoTestService::Stub> stub = NewStub();
157 
159  grpc::testing::EchoRequest request;
160  grpc::testing::EchoResponse response;
161  request.set_message("UnaryCallUnimplemented");
162  grpc::Status status = stub->Unimplemented(&context, request, &response);
165 }
166 
167 TEST_P(End2EndBinderTransportTest, UnaryCallClientCancel) {
168  std::unique_ptr<grpc::testing::EchoTestService::Stub> stub = NewStub();
169 
171  grpc::testing::EchoRequest request;
172  grpc::testing::EchoResponse response;
173  request.set_message("UnaryCallClientCancel");
174  context.TryCancel();
175  grpc::Status status = stub->Unimplemented(&context, request, &response);
178 }
179 
180 TEST_P(End2EndBinderTransportTest, UnaryCallEchoMetadataInitially) {
181  std::unique_ptr<grpc::testing::EchoTestService::Stub> stub = NewStub();
182 
184  grpc::testing::EchoRequest request;
185  grpc::testing::EchoResponse response;
186  request.set_message("UnaryCallEchoMetadataInitially");
187  request.mutable_param()->set_echo_metadata_initially(true);
188  context.AddMetadata("key1", "value1");
189  context.AddMetadata("key2", "value2");
191  const auto& initial_metadata = context.GetServerInitialMetadata();
192  EXPECT_EQ(initial_metadata.find("key1")->second, "value1");
193  EXPECT_EQ(initial_metadata.find("key2")->second, "value2");
194 }
195 
196 TEST_P(End2EndBinderTransportTest, UnaryCallEchoMetadata) {
197  std::unique_ptr<grpc::testing::EchoTestService::Stub> stub = NewStub();
198 
200  grpc::testing::EchoRequest request;
201  grpc::testing::EchoResponse response;
202  request.set_message("UnaryCallEchoMetadata");
203  request.mutable_param()->set_echo_metadata(true);
204  context.AddMetadata("key1", "value1");
205  context.AddMetadata("key2", "value2");
207  const auto& initial_metadata = context.GetServerTrailingMetadata();
208  EXPECT_EQ(initial_metadata.find("key1")->second, "value1");
209  EXPECT_EQ(initial_metadata.find("key2")->second, "value2");
210 }
211 
212 TEST_P(End2EndBinderTransportTest, UnaryCallResponseMessageLength) {
213  std::unique_ptr<grpc::testing::EchoTestService::Stub> stub = NewStub();
214 
215  for (size_t response_length : {1, 2, 5, 10, 100, 1000000}) {
217  grpc::testing::EchoRequest request;
218  grpc::testing::EchoResponse response;
219  request.set_message("UnaryCallResponseMessageLength");
220  request.mutable_param()->set_response_message_length(response_length);
222  EXPECT_EQ(response.message().length(), response_length);
223  }
224 }
225 
226 TEST_P(End2EndBinderTransportTest, UnaryCallTryCancel) {
227  std::unique_ptr<grpc::testing::EchoTestService::Stub> stub = NewStub();
228 
232  grpc::testing::EchoRequest request;
233  grpc::testing::EchoResponse response;
234  request.set_message("UnaryCallTryCancel");
238 }
239 
240 TEST_P(End2EndBinderTransportTest, ServerStreamingCall) {
241  std::unique_ptr<grpc::testing::EchoTestService::Stub> stub = NewStub();
242  constexpr size_t kServerResponseStreamsToSend = 100;
246  grpc::testing::EchoRequest request;
247  request.set_message("ServerStreamingCall");
248  std::unique_ptr<grpc::ClientReader<grpc::testing::EchoResponse>> reader =
249  stub->ResponseStream(&context, request);
250  grpc::testing::EchoResponse response;
251  size_t cnt = 0;
252  while (reader->Read(&response)) {
253  EXPECT_EQ(response.message(), "ServerStreamingCall" + std::to_string(cnt));
254  cnt++;
255  }
257  grpc::Status status = reader->Finish();
258  EXPECT_TRUE(status.ok());
259 }
260 
261 TEST_P(End2EndBinderTransportTest, ServerStreamingCallCoalescingApi) {
262  std::unique_ptr<grpc::testing::EchoTestService::Stub> stub = NewStub();
263  constexpr size_t kServerResponseStreamsToSend = 100;
268  grpc::testing::EchoRequest request;
269  request.set_message("ServerStreamingCallCoalescingApi");
270  std::unique_ptr<grpc::ClientReader<grpc::testing::EchoResponse>> reader =
271  stub->ResponseStream(&context, request);
272  grpc::testing::EchoResponse response;
273  size_t cnt = 0;
274  while (reader->Read(&response)) {
275  EXPECT_EQ(response.message(),
276  "ServerStreamingCallCoalescingApi" + std::to_string(cnt));
277  cnt++;
278  }
280  grpc::Status status = reader->Finish();
281  EXPECT_TRUE(status.ok());
282 }
283 
284 TEST_P(End2EndBinderTransportTest,
285  ServerStreamingCallTryCancelBeforeProcessing) {
286  std::unique_ptr<grpc::testing::EchoTestService::Stub> stub = NewStub();
287  constexpr size_t kServerResponseStreamsToSend = 100;
293  grpc::testing::EchoRequest request;
294  request.set_message("ServerStreamingCallTryCancelBeforeProcessing");
295  std::unique_ptr<grpc::ClientReader<grpc::testing::EchoResponse>> reader =
296  stub->ResponseStream(&context, request);
297  grpc::testing::EchoResponse response;
298  EXPECT_FALSE(reader->Read(&response));
299  grpc::Status status = reader->Finish();
302 }
303 
304 TEST_P(End2EndBinderTransportTest,
305  ServerSteramingCallTryCancelDuringProcessing) {
306  std::unique_ptr<grpc::testing::EchoTestService::Stub> stub = NewStub();
307  constexpr size_t kServerResponseStreamsToSend = 2;
313  grpc::testing::EchoRequest request;
314  request.set_message("ServerStreamingCallTryCancelDuringProcessing");
315  std::unique_ptr<grpc::ClientReader<grpc::testing::EchoResponse>> reader =
316  stub->ResponseStream(&context, request);
317  grpc::testing::EchoResponse response;
318  size_t cnt = 0;
319  while (reader->Read(&response)) {
320  EXPECT_EQ(
321  response.message(),
322  "ServerStreamingCallTryCancelDuringProcessing" + std::to_string(cnt));
323  cnt++;
324  }
325  grpc::Status status = reader->Finish();
328 }
329 
330 TEST_P(End2EndBinderTransportTest,
331  ServerSteramingCallTryCancelAfterProcessing) {
332  std::unique_ptr<grpc::testing::EchoTestService::Stub> stub = NewStub();
333  constexpr size_t kServerResponseStreamsToSend = 100;
339  grpc::testing::EchoRequest request;
340  request.set_message("ServerStreamingCallTryCancelAfterProcessing");
341  std::unique_ptr<grpc::ClientReader<grpc::testing::EchoResponse>> reader =
342  stub->ResponseStream(&context, request);
343  grpc::testing::EchoResponse response;
344  size_t cnt = 0;
345  while (reader->Read(&response)) {
346  EXPECT_EQ(
347  response.message(),
348  "ServerStreamingCallTryCancelAfterProcessing" + std::to_string(cnt));
349  cnt++;
350  }
352  grpc::Status status = reader->Finish();
355 }
356 
357 TEST_P(End2EndBinderTransportTest, ClientStreamingCall) {
358  std::unique_ptr<grpc::testing::EchoTestService::Stub> stub = NewStub();
360  grpc::testing::EchoResponse response;
361  std::unique_ptr<grpc::ClientWriter<grpc::testing::EchoRequest>> writer =
362  stub->RequestStream(&context, &response);
363  constexpr size_t kClientStreamingCounts = 100;
364  std::string expected = "";
365  for (size_t i = 0; i < kClientStreamingCounts; ++i) {
366  grpc::testing::EchoRequest request;
367  request.set_message("ClientStreamingCall" + std::to_string(i));
368  EXPECT_TRUE(writer->Write(request));
369  expected += "ClientStreamingCall" + std::to_string(i);
370  }
371  writer->WritesDone();
372  grpc::Status status = writer->Finish();
373  EXPECT_TRUE(status.ok());
374  EXPECT_EQ(response.message(), expected);
375 }
376 
377 TEST_P(End2EndBinderTransportTest,
378  ClientStreamingCallTryCancelBeforeProcessing) {
379  std::unique_ptr<grpc::testing::EchoTestService::Stub> stub = NewStub();
383  grpc::testing::EchoResponse response;
384  std::unique_ptr<grpc::ClientWriter<grpc::testing::EchoRequest>> writer =
385  stub->RequestStream(&context, &response);
386  constexpr size_t kClientStreamingCounts = 100;
387  for (size_t i = 0; i < kClientStreamingCounts; ++i) {
388  grpc::testing::EchoRequest request;
389  request.set_message("ClientStreamingCallBeforeProcessing" +
390  std::to_string(i));
391  writer->Write(request);
392  }
393  writer->WritesDone();
394  grpc::Status status = writer->Finish();
397 }
398 
399 TEST_P(End2EndBinderTransportTest,
400  ClientStreamingCallTryCancelDuringProcessing) {
401  std::unique_ptr<grpc::testing::EchoTestService::Stub> stub = NewStub();
405  grpc::testing::EchoResponse response;
406  std::unique_ptr<grpc::ClientWriter<grpc::testing::EchoRequest>> writer =
407  stub->RequestStream(&context, &response);
408  constexpr size_t kClientStreamingCounts = 100;
409  for (size_t i = 0; i < kClientStreamingCounts; ++i) {
410  grpc::testing::EchoRequest request;
411  request.set_message("ClientStreamingCallDuringProcessing" +
412  std::to_string(i));
413  writer->Write(request);
414  }
415  writer->WritesDone();
416  grpc::Status status = writer->Finish();
419 }
420 
421 TEST_P(End2EndBinderTransportTest,
422  ClientStreamingCallTryCancelAfterProcessing) {
423  std::unique_ptr<grpc::testing::EchoTestService::Stub> stub = NewStub();
427  grpc::testing::EchoResponse response;
428  std::unique_ptr<grpc::ClientWriter<grpc::testing::EchoRequest>> writer =
429  stub->RequestStream(&context, &response);
430  constexpr size_t kClientStreamingCounts = 100;
431  for (size_t i = 0; i < kClientStreamingCounts; ++i) {
432  grpc::testing::EchoRequest request;
433  request.set_message("ClientStreamingCallAfterProcessing" +
434  std::to_string(i));
435  writer->Write(request);
436  }
437  writer->WritesDone();
438  grpc::Status status = writer->Finish();
441 }
442 
443 TEST_P(End2EndBinderTransportTest, BiDirStreamingCall) {
444  std::unique_ptr<grpc::testing::EchoTestService::Stub> stub = NewStub();
446  std::shared_ptr<grpc::ClientReaderWriter<grpc::testing::EchoRequest,
447  grpc::testing::EchoResponse>>
448  stream = stub->BidiStream(&context);
449  constexpr size_t kBiDirStreamingCounts = 100;
450 
451  struct WriterArgs {
452  std::shared_ptr<grpc::ClientReaderWriter<grpc::testing::EchoRequest,
453  grpc::testing::EchoResponse>>
454  stream;
455  size_t bi_dir_streaming_counts;
456  } writer_args;
457 
458  writer_args.stream = stream;
459  writer_args.bi_dir_streaming_counts = kBiDirStreamingCounts;
460 
461  auto writer_fn = [](void* arg) {
462  const WriterArgs& args = *static_cast<WriterArgs*>(arg);
463  for (size_t i = 0; i < args.bi_dir_streaming_counts; ++i) {
464  grpc::testing::EchoRequest request;
465  request.set_message("BiDirStreamingCall" + std::to_string(i));
466  args.stream->Write(request);
467  }
468  args.stream->WritesDone();
469  };
470 
471  grpc_core::Thread writer_thread("writer-thread", writer_fn,
472  static_cast<void*>(&writer_args));
473  writer_thread.Start();
474  for (size_t i = 0; i < kBiDirStreamingCounts; ++i) {
475  grpc::testing::EchoResponse response;
476  EXPECT_TRUE(stream->Read(&response));
477  EXPECT_EQ(response.message(), "BiDirStreamingCall" + std::to_string(i));
478  }
479  grpc::Status status = stream->Finish();
480  EXPECT_TRUE(status.ok());
481  writer_thread.Join();
482 }
483 
484 TEST_P(End2EndBinderTransportTest, BiDirStreamingCallServerFinishesHalfway) {
485  std::unique_ptr<grpc::testing::EchoTestService::Stub> stub = NewStub();
486  constexpr size_t kBiDirStreamingCounts = 100;
489  std::to_string(kBiDirStreamingCounts / 2));
490  std::shared_ptr<grpc::ClientReaderWriter<grpc::testing::EchoRequest,
491  grpc::testing::EchoResponse>>
492  stream = stub->BidiStream(&context);
493 
494  struct WriterArgs {
495  std::shared_ptr<grpc::ClientReaderWriter<grpc::testing::EchoRequest,
496  grpc::testing::EchoResponse>>
497  stream;
498  size_t bi_dir_streaming_counts;
499  } writer_args;
500 
501  writer_args.stream = stream;
502  writer_args.bi_dir_streaming_counts = kBiDirStreamingCounts;
503 
504  auto writer_fn = [](void* arg) {
505  const WriterArgs& args = *static_cast<WriterArgs*>(arg);
506  for (size_t i = 0; i < args.bi_dir_streaming_counts; ++i) {
507  grpc::testing::EchoRequest request;
508  request.set_message("BiDirStreamingCallServerFinishesHalfway" +
509  std::to_string(i));
510  if (!args.stream->Write(request)) {
511  return;
512  }
513  }
514  args.stream->WritesDone();
515  };
516 
517  grpc_core::Thread writer_thread("writer-thread", writer_fn,
518  static_cast<void*>(&writer_args));
519  writer_thread.Start();
520  for (size_t i = 0; i < kBiDirStreamingCounts / 2; ++i) {
521  grpc::testing::EchoResponse response;
522  EXPECT_TRUE(stream->Read(&response));
523  EXPECT_EQ(response.message(),
524  "BiDirStreamingCallServerFinishesHalfway" + std::to_string(i));
525  }
526  grpc::testing::EchoResponse response;
527  EXPECT_FALSE(stream->Read(&response));
528  writer_thread.Join();
529  grpc::Status status = stream->Finish();
530  EXPECT_TRUE(status.ok());
531 }
532 
533 TEST_P(End2EndBinderTransportTest, LargeMessages) {
534  std::unique_ptr<grpc::testing::EchoTestService::Stub> stub = NewStub();
535  for (size_t size = 1; size <= 1024 * 1024; size *= 4) {
537  grpc::testing::EchoRequest request;
538  grpc::testing::EchoResponse response;
539  request.set_message(std::string(size, 'a'));
541  EXPECT_TRUE(status.ok());
542  EXPECT_EQ(response.message().size(), size);
543  EXPECT_TRUE(std::all_of(response.message().begin(),
544  response.message().end(),
545  [](char c) { return c == 'a'; }));
546  }
547 }
548 
550  End2EndBinderTransportTestWithDifferentDelayTimes,
551  End2EndBinderTransportTest,
555 
556 } // namespace grpc_binder
557 
558 int main(int argc, char** argv) {
559  ::testing::InitGoogleTest(&argc, argv);
560  grpc::testing::TestEnvironment env(&argc, argv);
561  return RUN_ALL_TESTS();
562 }
EXPECT_FALSE
#define EXPECT_FALSE(condition)
Definition: bloaty/third_party/googletest/googletest/include/gtest/gtest.h:1970
generate.env
env
Definition: generate.py:37
absl::ZeroDuration
constexpr Duration ZeroDuration()
Definition: third_party/abseil-cpp/absl/time/time.h:308
EXPECT_THAT
#define EXPECT_THAT(value, matcher)
absl::Nanoseconds
constexpr Duration Nanoseconds(T n)
Definition: third_party/abseil-cpp/absl/time/time.h:407
benchmark.request
request
Definition: benchmark.py:77
grpc_binder
Definition: connection_id_generator.cc:45
testing::internal::string
::std::string string
Definition: bloaty/third_party/protobuf/third_party/googletest/googletest/include/gtest/internal/gtest-port.h:881
grpc::ClientContext::set_deadline
void set_deadline(const T &deadline)
Definition: grpcpp/impl/codegen/client_context.h:274
grpc::testing::CANCEL_AFTER_PROCESSING
@ CANCEL_AFTER_PROCESSING
Definition: test_service_impl.h:56
status
absl::Status status
Definition: rls.cc:251
async_greeter_client.stub
stub
Definition: hellostreamingworld/async_greeter_client.py:26
grpc::ClientContext::AddMetadata
void AddMetadata(const std::string &meta_key, const std::string &meta_value)
Definition: client_context.cc:121
test_service_impl.h
grpc_binder::TEST_P
TEST_P(End2EndBinderTransportTest, SetupTransport)
Definition: end2end_binder_transport_test.cc:80
testing::TestWithParam
Definition: bloaty/third_party/googletest/googletest/include/gtest/gtest.h:1883
EXPECT_EQ
#define EXPECT_EQ(a, b)
Definition: iomgr/time_averaged_stats_test.cc:27
absl::Milliseconds
constexpr Duration Milliseconds(T n)
Definition: third_party/abseil-cpp/absl/time/time.h:415
grpc::ClientReaderWriter
Definition: grpcpp/impl/codegen/channel_interface.h:35
profile_analyzer.builder
builder
Definition: profile_analyzer.py:159
channel
wrapped_grpc_channel * channel
Definition: src/php/ext/grpc/call.h:33
absl::Microseconds
constexpr Duration Microseconds(T n)
Definition: third_party/abseil-cpp/absl/time/time.h:411
asyncio_get_stats.args
args
Definition: asyncio_get_stats.py:40
grpc_binder::end2end_testing::CreateClientServerBindersPairForTesting
std::pair< grpc_transport *, grpc_transport * > CreateClientServerBindersPairForTesting()
Definition: testing_channel_create.cc:64
grpc::ServerBuilder
A builder class for the creation and startup of grpc::Server instances.
Definition: grpcpp/server_builder.h:86
EXPECT_NE
#define EXPECT_NE(val1, val2)
Definition: bloaty/third_party/googletest/googletest/include/gtest/gtest.h:2028
wire_reader_impl.h
main
int main(int argc, char **argv)
Definition: end2end_binder_transport_test.cc:558
grpc_transport_destroy
void grpc_transport_destroy(grpc_transport *transport)
Definition: transport.cc:96
grpc::testing::kServerResponseStreamsToSend
const char *const kServerResponseStreamsToSend
Definition: test_service_impl.h:43
grpcpp.h
grpc_core::Thread::Join
void Join()
Definition: thd.h:141
grpc_binder::end2end_testing::BinderChannelForTesting
std::shared_ptr< grpc::Channel > BinderChannelForTesting(grpc::Server *server, const grpc::ChannelArguments &args)
Definition: testing_channel_create.cc:97
RUN_ALL_TESTS
int RUN_ALL_TESTS() GTEST_MUST_USE_RESULT_
Definition: bloaty/third_party/googletest/googletest/include/gtest/gtest.h:2471
grpc_core::ExecCtx
Definition: exec_ctx.h:97
grpc_core::Thread::Start
void Start()
Definition: thd.h:125
grpc.StatusCode.UNIMPLEMENTED
tuple UNIMPLEMENTED
Definition: src/python/grpcio/grpc/__init__.py:276
writer
void writer(void *n)
Definition: libuv/docs/code/locks/main.c:22
grpc::ClientContext
Definition: grpcpp/impl/codegen/client_context.h:195
test_config.h
kServerResponseStreamsToSend
const char *const kServerResponseStreamsToSend
Definition: TestHelper.h:35
absl::Seconds
constexpr Duration Seconds(T n)
Definition: third_party/abseil-cpp/absl/time/time.h:419
grpc::ClientContext::GetServerTrailingMetadata
const std::multimap< grpc::string_ref, grpc::string_ref > & GetServerTrailingMetadata() const
Definition: grpcpp/impl/codegen/client_context.h:262
absl::Now
ABSL_NAMESPACE_BEGIN Time Now()
Definition: abseil-cpp/absl/time/clock.cc:39
grpc::ChannelArguments
Definition: grpcpp/support/channel_arguments.h:39
grpc::testing::kServerTryCancelRequest
const char *const kServerTryCancelRequest
Definition: test_service_impl.h:44
testing::InitGoogleTest
GTEST_API_ void InitGoogleTest(int *argc, char **argv)
Definition: bloaty/third_party/googletest/googletest/src/gtest.cc:6106
testing::Values
internal::ValueArray< T... > Values(T... v)
Definition: bloaty/third_party/googletest/googletest/include/gtest/gtest-param-test.h:335
server
Definition: examples/python/async_streaming/server.py:1
exec_ctx
grpc_core::ExecCtx exec_ctx
Definition: end2end_binder_transport_test.cc:75
grpc::Server
Definition: include/grpcpp/server.h:59
grpc::ClientContext::TryCancel
void TryCancel()
Definition: client_context.cc:157
asyncio_get_stats.response
response
Definition: asyncio_get_stats.py:28
grpc::testing::TestEnvironment
Definition: test/core/util/test_config.h:54
grpc_binder::INSTANTIATE_TEST_SUITE_P
INSTANTIATE_TEST_SUITE_P(End2EndBinderTransportTestWithDifferentDelayTimes, End2EndBinderTransportTest, testing::Values(absl::ZeroDuration(), absl::Nanoseconds(10), absl::Microseconds(10), absl::Microseconds(100), absl::Milliseconds(1), absl::Milliseconds(20)))
grpc::testing::kServerUseCoalescingApi
const char *const kServerUseCoalescingApi
Definition: test_service_impl.h:48
grpc::Status
Definition: include/grpcpp/impl/codegen/status.h:35
arg
struct arg arg
absl::Status::ok
ABSL_MUST_USE_RESULT bool ok() const
Definition: third_party/abseil-cpp/absl/status/status.h:802
grpc_core::Thread
Definition: thd.h:43
grpc_transport
Definition: transport_impl.h:89
grpc::testing::CANCEL_DURING_PROCESSING
@ CANCEL_DURING_PROCESSING
Definition: test_service_impl.h:55
grpc::testing::kServerFinishAfterNReads
const char *const kServerFinishAfterNReads
Definition: test_service_impl.h:47
EXPECT_TRUE
#define EXPECT_TRUE(condition)
Definition: bloaty/third_party/googletest/googletest/include/gtest/gtest.h:1967
grpc.StatusCode.CANCELLED
tuple CANCELLED
Definition: src/python/grpcio/grpc/__init__.py:261
context
grpc::ClientContext context
Definition: istio_echo_server_lib.cc:61
absl::ToChronoTime
std::chrono::system_clock::time_point ToChronoTime(absl::Time t)
Definition: third_party/abseil-cpp/absl/time/time.cc:339
grpc::ClientContext::GetServerInitialMetadata
const std::multimap< grpc::string_ref, grpc::string_ref > & GetServerInitialMetadata() const
Definition: grpcpp/impl/codegen/client_context.h:250
fake_binder.h
grpc_init
GRPCAPI void grpc_init(void)
Definition: init.cc:146
grpc.StatusCode.DEADLINE_EXCEEDED
tuple DEADLINE_EXCEEDED
Definition: src/python/grpcio/grpc/__init__.py:264
grpc.StatusCode.INTERNAL
tuple INTERNAL
Definition: src/python/grpcio/grpc/__init__.py:277
size
voidpf void uLong size
Definition: bloaty/third_party/zlib/contrib/minizip/ioapi.h:136
testing_channel_create.h
to_string
static bool to_string(zval *from)
Definition: protobuf/php/ext/google/protobuf/convert.c:333
testing::HasSubstr
PolymorphicMatcher< internal::HasSubstrMatcher< internal::string > > HasSubstr(const internal::string &substring)
Definition: cares/cares/test/gmock-1.8.0/gmock/gmock.h:8803
grpc::testing::CANCEL_BEFORE_PROCESSING
@ CANCEL_BEFORE_PROCESSING
Definition: test_service_impl.h:54
server_
std::unique_ptr< grpc::Server > server_
Definition: end2end_binder_transport_test.cc:72
grpc_shutdown
GRPCAPI void grpc_shutdown(void)
Definition: init.cc:209
grpc_binder::end2end_testing::g_transaction_processor
TransactionProcessor * g_transaction_processor
Definition: fake_binder.cc:25
reader
void reader(void *n)
Definition: libuv/docs/code/locks/main.c:8
i
uint64_t i
Definition: abseil-cpp/absl/container/btree_benchmark.cc:230
grpc_binder::end2end_testing::TransactionProcessor::SetDelay
void SetDelay(absl::Duration delay)
Definition: fake_binder.cc:168
service_
std::unique_ptr< grpc::testing::TestServiceImpl > service_
Definition: end2end_binder_transport_test.cc:71
binder_transport.h
stream
voidpf stream
Definition: bloaty/third_party/zlib/contrib/minizip/ioapi.h:136


grpc
Author(s):
autogenerated on Fri May 16 2025 02:58:19