Complete the reader in Dispose (#12430)

- This should avoid issues about completing while still reading.
- Dispose the HttpResponseMessage in some tests that use ResponseHeadersRead);
This commit is contained in:
David Fowler 2019-07-22 09:23:22 -07:00 committed by GitHub
parent 077df0e3ca
commit f8c22859a0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 3 deletions

View File

@ -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);
}
}

View File

@ -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<HttpRequestException>(() => response.Content.ReadAsByteArrayAsync());