From f8c22859a0b8524b78f53888bcc5e74e95520dcb Mon Sep 17 00:00:00 2001 From: David Fowler Date: Mon, 22 Jul 2019 09:23:22 -0700 Subject: [PATCH] Complete the reader in Dispose (#12430) - This should avoid issues about completing while still reading. - Dispose the HttpResponseMessage in some tests that use ResponseHeadersRead); --- src/Hosting/TestHost/src/ResponseBodyReaderStream.cs | 5 +++-- src/Hosting/TestHost/test/RequestLifetimeTests.cs | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Hosting/TestHost/src/ResponseBodyReaderStream.cs b/src/Hosting/TestHost/src/ResponseBodyReaderStream.cs index 0ec24a1c9a..4480a5b374 100644 --- a/src/Hosting/TestHost/src/ResponseBodyReaderStream.cs +++ b/src/Hosting/TestHost/src/ResponseBodyReaderStream.cs @@ -87,7 +87,6 @@ namespace Microsoft.AspNetCore.TestHost if (result.Buffer.IsEmpty && result.IsCompleted) { - _pipe.Reader.Complete(); _readComplete(); _readerComplete = true; return 0; @@ -128,7 +127,6 @@ namespace Microsoft.AspNetCore.TestHost _aborted = true; _abortException = innerException; _pipe.Reader.CancelPendingRead(); - _pipe.Reader.Complete(); } private void CheckAborted() @@ -145,6 +143,9 @@ namespace Microsoft.AspNetCore.TestHost { _abortRequest(); } + + _pipe.Reader.Complete(); + base.Dispose(disposing); } } diff --git a/src/Hosting/TestHost/test/RequestLifetimeTests.cs b/src/Hosting/TestHost/test/RequestLifetimeTests.cs index e73f2b7458..d83d3465ba 100644 --- a/src/Hosting/TestHost/test/RequestLifetimeTests.cs +++ b/src/Hosting/TestHost/test/RequestLifetimeTests.cs @@ -86,7 +86,7 @@ namespace Microsoft.AspNetCore.TestHost }); var client = host.GetTestServer().CreateClient(); - var response = await client.GetAsync("/", HttpCompletionOption.ResponseHeadersRead); + using var response = await client.GetAsync("/", HttpCompletionOption.ResponseHeadersRead); responseReceived.SetResult(0); response.EnsureSuccessStatusCode(); var ex = await Assert.ThrowsAsync(() => response.Content.ReadAsByteArrayAsync());