[QUIC] Fix failing parallel tests (#83687)
authorMarie Píchová <11718369+ManickaP@users.noreply.github.com>
Fri, 24 Mar 2023 08:31:04 +0000 (09:31 +0100)
committerGitHub <noreply@github.com>
Fri, 24 Mar 2023 08:31:04 +0000 (09:31 +0100)
* Hocus pocus

* Enable failing test

* Fixed touching msquic when it's not supported.

* Feedback

* Test of output

* Feedback

src/libraries/System.Net.Quic/src/System/Net/Quic/Internal/MsQuicApi.cs
src/libraries/System.Net.Quic/tests/FunctionalTests/MsQuicPlatformDetectionTests.cs
src/libraries/System.Net.Quic/tests/FunctionalTests/QuicListenerTests.cs
src/libraries/System.Net.Quic/tests/FunctionalTests/QuicTestBase.cs

index 47b727a..1923a18 100644 (file)
@@ -5,7 +5,6 @@ using System.Diagnostics;
 using System.Diagnostics.CodeAnalysis;
 using System.Runtime.InteropServices;
 using Microsoft.Quic;
-
 using static Microsoft.Quic.MsQuic;
 
 #if TARGET_WINDOWS
index b90cd51..8bb91df 100644 (file)
@@ -38,6 +38,7 @@ namespace System.Net.Quic.Tests
             find.StartInfo.FileName = "find";
             find.StartInfo.Arguments = "/usr/ -iname libmsquic.so*";
             find.StartInfo.RedirectStandardOutput = true;
+            find.StartInfo.RedirectStandardError = true;
             find.Start();
             string output = await find.StandardOutput.ReadToEndAsync();
             _output.WriteLine(output);
index 12df548..e00f758 100644 (file)
@@ -203,7 +203,6 @@ namespace System.Net.Quic.Tests
         [InlineData(100, 101)]
         [InlineData(15, 100)]
         [InlineData(10, 1_000)]
-        [ActiveIssue("https://github.com/dotnet/runtime/issues/82769", typeof(PlatformDetection), nameof(PlatformDetection.IsArmOrArm64Process))]
         [OuterLoop("Higher number of connections slow the test down.")]
         private Task Listener_BacklogLimitRefusesConnection_ParallelClients_ClientThrows_Slow(int backlogLimit, int connectCount)
             => Listener_BacklogLimitRefusesConnection_ParallelClients_ClientThrows_Core(backlogLimit, connectCount);
index 2560723..34872a7 100644 (file)
@@ -13,6 +13,8 @@ using Xunit;
 using Xunit.Abstractions;
 using System.Diagnostics.Tracing;
 using System.Net.Sockets;
+using Microsoft.Quic;
+using static Microsoft.Quic.MsQuic;
 
 namespace System.Net.Quic.Tests
 {
@@ -40,10 +42,25 @@ namespace System.Net.Quic.Tests
         public const int PassingTestTimeoutMilliseconds = 4 * 60 * 1000;
         public static TimeSpan PassingTestTimeout => TimeSpan.FromMilliseconds(PassingTestTimeoutMilliseconds);
 
-        public QuicTestBase(ITestOutputHelper output)
+        static unsafe QuicTestBase()
+        {
+            Console.WriteLine($"MsQuic {(IsSupported ? "supported" : "not supported")} and using '{MsQuicApi.MsQuicLibraryVersion}'.");
+
+            if (IsSupported)
+            {
+                QUIC_SETTINGS settings = default(QUIC_SETTINGS);
+                settings.IsSet.MaxWorkerQueueDelayUs = 1;
+                settings.MaxWorkerQueueDelayUs = 2_500_000u; // 2.5s, 10x the default
+                if (StatusFailed(MsQuicApi.Api.ApiTable->SetParam(null, QUIC_PARAM_GLOBAL_SETTINGS, (uint)sizeof(QUIC_SETTINGS), (byte*)&settings)))
+                {
+                    Console.WriteLine($"Unable to set MsQuic MaxWorkerQueueDelayUs.");
+                }
+            }
+        }
+
+        public unsafe QuicTestBase(ITestOutputHelper output)
         {
             _output = output;
-            _output.WriteLine($"Using {MsQuicApi.MsQuicLibraryVersion}");
         }
 
         public void Dispose()