|  | @@ -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
 | 
	
		
			
				|  |  |  
 |