diff options
author | Craig Tiller <ctiller@google.com> | 2015-08-05 12:13:15 -0700 |
---|---|---|
committer | Craig Tiller <ctiller@google.com> | 2015-08-05 12:13:15 -0700 |
commit | 22de7b65c0315d850274cf26944ede7da0d25e8a (patch) | |
tree | 82034f83dfe104f0551a3741ba309d30b67c27df /test/cpp/end2end/end2end_test.cc | |
parent | a600d58551504f5c0d70760c10b6fcd851ac8de2 (diff) | |
parent | 4e407ba343fb96b780ebcd4f5540260bfcea079a (diff) |
Merge github.com:grpc/grpc into propagate
Diffstat (limited to 'test/cpp/end2end/end2end_test.cc')
-rw-r--r-- | test/cpp/end2end/end2end_test.cc | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/test/cpp/end2end/end2end_test.cc b/test/cpp/end2end/end2end_test.cc index f39c6cf82a..3144ca4dc7 100644 --- a/test/cpp/end2end/end2end_test.cc +++ b/test/cpp/end2end/end2end_test.cc @@ -830,6 +830,31 @@ TEST_F(End2endTest, HugeResponse) { EXPECT_TRUE(s.ok()); } +namespace { +void ReaderThreadFunc(ClientReaderWriter<EchoRequest, EchoResponse>* stream, gpr_event *ev) { + EchoResponse resp; + gpr_event_set(ev, (void*)1); + while (stream->Read(&resp)) { + gpr_log(GPR_INFO, "Read message"); + } +} +} // namespace + +// Run a Read and a WritesDone simultaneously. +TEST_F(End2endTest, SimultaneousReadWritesDone) { + ResetStub(); + ClientContext context; + gpr_event ev; + gpr_event_init(&ev); + auto stream = stub_->BidiStream(&context); + std::thread reader_thread(ReaderThreadFunc, stream.get(), &ev); + gpr_event_wait(&ev, gpr_inf_future(GPR_CLOCK_REALTIME)); + stream->WritesDone(); + Status s = stream->Finish(); + EXPECT_TRUE(s.ok()); + reader_thread.join(); +} + TEST_F(End2endTest, Peer) { ResetStub(); EchoRequest request; |