diff --git a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/DiagnosticPortTests.cs b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/DiagnosticPortTests.cs index 0fb49cb8572..0f8cf2ab58b 100644 --- a/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/DiagnosticPortTests.cs +++ b/src/Tests/Microsoft.Diagnostics.Monitoring.Tool.FunctionalTests/DiagnosticPortTests.cs @@ -8,6 +8,7 @@ using Microsoft.Diagnostics.Monitoring.WebApi; using System; using System.IO; +using System.Threading; using System.Threading.Tasks; using Xunit; using Xunit.Abstractions; @@ -82,7 +83,7 @@ public async Task DefaultDiagnosticPort_Supported_ListenModeOnNonWindows() await Task.Delay(TimeSpan.FromSeconds(10)); // Allow some time for the socket to be created. - AssertDefaultDiagnosticPortExists(defaultSharedTempDir); + await AssertDefaultDiagnosticPortExistsAsync(defaultSharedTempDir); } /// @@ -109,10 +110,16 @@ private static string GetDefaultSharedSocketPath(string defaultSharedPath) return Path.Combine(defaultSharedPath, ToolIdentifiers.DefaultSocketName); } - private static void AssertDefaultDiagnosticPortExists(TemporaryDirectory dir) + private static async Task AssertDefaultDiagnosticPortExistsAsync(TemporaryDirectory dir) { string diagnosticPort = GetDefaultSharedSocketPath(dir.FullName); - Assert.True(File.Exists(diagnosticPort), $"Expected socket to exist at '{diagnosticPort}'."); + + using CancellationTokenSource cancellationSource = new CancellationTokenSource(CommonTestTimeouts.GeneralTimeout); + + while (!File.Exists(diagnosticPort)) + { + await Task.Delay(TimeSpan.FromMilliseconds(50), cancellationSource.Token); + } } private static void AssertDefaultDiagnosticPortNotExists(TemporaryDirectory dir)