Add ConfigureAwait(false) to test helpers (#1699)
* Add ConfigureAwait(false) to test helpers
This commit is contained in:
parent
85d883456b
commit
de6da7c757
|
|
@ -38,7 +38,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
|
|||
|
||||
using (host)
|
||||
{
|
||||
host.Start();
|
||||
await host.StartAsync();
|
||||
|
||||
var response = await HttpClientSlim.GetStringAsync($"https://localhost:{host.GetPort()}/", validateCertificate: false)
|
||||
.TimeoutAfter(TimeSpan.FromSeconds(10));
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
|
|||
while (bytesWritten < data.Length)
|
||||
{
|
||||
var size = Math.Min(data.Length - bytesWritten, maxSendSize);
|
||||
await stream.WriteAsync(data, bytesWritten, size);
|
||||
await stream.WriteAsync(data, bytesWritten, size).ConfigureAwait(false);
|
||||
bytesWritten += size;
|
||||
lastBytesWritten = DateTime.Now;
|
||||
}
|
||||
|
|
@ -200,7 +200,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
|
|||
while (bytesWritten < data.Length)
|
||||
{
|
||||
var size = Math.Min(data.Length - bytesWritten, maxSendSize);
|
||||
await stream.WriteAsync(data, bytesWritten, size);
|
||||
await stream.WriteAsync(data, bytesWritten, size).ConfigureAwait(false);
|
||||
bytesWritten += size;
|
||||
lastBytesWritten = DateTime.Now;
|
||||
}
|
||||
|
|
@ -336,7 +336,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
|
|||
{
|
||||
foreach (var line in _requestLines)
|
||||
{
|
||||
await writer.WriteAsync(line);
|
||||
await writer.WriteAsync(line).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,26 +16,26 @@ namespace Microsoft.AspNetCore.Testing
|
|||
// Lightweight version of HttpClient implemented using Socket and SslStream
|
||||
public static class HttpClientSlim
|
||||
{
|
||||
public static Task<string> GetStringAsync(string requestUri, bool validateCertificate = true)
|
||||
=> GetStringAsync(new Uri(requestUri), validateCertificate);
|
||||
public static async Task<string> GetStringAsync(string requestUri, bool validateCertificate = true)
|
||||
=> await GetStringAsync(new Uri(requestUri), validateCertificate).ConfigureAwait(false);
|
||||
|
||||
public static async Task<string> GetStringAsync(Uri requestUri, bool validateCertificate = true)
|
||||
{
|
||||
using (var stream = await GetStream(requestUri, validateCertificate))
|
||||
using (var stream = await GetStream(requestUri, validateCertificate).ConfigureAwait(false))
|
||||
{
|
||||
using (var writer = new StreamWriter(stream, Encoding.ASCII, bufferSize: 1024, leaveOpen: true))
|
||||
{
|
||||
await writer.WriteAsync($"GET {requestUri.PathAndQuery} HTTP/1.0\r\n");
|
||||
await writer.WriteAsync($"Host: {requestUri.Authority}\r\n");
|
||||
await writer.WriteAsync("\r\n");
|
||||
await writer.WriteAsync($"GET {requestUri.PathAndQuery} HTTP/1.0\r\n").ConfigureAwait(false);
|
||||
await writer.WriteAsync($"Host: {requestUri.Authority}\r\n").ConfigureAwait(false);
|
||||
await writer.WriteAsync("\r\n").ConfigureAwait(false);
|
||||
}
|
||||
|
||||
return await ReadResponse(stream);
|
||||
return await ReadResponse(stream).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
|
||||
public static Task<string> PostAsync(string requestUri, HttpContent content, bool validateCertificate = true)
|
||||
=> PostAsync(new Uri(requestUri), content, validateCertificate);
|
||||
public static async Task<string> PostAsync(string requestUri, HttpContent content, bool validateCertificate = true)
|
||||
=> await PostAsync(new Uri(requestUri), content, validateCertificate).ConfigureAwait(false);
|
||||
|
||||
public static async Task<string> PostAsync(Uri requestUri, HttpContent content, bool validateCertificate = true)
|
||||
{
|
||||
|
|
@ -43,16 +43,16 @@ namespace Microsoft.AspNetCore.Testing
|
|||
{
|
||||
using (var writer = new StreamWriter(stream, Encoding.ASCII, bufferSize: 1024, leaveOpen: true))
|
||||
{
|
||||
await writer.WriteAsync($"POST {requestUri.PathAndQuery} HTTP/1.0\r\n");
|
||||
await writer.WriteAsync($"Host: {requestUri.Authority}\r\n");
|
||||
await writer.WriteAsync($"Content-Type: {content.Headers.ContentType}\r\n");
|
||||
await writer.WriteAsync($"Content-Length: {content.Headers.ContentLength}\r\n");
|
||||
await writer.WriteAsync("\r\n");
|
||||
await writer.WriteAsync($"POST {requestUri.PathAndQuery} HTTP/1.0\r\n").ConfigureAwait(false);
|
||||
await writer.WriteAsync($"Host: {requestUri.Authority}\r\n").ConfigureAwait(false);
|
||||
await writer.WriteAsync($"Content-Type: {content.Headers.ContentType}\r\n").ConfigureAwait(false);
|
||||
await writer.WriteAsync($"Content-Length: {content.Headers.ContentLength}\r\n").ConfigureAwait(false);
|
||||
await writer.WriteAsync("\r\n").ConfigureAwait(false);
|
||||
}
|
||||
|
||||
await content.CopyToAsync(stream);
|
||||
await content.CopyToAsync(stream).ConfigureAwait(false);
|
||||
|
||||
return await ReadResponse(stream);
|
||||
return await ReadResponse(stream).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -61,7 +61,7 @@ namespace Microsoft.AspNetCore.Testing
|
|||
using (var reader = new StreamReader(stream, Encoding.ASCII, detectEncodingFromByteOrderMarks: true,
|
||||
bufferSize: 1024, leaveOpen: true))
|
||||
{
|
||||
var response = await reader.ReadToEndAsync();
|
||||
var response = await reader.ReadToEndAsync().ConfigureAwait(false);
|
||||
|
||||
var status = GetStatus(response);
|
||||
new HttpResponseMessage(status).EnsureSuccessStatusCode();
|
||||
|
|
@ -83,15 +83,16 @@ namespace Microsoft.AspNetCore.Testing
|
|||
private static async Task<Stream> GetStream(Uri requestUri, bool validateCertificate)
|
||||
{
|
||||
var socket = await GetSocket(requestUri);
|
||||
Stream stream = new NetworkStream(socket, ownsSocket: true);
|
||||
var stream = new NetworkStream(socket, ownsSocket: true);
|
||||
|
||||
if (requestUri.Scheme.Equals("https", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
var sslStream = new SslStream(stream, leaveInnerStreamOpen: false, userCertificateValidationCallback:
|
||||
validateCertificate ? null : (RemoteCertificateValidationCallback)((a, b, c, d) => true));
|
||||
|
||||
await sslStream.AuthenticateAsClientAsync(requestUri.Host, clientCertificates: null,
|
||||
enabledSslProtocols: SslProtocols.Tls11 | SslProtocols.Tls12,
|
||||
checkCertificateRevocation: validateCertificate);
|
||||
checkCertificateRevocation: validateCertificate).ConfigureAwait(false);
|
||||
return sslStream;
|
||||
}
|
||||
else
|
||||
|
|
@ -111,7 +112,7 @@ namespace Microsoft.AspNetCore.Testing
|
|||
// Must use static ConnectAsync(), since instance Connect() does not support DNS names on OSX/Linux.
|
||||
if (Socket.ConnectAsync(SocketType.Stream, ProtocolType.Tcp, socketArgs))
|
||||
{
|
||||
await tcs.Task;
|
||||
await tcs.Task.ConfigureAwait(false);
|
||||
}
|
||||
|
||||
var socket = socketArgs.ConnectSocket;
|
||||
|
|
|
|||
|
|
@ -52,9 +52,9 @@ namespace Microsoft.AspNetCore.Testing
|
|||
{
|
||||
var text = string.Join("\r\n", lines);
|
||||
var writer = new StreamWriter(_stream, Encoding.GetEncoding("iso-8859-1"));
|
||||
await writer.WriteAsync(text);
|
||||
writer.Flush();
|
||||
_stream.Flush();
|
||||
await writer.WriteAsync(text).ConfigureAwait(false);
|
||||
await writer.FlushAsync().ConfigureAwait(false);
|
||||
await _stream.FlushAsync().ConfigureAwait(false);
|
||||
}
|
||||
|
||||
public async Task Send(params string[] lines)
|
||||
|
|
@ -64,13 +64,13 @@ namespace Microsoft.AspNetCore.Testing
|
|||
for (var index = 0; index < text.Length; index++)
|
||||
{
|
||||
var ch = text[index];
|
||||
await writer.WriteAsync(ch);
|
||||
await writer.FlushAsync();
|
||||
writer.Write(ch);
|
||||
await writer.FlushAsync().ConfigureAwait(false);
|
||||
// Re-add delay to help find socket input consumption bugs more consistently
|
||||
//await Task.Delay(TimeSpan.FromMilliseconds(5));
|
||||
}
|
||||
writer.Flush();
|
||||
_stream.Flush();
|
||||
await writer.FlushAsync().ConfigureAwait(false);
|
||||
await _stream.FlushAsync().ConfigureAwait(false);
|
||||
}
|
||||
|
||||
public async Task Receive(params string[] lines)
|
||||
|
|
@ -86,7 +86,7 @@ namespace Microsoft.AspNetCore.Testing
|
|||
{
|
||||
task = task.TimeoutAfter(Timeout);
|
||||
}
|
||||
var count = await task;
|
||||
var count = await task.ConfigureAwait(false);
|
||||
if (count == 0)
|
||||
{
|
||||
break;
|
||||
|
|
@ -99,22 +99,22 @@ namespace Microsoft.AspNetCore.Testing
|
|||
|
||||
public async Task ReceiveEnd(params string[] lines)
|
||||
{
|
||||
await Receive(lines);
|
||||
await Receive(lines).ConfigureAwait(false);
|
||||
_socket.Shutdown(SocketShutdown.Send);
|
||||
var ch = new char[128];
|
||||
var count = await _reader.ReadAsync(ch, 0, 128).TimeoutAfter(Timeout);
|
||||
var count = await _reader.ReadAsync(ch, 0, 128).TimeoutAfter(Timeout).ConfigureAwait(false);
|
||||
var text = new string(ch, 0, count);
|
||||
Assert.Equal("", text);
|
||||
}
|
||||
|
||||
public async Task ReceiveForcedEnd(params string[] lines)
|
||||
{
|
||||
await Receive(lines);
|
||||
await Receive(lines).ConfigureAwait(false);
|
||||
|
||||
try
|
||||
{
|
||||
var ch = new char[128];
|
||||
var count = await _reader.ReadAsync(ch, 0, 128).TimeoutAfter(Timeout);
|
||||
var count = await _reader.ReadAsync(ch, 0, 128).TimeoutAfter(Timeout).ConfigureAwait(false);
|
||||
var text = new string(ch, 0, count);
|
||||
Assert.Equal("", text);
|
||||
}
|
||||
|
|
@ -139,7 +139,7 @@ namespace Microsoft.AspNetCore.Testing
|
|||
{
|
||||
Assert.True(task.Wait(4000), "timeout");
|
||||
}
|
||||
var count = await task;
|
||||
var count = await task.ConfigureAwait(false);
|
||||
if (count == 0)
|
||||
{
|
||||
break;
|
||||
|
|
|
|||
Loading…
Reference in New Issue