From 8ab383686b25af41dbc022e854c88f4465d12f27 Mon Sep 17 00:00:00 2001 From: yang-g <yangg@google.com> Date: Fri, 31 Jul 2015 14:05:33 -0700 Subject: [PATCH] add a test where a read and a writesdone happen at the same time --- test/cpp/end2end/end2end_test.cc | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/test/cpp/end2end/end2end_test.cc b/test/cpp/end2end/end2end_test.cc index 5b351c169e..f6e55f3cba 100644 --- a/test/cpp/end2end/end2end_test.cc +++ b/test/cpp/end2end/end2end_test.cc @@ -818,6 +818,27 @@ TEST_F(End2endTest, HugeResponse) { EXPECT_TRUE(s.ok()); } +namespace { +void ReaderThreadFunc(ClientReaderWriter<EchoRequest, EchoResponse>* stream) { + EchoResponse resp; + while (stream->Read(&resp)) { + gpr_log(GPR_INFO, "Read message"); + } +} +} // namespace + +// Run a Read and a WritesDone simultaneously. +TEST_F(End2endTest, SimuReadWritesDone) { + ResetStub(); + ClientContext context; + auto stream = stub_->BidiStream(&context); + std::thread reader_thread(ReaderThreadFunc, stream.get()); + stream->WritesDone(); + Status s = stream->Finish(); + EXPECT_TRUE(s.ok()); + reader_thread.join(); +} + } // namespace testing } // namespace grpc -- GitLab