From b47b3e5ac6a6ef75f5bd5965d2db2fd49110ebf1 Mon Sep 17 00:00:00 2001 From: David Fowler Date: Mon, 17 Jun 2019 17:42:16 +0200 Subject: [PATCH] Wait for server connection to end (#11256) --- .../test/FunctionalTests/UnixDomainSocketsTests.cs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/Servers/Kestrel/test/FunctionalTests/UnixDomainSocketsTests.cs b/src/Servers/Kestrel/test/FunctionalTests/UnixDomainSocketsTests.cs index 8add576c07..45376bdd93 100644 --- a/src/Servers/Kestrel/test/FunctionalTests/UnixDomainSocketsTests.cs +++ b/src/Servers/Kestrel/test/FunctionalTests/UnixDomainSocketsTests.cs @@ -37,6 +37,8 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests try { + var serverConnectionCompletedTcs = new TaskCompletionSource(TaskContinuationOptions.RunContinuationsAsynchronously); + async Task EchoServer(ConnectionContext connection) { // For graceful shutdown @@ -63,6 +65,10 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests { Logger.LogDebug("Graceful shutdown triggered for {connectionId}.", connection.ConnectionId); } + finally + { + serverConnectionCompletedTcs.TrySetResult(null); + } } var hostBuilder = TransportSelector.GetWebHostBuilder() @@ -97,6 +103,9 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests Assert.Equal(data, buffer); } + // Wait for the server to complete the loop because of the FIN + await serverConnectionCompletedTcs.Task.DefaultTimeout(); + await host.StopAsync(); } }