From 723a3b8085dc82c6e483e6b7379ebbd26ae3aa2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Fi=C5=A1era?= Date: Thu, 15 Feb 2024 14:30:52 +0100 Subject: [PATCH 1/9] Run tests in parallel. Pass max number of parallel threads as param --- eng/testing/tests.browser.targets | 2 ++ .../tests/WasmTestRunner/WasmTestRunner.cs | 20 ++++++++++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/eng/testing/tests.browser.targets b/eng/testing/tests.browser.targets index d27fa412d490b1..fa9bd684a8d6df 100644 --- a/eng/testing/tests.browser.targets +++ b/eng/testing/tests.browser.targets @@ -94,6 +94,7 @@ $(WasmXHarnessMonoArgs) --setenv=XHARNESS_LOG_TEST_START=true $(WasmXHarnessMonoArgs) --setenv=IsBrowserThreadingSupported=true + 8 @@ -112,6 +113,7 @@ <_XHarnessArgs Condition="'$(WasmXHarnessArgsCli)' != ''" >$(_XHarnessArgs) $(WasmXHarnessArgsCli) <_AppArgs Condition="'$(WasmEnableThreads)' == 'true'">$(_AppArgs) -threads + <_AppArgs Condition="'$(WasmXHarnessMaxParallelThreads)' != ''">$(_AppArgs) -parallelThreads $(WasmXHarnessMaxParallelThreads) $HARNESS_RUNNER $(_XHarnessArgs) %24XHARNESS_ARGS %24WasmXHarnessArgs -- $(WasmXHarnessMonoArgs) %24WasmXHarnessMonoArgs $(_AppArgs) %24WasmTestAppArgs %HARNESS_RUNNER% $(_XHarnessArgs) %XHARNESS_ARGS% %WasmXHarnessArgs% -- $(WasmXHarnessMonoArgs) %WasmXHarnessMonoArgs% $(_AppArgs) %WasmTestAppArgs% diff --git a/src/libraries/Common/tests/WasmTestRunner/WasmTestRunner.cs b/src/libraries/Common/tests/WasmTestRunner/WasmTestRunner.cs index 2eb1c1e440c33b..d7a0159e87d282 100644 --- a/src/libraries/Common/tests/WasmTestRunner/WasmTestRunner.cs +++ b/src/libraries/Common/tests/WasmTestRunner/WasmTestRunner.cs @@ -9,8 +9,8 @@ public class WasmTestRunner : WasmApplicationEntryPoint { - // TODO: Set max threads for run in parallel - // protected override int? MaxParallelThreads => RunInParallel ? 8 : base.MaxParallelThreads; + protected int MaxParallelThreadsFromArg { get; set; } + protected override int? MaxParallelThreads => RunInParallel ? MaxParallelThreadsFromArg : base.MaxParallelThreads; public static async Task Main(string[] args) { @@ -65,9 +65,11 @@ public static async Task Main(string[] args) break; case "-threads": runner.IsThreadless = false; - // TODO: Enable run in parallel - // runner.RunInParallel = true; - // Console.WriteLine($"Running in parallel with {runner.MaxParallelThreads} threads."); + break; + case "-parallelThreads": + runner.RunInParallel = true; + runner.MaxParallelThreadsFromArg = int.Parse(args[i + 1]); + i++; break; case "-verbosity": runner.MinimumLogLevel = Enum.Parse(args[i + 1]); @@ -105,4 +107,12 @@ public static async Task Main(string[] args) return res; } + + public override Task RunAsync() + { + if (RunInParallel) + Console.WriteLine($"Running in parallel with {MaxParallelThreads} threads."); + + return base.RunAsync(); + } } From 60e26d9f5a0fa2b737077b02e9b19e022d06fa1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Fi=C5=A1era?= Date: Thu, 15 Feb 2024 14:31:08 +0100 Subject: [PATCH 2/9] [revert] Log all test starts --- eng/testing/tests.browser.targets | 3 +++ 1 file changed, 3 insertions(+) diff --git a/eng/testing/tests.browser.targets b/eng/testing/tests.browser.targets index fa9bd684a8d6df..5972f590ebe5b5 100644 --- a/eng/testing/tests.browser.targets +++ b/eng/testing/tests.browser.targets @@ -91,6 +91,9 @@ $(WasmTestAppArgs) -backgroundExec <_AppArgs Condition="'$(WasmTestAppArgs)' != ''">$(_AppArgs) $(WasmTestAppArgs) + true + $(WasmXHarnessMonoArgs) --setenv=XHARNESS_LOG_THREAD_ID=true + $(WasmXHarnessMonoArgs) --setenv=XHARNESS_LOG_TEST_START=true $(WasmXHarnessMonoArgs) --setenv=IsBrowserThreadingSupported=true From 36110722edf12b7437514e72fd2cc3a75779436e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Fi=C5=A1era?= Date: Fri, 16 Feb 2024 14:33:23 +0100 Subject: [PATCH 3/9] Disable parallel execution for WS and JSON tests --- .../tests/System.Net.WebSockets.Client.Tests.csproj | 1 + .../tests/System.Text.Json.Tests/System.Text.Json.Tests.csproj | 1 + 2 files changed, 2 insertions(+) diff --git a/src/libraries/System.Net.WebSockets.Client/tests/System.Net.WebSockets.Client.Tests.csproj b/src/libraries/System.Net.WebSockets.Client/tests/System.Net.WebSockets.Client.Tests.csproj index 7bb14097848cb5..5173bc185a697b 100644 --- a/src/libraries/System.Net.WebSockets.Client/tests/System.Net.WebSockets.Client.Tests.csproj +++ b/src/libraries/System.Net.WebSockets.Client/tests/System.Net.WebSockets.Client.Tests.csproj @@ -17,6 +17,7 @@ 01:15:00 + 1 diff --git a/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/System.Text.Json.Tests.csproj b/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/System.Text.Json.Tests.csproj index ddb87ab85f5745..61bea23cac8200 100644 --- a/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/System.Text.Json.Tests.csproj +++ b/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/System.Text.Json.Tests.csproj @@ -21,6 +21,7 @@ true 01:15:00 + 1 From 475818e1c533b2c81db419a05512e8d670e3af35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Fi=C5=A1era?= Date: Fri, 16 Feb 2024 20:27:31 +0100 Subject: [PATCH 4/9] Turn off parallel processing when max threads is equal to 1 --- src/libraries/Common/tests/WasmTestRunner/WasmTestRunner.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libraries/Common/tests/WasmTestRunner/WasmTestRunner.cs b/src/libraries/Common/tests/WasmTestRunner/WasmTestRunner.cs index d7a0159e87d282..9935182c69d038 100644 --- a/src/libraries/Common/tests/WasmTestRunner/WasmTestRunner.cs +++ b/src/libraries/Common/tests/WasmTestRunner/WasmTestRunner.cs @@ -67,8 +67,8 @@ public static async Task Main(string[] args) runner.IsThreadless = false; break; case "-parallelThreads": - runner.RunInParallel = true; - runner.MaxParallelThreadsFromArg = int.Parse(args[i + 1]); + runner.MaxParallelThreadsFromArg = Math.Max(1, int.Parse(args[i + 1])); + runner.RunInParallel = runner.MaxParallelThreadsFromArg > 1; i++; break; case "-verbosity": From ec8185a8601d7f2a53033a02e548f828ffe86b78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Fi=C5=A1era?= Date: Sun, 18 Feb 2024 12:00:02 +0100 Subject: [PATCH 5/9] Disable parallel execution for Buffers tests --- .../tests/System.Buffers.Tests/System.Buffers.Tests.csproj | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/libraries/System.Runtime/tests/System.Buffers.Tests/System.Buffers.Tests.csproj b/src/libraries/System.Runtime/tests/System.Buffers.Tests/System.Buffers.Tests.csproj index 10b79281bf52b6..66ae6833a50eb5 100644 --- a/src/libraries/System.Runtime/tests/System.Buffers.Tests/System.Buffers.Tests.csproj +++ b/src/libraries/System.Runtime/tests/System.Buffers.Tests/System.Buffers.Tests.csproj @@ -5,6 +5,9 @@ true $(NetCoreAppCurrent) + + 1 + From 146d7a7deb216f3ce5c22f1e26e9ef6b27d02a98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Fi=C5=A1era?= Date: Fri, 8 Mar 2024 11:45:49 +0100 Subject: [PATCH 6/9] Revert "[revert] Log all test starts" This reverts commit 60e26d9f5a0fa2b737077b02e9b19e022d06fa1d. --- eng/testing/tests.browser.targets | 3 --- 1 file changed, 3 deletions(-) diff --git a/eng/testing/tests.browser.targets b/eng/testing/tests.browser.targets index 28a928885b2264..903d10e0412ba7 100644 --- a/eng/testing/tests.browser.targets +++ b/eng/testing/tests.browser.targets @@ -92,9 +92,6 @@ $(WasmXHarnessMonoArgs) --setenv=IsWasmBackgroundExec=true <_AppArgs Condition="'$(WasmTestAppArgs)' != ''">$(_AppArgs) $(WasmTestAppArgs) - true - $(WasmXHarnessMonoArgs) --setenv=XHARNESS_LOG_THREAD_ID=true - $(WasmXHarnessMonoArgs) --setenv=XHARNESS_LOG_TEST_START=true $(WasmXHarnessMonoArgs) --setenv=IsBrowserThreadingSupported=true From 8bd31e849f609ecdbd46c9c4906a64bb7df5c7df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Fi=C5=A1era?= Date: Mon, 18 Mar 2024 10:30:49 +0100 Subject: [PATCH 7/9] [torevert] Remove all 1 threads --- .../tests/System.Net.WebSockets.Client.Tests.csproj | 2 +- .../tests/System.Buffers.Tests/System.Buffers.Tests.csproj | 2 +- .../tests/System.Text.Json.Tests/System.Text.Json.Tests.csproj | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libraries/System.Net.WebSockets.Client/tests/System.Net.WebSockets.Client.Tests.csproj b/src/libraries/System.Net.WebSockets.Client/tests/System.Net.WebSockets.Client.Tests.csproj index 5173bc185a697b..4248550ccc0364 100644 --- a/src/libraries/System.Net.WebSockets.Client/tests/System.Net.WebSockets.Client.Tests.csproj +++ b/src/libraries/System.Net.WebSockets.Client/tests/System.Net.WebSockets.Client.Tests.csproj @@ -17,7 +17,7 @@ 01:15:00 - 1 + diff --git a/src/libraries/System.Runtime/tests/System.Buffers.Tests/System.Buffers.Tests.csproj b/src/libraries/System.Runtime/tests/System.Buffers.Tests/System.Buffers.Tests.csproj index 66ae6833a50eb5..2e77905aff861c 100644 --- a/src/libraries/System.Runtime/tests/System.Buffers.Tests/System.Buffers.Tests.csproj +++ b/src/libraries/System.Runtime/tests/System.Buffers.Tests/System.Buffers.Tests.csproj @@ -6,7 +6,7 @@ $(NetCoreAppCurrent) - 1 + diff --git a/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/System.Text.Json.Tests.csproj b/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/System.Text.Json.Tests.csproj index 61bea23cac8200..65f1a9095680de 100644 --- a/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/System.Text.Json.Tests.csproj +++ b/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/System.Text.Json.Tests.csproj @@ -21,7 +21,7 @@ true 01:15:00 - 1 + From 3ba705ac857e93a0f42104b4279a0165f6c5349a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Fi=C5=A1era?= Date: Mon, 18 Mar 2024 14:14:40 +0100 Subject: [PATCH 8/9] Revert "[torevert] Remove all 1 threads" This reverts commit 8bd31e849f609ecdbd46c9c4906a64bb7df5c7df. --- .../tests/System.Net.WebSockets.Client.Tests.csproj | 2 +- .../tests/System.Buffers.Tests/System.Buffers.Tests.csproj | 2 +- .../tests/System.Text.Json.Tests/System.Text.Json.Tests.csproj | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libraries/System.Net.WebSockets.Client/tests/System.Net.WebSockets.Client.Tests.csproj b/src/libraries/System.Net.WebSockets.Client/tests/System.Net.WebSockets.Client.Tests.csproj index fd1bf545aea3f4..2c7762cc6bc861 100644 --- a/src/libraries/System.Net.WebSockets.Client/tests/System.Net.WebSockets.Client.Tests.csproj +++ b/src/libraries/System.Net.WebSockets.Client/tests/System.Net.WebSockets.Client.Tests.csproj @@ -17,7 +17,7 @@ 01:15:00 - + 1 diff --git a/src/libraries/System.Runtime/tests/System.Buffers.Tests/System.Buffers.Tests.csproj b/src/libraries/System.Runtime/tests/System.Buffers.Tests/System.Buffers.Tests.csproj index 2e77905aff861c..66ae6833a50eb5 100644 --- a/src/libraries/System.Runtime/tests/System.Buffers.Tests/System.Buffers.Tests.csproj +++ b/src/libraries/System.Runtime/tests/System.Buffers.Tests/System.Buffers.Tests.csproj @@ -6,7 +6,7 @@ $(NetCoreAppCurrent) - + 1 diff --git a/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/System.Text.Json.Tests.csproj b/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/System.Text.Json.Tests.csproj index 65f1a9095680de..61bea23cac8200 100644 --- a/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/System.Text.Json.Tests.csproj +++ b/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/System.Text.Json.Tests.csproj @@ -21,7 +21,7 @@ true 01:15:00 - + 1 From 687fefe2621fb8f25303fd135418ccac54443239 Mon Sep 17 00:00:00 2001 From: Pavel Savara Date: Wed, 3 Apr 2024 16:03:45 +0200 Subject: [PATCH 9/9] 1 thread for JS interop tests --- .../System.Runtime.InteropServices.JavaScript.Tests.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libraries/System.Runtime.InteropServices.JavaScript/tests/System.Runtime.InteropServices.JavaScript.UnitTests/System.Runtime.InteropServices.JavaScript.Tests.csproj b/src/libraries/System.Runtime.InteropServices.JavaScript/tests/System.Runtime.InteropServices.JavaScript.UnitTests/System.Runtime.InteropServices.JavaScript.Tests.csproj index e21c5d8c5e16dc..135b1b78297ab8 100644 --- a/src/libraries/System.Runtime.InteropServices.JavaScript/tests/System.Runtime.InteropServices.JavaScript.UnitTests/System.Runtime.InteropServices.JavaScript.Tests.csproj +++ b/src/libraries/System.Runtime.InteropServices.JavaScript/tests/System.Runtime.InteropServices.JavaScript.UnitTests/System.Runtime.InteropServices.JavaScript.Tests.csproj @@ -14,6 +14,7 @@ true true + 1