Closed
Description
A customer attempted to use TestServer to test gRPC services. They weren't able to successfully test calls that use bidirectional streaming.
This functionality worked during 3.0 dev. grpc-dotnet functional tests were run with TestServer. At some point after grpc-dotnet switched to using a local Kestrel instance for functional tests, bidirectional streaming in TestServer stopped working.
To Reproduce
git clone https://github.com/JamesNK/grpc-dotnet/tree/jamesnk/bidirectionalstreaming-repro
- Run
SayHelloBidirectionStreamingTest
at https://github.com/JamesNK/grpc-dotnet/blob/c0a098ce8f44a751608ef1e9ef7ba1238d369aec/examples/Tester/Tests/FunctionalTests/GreeterServiceTests.cs#L101-L126 - Test will hang on
ResponseStream.MoveNext()
(line 118) - Uncomment
RequestStream.CompleteAsync()
(line 116) and run test again - Test now passes
Expected behavior
TestServer should be able to return response content while request is still in progress.
Additional context
.NET Core SDK (reflecting any global.json):
Version: 3.0.100
Commit: 04339c3a26