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:
parent
077df0e3ca
commit
f8c22859a0
|
|
@ -87,7 +87,6 @@ namespace Microsoft.AspNetCore.TestHost
|
||||||
|
|
||||||
if (result.Buffer.IsEmpty && result.IsCompleted)
|
if (result.Buffer.IsEmpty && result.IsCompleted)
|
||||||
{
|
{
|
||||||
_pipe.Reader.Complete();
|
|
||||||
_readComplete();
|
_readComplete();
|
||||||
_readerComplete = true;
|
_readerComplete = true;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
@ -128,7 +127,6 @@ namespace Microsoft.AspNetCore.TestHost
|
||||||
_aborted = true;
|
_aborted = true;
|
||||||
_abortException = innerException;
|
_abortException = innerException;
|
||||||
_pipe.Reader.CancelPendingRead();
|
_pipe.Reader.CancelPendingRead();
|
||||||
_pipe.Reader.Complete();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CheckAborted()
|
private void CheckAborted()
|
||||||
|
|
@ -145,6 +143,9 @@ namespace Microsoft.AspNetCore.TestHost
|
||||||
{
|
{
|
||||||
_abortRequest();
|
_abortRequest();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_pipe.Reader.Complete();
|
||||||
|
|
||||||
base.Dispose(disposing);
|
base.Dispose(disposing);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -86,7 +86,7 @@ namespace Microsoft.AspNetCore.TestHost
|
||||||
});
|
});
|
||||||
|
|
||||||
var client = host.GetTestServer().CreateClient();
|
var client = host.GetTestServer().CreateClient();
|
||||||
var response = await client.GetAsync("/", HttpCompletionOption.ResponseHeadersRead);
|
using var response = await client.GetAsync("/", HttpCompletionOption.ResponseHeadersRead);
|
||||||
responseReceived.SetResult(0);
|
responseReceived.SetResult(0);
|
||||||
response.EnsureSuccessStatusCode();
|
response.EnsureSuccessStatusCode();
|
||||||
var ex = await Assert.ThrowsAsync<HttpRequestException>(() => response.Content.ReadAsByteArrayAsync());
|
var ex = await Assert.ThrowsAsync<HttpRequestException>(() => response.Content.ReadAsByteArrayAsync());
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue