diff --git a/src/Kestrel.Core/Properties/AssemblyInfo.cs b/src/Kestrel.Core/Properties/AssemblyInfo.cs
index 9e4800deed..c9518b4b60 100644
--- a/src/Kestrel.Core/Properties/AssemblyInfo.cs
+++ b/src/Kestrel.Core/Properties/AssemblyInfo.cs
@@ -9,7 +9,7 @@ using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo("InMemory.FunctionalTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
[assembly: InternalsVisibleTo("Sockets.BindTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
[assembly: InternalsVisibleTo("Libuv.BindTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
-[assembly: InternalsVisibleTo("Microsoft.AspNetCore.Server.Kestrel.Core.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("Core.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
[assembly: InternalsVisibleTo("Kestrel.Performance, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
[assembly: InternalsVisibleTo("Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
[assembly: InternalsVisibleTo("PlatformBenchmarks, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
diff --git a/src/Kestrel.Transport.Abstractions/Properties/AssemblyInfo.cs b/src/Kestrel.Transport.Abstractions/Properties/AssemblyInfo.cs
index 7056daa197..76b33e146d 100644
--- a/src/Kestrel.Transport.Abstractions/Properties/AssemblyInfo.cs
+++ b/src/Kestrel.Transport.Abstractions/Properties/AssemblyInfo.cs
@@ -3,7 +3,9 @@
using System.Runtime.CompilerServices;
-[assembly: InternalsVisibleTo("Microsoft.AspNetCore.Server.Kestrel.Core.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("Core.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("Microsoft.AspNetCore.Server.Kestrel.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
+[assembly: InternalsVisibleTo("Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
[assembly: InternalsVisibleTo("Sockets.FunctionalTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
[assembly: InternalsVisibleTo("Libuv.FunctionalTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
[assembly: InternalsVisibleTo("InMemory.FunctionalTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb")]
diff --git a/test/Kestrel.Core.Tests/Kestrel.Core.Tests.csproj b/test/Kestrel.Core.Tests/Kestrel.Core.Tests.csproj
index a8e44fa8c8..f6144e34fc 100644
--- a/test/Kestrel.Core.Tests/Kestrel.Core.Tests.csproj
+++ b/test/Kestrel.Core.Tests/Kestrel.Core.Tests.csproj
@@ -1,7 +1,7 @@
- Microsoft.AspNetCore.Server.Kestrel.Core.Tests
+ Core.Tests
Microsoft.AspNetCore.Server.Kestrel.Core.Tests
$(StandardTestTfms)
true
@@ -18,10 +18,11 @@
+
+
-
-
+
diff --git a/test/Kestrel.Core.Tests/Properties/AssemblyInfo.cs b/test/Kestrel.Core.Tests/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000000..678468c757
--- /dev/null
+++ b/test/Kestrel.Core.Tests/Properties/AssemblyInfo.cs
@@ -0,0 +1,6 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using Microsoft.Extensions.Logging.Testing;
+
+[assembly: ShortClassName]
diff --git a/test/Kestrel.Core.Tests/TestInput.cs b/test/Kestrel.Core.Tests/TestHelpers/TestInput.cs
similarity index 100%
rename from test/Kestrel.Core.Tests/TestInput.cs
rename to test/Kestrel.Core.Tests/TestHelpers/TestInput.cs
diff --git a/test/Kestrel.InMemory.FunctionalTests/BadHttpRequestTests.cs b/test/Kestrel.InMemory.FunctionalTests/BadHttpRequestTests.cs
index d58615c8a7..b566c5617f 100644
--- a/test/Kestrel.InMemory.FunctionalTests/BadHttpRequestTests.cs
+++ b/test/Kestrel.InMemory.FunctionalTests/BadHttpRequestTests.cs
@@ -5,7 +5,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Server.Kestrel.Core;
-using Microsoft.AspNetCore.Server.Kestrel.Core.Internal;
+using Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure;
using Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests.TestTransport;
using Microsoft.AspNetCore.Testing;
using Microsoft.Extensions.Logging;
@@ -191,7 +191,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.InMemory.FunctionalTests
private async Task TestBadRequest(string request, string expectedResponseStatusCode, string expectedExceptionMessage, string expectedAllowHeader = null)
{
BadHttpRequestException loggedException = null;
- var mockKestrelTrace = new Mock(Logger) { CallBase = true };
+ var mockKestrelTrace = new Mock();
mockKestrelTrace
.Setup(trace => trace.IsEnabled(LogLevel.Information))
.Returns(true);
diff --git a/test/Kestrel.Core.Tests/Http2ConnectionTests.cs b/test/Kestrel.InMemory.FunctionalTests/Http2/Http2ConnectionTests.cs
similarity index 82%
rename from test/Kestrel.Core.Tests/Http2ConnectionTests.cs
rename to test/Kestrel.InMemory.FunctionalTests/Http2/Http2ConnectionTests.cs
index 182b7418d9..b1b77db419 100644
--- a/test/Kestrel.Core.Tests/Http2ConnectionTests.cs
+++ b/test/Kestrel.InMemory.FunctionalTests/Http2/Http2ConnectionTests.cs
@@ -3,35 +3,25 @@
using System;
using System.Buffers;
-using System.Collections.Concurrent;
using System.Collections.Generic;
using System.IO;
-using System.IO.Pipelines;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Connections;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Http.Features;
using Microsoft.AspNetCore.Server.Kestrel.Core.Features;
-using Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http;
using Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2;
using Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http2.HPack;
-using Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure;
-using Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.Internal;
using Microsoft.AspNetCore.Testing;
using Microsoft.Extensions.Logging;
using Microsoft.Net.Http.Headers;
-using Moq;
using Xunit;
namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
{
- public class Http2ConnectionTests : IDisposable, IHttpHeadersHandler
+ public class Http2ConnectionTests : Http2TestBase
{
- private static readonly string _largeHeaderValue = new string('a', HPackDecoder.MaxStringOctets);
-
private static readonly IEnumerable> _postRequestHeaders = new[]
{
new KeyValuePair(HeaderNames.Method, "POST"),
@@ -49,19 +39,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
new KeyValuePair("expect", "100-continue"),
};
- private static readonly IEnumerable> _browserRequestHeaders = new[]
- {
- new KeyValuePair(HeaderNames.Method, "GET"),
- new KeyValuePair(HeaderNames.Path, "/"),
- new KeyValuePair(HeaderNames.Scheme, "http"),
- new KeyValuePair(HeaderNames.Authority, "localhost:80"),
- new KeyValuePair("user-agent", "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:54.0) Gecko/20100101 Firefox/54.0"),
- new KeyValuePair("accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"),
- new KeyValuePair("accept-language", "en-US,en;q=0.5"),
- new KeyValuePair("accept-encoding", "gzip, deflate, br"),
- new KeyValuePair("upgrade-insecure-requests", "1"),
- };
-
private static readonly IEnumerable> _requestTrailers = new[]
{
new KeyValuePair("trailer-one", "1"),
@@ -102,253 +79,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
private static readonly byte[] _noData = new byte[0];
private static readonly byte[] _maxData = Encoding.ASCII.GetBytes(new string('a', Http2Frame.MinAllowedMaxFrameSize));
- private readonly TestApplicationErrorLogger _logger;
- private readonly Http2PeerSettings _clientSettings = new Http2PeerSettings();
- private readonly HPackEncoder _hpackEncoder = new HPackEncoder();
- private readonly HPackDecoder _hpackDecoder;
-
- private readonly ConcurrentDictionary> _runningStreams = new ConcurrentDictionary>();
- private readonly Dictionary _receivedHeaders = new Dictionary(StringComparer.OrdinalIgnoreCase);
- private readonly Dictionary _decodedHeaders = new Dictionary(StringComparer.OrdinalIgnoreCase);
- private readonly HashSet _abortedStreamIds = new HashSet();
- private readonly object _abortedStreamIdsLock = new object();
- private readonly TaskCompletionSource
diff --git a/test/Kestrel.Transport.FunctionalTests/RequestTests.cs b/test/Kestrel.Transport.FunctionalTests/RequestTests.cs
index 81ef08d614..fc5a5d382b 100644
--- a/test/Kestrel.Transport.FunctionalTests/RequestTests.cs
+++ b/test/Kestrel.Transport.FunctionalTests/RequestTests.cs
@@ -19,7 +19,7 @@ using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Http.Features;
using Microsoft.AspNetCore.Server.Kestrel.Core;
-using Microsoft.AspNetCore.Server.Kestrel.Core.Internal;
+using Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure;
using Microsoft.AspNetCore.Testing;
using Microsoft.AspNetCore.Testing.xunit;
using Microsoft.Extensions.Logging;
@@ -318,8 +318,6 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
.Callback>((logLevel, eventId, state, exception, formatter) =>
{
Logger.Log(logLevel, eventId, state, exception, formatter);
- var log = $"Log {logLevel}[{eventId}]: {formatter(state, exception)} {exception}";
- TestOutputHelper.WriteLine(log);
if (eventId.Id == _connectionResetEventId)
{
@@ -707,10 +705,9 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
"Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets")))
.Returns(mockLogger.Object);
- var mockKestrelTrace = new Mock(Logger) { CallBase = true };
- var testContext = new TestServiceContext(mockLoggerFactory.Object)
+ var mockKestrelTrace = new Mock();
+ var testContext = new TestServiceContext(mockLoggerFactory.Object, mockKestrelTrace.Object)
{
- Log = mockKestrelTrace.Object,
ServerOptions =
{
Limits =
@@ -765,11 +762,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
var readTcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously);
var appStartedTcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously);
- var mockKestrelTrace = new Mock(Logger) { CallBase = true };
- var testContext = new TestServiceContext()
- {
- Log = mockKestrelTrace.Object,
- };
+ var mockKestrelTrace = new Mock();
+ var testContext = new TestServiceContext(LoggerFactory, mockKestrelTrace.Object);
var scratchBuffer = new byte[4096];
diff --git a/test/Kestrel.Transport.FunctionalTests/ResponseTests.cs b/test/Kestrel.Transport.FunctionalTests/ResponseTests.cs
index 88d54f6d22..bc61229b9c 100644
--- a/test/Kestrel.Transport.FunctionalTests/ResponseTests.cs
+++ b/test/Kestrel.Transport.FunctionalTests/ResponseTests.cs
@@ -18,7 +18,6 @@ using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Http.Features;
using Microsoft.AspNetCore.Server.Kestrel.Core;
using Microsoft.AspNetCore.Server.Kestrel.Core.Adapter.Internal;
-using Microsoft.AspNetCore.Server.Kestrel.Core.Internal;
using Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure;
using Microsoft.AspNetCore.Server.Kestrel.Https;
using Microsoft.AspNetCore.Server.Kestrel.Https.Internal;
@@ -250,7 +249,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
var clientClosedConnection = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously);
var writeTcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously);
- var mockKestrelTrace = new Mock(Logger) { CallBase = true };
+ var mockKestrelTrace = new Mock();
var mockLogger = new Mock();
mockLogger
.Setup(logger => logger.IsEnabled(It.IsAny()))
@@ -276,9 +275,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
"Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets")))
.Returns(mockLogger.Object);
- var testContext = new TestServiceContext(mockLoggerFactory.Object)
+ var testContext = new TestServiceContext(mockLoggerFactory.Object, mockKestrelTrace.Object)
{
- Log = mockKestrelTrace.Object,
ServerOptions =
{
Limits =
@@ -470,7 +468,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
var requestAborted = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously);
var appFuncCompleted = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously);
- var mockKestrelTrace = new Mock(Logger) { CallBase = true };
+ var mockKestrelTrace = new Mock();
mockKestrelTrace
.Setup(trace => trace.ResponseMininumDataRateNotSatisfied(It.IsAny(), It.IsAny()))
.Callback(() => responseRateTimeoutMessageLogged.SetResult(null));
@@ -478,10 +476,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
.Setup(trace => trace.ConnectionStop(It.IsAny()))
.Callback(() => connectionStopMessageLogged.SetResult(null));
- var testContext = new TestServiceContext
+ var testContext = new TestServiceContext(loggerFactory, mockKestrelTrace.Object)
{
- LoggerFactory = loggerFactory,
- Log = mockKestrelTrace.Object,
ServerOptions =
{
Limits =
@@ -539,7 +535,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
await responseRateTimeoutMessageLogged.Task.DefaultTimeout();
await connectionStopMessageLogged.Task.DefaultTimeout();
await appFuncCompleted.Task.DefaultTimeout();
- await AssertStreamAborted(connection.Reader.BaseStream, chunkSize * chunks);
+ await AssertStreamAborted(connection.Stream, chunkSize * chunks);
sw.Stop();
logger.LogInformation("Connection was aborted after {totalMilliseconds}ms.", sw.ElapsedMilliseconds);
@@ -562,7 +558,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
var aborted = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously);
var appFuncCompleted = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously);
- var mockKestrelTrace = new Mock(Logger) { CallBase = true };
+ var mockKestrelTrace = new Mock();
mockKestrelTrace
.Setup(trace => trace.ResponseMininumDataRateNotSatisfied(It.IsAny(), It.IsAny()))
.Callback(() => responseRateTimeoutMessageLogged.SetResult(null));
@@ -616,7 +612,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
{
using (var connection = server.CreateConnection())
{
- using (var sslStream = new SslStream(connection.Reader.BaseStream, false, (sender, cert, chain, errors) => true, null))
+ using (var sslStream = new SslStream(connection.Stream, false, (sender, cert, chain, errors) => true, null))
{
await sslStream.AuthenticateAsClientAsync("localhost", new X509CertificateCollection(), SslProtocols.Tls12 | SslProtocols.Tls11, false);
@@ -628,7 +624,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
await connectionStopMessageLogged.Task.DefaultTimeout();
await appFuncCompleted.Task.DefaultTimeout();
- await AssertStreamAborted(connection.Reader.BaseStream, chunkSize * chunks);
+ await AssertStreamAborted(connection.Stream, chunkSize * chunks);
}
}
}
@@ -647,7 +643,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
var requestAborted = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously);
var copyToAsyncCts = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously);
- var mockKestrelTrace = new Mock(Logger) { CallBase = true };
+ var mockKestrelTrace = new Mock();
mockKestrelTrace
.Setup(trace => trace.ResponseMininumDataRateNotSatisfied(It.IsAny(), It.IsAny()))
.Callback(() => responseRateTimeoutMessageLogged.SetResult(null));
@@ -655,10 +651,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
.Setup(trace => trace.ConnectionStop(It.IsAny()))
.Callback(() => connectionStopMessageLogged.SetResult(null));
- var testContext = new TestServiceContext
+ var testContext = new TestServiceContext(LoggerFactory, mockKestrelTrace.Object)
{
- LoggerFactory = LoggerFactory,
- Log = mockKestrelTrace.Object,
ServerOptions =
{
Limits =
@@ -734,11 +728,10 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
var requestAborted = false;
var appFuncCompleted = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously);
- var mockKestrelTrace = new Mock(Logger) { CallBase = true };
+ var mockKestrelTrace = new Mock();
- var testContext = new TestServiceContext
+ var testContext = new TestServiceContext(LoggerFactory, mockKestrelTrace.Object)
{
- Log = mockKestrelTrace.Object,
ServerOptions =
{
Limits =
@@ -783,7 +776,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
// Make sure consuming a single chunk exceeds the 2 second timeout.
var targetBytesPerSecond = chunkSize / 4;
- await AssertStreamCompleted(connection.Reader.BaseStream, minTotalOutputSize, targetBytesPerSecond);
+ await AssertStreamCompleted(connection.Stream, minTotalOutputSize, targetBytesPerSecond);
await appFuncCompleted.Task.DefaultTimeout();
mockKestrelTrace.Verify(t => t.ResponseMininumDataRateNotSatisfied(It.IsAny(), It.IsAny()), Times.Never());
@@ -803,11 +796,10 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
var headerStringValues = new StringValues(Enumerable.Repeat(headerValue, headerCount).ToArray());
var requestAborted = false;
- var mockKestrelTrace = new Mock(Logger) { CallBase = true };
+ var mockKestrelTrace = new Mock();
- var testContext = new TestServiceContext
+ var testContext = new TestServiceContext(LoggerFactory, mockKestrelTrace.Object)
{
- Log = mockKestrelTrace.Object,
ServerOptions =
{
Limits =
@@ -860,7 +852,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
// Make sure consuming a single set of response headers exceeds the 2 second timeout.
var targetBytesPerSecond = responseSize / 4;
- await AssertStreamCompleted(connection.Reader.BaseStream, minTotalOutputSize, targetBytesPerSecond);
+ await AssertStreamCompleted(connection.Stream, minTotalOutputSize, targetBytesPerSecond);
mockKestrelTrace.Verify(t => t.ResponseMininumDataRateNotSatisfied(It.IsAny(), It.IsAny()), Times.Never());
mockKestrelTrace.Verify(t => t.ConnectionStop(It.IsAny()), Times.Once());
diff --git a/test/Kestrel.Transport.Libuv.BindTests/Kestrel.Transport.Libuv.BindTests.csproj b/test/Kestrel.Transport.Libuv.BindTests/Kestrel.Transport.Libuv.BindTests.csproj
index edf6bd9a96..2e1b2bbe54 100644
--- a/test/Kestrel.Transport.Libuv.BindTests/Kestrel.Transport.Libuv.BindTests.csproj
+++ b/test/Kestrel.Transport.Libuv.BindTests/Kestrel.Transport.Libuv.BindTests.csproj
@@ -12,7 +12,6 @@
-
diff --git a/test/Kestrel.Transport.Libuv.FunctionalTests/Kestrel.Transport.Libuv.FunctionalTests.csproj b/test/Kestrel.Transport.Libuv.FunctionalTests/Kestrel.Transport.Libuv.FunctionalTests.csproj
index b2e93c9777..7c9eb1fa1d 100644
--- a/test/Kestrel.Transport.Libuv.FunctionalTests/Kestrel.Transport.Libuv.FunctionalTests.csproj
+++ b/test/Kestrel.Transport.Libuv.FunctionalTests/Kestrel.Transport.Libuv.FunctionalTests.csproj
@@ -13,7 +13,6 @@
-
diff --git a/test/Kestrel.Transport.Libuv.Tests/Kestrel.Transport.Libuv.Tests.csproj b/test/Kestrel.Transport.Libuv.Tests/Kestrel.Transport.Libuv.Tests.csproj
index 0ad5d2346d..dbdec3565c 100644
--- a/test/Kestrel.Transport.Libuv.Tests/Kestrel.Transport.Libuv.Tests.csproj
+++ b/test/Kestrel.Transport.Libuv.Tests/Kestrel.Transport.Libuv.Tests.csproj
@@ -18,9 +18,10 @@
-
+
+
diff --git a/test/Kestrel.Transport.Sockets.BindTests/Kestrel.Transport.Sockets.BindTests.csproj b/test/Kestrel.Transport.Sockets.BindTests/Kestrel.Transport.Sockets.BindTests.csproj
index 4aa0791ed7..6393beddf0 100644
--- a/test/Kestrel.Transport.Sockets.BindTests/Kestrel.Transport.Sockets.BindTests.csproj
+++ b/test/Kestrel.Transport.Sockets.BindTests/Kestrel.Transport.Sockets.BindTests.csproj
@@ -12,7 +12,6 @@
-
diff --git a/test/Kestrel.Transport.Sockets.FunctionalTests/Kestrel.Transport.Sockets.FunctionalTests.csproj b/test/Kestrel.Transport.Sockets.FunctionalTests/Kestrel.Transport.Sockets.FunctionalTests.csproj
index e717642f93..35be01d361 100644
--- a/test/Kestrel.Transport.Sockets.FunctionalTests/Kestrel.Transport.Sockets.FunctionalTests.csproj
+++ b/test/Kestrel.Transport.Sockets.FunctionalTests/Kestrel.Transport.Sockets.FunctionalTests.csproj
@@ -12,7 +12,6 @@
-
diff --git a/test/shared/FunctionalTestHelpers/DiagnosticMemoryPoolFactory.cs b/test/shared/DiagnosticMemoryPoolFactory.cs
similarity index 100%
rename from test/shared/FunctionalTestHelpers/DiagnosticMemoryPoolFactory.cs
rename to test/shared/DiagnosticMemoryPoolFactory.cs
diff --git a/test/shared/FunctionalTestHelpers/TestApplicationErrorLoggerLoggedTest.cs b/test/shared/TestApplicationErrorLoggerLoggedTest.cs
similarity index 100%
rename from test/shared/FunctionalTestHelpers/TestApplicationErrorLoggerLoggedTest.cs
rename to test/shared/TestApplicationErrorLoggerLoggedTest.cs
index 312c64660c..c149111fdb 100644
--- a/test/shared/FunctionalTestHelpers/TestApplicationErrorLoggerLoggedTest.cs
+++ b/test/shared/TestApplicationErrorLoggerLoggedTest.cs
@@ -1,8 +1,8 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
-using Microsoft.Extensions.Logging.Testing;
using System.Reflection;
+using Microsoft.Extensions.Logging.Testing;
using Xunit.Abstractions;
namespace Microsoft.AspNetCore.Testing
diff --git a/test/shared/TransportTestHelpers/TestServer.cs b/test/shared/TransportTestHelpers/TestServer.cs
index e5b9376289..df73888129 100644
--- a/test/shared/TransportTestHelpers/TestServer.cs
+++ b/test/shared/TransportTestHelpers/TestServer.cs
@@ -16,6 +16,7 @@ using Microsoft.AspNetCore.Server.Kestrel.Core;
using Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.Internal;
using Microsoft.AspNetCore.Testing;
using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
@@ -85,11 +86,12 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
.Build();
_host.Start();
+
+ Context.Log.LogDebug($"TestServer is listening on port {Port}");
}
- public IPEndPoint EndPoint => _listenOptions.IPEndPoint;
- public int Port => _listenOptions.IPEndPoint.Port;
- public AddressFamily AddressFamily => _listenOptions.IPEndPoint.AddressFamily;
+ // Avoid NullReferenceException in the CanListenToOpenTcpSocketHandle test
+ public int Port => _listenOptions.IPEndPoint?.Port ?? 0;
public TestServiceContext Context { get; }
@@ -107,7 +109,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests
public TestConnection CreateConnection()
{
- return new TestConnection(Port, AddressFamily);
+ return new TestConnection(Port, _listenOptions.IPEndPoint.AddressFamily);
}
public Task StopAsync(CancellationToken token = default)