Make TestServer IAsyncDisposable (#9059)

- This should make it a bit more maintainable than it is today (having to call server.StopAsync before Dispose calls it synchronously)
This commit is contained in:
David Fowler 2019-04-04 10:07:03 -07:00 committed by GitHub
parent d27ce10629
commit 4f1104363e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 287 additions and 590 deletions

View File

@ -153,7 +153,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
[Fact]
public async Task BadRequestLogsAreNotHigherThanInformation()
{
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
await context.Request.Body.ReadAsync(new byte[1], 0, 1);
}, new TestServiceContext(LoggerFactory)))
@ -166,8 +166,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"");
await ReceiveBadRequestResponse(connection, "400 Bad Request", server.Context.DateHeaderValue);
}
await server.StopAsync();
}
Assert.All(TestSink.Writes, w => Assert.InRange(w.LogLevel, LogLevel.Trace, LogLevel.Information));
@ -177,7 +175,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
[Fact]
public async Task TestRequestSplitting()
{
using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory)))
await using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory)))
{
using (var client = server.CreateConnection())
{
@ -187,8 +185,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await client.Receive("HTTP/1.1 400");
}
await server.StopAsync();
}
}
@ -203,15 +199,13 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
.Setup(trace => trace.ConnectionBadRequest(It.IsAny<string>(), It.IsAny<BadHttpRequestException>()))
.Callback<string, BadHttpRequestException>((connectionId, exception) => loggedException = exception);
using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory, mockKestrelTrace.Object)))
await using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory, mockKestrelTrace.Object)))
{
using (var connection = server.CreateConnection())
{
await connection.SendAll(request);
await ReceiveBadRequestResponse(connection, expectedResponseStatusCode, server.Context.DateHeaderValue, expectedAllowHeader);
}
await server.StopAsync();
}
mockKestrelTrace.Verify(trace => trace.ConnectionBadRequest(It.IsAny<string>(), It.IsAny<BadHttpRequestException>()));

View File

@ -71,7 +71,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(App, testContext))
await using (var server = new TestServer(App, testContext))
{
using (var connection = server.CreateConnection())
{
@ -100,7 +100,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(PipeApp, testContext))
await using (var server = new TestServer(PipeApp, testContext))
{
using (var connection = server.CreateConnection())
{
@ -129,7 +129,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext();
using (var server = new TestServer(AppChunked, testContext))
await using (var server = new TestServer(AppChunked, testContext))
{
using (var connection = server.CreateConnection())
{
@ -162,8 +162,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"Goodbye");
}
await server.StopAsync();
}
}
@ -172,7 +170,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
var request = httpContext.Request;
@ -218,7 +216,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"Hello World");
}
await server.StopAsync();
}
}
@ -228,7 +225,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var requestCount = 10;
var requestsReceived = 0;
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
var request = httpContext.Request;
@ -304,8 +301,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await connection.Send(fullRequest);
await connection.Receive(expectedFullResponse);
}
await server.StopAsync();
}
}
@ -315,7 +310,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var requestCount = 10;
var requestsReceived = 0;
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
var request = httpContext.Request;
@ -394,8 +389,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await connection.Send(fullRequest);
await connection.Receive(expectedFullResponse);
}
await server.StopAsync();
}
}
[Fact]
@ -411,7 +404,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
headerLine.Length + 2 +
trailingHeaderLine.Length + 1;
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
var buffer = new byte[128];
while (await context.Request.Body.ReadAsync(buffer, 0, buffer.Length) != 0) ; // read to end
@ -439,7 +432,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -453,7 +445,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var testContext = new TestServiceContext(LoggerFactory);
testContext.ServerOptions.Limits.MaxRequestHeaderCount = 2;
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
var buffer = new byte[128];
while (await context.Request.Body.ReadAsync(buffer, 0, buffer.Length) != 0) ; // read to end
@ -481,7 +473,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -492,7 +483,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var requestCount = 10;
var requestsReceived = 0;
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
var request = httpContext.Request;
@ -568,7 +559,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await connection.Send(fullRequest);
await connection.Receive(expectedFullResponse);
}
await server.StopAsync();
}
}
@ -576,7 +566,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
public async Task InvalidLengthResultsIn400()
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
var request = httpContext.Request;
@ -620,7 +610,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
public async Task InvalidSizedDataResultsIn400()
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
var request = httpContext.Request;
@ -657,7 +647,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -666,7 +655,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
public async Task ChunkedNotFinalTransferCodingResultsIn400()
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(httpContext =>
await using (var server = new TestServer(httpContext =>
{
return Task.CompletedTask;
}, testContext))
@ -762,7 +751,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -773,7 +761,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var readStartedTcs = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
var exTcs = new TaskCompletionSource<BadHttpRequestException>(TaskCreationOptions.RunContinuationsAsynchronously);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var readTask = httpContext.Request.Body.CopyToAsync(Stream.Null);
readStartedTcs.SetResult(null);
@ -810,8 +798,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var badReqEx = await exTcs.Task.TimeoutAfter(TestConstants.DefaultTimeout);
Assert.Equal(RequestRejectionReason.UnexpectedEndOfRequestContent, badReqEx.Reason);
}
await server.StopAsync();
}
}
@ -821,7 +807,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var tcs = new TaskCompletionSource<object>();
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
var request = httpContext.Request;
@ -869,7 +855,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"Hello World");
}
await server.StopAsync();
}
}
@ -878,7 +863,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
var request = httpContext.Request;
@ -968,7 +953,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
}

View File

@ -20,7 +20,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
await response.BodyWriter.WriteAsync(new Memory<byte>(Encoding.ASCII.GetBytes("Hello "), 0, 6));
@ -47,7 +47,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -56,7 +55,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
await httpContext.Response.WriteAsync("Hello ");
await httpContext.Response.WriteAsync("World!");
@ -76,7 +75,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"Hello World!");
}
await server.StopAsync();
}
}
@ -85,7 +83,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
await httpContext.Response.WriteAsync("Hello ");
await httpContext.Response.WriteAsync("World!");
@ -113,7 +111,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -122,7 +119,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
var expectedString = new string('a', 10000);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
await httpContext.Response.WriteAsync(expectedString);
}, testContext))
@ -151,7 +148,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -163,7 +159,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
var expectedString = new string('a', length);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
await httpContext.Response.StartAsync();
var memory = httpContext.Response.BodyWriter.GetMemory(length);
@ -193,7 +189,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -206,7 +201,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
var expectedString = new string('a', partialLength);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
await httpContext.Response.StartAsync();
var memory = httpContext.Response.BodyWriter.GetMemory(100000);
@ -235,7 +230,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -244,7 +238,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
httpContext.Response.Headers["Connection"] = "close";
await httpContext.Response.WriteAsync("Hello ");
@ -272,7 +266,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -281,7 +274,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
await response.BodyWriter.WriteAsync(new Memory<byte>(Encoding.ASCII.GetBytes("Hello "), 0, 6));
@ -309,7 +302,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -320,7 +312,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var flushed = new SemaphoreSlim(0, 1);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
await response.WriteAsync("");
@ -354,7 +346,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -363,7 +354,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
await response.BodyWriter.WriteAsync(new Memory<byte>(new byte[0], 0, 0));
@ -385,7 +376,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -394,7 +384,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
await response.BodyWriter.WriteAsync(new Memory<byte>(Encoding.ASCII.GetBytes("Hello World!"), 0, 12));
@ -419,7 +409,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"Hello World!",
"");
}
await server.StopAsync();
}
}
@ -428,7 +417,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
await response.BodyWriter.WriteAsync(new Memory<byte>(new byte[0], 0, 0));
@ -452,7 +441,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -463,7 +451,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var flushWh = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
await response.BodyWriter.WriteAsync(new Memory<byte>(Encoding.ASCII.GetBytes("Hello "), 0, 6));
@ -499,7 +487,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -508,7 +495,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
response.Headers["Transfer-Encoding"] = "chunked";
@ -538,8 +525,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -548,7 +533,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
@ -584,8 +569,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -594,7 +577,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
@ -629,8 +612,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -641,7 +622,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var semaphore = new SemaphoreSlim(initialCount: 0);
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
@ -685,8 +666,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -697,7 +676,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var semaphore = new SemaphoreSlim(initialCount: 0);
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
@ -743,8 +722,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -755,7 +732,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var semaphore = new SemaphoreSlim(initialCount: 0);
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
@ -802,8 +779,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -812,7 +787,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
@ -846,8 +821,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -856,7 +829,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
await response.StartAsync();
@ -895,8 +868,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -905,7 +876,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
@ -938,8 +909,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -948,7 +917,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
@ -980,8 +949,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -990,7 +957,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
@ -1021,8 +988,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -1031,7 +996,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
@ -1058,8 +1023,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -1070,11 +1033,9 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
var memory = response.BodyWriter.GetMemory(4096);
var fisrtPartOfResponse = Encoding.ASCII.GetBytes(new string('a', writeSize));
fisrtPartOfResponse.CopyTo(memory);
@ -1100,8 +1061,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -1112,7 +1071,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
@ -1141,15 +1100,13 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
[Fact]
public async Task ChunkedWithBothPipeAndStreamWorks()
{
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
@ -1191,7 +1148,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}

View File

@ -42,7 +42,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var sendString = "POST / HTTP/1.0\r\nContent-Length: 12\r\n\r\nHello World?";
using (var server = new TestServer(requestDelegate, serviceContext, listenOptions))
await using (var server = new TestServer(requestDelegate, serviceContext, listenOptions))
{
using (var connection = server.CreateConnection())
{
@ -55,7 +55,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"Hello World!");
}
await server.StopAsync();
}
Assert.Equal(sendString.Length, adapter.BytesRead);
@ -72,7 +71,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var serviceContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(requestDelegate, serviceContext, listenOptions))
await using (var server = new TestServer(requestDelegate, serviceContext, listenOptions))
{
using (var connection = server.CreateConnection())
{
@ -88,7 +87,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"Hello World!");
}
await server.StopAsync();
}
}
@ -103,7 +101,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var serviceContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(requestDelegate, serviceContext, listenOptions))
await using (var server = new TestServer(requestDelegate, serviceContext, listenOptions))
{
using (var connection = server.CreateConnection())
{
@ -111,7 +109,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
connection.ShutdownSend();
await connection.WaitForConnectionClose();
}
await server.StopAsync();
}
}
@ -126,7 +123,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var serviceContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(requestDelegate, serviceContext, listenOptions))
await using (var server = new TestServer(requestDelegate, serviceContext, listenOptions))
{
using (var connection = server.CreateConnection())
{
@ -134,7 +131,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
connection.ShutdownSend();
await connection.WaitForConnectionClose();
}
await server.StopAsync();
}
}
@ -151,7 +147,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var serviceContext = new TestServiceContext(LoggerFactory);
var stopTask = Task.CompletedTask;
using (var server = new TestServer(requestDelegate, serviceContext, listenOptions))
await using (var server = new TestServer(requestDelegate, serviceContext, listenOptions))
using (var shutdownCts = new CancellationTokenSource(TestConstants.DefaultTimeout))
{
using (var connection = server.CreateConnection())
@ -177,7 +173,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var serviceContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(TestApp.EchoApp, serviceContext, listenOptions))
await using (var server = new TestServer(TestApp.EchoApp, serviceContext, listenOptions))
{
Task stopTask;
@ -207,7 +203,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var serviceContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(requestDelegate, serviceContext, listenOptions))
await using (var server = new TestServer(requestDelegate, serviceContext, listenOptions))
{
using (var connection = server.CreateConnection())
{
@ -218,7 +214,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await connection.WaitForConnectionClose();
}
await server.StopAsync();
}
Assert.Contains(TestApplicationErrorLogger.Messages, m => m.Message.Contains($"Uncaught exception from the {nameof(IConnectionAdapter.OnConnectionAsync)} method of an {nameof(IConnectionAdapter)}."));
@ -234,7 +229,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var serviceContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
await context.Response.WriteAsync("Hello ");
await context.Response.Body.FlushAsync();
@ -254,7 +249,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"Hello World!");
}
await server.StopAsync();
}
}
@ -268,7 +262,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var serviceContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
await context.Response.BodyWriter.WriteAsync(Encoding.ASCII.GetBytes("Hello "));
await context.Response.BodyWriter.FlushAsync();
@ -288,7 +282,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"Hello World!");
}
await server.StopAsync();
}
}

View File

@ -31,7 +31,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
counter.OnLock += (s, e) => lockedTcs.TrySetResult(e);
counter.OnRelease += (s, e) => releasedTcs.TrySetResult(null);
using (var server = CreateServerWithMaxConnections(async context =>
await using (var server = CreateServerWithMaxConnections(async context =>
{
await context.Response.WriteAsync("Hello");
await requestTcs.Task;
@ -44,8 +44,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
Assert.True(await lockedTcs.Task.DefaultTimeout());
requestTcs.TrySetResult(null);
}
await server.StopAsync();
}
await releasedTcs.Task.DefaultTimeout();
@ -54,7 +52,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
[Fact]
public async Task UpgradedConnectionsCountsAgainstDifferentLimit()
{
using (var server = CreateServerWithMaxConnections(async context =>
await using (var server = CreateServerWithMaxConnections(async context =>
{
var feature = context.Features.Get<IHttpUpgradeFeature>();
if (feature.IsUpgradableRequest)
@ -96,7 +94,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await rejected.WaitForConnectionClose();
}
}
await server.StopAsync();
}
}
@ -106,7 +103,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
const int max = 10;
var requestTcs = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
using (var server = CreateServerWithMaxConnections(async context =>
await using (var server = CreateServerWithMaxConnections(async context =>
{
await context.Response.WriteAsync("Hello");
await requestTcs.Task;
@ -142,7 +139,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
requestTcs.TrySetResult(null);
}
await server.StopAsync();
}
}
@ -174,7 +170,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
}
};
using (var server = CreateServerWithMaxConnections(_ => Task.CompletedTask, counter))
await using (var server = CreateServerWithMaxConnections(_ => Task.CompletedTask, counter))
{
// open a bunch of connections in parallel
Parallel.For(0, count, async i =>
@ -199,7 +195,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await closedTcs.Task.TimeoutAfter(TimeSpan.FromSeconds(120));
Assert.Equal(count, opened);
Assert.Equal(count, closed);
await server.StopAsync();
}
}

View File

@ -19,7 +19,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
ServerOptions = { AddServerHeader = true }
};
using (var server = new TestServer(ctx => Task.CompletedTask, testContext))
await using (var server = new TestServer(ctx => Task.CompletedTask, testContext))
{
using (var connection = server.CreateConnection())
{
@ -45,7 +45,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
}

View File

@ -30,7 +30,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
string connectionId = null;
string requestId = null;
int port;
using (var server = new TestServer(context =>
await using (var server = new TestServer(context =>
{
connectionId = context.Features.Get<IHttpConnectionFeature>().ConnectionId;
requestId = context.TraceIdentifier;
@ -47,8 +47,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
.DefaultTimeout();
await connection.Receive("HTTP/1.1 200");
}
await server.StopAsync();
}
// capture list here as other tests executing in parallel may log events

View File

@ -43,7 +43,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var testContext = new TestServiceContext(new LoggerFactory(), mockTrace.Object);
testContext.InitializeHeartbeat();
using (var server = new TestServer(context =>
await using (var server = new TestServer(context =>
{
appStartedWh.Release();
var tcs = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
@ -69,8 +69,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
}
Assert.True(logWaitAttempts < 10);
await server.StopAsync();
}
}
#endif

View File

@ -63,14 +63,13 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
Protocols = serverProtocols
};
using (var server = new TestServer(context => Task.CompletedTask, testContext, listenOptions))
await using (var server = new TestServer(context => Task.CompletedTask, testContext, listenOptions))
{
using (var connection = server.CreateConnection())
{
await connection.Send(request);
await connection.Receive(expectedResponse);
}
await server.StopAsync();
}
}
@ -83,13 +82,12 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
Protocols = serverProtocols
};
using (var server = new TestServer(context => Task.CompletedTask, testContext, listenOptions))
await using (var server = new TestServer(context => Task.CompletedTask, testContext, listenOptions))
{
using (var connection = server.CreateConnection())
{
await connection.WaitForConnectionClose();
}
await server.StopAsync();
}
Assert.Single(TestApplicationErrorLogger.Messages, message => message.LogLevel == LogLevel.Error

View File

@ -42,7 +42,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
}
};
using (var server = new TestServer(App, new TestServiceContext(LoggerFactory), listenOptions))
await using (var server = new TestServer(App, new TestServiceContext(LoggerFactory), listenOptions))
{
var result = await server.HttpClientSlim.PostAsync($"https://localhost:{server.Port}/",
new FormUrlEncodedContent(new[] {
@ -51,7 +51,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
validateCertificate: false);
Assert.Equal("content=Hello+World%3F", result);
await server.StopAsync();
}
}
@ -66,7 +65,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
}
};
using (var server = new TestServer(context =>
await using (var server = new TestServer(context =>
{
var tlsFeature = context.Features.Get<ITlsHandshakeFeature>();
Assert.NotNull(tlsFeature);
@ -83,7 +82,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var result = await server.HttpClientSlim.GetStringAsync($"https://localhost:{server.Port}/", validateCertificate: false);
Assert.Equal("hello world", result);
await server.StopAsync();
}
}
@ -103,11 +101,10 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
};
using (var server = new TestServer(App, new TestServiceContext(LoggerFactory), listenOptions))
await using (var server = new TestServer(App, new TestServiceContext(LoggerFactory), listenOptions))
{
await Assert.ThrowsAnyAsync<Exception>(
() => server.HttpClientSlim.GetStringAsync($"https://localhost:{server.Port}/"));
await server.StopAsync();
}
}
@ -126,7 +123,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
}
};
using (var server = new TestServer(context =>
await using (var server = new TestServer(context =>
{
var tlsFeature = context.Features.Get<ITlsConnectionFeature>();
Assert.NotNull(tlsFeature);
@ -136,7 +133,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var result = await server.HttpClientSlim.GetStringAsync($"https://localhost:{server.Port}/", validateCertificate: false);
Assert.Equal("hello world", result);
await server.StopAsync();
}
}
@ -159,7 +155,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
}
};
using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory), listenOptions))
await using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory), listenOptions))
{
using (var connection = server.CreateConnection())
{
@ -170,7 +166,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await stream.AuthenticateAsClientAsync("localhost", new X509CertificateCollection(), SslProtocols.Tls12 | SslProtocols.Tls11, false);
Assert.True(stream.RemoteCertificate.Equals(_x509Certificate2));
}
await server.StopAsync();
}
}
@ -195,7 +190,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
})
}
};
using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory), listenOptions))
await using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory), listenOptions))
{
using (var connection = server.CreateConnection())
{
@ -207,7 +202,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
Assert.True(stream.RemoteCertificate.Equals(_x509Certificate2));
Assert.Equal(1, selectorCalled);
}
await server.StopAsync();
}
}
@ -236,7 +230,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
})
}
};
using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory), listenOptions))
await using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory), listenOptions))
{
using (var connection = server.CreateConnection())
{
@ -258,7 +252,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
Assert.True(stream.RemoteCertificate.Equals(_x509Certificate2NoExt));
Assert.Equal(2, selectorCalled);
}
await server.StopAsync();
}
}
@ -280,7 +273,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
})
}
};
using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory), listenOptions))
await using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory), listenOptions))
{
using (var connection = server.CreateConnection())
{
@ -292,7 +285,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
stream.AuthenticateAsClientAsync("localhost", new X509CertificateCollection(), SslProtocols.Tls12 | SslProtocols.Tls11, false));
Assert.Equal(1, selectorCalled);
}
await server.StopAsync();
}
}
@ -318,7 +310,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
})
}
};
using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory), listenOptions))
await using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory), listenOptions))
{
using (var connection = server.CreateConnection())
{
@ -330,7 +322,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
Assert.True(stream.RemoteCertificate.Equals(_x509Certificate2));
Assert.Equal(1, selectorCalled);
}
await server.StopAsync();
}
}
@ -352,7 +343,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
})
}
};
using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory), listenOptions))
await using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory), listenOptions))
{
using (var connection = server.CreateConnection())
{
@ -364,7 +355,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
stream.AuthenticateAsClientAsync("localhost", new X509CertificateCollection(), SslProtocols.Tls12 | SslProtocols.Tls11, false));
Assert.Equal(1, selectorCalled);
}
await server.StopAsync();
}
}
@ -387,7 +377,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
}
};
using (var server = new TestServer(context =>
await using (var server = new TestServer(context =>
{
var tlsFeature = context.Features.Get<ITlsConnectionFeature>();
Assert.NotNull(tlsFeature);
@ -405,7 +395,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await stream.AuthenticateAsClientAsync("localhost", new X509CertificateCollection(), SslProtocols.Tls12 | SslProtocols.Tls11, false);
await AssertConnectionResult(stream, true);
}
await server.StopAsync();
}
}
@ -420,11 +409,10 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
}
};
using (var server = new TestServer(context => context.Response.WriteAsync(context.Request.Scheme), new TestServiceContext(LoggerFactory), listenOptions))
await using (var server = new TestServer(context => context.Response.WriteAsync(context.Request.Scheme), new TestServiceContext(LoggerFactory), listenOptions))
{
var result = await server.HttpClientSlim.GetStringAsync($"https://localhost:{server.Port}/", validateCertificate: false);
Assert.Equal("https", result);
await server.StopAsync();
}
}
@ -444,7 +432,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
}
};
using (var server = new TestServer(context => context.Response.WriteAsync("hello world"), new TestServiceContext(LoggerFactory), listenOptions))
await using (var server = new TestServer(context => context.Response.WriteAsync("hello world"), new TestServiceContext(LoggerFactory), listenOptions))
{
// SslStream is used to ensure the certificate is actually passed to the server
// HttpClient might not send the certificate because it is invalid or it doesn't match any
@ -455,7 +443,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var ex = await Assert.ThrowsAsync<IOException>(
async () => await stream.AuthenticateAsClientAsync("localhost", new X509CertificateCollection(), SslProtocols.Tls, false));
}
await server.StopAsync();
}
}
@ -485,7 +472,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
}
};
using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory), listenOptions))
await using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory), listenOptions))
{
using (var connection = server.CreateConnection())
{
@ -494,7 +481,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await AssertConnectionResult(stream, true);
Assert.True(clientCertificateValidationCalled);
}
await server.StopAsync();
}
}
@ -517,7 +503,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
}
};
using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory), listenOptions))
await using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory), listenOptions))
{
using (var connection = server.CreateConnection())
{
@ -525,7 +511,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await stream.AuthenticateAsClientAsync("localhost", new X509CertificateCollection(), SslProtocols.Tls12 | SslProtocols.Tls11, false);
await AssertConnectionResult(stream, false);
}
await server.StopAsync();
}
}
@ -546,7 +531,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
}
};
using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory), listenOptions))
await using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory), listenOptions))
{
using (var connection = server.CreateConnection())
{
@ -554,7 +539,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await stream.AuthenticateAsClientAsync("localhost", new X509CertificateCollection(), SslProtocols.Tls12 | SslProtocols.Tls11, false);
await AssertConnectionResult(stream, false);
}
await server.StopAsync();
}
}
@ -584,7 +568,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
return context.Response.WriteAsync("hello world");
};
using (var server = new TestServer(app, new TestServiceContext(LoggerFactory), listenOptions))
await using (var server = new TestServer(app, new TestServiceContext(LoggerFactory), listenOptions))
{
// SslStream is used to ensure the certificate is actually passed to the server
// HttpClient might not send the certificate because it is invalid or it doesn't match any
@ -595,7 +579,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await stream.AuthenticateAsClientAsync("localhost", new X509CertificateCollection(), SslProtocols.Tls12 | SslProtocols.Tls11, false);
await AssertConnectionResult(stream, true);
}
await server.StopAsync();
}
}

View File

@ -121,7 +121,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var loggerProvider = new HandshakeErrorLoggerProvider();
LoggerFactory.AddProvider(loggerProvider);
using (var server = new TestServer(context => Task.CompletedTask,
await using (var server = new TestServer(context => Task.CompletedTask,
new TestServiceContext(LoggerFactory),
listenOptions =>
{
@ -134,7 +134,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
}
await loggerProvider.FilterLogger.LogTcs.Task.DefaultTimeout();
await server.StopAsync();
}
Assert.Equal(1, loggerProvider.FilterLogger.LastEventId.Id);
@ -149,7 +148,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var loggerProvider = new HandshakeErrorLoggerProvider();
LoggerFactory.AddProvider(loggerProvider);
using (var server = new TestServer(context => Task.CompletedTask,
await using (var server = new TestServer(context => Task.CompletedTask,
new TestServiceContext(LoggerFactory),
listenOptions =>
{
@ -163,7 +162,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
}
await loggerProvider.FilterLogger.LogTcs.Task.DefaultTimeout();
await server.StopAsync();
}
Assert.Equal(1, loggerProvider.FilterLogger.LastEventId.Id);
@ -179,7 +177,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var loggerProvider = new HandshakeErrorLoggerProvider();
LoggerFactory.AddProvider(loggerProvider);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var ct = httpContext.RequestAborted;
while (!ct.IsCancellationRequested)
@ -213,7 +211,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await sslStream.ReadAsync(new byte[32], 0, 32);
}
await server.StopAsync();
}
Assert.False(loggerProvider.ErrorLogger.ObjectDisposedExceptionLogged);
@ -226,7 +223,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var loggerProvider = new HandshakeErrorLoggerProvider();
LoggerFactory.AddProvider(loggerProvider);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
httpContext.Abort();
try
@ -269,7 +266,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var loggerProvider = new HandshakeErrorLoggerProvider();
LoggerFactory.AddProvider(loggerProvider);
using (var server = new TestServer(context => Task.CompletedTask,
await using (var server = new TestServer(context => Task.CompletedTask,
new TestServiceContext(LoggerFactory),
listenOptions =>
{
@ -283,7 +280,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
enabledSslProtocols: SslProtocols.Tls11 | SslProtocols.Tls12,
checkCertificateRevocation: false);
}
await server.StopAsync();
}
Assert.False(loggerProvider.ErrorLogger.ObjectDisposedExceptionLogged);
@ -296,7 +292,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var loggerProvider = new HandshakeErrorLoggerProvider();
LoggerFactory.AddProvider(loggerProvider);
using (var server = new TestServer(context => Task.CompletedTask,
await using (var server = new TestServer(context => Task.CompletedTask,
new TestServiceContext(LoggerFactory),
listenOptions =>
{
@ -307,7 +303,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
connection.Reset();
}
await server.StopAsync();
}
}
@ -323,7 +318,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var handshakeStartedTcs = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
TimeSpan handshakeTimeout = default;
using (var server = new TestServer(context => Task.CompletedTask,
await using (var server = new TestServer(context => Task.CompletedTask,
testContext,
listenOptions =>
{
@ -348,7 +343,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
Assert.Equal(0, await connection.Stream.ReadAsync(new byte[1], 0, 1).DefaultTimeout());
}
await server.StopAsync();
}
await loggerProvider.FilterLogger.LogTcs.Task.DefaultTimeout();
@ -362,7 +356,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var loggerProvider = new HandshakeErrorLoggerProvider();
LoggerFactory.AddProvider(loggerProvider);
using (var server = new TestServer(context => Task.CompletedTask,
await using (var server = new TestServer(context => Task.CompletedTask,
new TestServiceContext(LoggerFactory),
listenOptions =>
{
@ -378,7 +372,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
enabledSslProtocols: SslProtocols.Tls,
checkCertificateRevocation: false));
}
await server.StopAsync();
}
await loggerProvider.FilterLogger.LogTcs.Task.DefaultTimeout();

View File

@ -29,7 +29,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var testContext = new TestServiceContext(LoggerFactory);
var heartbeatManager = new HeartbeatManager(testContext.ConnectionManager);
using (var server = CreateServer(testContext))
await using (var server = CreateServer(testContext))
{
using (var connection = server.CreateConnection())
{
@ -46,7 +46,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await connection.WaitForConnectionClose();
}
await server.StopAsync();
}
}
@ -56,7 +55,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var testContext = new TestServiceContext(LoggerFactory);
var heartbeatManager = new HeartbeatManager(testContext.ConnectionManager);
using (var server = CreateServer(testContext))
await using (var server = CreateServer(testContext))
{
using (var connection = server.CreateConnection())
{
@ -74,7 +73,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
heartbeatManager.OnHeartbeat(testContext.SystemClock.UtcNow);
}
}
await server.StopAsync();
}
}
@ -84,7 +82,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var testContext = new TestServiceContext(LoggerFactory);
var heartbeatManager = new HeartbeatManager(testContext.ConnectionManager);
using (var server = CreateServer(testContext))
await using (var server = CreateServer(testContext))
{
using (var connection = server.CreateConnection())
{
@ -114,7 +112,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"");
await ReceiveResponse(connection, testContext);
}
await server.StopAsync();
}
}
@ -125,7 +122,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var heartbeatManager = new HeartbeatManager(testContext.ConnectionManager);
var cts = new CancellationTokenSource();
using (var server = CreateServer(testContext, longRunningCt: cts.Token))
await using (var server = CreateServer(testContext, longRunningCt: cts.Token))
{
using (var connection = server.CreateConnection())
{
@ -154,7 +151,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"");
await ReceiveResponse(connection, testContext);
}
await server.StopAsync();
}
}
@ -164,7 +160,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var testContext = new TestServiceContext(LoggerFactory);
var heartbeatManager = new HeartbeatManager(testContext.ConnectionManager);
using (var server = CreateServer(testContext))
await using (var server = CreateServer(testContext))
{
using (var connection = server.CreateConnection())
{
@ -174,7 +170,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await connection.WaitForConnectionClose();
}
await server.StopAsync();
}
}
@ -185,7 +180,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var heartbeatManager = new HeartbeatManager(testContext.ConnectionManager);
var cts = new CancellationTokenSource();
using (var server = CreateServer(testContext, upgradeCt: cts.Token))
await using (var server = CreateServer(testContext, upgradeCt: cts.Token))
{
using (var connection = server.CreateConnection())
{
@ -212,7 +207,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await connection.Receive("hello, world");
}
await server.StopAsync();
}
}

View File

@ -16,7 +16,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
[Fact]
public async Task LoggingConnectionAdapterCanBeAddedBeforeAndAfterHttpsAdapter()
{
using (var server = new TestServer(context =>
await using (var server = new TestServer(context =>
{
context.Response.ContentLength = 12;
return context.Response.WriteAsync("Hello World!");
@ -32,11 +32,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var response = await server.HttpClientSlim.GetStringAsync($"https://localhost:{server.Port}/", validateCertificate: false)
.DefaultTimeout();
Assert.Equal("Hello World!", response);
}
await server.StopAsync();
}
}
}

View File

@ -23,7 +23,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var globalMaxRequestBodySize = 0x100000000;
BadHttpRequestException requestRejectedEx = null;
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
var buffer = new byte[1];
requestRejectedEx = await Assert.ThrowsAsync<BadHttpRequestException>(
@ -48,7 +48,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
Assert.NotNull(requestRejectedEx);
@ -64,7 +63,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var perRequestMaxRequestBodySize = 0x100000000;
BadHttpRequestException requestRejectedEx = null;
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
var feature = context.Features.Get<IHttpMaxRequestBodySizeFeature>();
Assert.Equal(globalMaxRequestBodySize, feature.MaxRequestBodySize);
@ -95,7 +94,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
Assert.NotNull(requestRejectedEx);
@ -105,7 +103,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
[Fact]
public async Task DoesNotRejectRequestWithContentLengthHeaderExceedingGlobalLimitIfLimitDisabledPerRequest()
{
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
var feature = context.Features.Get<IHttpMaxRequestBodySizeFeature>();
Assert.Equal(0, feature.MaxRequestBodySize);
@ -139,14 +137,13 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"A");
}
await server.StopAsync();
}
}
[Fact]
public async Task DoesNotRejectBodylessGetRequestWithZeroMaxRequestBodySize()
{
using (var server = new TestServer(context => context.Request.Body.CopyToAsync(Stream.Null),
await using (var server = new TestServer(context => context.Request.Body.CopyToAsync(Stream.Null),
new TestServiceContext { ServerOptions = { Limits = { MaxRequestBodySize = 0 } } }))
{
using (var connection = server.CreateConnection())
@ -172,7 +169,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -184,7 +180,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var payload = new string('A', payloadSize);
InvalidOperationException invalidOpEx = null;
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
var buffer = new byte[1];
Assert.Equal(1, await context.Request.Body.ReadAsync(buffer, 0, 1));
@ -213,7 +209,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
Assert.NotNull(invalidOpEx);
@ -225,7 +220,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
InvalidOperationException invalidOpEx = null;
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
var upgradeFeature = context.Features.Get<IHttpUpgradeFeature>();
var stream = await upgradeFeature.UpgradeAsync();
@ -253,7 +248,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"");
await connection.ReceiveEnd();
}
await server.StopAsync();
}
Assert.NotNull(invalidOpEx);
@ -266,7 +260,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
BadHttpRequestException requestRejectedEx1 = null;
BadHttpRequestException requestRejectedEx2 = null;
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
var buffer = new byte[1];
requestRejectedEx1 = await Assert.ThrowsAsync<BadHttpRequestException>(
@ -293,7 +287,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
Assert.NotNull(requestRejectedEx1);
@ -309,7 +302,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var globalMaxRequestBodySize = chunkedPayload.Length - 1;
BadHttpRequestException requestRejectedEx = null;
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
var buffer = new byte[11];
requestRejectedEx = await Assert.ThrowsAsync<BadHttpRequestException>(async () =>
@ -341,7 +334,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
Assert.NotNull(requestRejectedEx);
@ -355,7 +347,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var trailingHeaders = "Trailing-Header: trailing-value\r\n\r\n";
var globalMaxRequestBodySize = chunkedPayload.Length;
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
var offset = 0;
var count = 0;
@ -387,7 +379,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -399,7 +390,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var firstRequest = true;
BadHttpRequestException requestRejectedEx = null;
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
var feature = context.Features.Get<IHttpMaxRequestBodySizeFeature>();
Assert.Equal(globalMaxRequestBodySize, feature.MaxRequestBodySize);
@ -456,7 +447,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
Assert.NotNull(requestRejectedEx);
@ -469,7 +459,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
BadHttpRequestException requestRejectedEx1 = null;
BadHttpRequestException requestRejectedEx2 = null;
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
var buffer = new byte[1];
requestRejectedEx1 = await Assert.ThrowsAsync<BadHttpRequestException>(
@ -496,7 +486,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
Assert.NotNull(requestRejectedEx1);

View File

@ -28,7 +28,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
[InlineData("DELETE /a%20b%20c/d%20e?f=ghi HTTP/1.1\r\nHost:\r\n\r\n", 1027)]
public async Task ServerAcceptsRequestLineWithinLimit(string request, int limit)
{
using (var server = CreateServer(limit))
await using (var server = CreateServer(limit))
{
using (var connection = server.CreateConnection())
{
@ -44,7 +44,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -55,7 +54,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
[InlineData("DELETE /a%20b%20c/d%20e?f=ghi HTTP/1.1\r\n")]
public async Task ServerRejectsRequestLineExceedingLimit(string requestLine)
{
using (var server = CreateServer(requestLine.Length - 1))
await using (var server = CreateServer(requestLine.Length - 1))
{
using (var connection = server.CreateConnection())
{
@ -68,7 +67,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}

View File

@ -27,7 +27,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var appRunningEvent = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
using (var server = new TestServer(context =>
await using (var server = new TestServer(context =>
{
context.Features.Get<IHttpMinRequestBodyDataRateFeature>().MinDataRate =
new MinDataRate(bytesPerSecond: 1, gracePeriod: gracePeriod);
@ -88,7 +88,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -107,7 +106,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var appRunningEvent = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
using (var server = new TestServer(context =>
await using (var server = new TestServer(context =>
{
context.Features.Get<IHttpMinRequestBodyDataRateFeature>().MinDataRate = null;
@ -134,7 +133,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
Assert.Contains(TestSink.Writes, w => w.EventId.Id == 32 && w.LogLevel == LogLevel.Information);
@ -151,7 +149,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var appRunningTcs = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
var exceptionSwallowedTcs = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
context.Features.Get<IHttpMinRequestBodyDataRateFeature>().MinDataRate =
new MinDataRate(bytesPerSecond: 1, gracePeriod: gracePeriod);
@ -208,7 +206,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"hello, world");
}
await server.StopAsync();
}
}
}

View File

@ -27,7 +27,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var headers = MakeHeaders(headerCount);
using (var server = CreateServer(maxRequestHeadersTotalSize: headers.Length + extraLimit))
await using (var server = CreateServer(maxRequestHeadersTotalSize: headers.Length + extraLimit))
{
using (var connection = server.CreateConnection())
{
@ -43,7 +43,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -60,7 +59,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var headers = MakeHeaders(headerCount);
using (var server = CreateServer(maxRequestHeaderCount: maxHeaderCount))
await using (var server = CreateServer(maxRequestHeaderCount: maxHeaderCount))
{
using (var connection = server.CreateConnection())
{
@ -76,7 +75,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -87,7 +85,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var headers = MakeHeaders(headerCount);
using (var server = CreateServer(maxRequestHeadersTotalSize: headers.Length - 1))
await using (var server = CreateServer(maxRequestHeadersTotalSize: headers.Length - 1))
{
using (var connection = server.CreateConnection())
{
@ -100,7 +98,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -112,7 +109,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var headers = MakeHeaders(headerCount);
using (var server = CreateServer(maxRequestHeaderCount: maxHeaderCount))
await using (var server = CreateServer(maxRequestHeaderCount: maxHeaderCount))
{
using (var connection = server.CreateConnection())
{
@ -125,7 +122,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}

View File

@ -28,7 +28,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var testContext = new TestServiceContext(LoggerFactory);
var heartbeatManager = new HeartbeatManager(testContext.ConnectionManager);
using (var server = CreateServer(testContext))
await using (var server = CreateServer(testContext))
{
using (var connection = server.CreateConnection())
{
@ -42,7 +42,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await ReceiveTimeoutResponse(connection, testContext);
}
await server.StopAsync();
}
}
@ -52,7 +51,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var testContext = new TestServiceContext(LoggerFactory);
var heartbeatManager = new HeartbeatManager(testContext.ConnectionManager);
using (var server = CreateServer(testContext))
await using (var server = CreateServer(testContext))
{
using (var connection = server.CreateConnection())
{
@ -72,7 +71,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await ReceiveResponse(connection, testContext);
}
await server.StopAsync();
}
}
@ -84,7 +82,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var testContext = new TestServiceContext(LoggerFactory);
var heartbeatManager = new HeartbeatManager(testContext.ConnectionManager);
using (var server = CreateServer(testContext))
await using (var server = CreateServer(testContext))
{
using (var connection = server.CreateConnection())
{
@ -96,7 +94,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await ReceiveTimeoutResponse(connection, testContext);
}
await server.StopAsync();
}
}
@ -109,7 +106,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
// Disable response rate, so we can finish the send loop without timing out the response.
testContext.ServerOptions.Limits.MinResponseDataRate = null;
using (var server = CreateServer(testContext))
await using (var server = CreateServer(testContext))
{
using (var connection = server.CreateConnection())
{
@ -125,7 +122,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await connection.WaitForConnectionClose();
}
await server.StopAsync();
}
}

View File

@ -20,7 +20,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
Assert.Equal("/\u0041\u030A/B/\u0041\u030A", context.Request.Path.Value);
@ -42,7 +42,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"Hello World");
}
await server.StopAsync();
}
}
@ -66,7 +65,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
Assert.Equal(requestTarget, context.Features.Get<IHttpRequestFeature>().RawTarget);
@ -88,7 +87,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"Hello World");
}
await server.StopAsync();
}
}
@ -100,7 +98,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var method = (HttpMethod)intMethod;
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
Assert.Equal(requestTarget, context.Features.Get<IHttpRequestFeature>().RawTarget);
Assert.Empty(context.Request.Path.Value);
@ -129,7 +127,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"Hello World");
}
await server.StopAsync();
}
}
}

View File

@ -30,7 +30,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var requestBodyPersisted = false;
var responseBodyPersisted = false;
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
if (context.Request.Body is MemoryStream)
{
@ -53,8 +53,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
Assert.False(requestBodyPersisted);
Assert.False(responseBodyPersisted);
await server.StopAsync();
}
}
@ -63,7 +61,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var responseBodyPersisted = false;
PipeWriter bodyPipe = null;
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
if (context.Response.BodyWriter == bodyPipe)
{
@ -79,8 +77,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
Assert.Equal(string.Empty, await server.HttpClientSlim.GetStringAsync($"http://localhost:{server.Port}/"));
Assert.False(responseBodyPersisted);
await server.StopAsync();
}
}
@ -89,7 +85,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var responseBodyPersisted = false;
PipeWriter bodyPipe = null;
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
if (context.Response.BodyWriter == bodyPipe)
{
@ -104,8 +100,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
Assert.Equal("hello, world", await server.HttpClientSlim.GetStringAsync($"http://localhost:{server.Port}/"));
Assert.False(responseBodyPersisted);
await server.StopAsync();
}
}
@ -116,7 +110,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var readTcs = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
var cts = new CancellationTokenSource();
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
var buffer = new byte[1024];
try
@ -174,7 +168,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"Read cancelled");
}
await server.StopAsync();
}
}
@ -183,7 +176,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var dataRead = false;
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
var stream = await context.Features.Get<IHttpUpgradeFeature>().UpgradeAsync();
var data = new byte[3];
@ -208,7 +201,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
Assert.True(dataRead);
@ -237,7 +229,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var rawTargetTcs = new TaskCompletionSource<string>(TaskCreationOptions.RunContinuationsAsynchronously);
var queryTcs = new TaskCompletionSource<IQueryCollection>(TaskCreationOptions.RunContinuationsAsynchronously);
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
pathTcs.TrySetResult(context.Request.Path);
queryTcs.TrySetResult(context.Request.Query);
@ -280,7 +272,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
Assert.Equal(queryValue, queryTcs.Task.Result["q"]);
}
}
await server.StopAsync();
}
}
@ -288,7 +279,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
public async Task AppCanSetTraceIdentifier()
{
const string knownId = "xyz123";
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
context.TraceIdentifier = knownId;
await context.Response.WriteAsync(context.TraceIdentifier);
@ -296,7 +287,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var requestId = await server.HttpClientSlim.GetStringAsync($"http://localhost:{server.Port}/");
Assert.Equal(knownId, requestId);
await server.StopAsync();
}
}
@ -306,7 +296,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
const int identifierLength = 22;
const int iterations = 10;
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
Assert.Equal(identifierLength, Encoding.ASCII.GetByteCount(context.TraceIdentifier));
context.Response.ContentLength = identifierLength;
@ -353,7 +343,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
usedIds.Add(id);
}
}
await server.StopAsync();
}
}
@ -362,7 +351,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(TestApp.EchoAppChunked, testContext))
await using (var server = new TestServer(TestApp.EchoAppChunked, testContext))
{
using (var connection = server.CreateConnection())
{
@ -388,7 +377,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"Goodbye");
}
await server.StopAsync();
}
}
@ -398,7 +386,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(TestApp.EchoApp, testContext))
await using (var server = new TestServer(TestApp.EchoApp, testContext))
{
using (var connection = server.CreateConnection())
{
@ -429,7 +417,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"Hello World");
}
await server.StopAsync();
}
}
@ -438,7 +425,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(TestApp.EchoAppChunked, testContext))
await using (var server = new TestServer(TestApp.EchoAppChunked, testContext))
{
using (var connection = server.CreateConnection())
{
@ -464,7 +451,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"Goodbye");
}
await server.StopAsync();
}
}
@ -473,7 +459,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(TestApp.EchoApp, testContext))
await using (var server = new TestServer(TestApp.EchoApp, testContext))
{
using (var connection = server.CreateConnection())
{
@ -504,7 +490,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"Goodbye");
}
await server.StopAsync();
}
}
@ -513,7 +498,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(TestApp.EchoAppChunked, testContext))
await using (var server = new TestServer(TestApp.EchoAppChunked, testContext))
{
using (var connection = server.CreateConnection())
{
@ -561,7 +546,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"Goodbye");
}
await server.StopAsync();
}
}
@ -570,7 +554,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(TestApp.EchoAppChunked, testContext))
await using (var server = new TestServer(TestApp.EchoAppChunked, testContext))
{
using (var connection = server.CreateConnection())
{
@ -594,7 +578,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"Hello World");
}
await server.StopAsync();
}
}
@ -603,7 +586,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
// This will hang if 0 content length is not assumed by the server
Assert.Equal(0, await httpContext.Request.Body.ReadAsync(new byte[1], 0, 1).DefaultTimeout());
@ -641,7 +624,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -650,7 +632,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var readResult = await httpContext.Request.BodyReader.ReadAsync().AsTask().DefaultTimeout();
// This will hang if 0 content length is not assumed by the server
@ -689,7 +671,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -698,7 +679,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var readResult = await httpContext.Request.BodyReader.ReadAsync();
// This will hang if 0 content length is not assumed by the server
@ -722,8 +703,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -732,7 +711,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var readResult = await httpContext.Request.BodyReader.ReadAsync();
// This will hang if 0 content length is not assumed by the server
@ -759,17 +738,15 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
[Fact]
[Fact]
public async Task ContentLengthReadAsyncPipeReaderBufferRequestBodyMultipleTimes()
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var readResult = await httpContext.Request.BodyReader.ReadAsync();
// This will hang if 0 content length is not assumed by the server
@ -800,8 +777,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -811,7 +786,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var testContext = new TestServiceContext(LoggerFactory);
var tcs = new TaskCompletionSource<object>();
var tcs2 = new TaskCompletionSource<object>();
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var readResult = await httpContext.Request.BodyReader.ReadAsync();
Assert.Equal(3, readResult.Buffer.Length);
@ -850,8 +825,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -859,7 +832,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
public async Task ContentLengthDoesNotConsumeEntireBufferDoesNotThrow()
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var readResult = await httpContext.Request.BodyReader.ReadAsync();
@ -886,8 +859,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -900,7 +871,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
Scheduler = PipeScheduler.Inline
};
using (var server = new TestServer(TestApp.EchoAppChunked, testContext))
await using (var server = new TestServer(TestApp.EchoAppChunked, testContext))
{
using (var connection = server.CreateConnection())
{
@ -919,7 +890,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
connection.ShutdownSend();
await connection.ReceiveEnd();
}
await server.StopAsync();
}
}
@ -931,7 +901,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
IHeaderDictionary originalRequestHeaders = null;
var firstRequest = true;
using (var server = new TestServer(httpContext =>
await using (var server = new TestServer(httpContext =>
{
var requestFeature = httpContext.Features.Get<IHttpRequestFeature>();
@ -970,7 +940,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -981,7 +950,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
var upgradeFeature = context.Features.Get<IHttpUpgradeFeature>();
var duplexStream = await upgradeFeature.UpgradeAsync();
@ -1008,7 +977,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
message);
}
await server.StopAsync();
}
}
@ -1024,7 +992,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
IHeaderDictionary lastRequestHeaders = null;
IHeaderDictionary lastResponseHeaders = null;
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
if (context.Request.Body != lastStream)
{
@ -1085,7 +1053,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
Assert.Equal(1, streamCount);
Assert.Equal(1, requestHeadersCount);
Assert.Equal(1, responseHeadersCount);
await server.StopAsync();
}
}
@ -1093,7 +1060,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
[MemberData(nameof(HostHeaderData))]
public async Task MatchesValidRequestTargetAndHostHeader(string request, string hostHeader)
{
using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory)))
await using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory)))
{
using (var connection = server.CreateConnection())
{
@ -1104,7 +1071,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await connection.Receive("HTTP/1.1 200 OK");
}
await server.StopAsync();
}
}
@ -1112,7 +1078,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
public async Task ServerConsumesKeepAliveContentLengthRequest()
{
// The app doesn't read the request body, so it should be consumed by the server
using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory)))
await using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory)))
{
using (var connection = server.CreateConnection())
{
@ -1146,7 +1112,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -1154,7 +1119,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
public async Task ServerConsumesKeepAliveChunkedRequest()
{
// The app doesn't read the request body, so it should be consumed by the server
using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory)))
await using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory)))
{
using (var connection = server.CreateConnection())
{
@ -1195,7 +1160,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -1203,7 +1167,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
public async Task NonKeepAliveRequestNotConsumedByAppCompletes()
{
// The app doesn't read the request body, so it should be consumed by the server
using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory)))
await using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory)))
{
using (var connection = server.CreateConnection())
{
@ -1222,7 +1186,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -1230,7 +1193,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
public async Task UpgradedRequestNotConsumedByAppCompletes()
{
// The app doesn't read the request body, so it should be consumed by the server
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
var upgradeFeature = context.Features.Get<IHttpUpgradeFeature>();
var duplexStream = await upgradeFeature.UpgradeAsync();
@ -1255,7 +1218,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"goodbye");
}
await server.StopAsync();
}
}
@ -1268,7 +1230,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var serviceContext = new TestServiceContext(LoggerFactory);
var heartbeatManager = new HeartbeatManager(serviceContext.ConnectionManager);
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
context.Features.Get<IHttpMinRequestBodyDataRateFeature>().MinDataRate =
new MinDataRate(bytesPerSecond: double.MaxValue, gracePeriod: Heartbeat.Interval + TimeSpan.FromTicks(1));
@ -1316,14 +1278,13 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"hello");
}
await server.StopAsync();
}
}
[Fact]
public async Task SynchronousReadsDisallowedByDefault()
{
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
var bodyControlFeature = context.Features.Get<IHttpBodyControlFeature>();
Assert.False(bodyControlFeature.AllowSynchronousIO);
@ -1374,7 +1335,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
[Fact]
public async Task SynchronousReadsAllowedByOptIn()
{
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
var bodyControlFeature = context.Features.Get<IHttpBodyControlFeature>();
Assert.False(bodyControlFeature.AllowSynchronousIO);
@ -1411,7 +1372,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"Hello");
}
await server.StopAsync();
}
}
@ -1423,7 +1383,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
ServerOptions = { AllowSynchronousIO = false }
};
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
var bodyControlFeature = context.Features.Get<IHttpBodyControlFeature>();
Assert.False(bodyControlFeature.AllowSynchronousIO);
@ -1456,7 +1416,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -1468,7 +1427,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
ServerOptions = { AllowSynchronousIO = true }
};
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
var bodyControlFeature = context.Features.Get<IHttpBodyControlFeature>();
Assert.True(bodyControlFeature.AllowSynchronousIO);
@ -1508,7 +1467,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var tcs = new TaskCompletionSource<object>();
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
var request = httpContext.Request;
@ -1550,7 +1509,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"Hello World");
}
await server.StopAsync();
}
}
@ -1559,7 +1517,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
var request = httpContext.Request;
@ -1595,7 +1553,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"Hello World");
}
await server.StopAsync();
}
}
@ -1605,7 +1562,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var tcs = new TaskCompletionSource<object>();
var testContext = new TestServiceContext(LoggerFactory);
using (var server = new TestServer(async httpContext =>
await using (var server = new TestServer(async httpContext =>
{
var response = httpContext.Response;
var request = httpContext.Request;
@ -1639,7 +1596,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}

View File

@ -32,7 +32,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
var heartbeatManager = new HeartbeatManager(testContext.ConnectionManager);
var minRate = new MinDataRate(16384, TimeSpan.FromSeconds(2));
using (var server = new TestServer(context =>
await using (var server = new TestServer(context =>
{
context.Features.Get<IHttpMinResponseDataRateFeature>().MinDataRate = minRate;
return Task.CompletedTask;
@ -79,7 +79,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
Assert.Single(TestApplicationErrorLogger.Messages, w => w.EventId.Id == 28 && w.LogLevel == LogLevel.Information);
}
await server.StopAsync();
}
}
}

View File

@ -13,7 +13,6 @@ using Microsoft.AspNetCore.Hosting.Server;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Server.Kestrel.Core;
using Microsoft.AspNetCore.Testing;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Xunit;
@ -22,7 +21,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests.TestTrans
/// <summary>
/// In-memory TestServer
/// </summary
internal class TestServer : IDisposable, IStartup
internal class TestServer : IAsyncDisposable, IDisposable, IStartup
{
private readonly MemoryPool<byte> _memoryPool;
private readonly RequestDelegate _app;
@ -158,5 +157,12 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests.TestTrans
token.Register(() => tcs.SetResult(null));
return tcs.Task;
}
public async ValueTask DisposeAsync()
{
// The concrete WebHost implements IAsyncDisposable
await ((IAsyncDisposable)_host).ConfigureAwait(false).DisposeAsync();
_memoryPool.Dispose();
}
}
}

View File

@ -21,7 +21,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
public async Task ResponseThrowsAfterUpgrade()
{
var upgrade = new TaskCompletionSource<bool>(TaskCreationOptions.RunContinuationsAsynchronously);
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
var feature = context.Features.Get<IHttpUpgradeFeature>();
var stream = await feature.UpgradeAsync();
@ -51,7 +51,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await connection.Receive("New protocol data");
await upgrade.Task.DefaultTimeout();
}
await server.StopAsync();
}
}
@ -62,7 +61,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
const string recv = "Custom protocol recv";
var upgrade = new TaskCompletionSource<bool>(TaskCreationOptions.RunContinuationsAsynchronously);
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
try
{
@ -107,7 +106,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await upgrade.Task.DefaultTimeout();
}
await server.StopAsync();
}
}
@ -115,7 +113,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
public async Task UpgradeCannotBeCalledMultipleTimes()
{
var upgradeTcs = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
var feature = context.Features.Get<IHttpUpgradeFeature>();
await feature.UpgradeAsync();
@ -146,7 +144,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"");
await connection.WaitForConnectionClose();
}
await server.StopAsync();
}
var ex = await Assert.ThrowsAsync<InvalidOperationException>(async () => await upgradeTcs.Task.DefaultTimeout());
@ -156,7 +153,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
[Fact]
public async Task RejectsRequestWithContentLengthAndUpgrade()
{
using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory)))
await using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory)))
{
using (var connection = server.CreateConnection())
{
@ -175,14 +172,13 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
[Fact]
public async Task AcceptsRequestWithNoContentLengthAndUpgrade()
{
using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory)))
await using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory)))
{
using (var connection = server.CreateConnection())
{
@ -200,14 +196,13 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await connection.SendEmptyGetWithUpgrade();
await connection.Receive("HTTP/1.1 200 OK");
}
await server.StopAsync();
}
}
[Fact]
public async Task RejectsRequestWithChunkedEncodingAndUpgrade()
{
using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory)))
await using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory)))
{
using (var connection = server.CreateConnection())
{
@ -225,7 +220,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
"",
"");
}
await server.StopAsync();
}
}
@ -233,7 +227,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
public async Task ThrowsWhenUpgradingNonUpgradableRequest()
{
var upgradeTcs = new TaskCompletionSource<bool>(TaskCreationOptions.RunContinuationsAsynchronously);
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
var feature = context.Features.Get<IHttpUpgradeFeature>();
Assert.False(feature.IsUpgradableRequest);
@ -256,7 +250,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await connection.SendEmptyGet();
await connection.Receive("HTTP/1.1 200 OK");
}
await server.StopAsync();
}
var ex = await Assert.ThrowsAsync<InvalidOperationException>(async () => await upgradeTcs.Task).DefaultTimeout();
@ -271,7 +264,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
var serviceContext = new TestServiceContext(LoggerFactory);
serviceContext.ConnectionManager = new ConnectionManager(serviceContext.Log, ResourceCounter.Quota(limit));
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
var feature = context.Features.Get<IHttpUpgradeFeature>();
if (feature.IsUpgradableRequest)
@ -308,7 +301,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
await connection.Receive("HTTP/1.1 200");
}
}
await server.StopAsync();
}
var exception = await Assert.ThrowsAsync<InvalidOperationException>(async () => await upgradeTcs.Task.TimeoutAfter(TimeSpan.FromSeconds(60)));
@ -320,7 +312,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
{
var appCompletedTcs = new TaskCompletionSource<object>(TaskCreationOptions.RunContinuationsAsynchronously);
using (var server = new TestServer(async context =>
await using (var server = new TestServer(async context =>
{
var feature = context.Features.Get<IHttpUpgradeFeature>();
var duplexStream = await feature.UpgradeAsync();
@ -349,7 +341,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
}
await appCompletedTcs.Task.DefaultTimeout();
await server.StopAsync();
}
}
}