From 79d940053a5ed8e6529c510d93d2361f453888bf Mon Sep 17 00:00:00 2001 From: Jan Kotas Date: Thu, 9 Jul 2020 07:33:57 -0700 Subject: [PATCH 001/185] Skeleton of wasm test system. --- src/common/wasm-test-driver/Program.cs | 27 +++++++ .../wasm-test-driver/test_assemblies.txt | 1 + .../wasm-test-driver/wasm-test-driver.csproj | 13 ++++ src/common/wasm-test-runner/Program.cs | 21 ++++++ .../wasm-test-runner/WasmTestRunner.csproj | 45 ++++++++++++ src/coreclr/src/vm/threads.h | 2 +- src/coreclr/src/vm/threadsuspend.cpp | 72 +++---------------- src/coreclr/tests/issues.targets | 3 + src/coreclr/tests/src/runtest.proj | 4 ++ 9 files changed, 124 insertions(+), 64 deletions(-) create mode 100644 src/common/wasm-test-driver/Program.cs create mode 100644 src/common/wasm-test-driver/test_assemblies.txt create mode 100644 src/common/wasm-test-driver/wasm-test-driver.csproj create mode 100644 src/common/wasm-test-runner/Program.cs create mode 100644 src/common/wasm-test-runner/WasmTestRunner.csproj diff --git a/src/common/wasm-test-driver/Program.cs b/src/common/wasm-test-driver/Program.cs new file mode 100644 index 0000000000000..15022ac0ee2ca --- /dev/null +++ b/src/common/wasm-test-driver/Program.cs @@ -0,0 +1,27 @@ +using System; +using System.Diagnostics; + +namespace wasm_test_driver +{ + class Program + { + static void Main(string[] args) + { + string[] benchmarkAssemblyNames = new string [] { "runningmono" }; + + string runtimeJs = ""; + string wasmTestRunnerAssembly = ""; + + + ProcessStartInfo processStartInfo = new ProcessStartInfo("sh"); + processStartInfo.WorkingDirectory = "/Users/naricc/workspace/runtime-webassembly-ci/src/common/wasm-test-runner/bin/Release/publish/"; + processStartInfo.UseShellExecute = true; + + foreach (string assemblyName in benchmarkAssemblyNames) + { + processStartInfo.Arguments = $"run-v8.sh {assemblyName}"; + Process.Start(processStartInfo); + } + } + } +} diff --git a/src/common/wasm-test-driver/test_assemblies.txt b/src/common/wasm-test-driver/test_assemblies.txt new file mode 100644 index 0000000000000..5eac6d10d974b --- /dev/null +++ b/src/common/wasm-test-driver/test_assemblies.txt @@ -0,0 +1 @@ +../../../artifacts/tests/coreclr/Browser.wasm.Release//baseservices/mono/runningmono/runningmono.dll diff --git a/src/common/wasm-test-driver/wasm-test-driver.csproj b/src/common/wasm-test-driver/wasm-test-driver.csproj new file mode 100644 index 0000000000000..8ff72a76500d3 --- /dev/null +++ b/src/common/wasm-test-driver/wasm-test-driver.csproj @@ -0,0 +1,13 @@ + + + + Exe + net5.0 + wasm_test_driver + + + + + + + diff --git a/src/common/wasm-test-runner/Program.cs b/src/common/wasm-test-runner/Program.cs new file mode 100644 index 0000000000000..fee37e998e695 --- /dev/null +++ b/src/common/wasm-test-runner/Program.cs @@ -0,0 +1,21 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Reflection; +using System.IO; + +public static class Program +{ + public static int Main(string[] args) + { + string assemblyName = args[0]; + + var assembly = Assembly.Load(assemblyName); + var mainMethod = assembly.EntryPoint; + mainMethod.Invoke (null, new object [] { args } ); + + return 0; + } +} diff --git a/src/common/wasm-test-runner/WasmTestRunner.csproj b/src/common/wasm-test-runner/WasmTestRunner.csproj new file mode 100644 index 0000000000000..d61771ebfc4b9 --- /dev/null +++ b/src/common/wasm-test-runner/WasmTestRunner.csproj @@ -0,0 +1,45 @@ + + + + + + + Exe + bin + false + $(NetCoreAppCurrent) + wasm + Browser + $(ArtifactsDir)bin\lib-runtime-packs\$(NetCoreAppCurrent)-$(TargetOS)-$(Configuration)-$(TargetArchitecture)\runtimes\browser-wasm + $(MSBuildThisFileDirectory)\obj\$(Configuration)\wasm + $(MSBuildThisFileDirectory)\bin\$(Configuration)\publish + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/coreclr/src/vm/threads.h b/src/coreclr/src/vm/threads.h index 393101da62b93..b835b4a6321c9 100644 --- a/src/coreclr/src/vm/threads.h +++ b/src/coreclr/src/vm/threads.h @@ -3445,7 +3445,7 @@ class Thread MethodDesc *m_HijackedFunction; // remember what we hijacked #ifndef TARGET_UNIX - BOOL HandledJITCase(BOOL ForTaskSwitchIn = FALSE); + BOOL HandledJITCase(); #ifdef TARGET_X86 PCODE m_LastRedirectIP; diff --git a/src/coreclr/src/vm/threadsuspend.cpp b/src/coreclr/src/vm/threadsuspend.cpp index 0c5226ba35e27..7d632cb27b1a0 100644 --- a/src/coreclr/src/vm/threadsuspend.cpp +++ b/src/coreclr/src/vm/threadsuspend.cpp @@ -5389,54 +5389,6 @@ static bool GetReturnAddressHijackInfo(EECodeInfo *pCodeInfo, ReturnKind *pRetur #ifndef TARGET_UNIX -// Get the ExecutionState for the specified SwitchIn thread. Note that this is -// a 'StackWalk' call back (PSTACKWALKFRAMESCALLBACK). -StackWalkAction SWCB_GetExecutionStateForSwitchIn(CrawlFrame *pCF, VOID *pData) -{ - CONTRACTL { - NOTHROW; - GC_NOTRIGGER; - } - CONTRACTL_END; - - ExecutionState *pES = (ExecutionState *) pData; - StackWalkAction action = SWA_CONTINUE; - - if (pES->m_FirstPass) { - if (pCF->IsFrameless()) { -#ifdef TARGET_X86 - pES->m_FirstPass = FALSE; -#else - _ASSERTE(!"Platform NYI"); -#endif - - pES->m_IsJIT = TRUE; - pES->m_pFD = pCF->GetFunction(); - pES->m_MethodToken = pCF->GetMethodToken(); - // We do not care if the code is interruptible - pES->m_IsInterruptible = FALSE; - pES->m_RelOffset = pCF->GetRelOffset(); - pES->m_pJitManager = pCF->GetJitManager(); - } - } - else { -#ifdef TARGET_X86 - if (pCF->IsFrameless()) { - PREGDISPLAY pRDT = pCF->GetRegisterSet(); - if (pRDT) { - // pPC points to the return address sitting on the stack, as our - // current EIP for the penultimate stack frame. - pES->m_ppvRetAddrPtr = (void **) pRDT->PCTAddr; - action = SWA_ABORT; - } - } -#else - _ASSERTE(!"Platform NYI"); -#endif - } - return action; -} - // // The function below, ThreadCaughtInKernelModeExceptionHandling, exists to detect and work around a very subtle // race that we have when we suspend a thread while that thread is in the kernel handling an exception. @@ -5750,7 +5702,7 @@ BOOL Thread::GetSafelyRedirectableThreadContext(DWORD dwOptions, CONTEXT * pCtx, // suspended. If we aren't in interruptible code, then we aren't handled. So we // pick a spot to hijack the return address and our caller will wait to get us // somewhere safe. -BOOL Thread::HandledJITCase(BOOL ForTaskSwitchIn) +BOOL Thread::HandledJITCase() { CONTRACTL { NOTHROW; @@ -5796,26 +5748,20 @@ BOOL Thread::HandledJITCase(BOOL ForTaskSwitchIn) } #endif //_DEBUG - // Walk one or two frames of the stack... - if (ForTaskSwitchIn) { - action = StackWalkFramesEx(&rd,SWCB_GetExecutionStateForSwitchIn, &esb, QUICKUNWIND | DISABLE_MISSING_FRAME_DETECTION | THREAD_IS_SUSPENDED | ALLOW_ASYNC_STACK_WALK, NULL); - } - else { #ifdef TIME_SUSPEND - DWORD startCrawl = g_SuspendStatistics.GetTime(); + DWORD startCrawl = g_SuspendStatistics.GetTime(); #endif - action = StackWalkFramesEx(&rd,SWCB_GetExecutionState, &esb, - QUICKUNWIND | DISABLE_MISSING_FRAME_DETECTION | - THREAD_IS_SUSPENDED | ALLOW_ASYNC_STACK_WALK, NULL); + action = StackWalkFramesEx(&rd,SWCB_GetExecutionState, &esb, + QUICKUNWIND | DISABLE_MISSING_FRAME_DETECTION | + THREAD_IS_SUSPENDED | ALLOW_ASYNC_STACK_WALK, NULL); #ifdef TIME_SUSPEND - g_SuspendStatistics.crawl.Accumulate( - SuspendStatistics::GetElapsed(startCrawl, - g_SuspendStatistics.GetTime())); + g_SuspendStatistics.crawl.Accumulate( + SuspendStatistics::GetElapsed(startCrawl, + g_SuspendStatistics.GetTime())); - g_SuspendStatistics.cntHijackCrawl++; + g_SuspendStatistics.cntHijackCrawl++; #endif - } // // action should either be SWA_ABORT, in which case we properly walked diff --git a/src/coreclr/tests/issues.targets b/src/coreclr/tests/issues.targets index 4f3b24827b6b4..6184e8ebd7b4a 100644 --- a/src/coreclr/tests/issues.targets +++ b/src/coreclr/tests/issues.targets @@ -1023,6 +1023,9 @@ needs triage + + needs triage + needs triage diff --git a/src/coreclr/tests/src/runtest.proj b/src/coreclr/tests/src/runtest.proj index adc7433ebd987..ff18f3b7bfd30 100644 --- a/src/coreclr/tests/src/runtest.proj +++ b/src/coreclr/tests/src/runtest.proj @@ -390,6 +390,10 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\",""). Condition=" '$(RunTests)'=='true' "/> + + + + From baf9942143db68292cf8734d5e16fb2f2a9bf73b Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 14 Jul 2020 23:01:39 -0400 Subject: [PATCH 002/185] Changes to wasm app builder. --- src/common/wasm-test-driver/Program.cs | 6 ++--- .../wasm-test-driver/wasm-test-driver.csproj | 4 --- .../wasm-test-runner/WasmTestRunner.csproj | 25 +++++++++++++------ src/coreclr/build-test.sh | 2 ++ src/coreclr/tests/build.proj | 8 ++++++ src/coreclr/tests/src/runtest.proj | 4 --- .../WasmAppBuilder/WasmAppBuilder.cs | 9 +++++-- 7 files changed, 38 insertions(+), 20 deletions(-) diff --git a/src/common/wasm-test-driver/Program.cs b/src/common/wasm-test-driver/Program.cs index 15022ac0ee2ca..3850a36e656a1 100644 --- a/src/common/wasm-test-driver/Program.cs +++ b/src/common/wasm-test-driver/Program.cs @@ -13,14 +13,14 @@ static void Main(string[] args) string wasmTestRunnerAssembly = ""; - ProcessStartInfo processStartInfo = new ProcessStartInfo("sh"); + ProcessStartInfo processStartInfo = new ProcessStartInfo("sh"); processStartInfo.WorkingDirectory = "/Users/naricc/workspace/runtime-webassembly-ci/src/common/wasm-test-runner/bin/Release/publish/"; processStartInfo.UseShellExecute = true; foreach (string assemblyName in benchmarkAssemblyNames) { - processStartInfo.Arguments = $"run-v8.sh {assemblyName}"; - Process.Start(processStartInfo); + processStartInfo.Arguments = $"run-v8.sh {assemblyName}"; + Process.Start(processStartInfo); } } } diff --git a/src/common/wasm-test-driver/wasm-test-driver.csproj b/src/common/wasm-test-driver/wasm-test-driver.csproj index 8ff72a76500d3..f671086a67fdb 100644 --- a/src/common/wasm-test-driver/wasm-test-driver.csproj +++ b/src/common/wasm-test-driver/wasm-test-driver.csproj @@ -6,8 +6,4 @@ wasm_test_driver - - - - diff --git a/src/common/wasm-test-runner/WasmTestRunner.csproj b/src/common/wasm-test-runner/WasmTestRunner.csproj index d61771ebfc4b9..f042b7237468d 100644 --- a/src/common/wasm-test-runner/WasmTestRunner.csproj +++ b/src/common/wasm-test-runner/WasmTestRunner.csproj @@ -1,6 +1,6 @@ - + @@ -10,7 +10,7 @@ $(NetCoreAppCurrent) wasm Browser - $(ArtifactsDir)bin\lib-runtime-packs\$(NetCoreAppCurrent)-$(TargetOS)-$(Configuration)-$(TargetArchitecture)\runtimes\browser-wasm + $(ArtifactsBinDir)microsoft.netcore.app.runtime.browser-wasm\$(Configuration)\runtimes\browser-wasm\ $(MSBuildThisFileDirectory)\obj\$(Configuration)\wasm $(MSBuildThisFileDirectory)\bin\$(Configuration)\publish @@ -20,22 +20,33 @@ Properties="Configuration=$(Configuration)" Targets="Restore;Build;Publish" /> + + + + + + + - + - - + + + + + + ExtraAssemblies="@(TestAssemblyItems)" + /> diff --git a/src/coreclr/build-test.sh b/src/coreclr/build-test.sh index 2de59c68c06ca..f2b094a5beae8 100755 --- a/src/coreclr/build-test.sh +++ b/src/coreclr/build-test.sh @@ -33,6 +33,8 @@ build_test_wrappers() __Logging="$__MsbuildLog $__MsbuildWrn $__MsbuildErr /consoleloggerparameters:$buildVerbosity" nextCommand="\"${__DotNetCli}\" msbuild \"${__ProjectDir}/tests/src/runtest.proj\" /nodereuse:false /p:BuildWrappers=true /p:TestBuildMode=$__TestBuildMode /p:TargetsWindows=false $__Logging /p:TargetOS=$__TargetOS /p:Configuration=$__BuildType /p:TargetArchitecture=$__BuildArch /p:RuntimeFlavor=$__RuntimeFlavor \"/bl:${__RepoRootDir}/artifacts/log/${__BuildType}/build_test_wrappers_${__RuntimeFlavor}.binlog\" ${__UnprocessedBuildArgs[@]}" + + echo "!!! ${nextComand}" eval $nextCommand local exitCode="$?" diff --git a/src/coreclr/tests/build.proj b/src/coreclr/tests/build.proj index 424cd2567539c..626208b60b3aa 100644 --- a/src/coreclr/tests/build.proj +++ b/src/coreclr/tests/build.proj @@ -52,6 +52,14 @@ + + + $(RepoRoot)/artifacts/tests/coreclr/$(OSPlatformConfig)/ + + + + + diff --git a/src/coreclr/tests/src/runtest.proj b/src/coreclr/tests/src/runtest.proj index ff18f3b7bfd30..adc7433ebd987 100644 --- a/src/coreclr/tests/src/runtest.proj +++ b/src/coreclr/tests/src/runtest.proj @@ -390,10 +390,6 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\",""). Condition=" '$(RunTests)'=='true' "/> - - - - diff --git a/tools-local/tasks/mobile.tasks/WasmAppBuilder/WasmAppBuilder.cs b/tools-local/tasks/mobile.tasks/WasmAppBuilder/WasmAppBuilder.cs index 0b05c5502c0a5..ce587f76e45aa 100644 --- a/tools-local/tasks/mobile.tasks/WasmAppBuilder/WasmAppBuilder.cs +++ b/tools-local/tasks/mobile.tasks/WasmAppBuilder/WasmAppBuilder.cs @@ -60,8 +60,13 @@ public override bool Execute () { foreach (var item in ExtraAssemblies) { - var refAssembly = mlc.LoadFromAssemblyPath(item.ItemSpec); - Add(mlc, refAssembly); + try { + var refAssembly = mlc.LoadFromAssemblyPath(item.ItemSpec); + Add(mlc, refAssembly); + } + catch (System.IO.FileLoadException) + { + } } } From 308a4085efc190b846fe3b09f82e5c27f22d2c7f Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 20 Jul 2020 15:52:42 -0400 Subject: [PATCH 003/185] Integrating into build system more. --- src/common/wasm-test-driver/Program.cs | 35 +++++++++++++++---- src/common/wasm-test-runner/Program.cs | 30 +++++++++++++--- .../wasm-test-runner/WasmTestRunner.csproj | 1 + 3 files changed, 54 insertions(+), 12 deletions(-) diff --git a/src/common/wasm-test-driver/Program.cs b/src/common/wasm-test-driver/Program.cs index 3850a36e656a1..9000ad8d7076c 100644 --- a/src/common/wasm-test-driver/Program.cs +++ b/src/common/wasm-test-driver/Program.cs @@ -1,4 +1,11 @@ using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Reflection; + using System.Diagnostics; namespace wasm_test_driver @@ -7,20 +14,34 @@ class Program { static void Main(string[] args) { - string[] benchmarkAssemblyNames = new string [] { "runningmono" }; + // string testAssemblyFile = "test_assemblies.txt"; + string testAssemblFile; + + if (args.Length > 0) + { + testAssemblyFile = args[1]; + } + else + { + testAssemblyFile = "/Users/naricc/workspace/runtime-webassembly-ci//artifacts/tests/coreclr/browser.wasm.Debug/test_assemblies.txt"; + } - string runtimeJs = ""; - string wasmTestRunnerAssembly = ""; + List benchmarkAssemblyNames = File.ReadAllLines(testAssemblyFile).Select( file => AssemblyName.GetAssemblyName(file)).ToList(); + ProcessStartInfo processStartInfo = new ProcessStartInfo("sh"); - ProcessStartInfo processStartInfo = new ProcessStartInfo("sh"); processStartInfo.WorkingDirectory = "/Users/naricc/workspace/runtime-webassembly-ci/src/common/wasm-test-runner/bin/Release/publish/"; processStartInfo.UseShellExecute = true; - foreach (string assemblyName in benchmarkAssemblyNames) + foreach (AssemblyName assemblyName in benchmarkAssemblyNames) { - processStartInfo.Arguments = $"run-v8.sh {assemblyName}"; - Process.Start(processStartInfo); + processStartInfo.Arguments = $"run-v8.sh {assemblyName.Name}"; + + Console.WriteLine($"---- Starting test {assemblyName.Name} ----"); + Process testProcess = Process.Start(processStartInfo); + testProcess.WaitForExit(); + + Console.WriteLine($"{assemblyName} exit code: {testProcess.ExitCode}"); } } } diff --git a/src/common/wasm-test-runner/Program.cs b/src/common/wasm-test-runner/Program.cs index fee37e998e695..37d32255ad995 100644 --- a/src/common/wasm-test-runner/Program.cs +++ b/src/common/wasm-test-runner/Program.cs @@ -10,12 +10,32 @@ public static class Program { public static int Main(string[] args) { - string assemblyName = args[0]; + try + { + string assemblyName = args[0]; - var assembly = Assembly.Load(assemblyName); - var mainMethod = assembly.EntryPoint; - mainMethod.Invoke (null, new object [] { args } ); + Console.WriteLine("Load"); + var assembly = Assembly.Load(assemblyName); - return 0; + Console.WriteLine("EntryPoint"); + var mainMethod = assembly.EntryPoint; + + Console.WriteLine("Invoke"); + + if (mainMethod != null) + { + return (int)mainMethod.Invoke (null, new object [] { args } ); + } + else + { + return 72345; + } + + } + catch(Exception e) + { + Console.WriteLine(e); + throw; + } } } diff --git a/src/common/wasm-test-runner/WasmTestRunner.csproj b/src/common/wasm-test-runner/WasmTestRunner.csproj index f042b7237468d..368ff26e987e0 100644 --- a/src/common/wasm-test-runner/WasmTestRunner.csproj +++ b/src/common/wasm-test-runner/WasmTestRunner.csproj @@ -35,6 +35,7 @@ + From cbba9101565eaf3049855bf13193242ecfc34557 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 21 Jul 2020 20:24:59 -0400 Subject: [PATCH 004/185] Integrated into build system. --- src/common/wasm-test-driver/Program.cs | 22 ++++++++++--------- ...st-driver.csproj => WasmTestDriver.csproj} | 0 .../wasm-test-runner/WasmTestRunner.csproj | 3 ++- src/coreclr/tests/build.proj | 9 ++++++-- 4 files changed, 21 insertions(+), 13 deletions(-) rename src/common/wasm-test-driver/{wasm-test-driver.csproj => WasmTestDriver.csproj} (100%) diff --git a/src/common/wasm-test-driver/Program.cs b/src/common/wasm-test-driver/Program.cs index 9000ad8d7076c..5c13ddec0a455 100644 --- a/src/common/wasm-test-driver/Program.cs +++ b/src/common/wasm-test-driver/Program.cs @@ -14,23 +14,25 @@ class Program { static void Main(string[] args) { - // string testAssemblyFile = "test_assemblies.txt"; - string testAssemblFile; - - if (args.Length > 0) - { - testAssemblyFile = args[1]; - } - else + string testAssemblyFile; + + foreach (string arg in args) { - testAssemblyFile = "/Users/naricc/workspace/runtime-webassembly-ci//artifacts/tests/coreclr/browser.wasm.Debug/test_assemblies.txt"; + Console.WriteLine($"!! Arg: {arg}"); } + + testAssemblyFile = args[0]; + string testRunnerPath = args[1]; + + // testAssemblyFile = "/Users/naricc/workspace/runtime-webassembly-ci//artifacts/tests/coreclr/browser.wasm.Debug/test_assemblies.txt"; + // "/Users/naricc/workspace/runtime-webassembly-ci/src/common/wasm-test-runner/bin/Release/publish/"; + List benchmarkAssemblyNames = File.ReadAllLines(testAssemblyFile).Select( file => AssemblyName.GetAssemblyName(file)).ToList(); ProcessStartInfo processStartInfo = new ProcessStartInfo("sh"); - processStartInfo.WorkingDirectory = "/Users/naricc/workspace/runtime-webassembly-ci/src/common/wasm-test-runner/bin/Release/publish/"; + processStartInfo.WorkingDirectory = testRunnerPath; processStartInfo.UseShellExecute = true; foreach (AssemblyName assemblyName in benchmarkAssemblyNames) diff --git a/src/common/wasm-test-driver/wasm-test-driver.csproj b/src/common/wasm-test-driver/WasmTestDriver.csproj similarity index 100% rename from src/common/wasm-test-driver/wasm-test-driver.csproj rename to src/common/wasm-test-driver/WasmTestDriver.csproj diff --git a/src/common/wasm-test-runner/WasmTestRunner.csproj b/src/common/wasm-test-runner/WasmTestRunner.csproj index 368ff26e987e0..33746d875835a 100644 --- a/src/common/wasm-test-runner/WasmTestRunner.csproj +++ b/src/common/wasm-test-runner/WasmTestRunner.csproj @@ -12,7 +12,8 @@ Browser $(ArtifactsBinDir)microsoft.netcore.app.runtime.browser-wasm\$(Configuration)\runtimes\browser-wasm\ $(MSBuildThisFileDirectory)\obj\$(Configuration)\wasm - $(MSBuildThisFileDirectory)\bin\$(Configuration)\publish + + $(ArtifactsBinDir)/WasmAppBuilder/ diff --git a/src/coreclr/tests/build.proj b/src/coreclr/tests/build.proj index 626208b60b3aa..ad2cfa84c0610 100644 --- a/src/coreclr/tests/build.proj +++ b/src/coreclr/tests/build.proj @@ -52,13 +52,18 @@ - + $(RepoRoot)/artifacts/tests/coreclr/$(OSPlatformConfig)/ - + + + + + + From 1dc2a742f8292793094c4c0abcb1485f30264af4 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 22 Jul 2020 11:51:00 -0400 Subject: [PATCH 005/185] Moved wasm utilities to test/eng. --- src/{common => tests/eng}/wasm-test-driver/Program.cs | 0 src/{common => tests/eng}/wasm-test-driver/WasmTestDriver.csproj | 0 src/{common => tests/eng}/wasm-test-driver/test_assemblies.txt | 0 src/{common => tests/eng}/wasm-test-runner/Program.cs | 0 src/{common => tests/eng}/wasm-test-runner/WasmTestRunner.csproj | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename src/{common => tests/eng}/wasm-test-driver/Program.cs (100%) rename src/{common => tests/eng}/wasm-test-driver/WasmTestDriver.csproj (100%) rename src/{common => tests/eng}/wasm-test-driver/test_assemblies.txt (100%) rename src/{common => tests/eng}/wasm-test-runner/Program.cs (100%) rename src/{common => tests/eng}/wasm-test-runner/WasmTestRunner.csproj (100%) diff --git a/src/common/wasm-test-driver/Program.cs b/src/tests/eng/wasm-test-driver/Program.cs similarity index 100% rename from src/common/wasm-test-driver/Program.cs rename to src/tests/eng/wasm-test-driver/Program.cs diff --git a/src/common/wasm-test-driver/WasmTestDriver.csproj b/src/tests/eng/wasm-test-driver/WasmTestDriver.csproj similarity index 100% rename from src/common/wasm-test-driver/WasmTestDriver.csproj rename to src/tests/eng/wasm-test-driver/WasmTestDriver.csproj diff --git a/src/common/wasm-test-driver/test_assemblies.txt b/src/tests/eng/wasm-test-driver/test_assemblies.txt similarity index 100% rename from src/common/wasm-test-driver/test_assemblies.txt rename to src/tests/eng/wasm-test-driver/test_assemblies.txt diff --git a/src/common/wasm-test-runner/Program.cs b/src/tests/eng/wasm-test-runner/Program.cs similarity index 100% rename from src/common/wasm-test-runner/Program.cs rename to src/tests/eng/wasm-test-runner/Program.cs diff --git a/src/common/wasm-test-runner/WasmTestRunner.csproj b/src/tests/eng/wasm-test-runner/WasmTestRunner.csproj similarity index 100% rename from src/common/wasm-test-runner/WasmTestRunner.csproj rename to src/tests/eng/wasm-test-runner/WasmTestRunner.csproj From da9b5caf298567f21eb25d1f8a54f0c462ca77ad Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 22 Jul 2020 17:22:28 -0400 Subject: [PATCH 006/185] Moved wasm test runner, driver into /src/mono/wasm --- src/{tests/eng => mono/wasm}/wasm-test-driver/Program.cs | 0 .../eng => mono/wasm}/wasm-test-driver/WasmTestDriver.csproj | 0 src/{tests/eng => mono/wasm}/wasm-test-driver/test_assemblies.txt | 0 src/{tests/eng => mono/wasm}/wasm-test-runner/Program.cs | 0 .../eng => mono/wasm}/wasm-test-runner/WasmTestRunner.csproj | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename src/{tests/eng => mono/wasm}/wasm-test-driver/Program.cs (100%) rename src/{tests/eng => mono/wasm}/wasm-test-driver/WasmTestDriver.csproj (100%) rename src/{tests/eng => mono/wasm}/wasm-test-driver/test_assemblies.txt (100%) rename src/{tests/eng => mono/wasm}/wasm-test-runner/Program.cs (100%) rename src/{tests/eng => mono/wasm}/wasm-test-runner/WasmTestRunner.csproj (100%) diff --git a/src/tests/eng/wasm-test-driver/Program.cs b/src/mono/wasm/wasm-test-driver/Program.cs similarity index 100% rename from src/tests/eng/wasm-test-driver/Program.cs rename to src/mono/wasm/wasm-test-driver/Program.cs diff --git a/src/tests/eng/wasm-test-driver/WasmTestDriver.csproj b/src/mono/wasm/wasm-test-driver/WasmTestDriver.csproj similarity index 100% rename from src/tests/eng/wasm-test-driver/WasmTestDriver.csproj rename to src/mono/wasm/wasm-test-driver/WasmTestDriver.csproj diff --git a/src/tests/eng/wasm-test-driver/test_assemblies.txt b/src/mono/wasm/wasm-test-driver/test_assemblies.txt similarity index 100% rename from src/tests/eng/wasm-test-driver/test_assemblies.txt rename to src/mono/wasm/wasm-test-driver/test_assemblies.txt diff --git a/src/tests/eng/wasm-test-runner/Program.cs b/src/mono/wasm/wasm-test-runner/Program.cs similarity index 100% rename from src/tests/eng/wasm-test-runner/Program.cs rename to src/mono/wasm/wasm-test-runner/Program.cs diff --git a/src/tests/eng/wasm-test-runner/WasmTestRunner.csproj b/src/mono/wasm/wasm-test-runner/WasmTestRunner.csproj similarity index 100% rename from src/tests/eng/wasm-test-runner/WasmTestRunner.csproj rename to src/mono/wasm/wasm-test-runner/WasmTestRunner.csproj From 5410254e14c67b6675778cb108b9068ca1e3bd13 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 4 Aug 2020 12:35:03 -0400 Subject: [PATCH 007/185] Changes to build outputs. --- src/mono/wasm/wasm-test-driver/Program.cs | 2 +- src/mono/wasm/wasm-test-driver/test_assemblies.txt | 2 +- src/mono/wasm/wasm-test-runner/WasmTestRunner.csproj | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/mono/wasm/wasm-test-driver/Program.cs b/src/mono/wasm/wasm-test-driver/Program.cs index 5c13ddec0a455..4c20798fd872e 100644 --- a/src/mono/wasm/wasm-test-driver/Program.cs +++ b/src/mono/wasm/wasm-test-driver/Program.cs @@ -12,7 +12,7 @@ namespace wasm_test_driver { class Program { - static void Main(string[] args) + public static void Main(string[] args) { string testAssemblyFile; diff --git a/src/mono/wasm/wasm-test-driver/test_assemblies.txt b/src/mono/wasm/wasm-test-driver/test_assemblies.txt index 5eac6d10d974b..48fb2b76ba29a 100644 --- a/src/mono/wasm/wasm-test-driver/test_assemblies.txt +++ b/src/mono/wasm/wasm-test-driver/test_assemblies.txt @@ -1 +1 @@ -../../../artifacts/tests/coreclr/Browser.wasm.Release//baseservices/mono/runningmono/runningmono.dll +/Users/naricc/workspace/runtime-webassembly-ci//artifacts/tests/coreclr/browser.wasm.Debug//tracing/tracevalidation/rundown/rundown/common.dll diff --git a/src/mono/wasm/wasm-test-runner/WasmTestRunner.csproj b/src/mono/wasm/wasm-test-runner/WasmTestRunner.csproj index 33746d875835a..aaf67d1c87e5d 100644 --- a/src/mono/wasm/wasm-test-runner/WasmTestRunner.csproj +++ b/src/mono/wasm/wasm-test-runner/WasmTestRunner.csproj @@ -12,7 +12,6 @@ Browser $(ArtifactsBinDir)microsoft.netcore.app.runtime.browser-wasm\$(Configuration)\runtimes\browser-wasm\ $(MSBuildThisFileDirectory)\obj\$(Configuration)\wasm - $(ArtifactsBinDir)/WasmAppBuilder/ From b3c92a1a8482e1d3905cd31279b739a47b834ca6 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 5 Aug 2020 12:50:34 -0400 Subject: [PATCH 008/185] Changes to wasm test runner project. --- src/coreclr/tests/build.proj | 2 +- src/coreclr/tests/issues.targets | 7 +++++++ .../wasm/wasm-test-runner/WasmTestRunner.csproj | 14 ++++++++++---- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/coreclr/tests/build.proj b/src/coreclr/tests/build.proj index ad2cfa84c0610..99cfa4920a1b7 100644 --- a/src/coreclr/tests/build.proj +++ b/src/coreclr/tests/build.proj @@ -62,7 +62,7 @@ - + diff --git a/src/coreclr/tests/issues.targets b/src/coreclr/tests/issues.targets index 7e305b5b115e2..a65616d17587e 100644 --- a/src/coreclr/tests/issues.targets +++ b/src/coreclr/tests/issues.targets @@ -2763,4 +2763,11 @@ + + + + + Depends on coreclr System.Private.CoreLib; can't be built for wasm. + + diff --git a/src/mono/wasm/wasm-test-runner/WasmTestRunner.csproj b/src/mono/wasm/wasm-test-runner/WasmTestRunner.csproj index aaf67d1c87e5d..4907db020627e 100644 --- a/src/mono/wasm/wasm-test-runner/WasmTestRunner.csproj +++ b/src/mono/wasm/wasm-test-runner/WasmTestRunner.csproj @@ -12,7 +12,9 @@ Browser $(ArtifactsBinDir)microsoft.netcore.app.runtime.browser-wasm\$(Configuration)\runtimes\browser-wasm\ $(MSBuildThisFileDirectory)\obj\$(Configuration)\wasm - $(ArtifactsBinDir)/WasmAppBuilder/ + $(ArtifactsBinDir)/WasmTestRunner/ + browser-wasm + AnyCPU @@ -30,7 +32,7 @@ - + @@ -38,16 +40,20 @@ - + + + + + From 4a3bdbd1ab2c2b1d3851d5f26ba99f485f59e683 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 6 Aug 2020 12:18:53 -0400 Subject: [PATCH 009/185] Changed arguments to main, added wasm arch to test runs. --- eng/pipelines/runtime.yml | 1 + src/mono/wasm/wasm-test-runner/Program.cs | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index e52318b380810..072681a7bb28e 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -745,6 +745,7 @@ jobs: platforms: - OSX_x64 - Linux_arm64 + - Browser_wasm helixQueueGroup: pr helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml jobParameters: diff --git a/src/mono/wasm/wasm-test-runner/Program.cs b/src/mono/wasm/wasm-test-runner/Program.cs index 37d32255ad995..7891da3f27fc8 100644 --- a/src/mono/wasm/wasm-test-runner/Program.cs +++ b/src/mono/wasm/wasm-test-runner/Program.cs @@ -18,13 +18,23 @@ public static int Main(string[] args) var assembly = Assembly.Load(assemblyName); Console.WriteLine("EntryPoint"); - var mainMethod = assembly.EntryPoint; + MethodInfo mainMethod = assembly.EntryPoint; + Console.WriteLine("Invoke"); if (mainMethod != null) { - return (int)mainMethod.Invoke (null, new object [] { args } ); + ParameterInfo[] mainMethodParameters = mainMethod.GetParameters(); + + if ( mainMethodParameters.Length > 0) + { + return (int)mainMethod.Invoke (null, new object [] { args } ); + } + else + { + return (int)mainMethod.Invoke (null, null); + } } else { From 3d6e5c40893f243d7d9dc33d68ab6029e51b7a1a Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 6 Aug 2020 15:52:53 -0400 Subject: [PATCH 010/185] Skip assemblies with no main. --- src/mono/wasm/wasm-test-driver/Program.cs | 31 +++++++++++++++++------ 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/src/mono/wasm/wasm-test-driver/Program.cs b/src/mono/wasm/wasm-test-driver/Program.cs index 4c20798fd872e..d929b860032e5 100644 --- a/src/mono/wasm/wasm-test-driver/Program.cs +++ b/src/mono/wasm/wasm-test-driver/Program.cs @@ -5,7 +5,7 @@ using System.Linq; using System.Text; using System.Reflection; - +using System.Reflection.PortableExecutable; using System.Diagnostics; namespace wasm_test_driver @@ -28,23 +28,38 @@ public static void Main(string[] args) // "/Users/naricc/workspace/runtime-webassembly-ci/src/common/wasm-test-runner/bin/Release/publish/"; - List benchmarkAssemblyNames = File.ReadAllLines(testAssemblyFile).Select( file => AssemblyName.GetAssemblyName(file)).ToList(); + List> benchmarkAssemblyNames = File.ReadAllLines(testAssemblyFile).Select( file => Tuple.Create(AssemblyName.GetAssemblyName(file), file)).ToList(); ProcessStartInfo processStartInfo = new ProcessStartInfo("sh"); processStartInfo.WorkingDirectory = testRunnerPath; processStartInfo.UseShellExecute = true; - foreach (AssemblyName assemblyName in benchmarkAssemblyNames) + foreach (Tuple assemblyNameFile in benchmarkAssemblyNames) { - processStartInfo.Arguments = $"run-v8.sh {assemblyName.Name}"; + AssemblyName assemblyName = assemblyNameFile.Item1; + string fileName = assemblyNameFile.Item2; + + if (hasMain(fileName) ) + { + + processStartInfo.Arguments = $"run-v8.sh {assemblyName.Name}"; - Console.WriteLine($"---- Starting test {assemblyName.Name} ----"); - Process testProcess = Process.Start(processStartInfo); - testProcess.WaitForExit(); + Console.WriteLine($"---- Starting test {assemblyName.Name} ----"); + Process testProcess = Process.Start(processStartInfo); + testProcess.WaitForExit(); + + Console.WriteLine($"WasmTestDriver: {fileName} {assemblyName} exit code: {testProcess.ExitCode}"); + } - Console.WriteLine($"{assemblyName} exit code: {testProcess.ExitCode}"); } } + + static bool hasMain(string assemblyFile) + { + var stream = new FileStream(assemblyFile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); + + return new PEReader(stream).PEHeaders.CorHeader.EntryPointTokenOrRelativeVirtualAddress > 0; + } } } From 610a5a5725592f9b61f445289809baabb559be69 Mon Sep 17 00:00:00 2001 From: Fan Yang Date: Fri, 7 Aug 2020 16:47:53 -0400 Subject: [PATCH 011/185] Fix the way to invoke build for WasmTestDriver and WasmTestRunner projects --- src/coreclr/tests/build.proj | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/coreclr/tests/build.proj b/src/coreclr/tests/build.proj index 99cfa4920a1b7..89ec65c7401d6 100644 --- a/src/coreclr/tests/build.proj +++ b/src/coreclr/tests/build.proj @@ -62,7 +62,12 @@ - + + + + + + From 6978a17146db70b1d60887145e53c0c51dd27b80 Mon Sep 17 00:00:00 2001 From: Fan Yang Date: Fri, 7 Aug 2020 19:37:58 -0400 Subject: [PATCH 012/185] Make directory portable --- src/mono/wasm/wasm-test-runner/WasmTestRunner.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mono/wasm/wasm-test-runner/WasmTestRunner.csproj b/src/mono/wasm/wasm-test-runner/WasmTestRunner.csproj index 4907db020627e..6b3ec53856b54 100644 --- a/src/mono/wasm/wasm-test-runner/WasmTestRunner.csproj +++ b/src/mono/wasm/wasm-test-runner/WasmTestRunner.csproj @@ -1,6 +1,6 @@ - + From 242717ee7feef0aadeae15b5835e466826c5c871 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 7 Aug 2020 20:22:16 -0400 Subject: [PATCH 013/185] Added wasm issues to issues.targets. --- src/coreclr/tests/issues.targets | 3666 ++++++++++++++++++++++++++++++ 1 file changed, 3666 insertions(+) diff --git a/src/coreclr/tests/issues.targets b/src/coreclr/tests/issues.targets index a65616d17587e..ceabfc015e3a8 100644 --- a/src/coreclr/tests/issues.targets +++ b/src/coreclr/tests/issues.targets @@ -2769,5 +2769,3671 @@ Depends on coreclr System.Private.CoreLib; can't be built for wasm. + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + From 7dc15c711dafeef4aec70f96d393737d57e32c37 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Sat, 8 Aug 2020 00:14:53 -0400 Subject: [PATCH 014/185] Changed wasm test runner to take a single dll. --- src/coreclr/tests/src/CLRTest.Execute.Bash.targets | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/coreclr/tests/src/CLRTest.Execute.Bash.targets b/src/coreclr/tests/src/CLRTest.Execute.Bash.targets index 71a1949d6ad54..037ebb86eb727 100644 --- a/src/coreclr/tests/src/CLRTest.Execute.Bash.targets +++ b/src/coreclr/tests/src/CLRTest.Execute.Bash.targets @@ -257,6 +257,15 @@ fi <_CLRTestRunFile Condition="'$(CLRTestIsHosted)'=='true'">"$CORE_ROOT/corerun" + + + + Date: Sat, 8 Aug 2020 17:57:00 -0400 Subject: [PATCH 015/185] Exclude unsupported test --- src/tests/Interop/ICastable/Castable.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/src/tests/Interop/ICastable/Castable.csproj b/src/tests/Interop/ICastable/Castable.csproj index 85da16f892d97..a91e95b37cd12 100644 --- a/src/tests/Interop/ICastable/Castable.csproj +++ b/src/tests/Interop/ICastable/Castable.csproj @@ -2,6 +2,7 @@ Exe true + true From ff11d833fd0ee39c9243e857efbee05584c376f6 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Sun, 9 Aug 2020 15:07:28 -0400 Subject: [PATCH 016/185] Changed CLRTest.Execute.Bash.Targets to build wasm app on helix. --- .../tests/src/CLRTest.Execute.Bash.targets | 12 ++++++++-- .../wasm-test-runner/WasmTestRunner.csproj | 24 +++++++------------ 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/src/coreclr/tests/src/CLRTest.Execute.Bash.targets b/src/coreclr/tests/src/CLRTest.Execute.Bash.targets index 037ebb86eb727..bb510f432f272 100644 --- a/src/coreclr/tests/src/CLRTest.Execute.Bash.targets +++ b/src/coreclr/tests/src/CLRTest.Execute.Bash.targets @@ -260,13 +260,13 @@ fi - + + + + - - - - Exe bin @@ -12,7 +8,7 @@ Browser $(ArtifactsBinDir)microsoft.netcore.app.runtime.browser-wasm\$(Configuration)\runtimes\browser-wasm\ $(MSBuildThisFileDirectory)\obj\$(Configuration)\wasm - $(ArtifactsBinDir)/WasmTestRunner/ + $(TestBinDir)/WasmApp/ browser-wasm AnyCPU @@ -22,25 +18,22 @@ Properties="Configuration=$(Configuration)" Targets="Restore;Build;Publish" /> - - - - - - - - + + + + + - + + From 1ab40f4fe5a7c7e3c65ba8fad4ef4d1b64a3ad84 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 10 Aug 2020 17:19:32 -0400 Subject: [PATCH 017/185] Removed check for native tests inwrapper generation. --- src/coreclr/build-test.sh | 3 ++- src/coreclr/tests/build.proj | 18 ------------------ src/coreclr/tests/dir.traversal.targets | 2 +- src/coreclr/tests/issues.targets | 6 +++--- src/coreclr/tests/src/Directory.Build.targets | 10 +++++++--- src/coreclr/tests/src/dirs.proj | 5 +++-- src/coreclr/tests/src/runtest.proj | 5 +++-- 7 files changed, 19 insertions(+), 30 deletions(-) diff --git a/src/coreclr/build-test.sh b/src/coreclr/build-test.sh index 5441a11b6fa2b..bac0da792bbcb 100755 --- a/src/coreclr/build-test.sh +++ b/src/coreclr/build-test.sh @@ -34,7 +34,7 @@ build_test_wrappers() nextCommand="\"${__DotNetCli}\" msbuild \"${__ProjectDir}/tests/src/runtest.proj\" /nodereuse:false /p:BuildWrappers=true /p:TestBuildMode=$__TestBuildMode /p:TargetsWindows=false $__Logging /p:TargetOS=$__TargetOS /p:Configuration=$__BuildType /p:TargetArchitecture=$__BuildArch /p:RuntimeFlavor=$__RuntimeFlavor \"/bl:${__RepoRootDir}/artifacts/log/${__BuildType}/build_test_wrappers_${__RuntimeFlavor}.binlog\" ${__UnprocessedBuildArgs[@]}" - echo "!!! ${nextComand}" + echo "!!! next command: ${nextComand}" eval $nextCommand local exitCode="$?" @@ -476,6 +476,7 @@ build_MSBuild_projects() buildArgs+=("${__UnprocessedBuildArgs[@]}") buildArgs+=("\"/p:CopyNativeProjectBinaries=${__CopyNativeProjectsAfterCombinedTestBuild}\""); buildArgs+=("/p:__SkipPackageRestore=true"); + buildArgs+=("/bl:testlog.binlog") # Disable warnAsError - coreclr issue 19922 nextCommand="\"$__RepoRootDir/eng/common/msbuild.sh\" $__ArcadeScriptArgs --warnAsError false ${buildArgs[@]}" diff --git a/src/coreclr/tests/build.proj b/src/coreclr/tests/build.proj index 89ec65c7401d6..424cd2567539c 100644 --- a/src/coreclr/tests/build.proj +++ b/src/coreclr/tests/build.proj @@ -52,24 +52,6 @@ - - - $(RepoRoot)/artifacts/tests/coreclr/$(OSPlatformConfig)/ - - - - - - - - - - - - - - - diff --git a/src/coreclr/tests/dir.traversal.targets b/src/coreclr/tests/dir.traversal.targets index 92e397771152c..40645af6961c2 100644 --- a/src/coreclr/tests/dir.traversal.targets +++ b/src/coreclr/tests/dir.traversal.targets @@ -14,7 +14,7 @@ Properties="Dummy=%(Identity);DefaultBuildAllTarget=$(DefaultBuildAllTarget);BuildAllProjects=true" ContinueOnError="ErrorAndContinue" /> - - - Depends on coreclr System.Private.CoreLib; can't be built for wasm. - + + Depends on coreclr System.Private.CoreLib; can't be built for wasm. + needs triage diff --git a/src/coreclr/tests/src/Directory.Build.targets b/src/coreclr/tests/src/Directory.Build.targets index 625e3b7624023..4e55ecbd25b7c 100644 --- a/src/coreclr/tests/src/Directory.Build.targets +++ b/src/coreclr/tests/src/Directory.Build.targets @@ -7,7 +7,7 @@ @@ -27,6 +27,7 @@ + <_CLRTestNeedsToRun>false false @@ -192,12 +193,15 @@ + + Condition="'$(GenerateRunScript)' != 'false' And ('$(_WillCLRTestProjectBuild)' == 'true')" + DependsOnTargets="GenerateExecutionScriptsInternal" > + + - - + + From fdc92f3e21835d730665333de8575297a7ada577 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 11 Aug 2020 16:53:49 -0400 Subject: [PATCH 018/185] Initial changes to use dotnet instead of corerun. --- src/coreclr/scripts/coreclr_arguments.py | 9 +++++++-- src/coreclr/tests/runtest.py | 2 ++ src/coreclr/tests/runtest.sh | 3 +++ src/coreclr/tests/tests.targets | 7 ++++++- src/mono/wasm/wasm-test-runner/WasmTestRunner.csproj | 10 ++++++---- 5 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/coreclr/scripts/coreclr_arguments.py b/src/coreclr/scripts/coreclr_arguments.py index 6806446128c9a..35945325959e7 100644 --- a/src/coreclr/scripts/coreclr_arguments.py +++ b/src/coreclr/scripts/coreclr_arguments.py @@ -71,9 +71,9 @@ def __init__(self, self.require_built_core_root = require_built_core_root self.require_built_test_dir = require_built_test_dir - self.valid_arches = ["x64", "x86", "arm", "arm64"] + self.valid_arches = ["x64", "x86", "arm", "arm64", "wasm"] self.valid_build_types = ["Debug", "Checked", "Release"] - self.valid_host_os = ["Windows_NT", "OSX", "Linux", "illumos", "Solaris"] + self.valid_host_os = ["Windows_NT", "OSX", "Linux", "illumos", "Solaris", "browser"] self.__initialize__(args) @@ -226,12 +226,17 @@ def check_and_return_test_location(test_location): return test_location def check_and_return_default_core_root(core_root): + print("!!! check_and_return_default_core_root: Test Location: " + self.test_location) + if core_root is not None: # core_root was specified on the command-line, so use that one. But verify it. return os.path.isdir(core_root) or not self.require_built_core_root # No core_root specified; use a default location if possible. + default_core_root = os.path.join(self.test_location, "Tests", "Core_Root") + + print("!!! Default core root: " + default_core_root ) if os.path.isdir(default_core_root) or not self.require_built_core_root: return default_core_root diff --git a/src/coreclr/tests/runtest.py b/src/coreclr/tests/runtest.py index 5914b332f8b8c..2de838ffa5092 100755 --- a/src/coreclr/tests/runtest.py +++ b/src/coreclr/tests/runtest.py @@ -641,6 +641,8 @@ def call_msbuild(args): "/p:Configuration=%s" % args.build_type, "/p:__LogsDir=%s" % args.logs_dir] + command += ["/bl:runtest.binlog"] + print(" ".join(command)) sys.stdout.flush() # flush output before creating sub-process diff --git a/src/coreclr/tests/runtest.sh b/src/coreclr/tests/runtest.sh index a157f601724a7..1083f11bbc55d 100755 --- a/src/coreclr/tests/runtest.sh +++ b/src/coreclr/tests/runtest.sh @@ -163,6 +163,9 @@ do arm64) buildArch="arm64" ;; + wasm) + buildArch="wasm" + ;; debug|Debug) buildConfiguration="Debug" ;; diff --git a/src/coreclr/tests/tests.targets b/src/coreclr/tests/tests.targets index 1d9ec9d8f2f1a..0da1c3edddbf0 100644 --- a/src/coreclr/tests/tests.targets +++ b/src/coreclr/tests/tests.targets @@ -37,8 +37,10 @@ + + $(CORE_ROOT)\xunit.console.dll @@ -52,8 +54,10 @@ $(XunitArgs) -nocolor - $(CORE_ROOT)\corerun + $(CORE_ROOT)\corerun $(CORE_ROOT)\corerun.exe + $(DotnetRoot)/dotnet + - + + + + From 7be5ba9aceeb9e495888d00d9e118b87f50adf0c Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 12 Aug 2020 23:00:41 -0400 Subject: [PATCH 022/185] Removed no longer needed wasm-test-driver. --- src/mono/wasm/wasm-test-driver/Program.cs | 65 ------------------- .../wasm-test-driver/WasmTestDriver.csproj | 9 --- .../wasm/wasm-test-driver/test_assemblies.txt | 1 - 3 files changed, 75 deletions(-) delete mode 100644 src/mono/wasm/wasm-test-driver/Program.cs delete mode 100644 src/mono/wasm/wasm-test-driver/WasmTestDriver.csproj delete mode 100644 src/mono/wasm/wasm-test-driver/test_assemblies.txt diff --git a/src/mono/wasm/wasm-test-driver/Program.cs b/src/mono/wasm/wasm-test-driver/Program.cs deleted file mode 100644 index d929b860032e5..0000000000000 --- a/src/mono/wasm/wasm-test-driver/Program.cs +++ /dev/null @@ -1,65 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Reflection; -using System.Reflection.PortableExecutable; -using System.Diagnostics; - -namespace wasm_test_driver -{ - class Program - { - public static void Main(string[] args) - { - string testAssemblyFile; - - foreach (string arg in args) - { - Console.WriteLine($"!! Arg: {arg}"); - } - - testAssemblyFile = args[0]; - string testRunnerPath = args[1]; - - // testAssemblyFile = "/Users/naricc/workspace/runtime-webassembly-ci//artifacts/tests/coreclr/browser.wasm.Debug/test_assemblies.txt"; - // "/Users/naricc/workspace/runtime-webassembly-ci/src/common/wasm-test-runner/bin/Release/publish/"; - - - List> benchmarkAssemblyNames = File.ReadAllLines(testAssemblyFile).Select( file => Tuple.Create(AssemblyName.GetAssemblyName(file), file)).ToList(); - - ProcessStartInfo processStartInfo = new ProcessStartInfo("sh"); - - processStartInfo.WorkingDirectory = testRunnerPath; - processStartInfo.UseShellExecute = true; - - foreach (Tuple assemblyNameFile in benchmarkAssemblyNames) - { - AssemblyName assemblyName = assemblyNameFile.Item1; - string fileName = assemblyNameFile.Item2; - - if (hasMain(fileName) ) - { - - processStartInfo.Arguments = $"run-v8.sh {assemblyName.Name}"; - - Console.WriteLine($"---- Starting test {assemblyName.Name} ----"); - Process testProcess = Process.Start(processStartInfo); - testProcess.WaitForExit(); - - Console.WriteLine($"WasmTestDriver: {fileName} {assemblyName} exit code: {testProcess.ExitCode}"); - } - - } - } - - static bool hasMain(string assemblyFile) - { - var stream = new FileStream(assemblyFile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); - - return new PEReader(stream).PEHeaders.CorHeader.EntryPointTokenOrRelativeVirtualAddress > 0; - } - } -} diff --git a/src/mono/wasm/wasm-test-driver/WasmTestDriver.csproj b/src/mono/wasm/wasm-test-driver/WasmTestDriver.csproj deleted file mode 100644 index f671086a67fdb..0000000000000 --- a/src/mono/wasm/wasm-test-driver/WasmTestDriver.csproj +++ /dev/null @@ -1,9 +0,0 @@ - - - - Exe - net5.0 - wasm_test_driver - - - diff --git a/src/mono/wasm/wasm-test-driver/test_assemblies.txt b/src/mono/wasm/wasm-test-driver/test_assemblies.txt deleted file mode 100644 index 48fb2b76ba29a..0000000000000 --- a/src/mono/wasm/wasm-test-driver/test_assemblies.txt +++ /dev/null @@ -1 +0,0 @@ -/Users/naricc/workspace/runtime-webassembly-ci//artifacts/tests/coreclr/browser.wasm.Debug//tracing/tracevalidation/rundown/rundown/common.dll From eea8cf920b4174e8c044f468baf11331c6df2b98 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 12 Aug 2020 23:42:15 -0400 Subject: [PATCH 023/185] Added Browser_wasm build of mono. --- eng/pipelines/runtime.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 338deddade37b..421a6a3a8b1ff 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -484,6 +484,7 @@ jobs: platforms: - OSX_x64 - Linux_arm64 + - Browser_wasm jobParameters: condition: >- or( From 816ffb4d20ec4f03260fb3c25100d05d01323e75 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 13 Aug 2020 12:22:37 -0400 Subject: [PATCH 024/185] Browser_wasm library configuration. --- eng/pipelines/runtime.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 421a6a3a8b1ff..542375a8fb11e 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -318,6 +318,8 @@ jobs: value: $[ dependencies.checkout.outputs['SetPathVars_libraries.containsChange'] ] - name: monoContainsChange value: $[ dependencies.checkout.outputs['SetPathVars_mono.containsChange'] ] + - name: runtimeTestsContainsChange + value $[eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), jobParameters: testGroup: innerloop nameSuffix: AllSubsets_Mono @@ -328,6 +330,7 @@ jobs: eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), eq(variables['isFullMatrix'], true)) # extra steps, run tests extraStepsTemplate: /eng/pipelines/libraries/helix.yml @@ -542,6 +545,7 @@ jobs: - OSX_x64 - Windows_NT_x64 - FreeBSD_x64 + - Browser_wasm jobParameters: testScope: innerloop testBuildPlatforms: From c672b0a381b88ab43ff25ef9cc9a9bda12697978 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 13 Aug 2020 12:34:42 -0400 Subject: [PATCH 025/185] Fix syntax error in runtime.yml --- eng/pipelines/runtime.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 542375a8fb11e..8b64a130ed7bd 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -319,7 +319,7 @@ jobs: - name: monoContainsChange value: $[ dependencies.checkout.outputs['SetPathVars_mono.containsChange'] ] - name: runtimeTestsContainsChange - value $[eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), + value $[eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true)] jobParameters: testGroup: innerloop nameSuffix: AllSubsets_Mono From bca8d6c6dbdd2d1af6b002ca4010391d28f5bd44 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 13 Aug 2020 12:38:14 -0400 Subject: [PATCH 026/185] Fix syntax error in runtime.yml --- eng/pipelines/runtime.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 8b64a130ed7bd..80f159cbcd1ce 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -318,8 +318,6 @@ jobs: value: $[ dependencies.checkout.outputs['SetPathVars_libraries.containsChange'] ] - name: monoContainsChange value: $[ dependencies.checkout.outputs['SetPathVars_mono.containsChange'] ] - - name: runtimeTestsContainsChange - value $[eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true)] jobParameters: testGroup: innerloop nameSuffix: AllSubsets_Mono @@ -330,7 +328,6 @@ jobs: eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), eq(variables['isFullMatrix'], true)) # extra steps, run tests extraStepsTemplate: /eng/pipelines/libraries/helix.yml From 7112948521ed5e8d70a7167c0715541edc79999a Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 13 Aug 2020 18:00:52 -0400 Subject: [PATCH 027/185] Change to runtest.sh to propagate browser. --- src/coreclr/tests/runtest.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/coreclr/tests/runtest.sh b/src/coreclr/tests/runtest.sh index 1083f11bbc55d..2acd2b44d13ec 100755 --- a/src/coreclr/tests/runtest.sh +++ b/src/coreclr/tests/runtest.sh @@ -312,6 +312,8 @@ export COMPlus_gcServer="$serverGC" # Runtest.py ################################################################################ + + runtestPyArguments=("-arch" "${buildArch}" "-build_type" "${buildConfiguration}") scriptPath="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" @@ -325,6 +327,12 @@ fi echo "Build Architecture : ${buildArch}" echo "Build Configuration : ${buildConfiguration}" + + +if [ $buildArch = "wasm" ]; then + runtestPyArguments+=("-os" "Browser") +fi + if [ ! -z "$testRootDir" ]; then runtestPyArguments+=("-test_location" "$testRootDir") @@ -402,6 +410,7 @@ if [[ ! "$runincontext" -eq 0 ]]; then runtestPyArguments+=("--run_in_context") fi + # Default to python3 if it is installed __Python=python if command -v python3 &>/dev/null; then From 3cf017a5ac4e1c3d8d3d83d6f3ff3bf3e8968f07 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 13 Aug 2020 20:34:42 -0400 Subject: [PATCH 028/185] Wasm test run. --- .../wasm-runtime-and-send-to-helix.yml | 137 ++++++++++++++++++ eng/pipelines/runtime.yml | 43 +++++- 2 files changed, 178 insertions(+), 2 deletions(-) create mode 100644 eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml diff --git a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml new file mode 100644 index 0000000000000..5cc18be562b6b --- /dev/null +++ b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml @@ -0,0 +1,137 @@ +parameters: + buildConfig: '' + archType: 'wasm' + osGroup: 'Browser' + osSubgroup: '' + container: '' + testGroup: '' + crossrootfsDir: '' + readyToRun: false + liveLibrariesBuildConfig: '' + crossgen2: false + compositeBuildMode: false + helixQueues: '' + condition: true + stagedBuild: false + displayNameArgs: '' + runInUnloadableContext: false + runtimeVariant: '' + variables: {} + pool: '' + runtimeFlavor: 'mono' + runtimeFlavorDisplayName: 'Mono' + dependsOn: [] + + #arcade-specific parameters + condition: '' + continueOnError: false + dependsOn: '' + displayName: '' + timeoutInMinutes: '' + enableMicrobuild: '' + gatherAssetManifests: false + +jobs: +- template: /eng/pipelines/${{ parameters.runtimeFlavor }}/templates/xplat-pipeline-job.yml + parameters: + name: ${{ parameters.name }} + displayName: ${{ parameters.displayName }} + container: ${{ parameters.container }} + condition: ${{ parameters.condition }} + dependsOn: + - checkout + - ${{ if ne(parameters.dependsOn, '') }}: + - ${{ parameters.dependsOn }} + + timeoutInMinutes: ${{ parameters.timeoutInMinutes }} + continueOnError: ${{ parameters.continueOnError }} + + ${{ if ne(parameters.dependsOn[0], '') }}: + dependsOn: ${{ parameters.dependsOn }} + + name: 'run_test_p0_mono_${{ parameters.displayNameArgs }}_Browser_wasm_${{ parameters.buildConfig }}' + displayName: 'Mono Pri0 Runtime Tests Run Browser wasm ${{ parameters.buildConfig }}' + + variables: + - name: timeoutPerTestInMinutes + value: 10 + - name: timeoutPerTestCollectionInMinutes + value: 30 + - ${{ if in(parameters.testGroup, 'outerloop') }}: + - name: timeoutPerTestCollectionInMinutes + value: 120 + - ${{ if in(parameters.testGroup, 'gc-longrunning', 'gc-simulator') }}: + - name: timeoutPerTestCollectionInMinutes + value: 360 + # gc reliability may take up to 2 hours to shutdown. Some scenarios have very long iteration times. + - name: timeoutPerTestInMinutes + value: 240 + - ${{ if in(parameters.testGroup, 'clrinterpreter') }}: + - name: timeoutPerTestCollectionInMinutes + value: 180 + - name: timeoutPerTestInMinutes + value: 30 + - ${{ parameters.variables }} + + steps: + script: $(coreClrRepoRootDir)build-test$(scriptExt) -skipnative -skipstressdependencies -excludemonofailures os Browser wasm + displayName: Build Tests + + # Send tests to Helix + # Send tests to Helix + - template: /eng/pipelines/common/templates/runtimes/send-to-helix-step.yml + parameters: + displayName: Send tests to Helix + buildConfig: $(buildConfigUpper) + archType: ${{ parameters.archType }} + osGroup: ${{ parameters.osGroup }} + osSubgroup: ${{ parameters.osSubgroup}} + coreClrRepoRoot: $(coreClrRepoRoot) + runtimeFlavorDisplayName: ${{ parameters.runtimeFlavorDisplayName }} + + ${{ if eq(variables['System.TeamProject'], 'public') }}: + creator: $(Build.DefinitionName) + + helixBuild: $(Build.BuildNumber) + helixSource: $(_HelixSource) + + # REVIEW: not sure why "cli" is part of the names here. Leave it for the ones that already had it, + # but don't add it to new ones. + ${{ if eq(parameters.readyToRun, true) }}: + helixType: 'test/functional/r2r/cli/' + ${{ if ne(parameters.readyToRun, true) }}: + helixType: 'test/functional/cli/' + + helixQueues: ${{ parameters.helixQueues }} + + # This tests whether an array is empty + ${{ if eq(join('', parameters.helixQueues), '') }}: + condition: false + + publishTestResults: true + + timeoutPerTestInMinutes: $(timeoutPerTestInMinutes) + timeoutPerTestCollectionInMinutes: $(timeoutPerTestCollectionInMinutes) + + runCrossGen: ${{ and(eq(parameters.readyToRun, true), ne(parameters.crossgen2, true)) }} + runCrossGen2: ${{ and(eq(parameters.readyToRun, true), eq(parameters.crossgen2, true)) }} + compositeBuildMode: ${{ parameters.compositeBuildMode }} + runInUnloadableContext: ${{ parameters.runInUnloadableContext }} + + ${{ if eq(variables['System.TeamProject'], 'internal') }}: + # Access token variable for internal project from the + # DotNet-HelixApi-Access variable group + helixAccessToken: $(HelixApiAccessToken) + + helixProjectArguments: '$(coreClrRepoRoot)/tests/helixpublishwitharcade.proj' + + scenarios: normal + + # Publish Logs + - task: PublishPipelineArtifact@1 + displayName: Publish Logs + inputs: + targetPath: $(Build.SourcesDirectory)/artifacts/log + artifactName: '${{ parameters.runtimeFlavor }}_${{ parameters.runtimeVariant }}_$(LogNamePrefix)_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)_${{ parameters.testGroup }}' + continueOnError: true + condition: always() \ No newline at end of file diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 80f159cbcd1ce..9e2e3d17bd656 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -302,7 +302,7 @@ jobs: eq(variables['isFullMatrix'], true)) # -# Build the whole product using Mono and run tests +# Build the whole product using Mono and run libraries tests # - template: /eng/pipelines/common/platform-matrix.yml parameters: @@ -340,6 +340,46 @@ jobs: eq(variables['monoContainsChange'], true), eq(variables['isFullMatrix'], true)) +# +# Build the whole product using Mono and run runtime tests +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - Browser_wasm + variables: + # map dependencies variables to local variables + - name: runtimeTestsContainsChange + value: $[ dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'] ] + - name: monoContainsChange + value: $[ dependencies.checkout.outputs['SetPathVars_mono.containsChange'] ] + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono + buildArgs: -s mono+libs+installer -c $(_BuildConfig) /p:ArchiveTests=true + timeoutInMinutes: 120 + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_$(_BuildConfig) + condition: >- + or( + eq(variables['runtimetestsContainsChange'], true), + eq(variables['monoContainsChange'], true), + eq(variables['isFullMatrix'], true)) + + # # Build Mono and Installer on LLVMJIT mode # @@ -747,7 +787,6 @@ jobs: platforms: - OSX_x64 - Linux_arm64 - - Browser_wasm helixQueueGroup: pr helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml jobParameters: From d2e1e14b7c07339ec6c87e5e2f69c3398245bfa1 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 13 Aug 2020 21:28:51 -0400 Subject: [PATCH 029/185] Update to runtime.yml --- eng/pipelines/runtime.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 9e2e3d17bd656..6956af548745d 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -369,7 +369,7 @@ jobs: eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true), eq(variables['isFullMatrix'], true)) # extra steps, run tests - extraStepsTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + extraStepsTemplate: eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.ymlyml extraStepsParameters: creator: dotnet-bot testRunNamePrefixSuffix: Mono_$(_BuildConfig) From 62e1c920d9e8e87c514432d0dd614768c1c46150 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 13 Aug 2020 21:56:35 -0400 Subject: [PATCH 030/185] Removed extra 'yml' --- eng/pipelines/runtime.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 6956af548745d..f712c5aa82861 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -369,7 +369,7 @@ jobs: eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true), eq(variables['isFullMatrix'], true)) # extra steps, run tests - extraStepsTemplate: eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.ymlyml + extraStepsTemplate: eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml extraStepsParameters: creator: dotnet-bot testRunNamePrefixSuffix: Mono_$(_BuildConfig) From 0202e9df4957bcd8560b31433bc1d14a596a44f2 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 13 Aug 2020 22:11:10 -0400 Subject: [PATCH 031/185] Made path absolute. --- eng/pipelines/runtime.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index f712c5aa82861..c1cf24dcd78f9 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -369,7 +369,7 @@ jobs: eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true), eq(variables['isFullMatrix'], true)) # extra steps, run tests - extraStepsTemplate: eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml + extraStepsTemplate: /eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml extraStepsParameters: creator: dotnet-bot testRunNamePrefixSuffix: Mono_$(_BuildConfig) From fac109d468ed66ba5ec1cdd19236c9e582331ce5 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 13 Aug 2020 22:24:42 -0400 Subject: [PATCH 032/185] Got rid of extra parameters. --- .../templates/runtimes/wasm-runtime-and-send-to-helix.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml index 5cc18be562b6b..f0eddb4137f8f 100644 --- a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml @@ -11,7 +11,6 @@ parameters: crossgen2: false compositeBuildMode: false helixQueues: '' - condition: true stagedBuild: false displayNameArgs: '' runInUnloadableContext: false @@ -25,7 +24,6 @@ parameters: #arcade-specific parameters condition: '' continueOnError: false - dependsOn: '' displayName: '' timeoutInMinutes: '' enableMicrobuild: '' @@ -126,7 +124,7 @@ jobs: helixProjectArguments: '$(coreClrRepoRoot)/tests/helixpublishwitharcade.proj' scenarios: normal - + # Publish Logs - task: PublishPipelineArtifact@1 displayName: Publish Logs From 69f7a48391777e682ae645f4300416f68cf16345 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 13 Aug 2020 22:48:28 -0400 Subject: [PATCH 033/185] Changed white space. --- .../wasm-runtime-and-send-to-helix.yml | 23 +++++++------------ 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml index f0eddb4137f8f..3f6c928558786 100644 --- a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml @@ -20,7 +20,6 @@ parameters: runtimeFlavor: 'mono' runtimeFlavorDisplayName: 'Mono' dependsOn: [] - #arcade-specific parameters condition: '' continueOnError: false @@ -32,20 +31,14 @@ parameters: jobs: - template: /eng/pipelines/${{ parameters.runtimeFlavor }}/templates/xplat-pipeline-job.yml parameters: - name: ${{ parameters.name }} - displayName: ${{ parameters.displayName }} - container: ${{ parameters.container }} - condition: ${{ parameters.condition }} - dependsOn: - - checkout - - ${{ if ne(parameters.dependsOn, '') }}: - - ${{ parameters.dependsOn }} - - timeoutInMinutes: ${{ parameters.timeoutInMinutes }} - continueOnError: ${{ parameters.continueOnError }} - - ${{ if ne(parameters.dependsOn[0], '') }}: - dependsOn: ${{ parameters.dependsOn }} + name: ${{ parameters.name }} + displayName: ${{ parameters.displayName }} + container: ${{ parameters.container }} + condition: ${{ parameters.condition }} + dependsOn: checkout + timeoutInMinutes: ${{ parameters.timeoutInMinutes }} + continueOnError: ${{ parameters.continueOnError }} + name: 'run_test_p0_mono_${{ parameters.displayNameArgs }}_Browser_wasm_${{ parameters.buildConfig }}' displayName: 'Mono Pri0 Runtime Tests Run Browser wasm ${{ parameters.buildConfig }}' From 719ff26ac7a9c60715983bf472d4df5c42c2ee09 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 13 Aug 2020 23:03:30 -0400 Subject: [PATCH 034/185] Fixed send to helix template. --- .../wasm-runtime-and-send-to-helix.yml | 74 ++++++++----------- 1 file changed, 29 insertions(+), 45 deletions(-) diff --git a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml index 3f6c928558786..832b4e4254f6d 100644 --- a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml @@ -28,35 +28,20 @@ parameters: enableMicrobuild: '' gatherAssetManifests: false -jobs: -- template: /eng/pipelines/${{ parameters.runtimeFlavor }}/templates/xplat-pipeline-job.yml - parameters: - name: ${{ parameters.name }} - displayName: ${{ parameters.displayName }} - container: ${{ parameters.container }} - condition: ${{ parameters.condition }} - dependsOn: checkout - timeoutInMinutes: ${{ parameters.timeoutInMinutes }} - continueOnError: ${{ parameters.continueOnError }} - - - name: 'run_test_p0_mono_${{ parameters.displayNameArgs }}_Browser_wasm_${{ parameters.buildConfig }}' - displayName: 'Mono Pri0 Runtime Tests Run Browser wasm ${{ parameters.buildConfig }}' - - variables: - - name: timeoutPerTestInMinutes - value: 10 +variables: + - name: timeoutPerTestInMinutes + value: 10 + - name: timeoutPerTestCollectionInMinutes + value: 30 + - ${{ if in(parameters.testGroup, 'outerloop') }}: - name: timeoutPerTestCollectionInMinutes - value: 30 - - ${{ if in(parameters.testGroup, 'outerloop') }}: - - name: timeoutPerTestCollectionInMinutes - value: 120 - - ${{ if in(parameters.testGroup, 'gc-longrunning', 'gc-simulator') }}: - - name: timeoutPerTestCollectionInMinutes - value: 360 + value: 120 + - ${{ if in(parameters.testGroup, 'gc-longrunning', 'gc-simulator') }}: + - name: timeoutPerTestCollectionInMinutes + value: 360 # gc reliability may take up to 2 hours to shutdown. Some scenarios have very long iteration times. - - name: timeoutPerTestInMinutes - value: 240 + - name: timeoutPerTestInMinutes + value: 240 - ${{ if in(parameters.testGroup, 'clrinterpreter') }}: - name: timeoutPerTestCollectionInMinutes value: 180 @@ -64,24 +49,23 @@ jobs: value: 30 - ${{ parameters.variables }} - steps: - script: $(coreClrRepoRootDir)build-test$(scriptExt) -skipnative -skipstressdependencies -excludemonofailures os Browser wasm - displayName: Build Tests - - # Send tests to Helix - # Send tests to Helix - - template: /eng/pipelines/common/templates/runtimes/send-to-helix-step.yml - parameters: - displayName: Send tests to Helix - buildConfig: $(buildConfigUpper) - archType: ${{ parameters.archType }} - osGroup: ${{ parameters.osGroup }} - osSubgroup: ${{ parameters.osSubgroup}} - coreClrRepoRoot: $(coreClrRepoRoot) - runtimeFlavorDisplayName: ${{ parameters.runtimeFlavorDisplayName }} - - ${{ if eq(variables['System.TeamProject'], 'public') }}: - creator: $(Build.DefinitionName) +steps: + script: $(coreClrRepoRootDir)build-test$(scriptExt) -skipnative -skipstressdependencies -excludemonofailures os Browser wasm + displayName: Build Tests + + # Send tests to Helix + - template: /eng/pipelines/common/templates/runtimes/send-to-helix-step.yml + parameters: + displayName: Send tests to Helix + buildConfig: $(buildConfigUpper) + archType: ${{ parameters.archType }} + osGroup: ${{ parameters.osGroup }} + osSubgroup: ${{ parameters.osSubgroup}} + coreClrRepoRoot: $(coreClrRepoRoot) + runtimeFlavorDisplayName: ${{ parameters.runtimeFlavorDisplayName }} + + ${{ if eq(variables['System.TeamProject'], 'public') }}: + creator: $(Build.DefinitionName) helixBuild: $(Build.BuildNumber) helixSource: $(_HelixSource) From 7275716ea2b13d6f824adc3d7a6d8b77ef98d4b1 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 13 Aug 2020 23:31:03 -0400 Subject: [PATCH 035/185] Got rid of variables. --- .../wasm-runtime-and-send-to-helix.yml | 21 ------------------- 1 file changed, 21 deletions(-) diff --git a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml index 832b4e4254f6d..067d3c2503aea 100644 --- a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml @@ -28,27 +28,6 @@ parameters: enableMicrobuild: '' gatherAssetManifests: false -variables: - - name: timeoutPerTestInMinutes - value: 10 - - name: timeoutPerTestCollectionInMinutes - value: 30 - - ${{ if in(parameters.testGroup, 'outerloop') }}: - - name: timeoutPerTestCollectionInMinutes - value: 120 - - ${{ if in(parameters.testGroup, 'gc-longrunning', 'gc-simulator') }}: - - name: timeoutPerTestCollectionInMinutes - value: 360 - # gc reliability may take up to 2 hours to shutdown. Some scenarios have very long iteration times. - - name: timeoutPerTestInMinutes - value: 240 - - ${{ if in(parameters.testGroup, 'clrinterpreter') }}: - - name: timeoutPerTestCollectionInMinutes - value: 180 - - name: timeoutPerTestInMinutes - value: 30 - - ${{ parameters.variables }} - steps: script: $(coreClrRepoRootDir)build-test$(scriptExt) -skipnative -skipstressdependencies -excludemonofailures os Browser wasm displayName: Build Tests From 2863dd4e06bcd5933d9387930b5212b94c829915 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 13 Aug 2020 23:41:29 -0400 Subject: [PATCH 036/185] Added missing - --- .../templates/runtimes/wasm-runtime-and-send-to-helix.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml index 067d3c2503aea..bc23bfcce99c4 100644 --- a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml @@ -29,8 +29,8 @@ parameters: gatherAssetManifests: false steps: - script: $(coreClrRepoRootDir)build-test$(scriptExt) -skipnative -skipstressdependencies -excludemonofailures os Browser wasm - displayName: Build Tests + - script: $(coreClrRepoRootDir)build-test$(scriptExt) -skipnative -skipstressdependencies -excludemonofailures os Browser wasm + displayName: Build Tests # Send tests to Helix - template: /eng/pipelines/common/templates/runtimes/send-to-helix-step.yml From 65423ac9964c6a5cbba636b7dbad61b095852a32 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 14 Aug 2020 00:04:31 -0400 Subject: [PATCH 037/185] Removed loggin task. --- .../runtimes/wasm-runtime-and-send-to-helix.yml | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml index bc23bfcce99c4..5bde10e4ad70e 100644 --- a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml @@ -79,13 +79,4 @@ steps: helixProjectArguments: '$(coreClrRepoRoot)/tests/helixpublishwitharcade.proj' - scenarios: normal - - # Publish Logs - - task: PublishPipelineArtifact@1 - displayName: Publish Logs - inputs: - targetPath: $(Build.SourcesDirectory)/artifacts/log - artifactName: '${{ parameters.runtimeFlavor }}_${{ parameters.runtimeVariant }}_$(LogNamePrefix)_$(osGroup)$(osSubgroup)_$(archType)_$(buildConfig)_${{ parameters.testGroup }}' - continueOnError: true - condition: always() \ No newline at end of file + scenarios: normal \ No newline at end of file From 33a3176b5ffee85a425d8227e17a5f28e1828043 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 14 Aug 2020 00:16:22 -0400 Subject: [PATCH 038/185] Changes suffix. --- eng/pipelines/runtime.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index c1cf24dcd78f9..8224678e7560f 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -359,7 +359,7 @@ jobs: value: $[ dependencies.checkout.outputs['SetPathVars_mono.containsChange'] ] jobParameters: testGroup: innerloop - nameSuffix: AllSubsets_Mono + nameSuffix: AllSubsets_PlusRuntimeTests_Mono buildArgs: -s mono+libs+installer -c $(_BuildConfig) /p:ArchiveTests=true timeoutInMinutes: 120 condition: >- From 1a1f539265540d8f998922257d9822fb71cfdc4e Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 14 Aug 2020 00:51:51 -0400 Subject: [PATCH 039/185] Changed to absolute path for coreclr test build. --- .../templates/runtimes/wasm-runtime-and-send-to-helix.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml index 5bde10e4ad70e..4bbbc155652c9 100644 --- a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml @@ -29,7 +29,7 @@ parameters: gatherAssetManifests: false steps: - - script: $(coreClrRepoRootDir)build-test$(scriptExt) -skipnative -skipstressdependencies -excludemonofailures os Browser wasm + - script: /src/coreclr/build-test$(scriptExt) -skipnative -skipstressdependencies -excludemonofailures os Browser wasm displayName: Build Tests # Send tests to Helix From 2136ae1eee9dbe7e324df9d47f5d4f0b012a79bd Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 14 Aug 2020 01:21:00 -0400 Subject: [PATCH 040/185] Removed extra libraries build of wasm. --- eng/pipelines/runtime.yml | 4 +--- src/coreclr/tests/helixpublishwitharcade.proj | 4 ++++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 8224678e7560f..755d50621833b 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -359,7 +359,7 @@ jobs: value: $[ dependencies.checkout.outputs['SetPathVars_mono.containsChange'] ] jobParameters: testGroup: innerloop - nameSuffix: AllSubsets_PlusRuntimeTests_Mono + nameSuffix: AllSubsets__Mono buildArgs: -s mono+libs+installer -c $(_BuildConfig) /p:ArchiveTests=true timeoutInMinutes: 120 condition: >- @@ -524,7 +524,6 @@ jobs: platforms: - OSX_x64 - Linux_arm64 - - Browser_wasm jobParameters: condition: >- or( @@ -582,7 +581,6 @@ jobs: - OSX_x64 - Windows_NT_x64 - FreeBSD_x64 - - Browser_wasm jobParameters: testScope: innerloop testBuildPlatforms: diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index cec547bd4ff12..670c0d8d6e94e 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -284,6 +284,10 @@ + + true + + %(PayloadDirectory) dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) -trait TestGroup=%(TestGroup) From 760a324e609f0d4726afde6b3010be4752c97e7c Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 14 Aug 2020 02:05:22 -0400 Subject: [PATCH 041/185] Removed property group --- src/coreclr/tests/helixpublishwitharcade.proj | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index 670c0d8d6e94e..cec547bd4ff12 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -284,10 +284,6 @@ - - true - - %(PayloadDirectory) dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) -trait TestGroup=%(TestGroup) From c8e321822322baaab963533d3213ab586fe0c369 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 14 Aug 2020 02:05:50 -0400 Subject: [PATCH 042/185] Removed proprety group for helixpublishwitharcade. --- src/coreclr/tests/helixpublishwitharcade.proj | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index cec547bd4ff12..e1747ce1a96e0 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -284,6 +284,8 @@ + + %(PayloadDirectory) dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) -trait TestGroup=%(TestGroup) From cef0d127b02cac8939b45239ab6e1cccdedb617a Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 14 Aug 2020 02:14:05 -0400 Subject: [PATCH 043/185] Added dotnet cli to helix project. --- src/coreclr/tests/helixpublishwitharcade.proj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index e1747ce1a96e0..fdbc58189d2a9 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -37,6 +37,10 @@ BundledNETCoreAppPackageVersion=$(BundledNETCoreAppPackageVersion); HelixRuntimeRid=$(HelixRuntimeRid) + + <_PropertiesToPass Condition="'$(TargetArchitecture)' == 'wasm' "> + $(PropertiesToPass);IncludeDotNetCli=true + From dbbcc28c611ccbdf2f96949d1727b52922901822 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 14 Aug 2020 10:48:39 -0400 Subject: [PATCH 044/185] Added Build.SourcesDirectory to build-tests path. --- .../templates/runtimes/wasm-runtime-and-send-to-helix.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml index 4bbbc155652c9..c225b4912c895 100644 --- a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml @@ -29,7 +29,7 @@ parameters: gatherAssetManifests: false steps: - - script: /src/coreclr/build-test$(scriptExt) -skipnative -skipstressdependencies -excludemonofailures os Browser wasm + - script: $(Build.SourcesDirectory)/src/coreclr/build-test$(scriptExt) -skipnative -skipstressdependencies -excludemonofailures os Browser wasm displayName: Build Tests # Send tests to Helix From 6331e5b3e7b41e62a3399ac8c9cc299a658cd44a Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 14 Aug 2020 12:19:38 -0400 Subject: [PATCH 045/185] Disambiguated names. --- eng/pipelines/runtime.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 755d50621833b..c9c8da210180e 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -359,7 +359,7 @@ jobs: value: $[ dependencies.checkout.outputs['SetPathVars_mono.containsChange'] ] jobParameters: testGroup: innerloop - nameSuffix: AllSubsets__Mono + nameSuffix: AllSubsets_Mono_RuntimeTests buildArgs: -s mono+libs+installer -c $(_BuildConfig) /p:ArchiveTests=true timeoutInMinutes: 120 condition: >- From 3e0bc13ab5e87a6003f4485b7bd5402a45216b7a Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 14 Aug 2020 16:28:50 -0400 Subject: [PATCH 046/185] Copy all the wasm stuff to CoreRoot to support helix. --- .../tests/src/Common/Directory.Build.targets | 22 +++++++++++++++++++ .../wasm-test-runner/WasmTestRunner.csproj | 17 +++++--------- 2 files changed, 27 insertions(+), 12 deletions(-) diff --git a/src/coreclr/tests/src/Common/Directory.Build.targets b/src/coreclr/tests/src/Common/Directory.Build.targets index 65ff6bd275946..4958da116e6d3 100644 --- a/src/coreclr/tests/src/Common/Directory.Build.targets +++ b/src/coreclr/tests/src/Common/Directory.Build.targets @@ -84,6 +84,28 @@ Include="$(CoreCLRArtifactsPath)%(RunTimeArtifactsIncludeFolders.Identity)**/*" Exclude="@(RunTimeArtifactsExcludeFiles -> '$(CoreCLRArtifactsPath)%(Identity)')" TargetDir="%(RunTimeArtifactsIncludeFolders.Identity)" /> + + + + + + + + + + $(NetCoreAppCurrent) wasm Browser - $(ArtifactsBinDir)microsoft.netcore.app.runtime.browser-wasm\$(Configuration)\runtimes\browser-wasm\ + $(CORE_ROOT)\runtimepack $(MSBuildThisFileDirectory)\obj\$(Configuration)\wasm $(TestBinDir)/WasmApp/ browser-wasm AnyCPU - - - - + AssemblyFile="$(CORE_ROOT)/WasmAppBuilder/WasmAppBuilder.dll"/> - + - + @@ -38,18 +33,16 @@ - - From 16fd82cbb1984282e738f161a791d6422f967c66 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 14 Aug 2020 17:48:17 -0400 Subject: [PATCH 047/185] Added helix queues for wasm-browser; temporarily remvoed other builds from runtime.yml --- .../coreclr/templates/helix-queues-setup.yml | 4 + eng/pipelines/runtime.yml | 832 ------------------ 2 files changed, 4 insertions(+), 832 deletions(-) diff --git a/eng/pipelines/coreclr/templates/helix-queues-setup.yml b/eng/pipelines/coreclr/templates/helix-queues-setup.yml index caebaea069a02..bb6789a277c4b 100644 --- a/eng/pipelines/coreclr/templates/helix-queues-setup.yml +++ b/eng/pipelines/coreclr/templates/helix-queues-setup.yml @@ -128,4 +128,8 @@ jobs: - ${{ if eq(variables['System.TeamProject'], 'internal') }}: - Windows.10.Arm64 + # WebAssembly + - ${{ if eq(parameters.platform, 'Browser_wasm') }}: + - Ubuntu.1804.Amd64.Open + ${{ insert }}: ${{ parameters.jobParameters }} diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index c9c8da210180e..6dd00671d1e58 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -130,216 +130,6 @@ jobs: - eng/pipelines/mono/* - eng/pipelines/libraries/* -# -# Build CoreCLR checked -# Only when CoreCLR is changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: checked - platforms: - - Linux_x64 - - Linux_arm - - Linux_arm64 - - Linux_musl_arm64 - - Linux_musl_x64 - - Windows_NT_x86 - - Windows_NT_x64 - - Windows_NT_arm - - Windows_NT_arm64 - jobParameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -# -# Build CoreCLR checked using GCC toolchain -# Only when CoreCLR is changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: checked - platforms: - - Linux_x64 - jobParameters: - testGroup: innerloop - compilerName: gcc - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -# -# Build CoreCLR OSX_x64 checked -# Only when CoreCLR or Libraries is changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: checked - platforms: - - OSX_x64 - jobParameters: - testGroup: innerloop - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -# -# Build CoreCLR release -# Always as they are needed by Installer and we always build and test the Installer. -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: release - platforms: - - OSX_x64 - - Linux_x64 - - Linux_arm - - Linux_arm64 - - Linux_musl_x64 - - Linux_musl_arm64 - - Windows_NT_x64 - - Windows_NT_x86 - - Windows_NT_arm - - Windows_NT_arm64 - - FreeBSD_x64 - jobParameters: - testGroup: innerloop - -# -# Build CoreCLR Formatting Job -# Only when CoreCLR is changed, and only in the 'master' branch (no release branches; -# both CI and PR builds). -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml - platforms: - - Linux_x64 - # Isssue: https://github.com/dotnet/runtime/issues/40034 - #- Windows_NT_x64 - jobParameters: - condition: >- - and( - or( - eq(variables['Build.SourceBranchName'], 'master'), - eq(variables['System.PullRequest.TargetBranch'], 'master')), - or( - eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isFullMatrix'], true))) - -# Build and test clr tools -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml - buildConfig: checked - platforms: - - Linux_x64 - jobParameters: - testGroup: clrTools - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -# Build the whole product using Mono runtime -# Only when libraries, mono or installer are changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - runtimeFlavor: mono - platforms: - - Android_x86 - - Android_arm64 - - tvOS_x64 - - iOS_arm64 - - iOS_x86 - - Linux_arm - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+installer -c $(_BuildConfig) - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - Android_x64 - - Android_arm - - tvOS_arm64 - - iOS_arm - - iOS_x64 - - Linux_musl_x64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+installer -c $(_BuildConfig) - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -# -# Build the whole product using Mono and run libraries tests -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - Browser_wasm - variables: - # map dependencies variables to local variables - - name: librariesContainsChange - value: $[ dependencies.checkout.outputs['SetPathVars_libraries.containsChange'] ] - - name: monoContainsChange - value: $[ dependencies.checkout.outputs['SetPathVars_mono.containsChange'] ] - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono - buildArgs: -s mono+libs+installer+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true - timeoutInMinutes: 120 - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], true)) - # extra steps, run tests - extraStepsTemplate: /eng/pipelines/libraries/helix.yml - extraStepsParameters: - creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - condition: >- - or( - eq(variables['librariesContainsChange'], true), - eq(variables['monoContainsChange'], true), - eq(variables['isFullMatrix'], true)) - # # Build the whole product using Mono and run runtime tests # @@ -378,625 +168,3 @@ jobs: eq(variables['runtimetestsContainsChange'], true), eq(variables['monoContainsChange'], true), eq(variables['isFullMatrix'], true)) - - -# -# Build Mono and Installer on LLVMJIT mode -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - OSX_x64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMJIT - buildArgs: -s mono+libs+installer -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - runtimeFlavor: mono - platforms: - - Linux_x64 - - Linux_arm64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMJIT - buildArgs: -s mono+libs+installer -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -# -# Build Mono and Installer on LLVMAOT mode -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: Release - runtimeFlavor: mono - platforms: - - Linux_x64 - - Linux_arm64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMAOT - buildArgs: -s mono+libs+installer -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - runtimeFlavor: mono - platforms: - - OSX_x64 - jobParameters: - testGroup: innerloop - nameSuffix: AllSubsets_Mono_LLVMAOT - buildArgs: -s mono+libs+installer -c $(_BuildConfig) - /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -# -# Build Mono debug -# Only when libraries or mono changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: debug - platforms: - - OSX_x64 - - Linux_x64 - - Linux_arm64 - # - Linux_musl_arm64 - - Windows_NT_x64 - # - Windows_NT_x86 - # - Windows_NT_arm - # - Windows_NT_arm64 - jobParameters: - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -# -# Build Mono release -# Only when libraries or mono changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - Linux_x64 - # - Linux_musl_arm64 - - Windows_NT_x64 - # - Windows_NT_x86 - # - Windows_NT_arm - # - Windows_NT_arm64 - jobParameters: - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -# -# Build Mono release -# Only when libraries, mono, or the runtime tests changed -# Currently only these architectures are needed for the runtime tests. -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - OSX_x64 - - Linux_arm64 - jobParameters: - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -# -# Build Mono release with LLVM AOT -# Only when mono, or the runtime tests changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/mono/templates/build-job.yml - runtimeFlavor: mono - buildConfig: release - platforms: - - Linux_x64 - jobParameters: - runtimeVariant: llvmaot - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -# -# Build libraries using live CoreLib -# These set of libraries are built always no matter what changed -# The reason for that is because Corelib and Installer needs it and -# These are part of the test matrix for Libraries changes. -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Release - platforms: - - Linux_arm - - Linux_musl_arm64 - - Windows_NT_arm - - Windows_NT_arm64 - - Windows_NT_x86 - jobParameters: - liveRuntimeBuildConfig: release - -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - Linux_arm64 - - Linux_musl_x64 - - Linux_x64 - - OSX_x64 - - Windows_NT_x64 - - FreeBSD_x64 - jobParameters: - testScope: innerloop - testBuildPlatforms: - - Linux_x64 - - Windows_NT_x64 - - OSX_x64 - liveRuntimeBuildConfig: release - -# -# Libraries Build that only run when libraries is changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - ${{ if eq(variables['isFullMatrix'], false) }}: - - Windows_NT_x86 - jobParameters: - liveRuntimeBuildConfig: release - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: Release - platforms: - - Windows_NT_x86 - - ${{ if eq(variables['isFullMatrix'], true) }}: - - Windows_NT_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isFullMatrix: ${{ variables.isFullMatrix }} - framework: net48 - runTests: true - testScope: innerloop - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/build-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - Windows_NT_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isFullMatrix: ${{ variables.isFullMatrix }} - framework: allConfigurations - runTests: true - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -# -# Installer Build and Test -# These are always built since they only take like 15 minutes -# we expect these to be done before we finish libraries or coreclr testing. -# -- template: /eng/pipelines/installer/installer-matrix.yml - parameters: - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - Linux_arm - - Linux_musl_arm64 - - Windows_NT_x86 - - Windows_NT_arm - - Windows_NT_arm64 - jobParameters: - liveRuntimeBuildConfig: release - liveLibrariesBuildConfig: Release - -- template: /eng/pipelines/installer/installer-matrix.yml - parameters: - buildConfig: Release - platforms: - - OSX_x64 - - Linux_x64 - - Linux_arm64 - - Linux_musl_x64 - - Windows_NT_x64 - - FreeBSD_x64 - jobParameters: - liveRuntimeBuildConfig: release - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - -# -# Crossgen-comparison jobs -# Only when CoreCLR is changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/coreclr/templates/crossgen-comparison-job.yml - buildConfig: checked - platforms: - - Linux_arm - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - liveLibrariesBuildConfig: Release - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -# -# CoreCLR Test builds using live libraries release build -# Only when CoreCLR is changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml - buildConfig: checked - platforms: - - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64 - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -# -# CoreCLR Test executions using live libraries -# Only when CoreCLR is changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: checked - platforms: - - Linux_arm - - Windows_NT_x86 - - Windows_NT_arm64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: Release - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: checked - platforms: - - OSX_x64 - - Linux_x64 - - Linux_arm64 - - Windows_NT_x64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -# -# Mono Test builds with CoreCLR runtime tests using live libraries debug build -# Only when Mono is changed -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64 - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - liveRuntimeBuildConfig: release - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -# -# Mono CoreCLR runtime Test executions using live libraries -# Only when Mono is changed -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - OSX_x64 - - Linux_arm64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - liveRuntimeBuildConfig: release - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) -# -# Mono CoreCLR runtime Test executions using live libraries and LLVM AOT -# Only when Mono is changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml - buildConfig: release - runtimeFlavor: mono - platforms: - - Linux_x64 - helixQueueGroup: pr - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - jobParameters: - testGroup: innerloop - liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - liveRuntimeBuildConfig: release - runtimeVariant: llvmaot - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -# -# Libraries Release Test Execution against a release mono runtime. -# Only when libraries or mono changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - runtimeFlavor: mono - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - Windows_NT_x64 - - OSX_x64 - - Linux_arm64 - - Linux_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - isFullMatrix: ${{ variables.isFullMatrix }} - runtimeDisplayName: mono - testScope: innerloop - liveRuntimeBuildConfig: release - dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - dependsOnTestArchitecture: x64 - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -# -# Libraries Release Test Execution against a release mono interpreter runtime. -# Only when libraries or mono changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - runtimeFlavor: mono - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - # - Windows_NT_x64 - #- OSX_x64 - - Linux_x64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - isFullMatrix: ${{ variables.isFullMatrix }} - interpreter: true - runtimeDisplayName: mono_interpreter - testScope: innerloop - liveRuntimeBuildConfig: release - dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - dependsOnTestArchitecture: x64 - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -# -# Libraries Release Test Execution against a release coreclr runtime -# Only when the PR contains a libraries change -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: Release - platforms: - - Windows_NT_x86 - - ${{ if eq(variables['isFullMatrix'], true) }}: - - Windows_NT_arm64 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - isFullMatrix: ${{ variables.isFullMatrix }} - testScope: innerloop - liveRuntimeBuildConfig: release - dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - dependsOnTestArchitecture: x64 - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -# -# Libraries Debug Test Execution against a release coreclr runtime -# Only when the PR contains a libraries change -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - Windows_NT_x64 - - OSX_x64 - - Linux_x64 - - Linux_musl_x64 - - ${{ if eq(variables['isFullMatrix'], true) }}: - - Linux_arm64 - - ${{ if eq(variables['isFullMatrix'], false) }}: - - Windows_NT_x86 - helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml - jobParameters: - isOfficialBuild: false - isFullMatrix: ${{ variables.isFullMatrix }} - testScope: innerloop - liveRuntimeBuildConfig: release - dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - dependsOnTestArchitecture: x64 - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -# -# Libraries Test Execution against a checked runtime -# Only when the PR contains a coreclr change -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: Release - platforms: - # - Windows_NT_arm return this when https://github.com/dotnet/runtime/issues/1097 is fixed. - - Linux_arm - - Linux_musl_arm64 - - Windows_NT_x86 - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - helixQueueGroup: libraries - jobParameters: - testScope: innerloop - liveRuntimeBuildConfig: checked - dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - dependsOnTestArchitecture: x64 - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - Windows_NT_x64 - - Linux_x64 - - Linux_musl_x64 - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - helixQueueGroup: libraries - jobParameters: - testScope: innerloop - liveRuntimeBuildConfig: checked - dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - dependsOnTestArchitecture: x64 - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), - eq(variables['isFullMatrix'], true)) - -# -# Libraries Test Execution against a checked runtime -# Only if CoreCLR or Libraries is changed -# -- template: /eng/pipelines/common/platform-matrix.yml - parameters: - jobTemplate: /eng/pipelines/libraries/run-test-job.yml - buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} - platforms: - - OSX_x64 - helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml - helixQueueGroup: libraries - jobParameters: - testScope: innerloop - liveRuntimeBuildConfig: checked - dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} - dependsOnTestArchitecture: x64 - condition: >- - or( - eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), - eq(variables['isFullMatrix'], true)) From c57c1d49958ade55572b6e5a85b25dbda4d78dfd Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 14 Aug 2020 19:11:28 -0400 Subject: [PATCH 048/185] ../../eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml --- .../templates/runtimes/wasm-runtime-and-send-to-helix.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml index c225b4912c895..dbc22076d8ddd 100644 --- a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml @@ -28,6 +28,7 @@ parameters: enableMicrobuild: '' gatherAssetManifests: false + steps: - script: $(Build.SourcesDirectory)/src/coreclr/build-test$(scriptExt) -skipnative -skipstressdependencies -excludemonofailures os Browser wasm displayName: Build Tests @@ -40,7 +41,7 @@ steps: archType: ${{ parameters.archType }} osGroup: ${{ parameters.osGroup }} osSubgroup: ${{ parameters.osSubgroup}} - coreClrRepoRoot: $(coreClrRepoRoot) + coreClrRepoRoot: $(Build.SourcesDirectory)/src/coreclr runtimeFlavorDisplayName: ${{ parameters.runtimeFlavorDisplayName }} ${{ if eq(variables['System.TeamProject'], 'public') }}: From 3efa2d6d33c07ca7879f66046ff699940bbe04b4 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 14 Aug 2020 19:17:23 -0400 Subject: [PATCH 049/185] Changed build config to upper. --- .../templates/runtimes/wasm-runtime-and-send-to-helix.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml index dbc22076d8ddd..9d34cc4ca59a6 100644 --- a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml @@ -37,7 +37,12 @@ steps: - template: /eng/pipelines/common/templates/runtimes/send-to-helix-step.yml parameters: displayName: Send tests to Helix - buildConfig: $(buildConfigUpper) + ${{ if eq(parameters.buildConfig, 'debug') }}: + buildConfig: 'Debug' + ${{ if eq(parameters.buildConfig, 'release') }}: + buildConfig: 'Release' + ${{ if eq(parameters.buildConfig, 'checked') }}: + buildConfig: 'Checked' archType: ${{ parameters.archType }} osGroup: ${{ parameters.osGroup }} osSubgroup: ${{ parameters.osSubgroup}} From 097864cb5cf6f6c7c9c00103fea529c1d3a6360d Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 14 Aug 2020 20:14:09 -0400 Subject: [PATCH 050/185] Fixed path to helixpublishwitharcade. --- .../templates/runtimes/wasm-runtime-and-send-to-helix.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml index 9d34cc4ca59a6..1b9e678d82b70 100644 --- a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml @@ -83,6 +83,6 @@ steps: # DotNet-HelixApi-Access variable group helixAccessToken: $(HelixApiAccessToken) - helixProjectArguments: '$(coreClrRepoRoot)/tests/helixpublishwitharcade.proj' + helixProjectArguments: '$(Build.SourcesDirectory)/src/coreclr/tests/helixpublishwitharcade.proj' - scenarios: normal \ No newline at end of file + scenarios: normal \ No newline at end of file From 0babb9be501cd078085753f7b23cf9ab4e71db1c Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 14 Aug 2020 20:23:04 -0400 Subject: [PATCH 051/185] Defined _HelixSource --- eng/pipelines/runtime.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 6dd00671d1e58..c0a5621052e9f 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -147,6 +147,15 @@ jobs: value: $[ dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'] ] - name: monoContainsChange value: $[ dependencies.checkout.outputs['SetPathVars_mono.containsChange'] ] + - ${{ if and(eq(variables['System.TeamProject'], 'internal'), ne(variables['Build.Reason'], 'PullRequest')) }}: + - name: _HelixSource + value: official/dotnet/runtime/$(Build.SourceBranch) + - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: + - name: _HelixSource + value: pr/dotnet/runtime/$(Build.SourceBranch) + - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: + - name: _HelixSource + value: ci/dotnet/runtime/$(Build.SourceBranch) jobParameters: testGroup: innerloop nameSuffix: AllSubsets_Mono_RuntimeTests @@ -163,6 +172,7 @@ jobs: extraStepsParameters: creator: dotnet-bot testRunNamePrefixSuffix: Mono_$(_BuildConfig) + condition: >- or( eq(variables['runtimetestsContainsChange'], true), From 7ecf681166b71151c54d654f40266a213c781f12 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 14 Aug 2020 21:11:04 -0400 Subject: [PATCH 052/185] Added missing _ --- src/coreclr/tests/helixpublishwitharcade.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index fdbc58189d2a9..ae09e78a9c73c 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -39,7 +39,7 @@ <_PropertiesToPass Condition="'$(TargetArchitecture)' == 'wasm' "> - $(PropertiesToPass);IncludeDotNetCli=true + $(_PropertiesToPass);IncludeDotNetCli=true From b848c4d0a28ddcd920eebddac6f3e6094c5c2ecb Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 14 Aug 2020 22:08:39 -0400 Subject: [PATCH 053/185] Added values for timeouts. --- eng/pipelines/runtime.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index c0a5621052e9f..1fcea67c8ed34 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -156,13 +156,14 @@ jobs: - ${{ if and(eq(variables['System.TeamProject'], 'public'), ne(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource value: ci/dotnet/runtime/$(Build.SourceBranch) + - name: timeoutPerTestInMinutes + value: 10 + - name: timeoutPerTestCollectionInMinutes + value: 200 jobParameters: testGroup: innerloop nameSuffix: AllSubsets_Mono_RuntimeTests buildArgs: -s mono+libs+installer -c $(_BuildConfig) /p:ArchiveTests=true - timeoutInMinutes: 120 - condition: >- - or( eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true), From b9cbe36e2453c9a329dc6e0e3d76f8126fca09a1 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 14 Aug 2020 22:36:53 -0400 Subject: [PATCH 054/185] Removed unneeded variables. --- eng/pipelines/runtime.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 1fcea67c8ed34..74aeebf046bb0 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -143,10 +143,6 @@ jobs: - Browser_wasm variables: # map dependencies variables to local variables - - name: runtimeTestsContainsChange - value: $[ dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'] ] - - name: monoContainsChange - value: $[ dependencies.checkout.outputs['SetPathVars_mono.containsChange'] ] - ${{ if and(eq(variables['System.TeamProject'], 'internal'), ne(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource value: official/dotnet/runtime/$(Build.SourceBranch) From affacaba7b27fbb2cf45994e284dd980fdb46759 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 14 Aug 2020 22:57:05 -0400 Subject: [PATCH 055/185] Fixed missing condition. --- eng/pipelines/runtime.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 74aeebf046bb0..2e2fb6e59038a 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -160,6 +160,8 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_Mono_RuntimeTests buildArgs: -s mono+libs+installer -c $(_BuildConfig) /p:ArchiveTests=true + condition: >- + or( eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true), From 02ffa55fe638d38ac294d9e95371ced79b9e9a78 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 14 Aug 2020 23:00:48 -0400 Subject: [PATCH 056/185] Removed unneeded conditions. --- eng/pipelines/runtime.yml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 2e2fb6e59038a..39dff15dcb090 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -170,10 +170,4 @@ jobs: extraStepsTemplate: /eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml extraStepsParameters: creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) - - condition: >- - or( - eq(variables['runtimetestsContainsChange'], true), - eq(variables['monoContainsChange'], true), - eq(variables['isFullMatrix'], true)) + testRunNamePrefixSuffix: Mono_$(_BuildConfig) \ No newline at end of file From a557c9f1be752a95084504ae4d229ac3d90012a2 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 14 Aug 2020 23:44:59 -0400 Subject: [PATCH 057/185] Debuggin in helixpublishwitharcade. --- .../templates/runtimes/wasm-runtime-and-send-to-helix.yml | 2 +- src/coreclr/tests/helixpublishwitharcade.proj | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml index 1b9e678d82b70..fd6c4af327841 100644 --- a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml @@ -21,7 +21,7 @@ parameters: runtimeFlavorDisplayName: 'Mono' dependsOn: [] #arcade-specific parameters - condition: '' + condition: always() continueOnError: false displayName: '' timeoutInMinutes: '' diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index ae09e78a9c73c..e26ee251a8a9e 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -11,6 +11,8 @@ that will run in parallel. --> + + @@ -74,6 +76,7 @@ osx-$(TargetArchitecture) linux-$(TargetArchitecture) linux-musl-$(TargetArchitecture) + browser-wasm From 45b50de754efd2df075e2a1cc8dd9723834c1269 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 14 Aug 2020 23:48:04 -0400 Subject: [PATCH 058/185] wasm-->Browser --- src/coreclr/tests/helixpublishwitharcade.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index e26ee251a8a9e..3bfc55fa7fa0b 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -76,7 +76,7 @@ osx-$(TargetArchitecture) linux-$(TargetArchitecture) linux-musl-$(TargetArchitecture) - browser-wasm + browser-wasm From 13a9ca1a072489acc898314a789b3d2b245be17d Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Sat, 15 Aug 2020 00:18:47 -0400 Subject: [PATCH 059/185] Fixed quote. --- src/coreclr/tests/helixpublishwitharcade.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index 3bfc55fa7fa0b..941248e8c9c83 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -76,7 +76,7 @@ osx-$(TargetArchitecture) linux-$(TargetArchitecture) linux-musl-$(TargetArchitecture) - browser-wasm + browser-wasm From 09896321654beaebfca69bf15cb4065761f5693b Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Sat, 15 Aug 2020 00:50:13 -0400 Subject: [PATCH 060/185] Added more logging. --- src/coreclr/tests/helixpublishwitharcade.proj | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index 941248e8c9c83..e9b3b645b9397 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -40,11 +40,12 @@ HelixRuntimeRid=$(HelixRuntimeRid) + <_PropertiesToPass Condition="'$(TargetArchitecture)' == 'wasm' "> $(_PropertiesToPass);IncludeDotNetCli=true - + From e17e726c368892b381dffb6e8d3cc41e28cf3538 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Sat, 15 Aug 2020 01:35:27 -0400 Subject: [PATCH 061/185] Try specifying targetOS in send-to-helix-step. --- eng/pipelines/common/templates/runtimes/send-to-helix-step.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml index 3602929653dc3..3eb27beae4255 100644 --- a/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml +++ b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml @@ -76,7 +76,7 @@ steps: # Arcade uses this SDK instead of trying to restore one. DotNetCoreSdkDir: /usr/local/dotnet - - script: $(Build.SourcesDirectory)/eng/common/msbuild.sh --ci ${{ parameters.helixProjectArguments }} /maxcpucount /bl:$(Build.SourcesDirectory)/artifacts/log/SendToHelix.binlog + - script: $(Build.SourcesDirectory)/eng/common/msbuild.sh --ci ${{ parameters.helixProjectArguments }} /maxcpucount /p:TargetOS=${{ parameters.osGroup }} /bl:$(Build.SourcesDirectory)/artifacts/log/SendToHelix.binlog displayName: ${{ parameters.displayName }} ${{ if ne(parameters.condition, '') }}: condition: ${{ parameters.condition }} From adca20156bbfbbc2674db051e06dcdb9c811a5bd Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Sat, 15 Aug 2020 02:20:00 -0400 Subject: [PATCH 062/185] Try specifying version of dotnetcli --- src/coreclr/tests/helixpublishwitharcade.proj | 2 +- src/coreclr/tests/src/dirs.proj | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index e9b3b645b9397..9fbc6bd5417a7 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -42,7 +42,7 @@ <_PropertiesToPass Condition="'$(TargetArchitecture)' == 'wasm' "> - $(_PropertiesToPass);IncludeDotNetCli=true + $(_PropertiesToPass);IncludeDotNetCli=true;DotNetCliRuntime=linux-x64 diff --git a/src/coreclr/tests/src/dirs.proj b/src/coreclr/tests/src/dirs.proj index deab2083e17af..9656ac5da61c9 100644 --- a/src/coreclr/tests/src/dirs.proj +++ b/src/coreclr/tests/src/dirs.proj @@ -3,7 +3,7 @@ - $(RepoRoot)src\tests + $(RepoRoot)src\tests\ @@ -23,10 +23,9 @@ - - + + + osx-x64 diff --git a/src/coreclr/tests/src/CLRTest.Execute.Bash.targets b/src/coreclr/tests/src/CLRTest.Execute.Bash.targets index 28fa598bea356..28003b7456dcd 100644 --- a/src/coreclr/tests/src/CLRTest.Execute.Bash.targets +++ b/src/coreclr/tests/src/CLRTest.Execute.Bash.targets @@ -260,11 +260,11 @@ fi Date: Sun, 16 Aug 2020 17:10:25 -0400 Subject: [PATCH 073/185] Fixed build timeout. --- eng/pipelines/runtime.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 5c47220806677..69dc69fb25ed4 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -135,7 +135,7 @@ jobs: # - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml + jobTemplate: /eng/pipelines/common/global-build-job.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml buildConfig: Debug runtimeFlavor: mono @@ -160,6 +160,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_Mono_RuntimeTests buildArgs: -s mono+libs+installer -c $(_BuildConfig) /p:ArchiveTests=true + TimeoutInMinutes: 120 condition: >- or( eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), From c97651f617f610232146e6f6a0e3e152d8e52e6d Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Sun, 16 Aug 2020 17:15:50 -0400 Subject: [PATCH 074/185] Fixed indentation, case. --- eng/pipelines/runtime.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 69dc69fb25ed4..4f11a6f3bc573 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -135,7 +135,7 @@ jobs: # - template: /eng/pipelines/common/platform-matrix.yml parameters: - jobTemplate: /eng/pipelines/common/global-build-job.yml + jobTemplate: /eng/pipelines/common/global-build-job.yml helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml buildConfig: Debug runtimeFlavor: mono @@ -160,7 +160,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_Mono_RuntimeTests buildArgs: -s mono+libs+installer -c $(_BuildConfig) /p:ArchiveTests=true - TimeoutInMinutes: 120 + timeoutInMinutes: 120 condition: >- or( eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), From c21d9c9b95cf92270618a43e89d286b1753d4b9b Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Sun, 16 Aug 2020 19:28:13 -0400 Subject: [PATCH 075/185] Updated bash script to use . --- src/coreclr/tests/src/CLRTest.Execute.Bash.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/tests/src/CLRTest.Execute.Bash.targets b/src/coreclr/tests/src/CLRTest.Execute.Bash.targets index 28003b7456dcd..868feab8a45b6 100644 --- a/src/coreclr/tests/src/CLRTest.Execute.Bash.targets +++ b/src/coreclr/tests/src/CLRTest.Execute.Bash.targets @@ -267,7 +267,7 @@ else __Command+=" dotnet" fi -$DOTNET_COMMAND msbuild $CORE_ROOT/wasm-test-runner/WasmTestRunner.proj /p:TestAssembly=$(OutputPath)/$(MsBuildProjectName).dll /p:TestBinDir=`pwd` +$__Command msbuild $CORE_ROOT/wasm-test-runner/WasmTestRunner.proj /p:TestAssembly=$(OutputPath)/$(MsBuildProjectName).dll /p:TestBinDir=`pwd` ]]> From 09df995dc63e2a7d4582a42ddc6e1fae5be14925 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Sun, 16 Aug 2020 22:57:52 -0400 Subject: [PATCH 076/185] Added wasmappbuilder console. --- src/coreclr/tests/src/CLRTest.Execute.Bash.targets | 9 ++++++++- src/coreclr/tests/src/Common/Directory.Build.targets | 5 +++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/coreclr/tests/src/CLRTest.Execute.Bash.targets b/src/coreclr/tests/src/CLRTest.Execute.Bash.targets index 868feab8a45b6..5e21f1e1b5563 100644 --- a/src/coreclr/tests/src/CLRTest.Execute.Bash.targets +++ b/src/coreclr/tests/src/CLRTest.Execute.Bash.targets @@ -267,9 +267,16 @@ else __Command+=" dotnet" fi -$__Command msbuild $CORE_ROOT/wasm-test-runner/WasmTestRunner.proj /p:TestAssembly=$(OutputPath)/$(MsBuildProjectName).dll /p:TestBinDir=`pwd` +# $__Command msbuild $CORE_ROOT/wasm-test-runner/WasmTestRunner.proj /p:TestAssembly=$(OutputPath)/$(MsBuildProjectName).dll /p:TestBinDir=`pwd` +$TestAssembly=$(OutputPath)/$(MsBuildProjectName).dll +$AppDir = $(TestBinDir)/WasmApp +$MicrosoftNetCoreAppRuntimePackDir=$(CORE_ROOT)\runtimepack +$MainJS="$(CORE_ROOT)\runtime-test\runtime-test.js" +$AssemblySearchPaths=${MicrosoftNetCoreAppRuntimePackDir}\native;${MicrosoftNetCoreAppRuntimePackDir}\lib\$(NetCoreAppCurrent);$(CORE_ROOT)/TargetingPack" + +$__Command run $CORE_ROOT/WasmAppBuilderConsole/WasmAppBuilderConsole.dll mainassembly=$TestAssembly appdir=$AppDir microsoftnetcoreapprntimepackdir=$MicrosoftNetCoreAppRuntimePackDir mainjs=$MainJS assemblysearchpaths=$AssemblySearchPaths ]]> diff --git a/src/coreclr/tests/src/Common/Directory.Build.targets b/src/coreclr/tests/src/Common/Directory.Build.targets index c88f5e0bbbc58..082f80688a4df 100644 --- a/src/coreclr/tests/src/Common/Directory.Build.targets +++ b/src/coreclr/tests/src/Common/Directory.Build.targets @@ -97,8 +97,9 @@ + Include="$(ArtifactsBinDir)\WasmAppBuilderConsole\$(Configuration)\$(NetCoreAppCurrent)\publish\**" + TargetDir="WasmAppBuilderConsole/"/> + Date: Mon, 17 Aug 2020 00:03:27 -0400 Subject: [PATCH 077/185] Made a console version of WasmAppBuilder. --- .../tests/src/CLRTest.Execute.Bash.targets | 13 +- src/coreclr/tests/src/dirs.proj | 6 +- tools-local/WasmAppBuilderConsole/Program.cs | 233 ++++++++++++++++++ .../WasmAppBuilderConsole.csproj | 13 + 4 files changed, 256 insertions(+), 9 deletions(-) create mode 100644 tools-local/WasmAppBuilderConsole/Program.cs create mode 100644 tools-local/WasmAppBuilderConsole/WasmAppBuilderConsole.csproj diff --git a/src/coreclr/tests/src/CLRTest.Execute.Bash.targets b/src/coreclr/tests/src/CLRTest.Execute.Bash.targets index 5e21f1e1b5563..ef12415f6affe 100644 --- a/src/coreclr/tests/src/CLRTest.Execute.Bash.targets +++ b/src/coreclr/tests/src/CLRTest.Execute.Bash.targets @@ -269,14 +269,15 @@ fi # $__Command msbuild $CORE_ROOT/wasm-test-runner/WasmTestRunner.proj /p:TestAssembly=$(OutputPath)/$(MsBuildProjectName).dll /p:TestBinDir=`pwd` -$TestAssembly=$(OutputPath)/$(MsBuildProjectName).dll -$AppDir = $(TestBinDir)/WasmApp -$MicrosoftNetCoreAppRuntimePackDir=$(CORE_ROOT)\runtimepack -$MainJS="$(CORE_ROOT)\runtime-test\runtime-test.js" -$AssemblySearchPaths=${MicrosoftNetCoreAppRuntimePackDir}\native;${MicrosoftNetCoreAppRuntimePackDir}\lib\$(NetCoreAppCurrent);$(CORE_ROOT)/TargetingPack" +TestAssembly=$(OutputPath)/$(MsBuildProjectName).dll +AppDir=`pwd`/WasmApp +MicrosoftNetCoreAppRuntimePackDir=$CORE_ROOT\runtimepack +MainJS="$CORE_ROOT\runtime-test\runtime-test.js" +AssemblySearchPaths="${MicrosoftNetCoreAppRuntimePackDir}\native%3B${MicrosoftNetCoreAppRuntimePackDir}\lib\$(NetCoreAppCurrent)%3B$CORE_ROOT/TargetingPack" -$__Command run $CORE_ROOT/WasmAppBuilderConsole/WasmAppBuilderConsole.dll mainassembly=$TestAssembly appdir=$AppDir microsoftnetcoreapprntimepackdir=$MicrosoftNetCoreAppRuntimePackDir mainjs=$MainJS assemblysearchpaths=$AssemblySearchPaths +$__Command $CORE_ROOT/WasmAppBuilderConsole/WasmAppBuilderConsole.dll mainassembly=$TestAssembly appdir=$AppDir microsoftnetcoreappruntimepackdir=$MicrosoftNetCoreAppRuntimePackDir mainjs=$MainJS assemblysearchpaths=$AssemblySearchPaths +chmod u+x $AppDir/run-v8.sh ]]> diff --git a/src/coreclr/tests/src/dirs.proj b/src/coreclr/tests/src/dirs.proj index deab2083e17af..1aeea72723586 100644 --- a/src/coreclr/tests/src/dirs.proj +++ b/src/coreclr/tests/src/dirs.proj @@ -23,9 +23,9 @@ - + diff --git a/tools-local/WasmAppBuilderConsole/Program.cs b/tools-local/WasmAppBuilderConsole/Program.cs new file mode 100644 index 0000000000000..b2268dcaef240 --- /dev/null +++ b/tools-local/WasmAppBuilderConsole/Program.cs @@ -0,0 +1,233 @@ +// -*- indent-tabs-mode: nil -*- +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Text; +using System.Text.Json; +using System.Text.Json.Serialization; +using System.Reflection; + +public class WasmAppBuilder +{ + // FIXME: Document + private string AppDir; + public string MicrosoftNetCoreAppRuntimePackDir; + private string MainAssembly; + private string MainJS; + private string[] AssemblySearchPaths; + private int DebugLevel; + private bool InvariantGlobalization; + + public WasmAppBuilder(string appDir, string microsoftNetCoreAppRuntimePackDir, string mainAssembly, string mainJS, string[] assemblySearchPaths) + { + this.AppDir = appDir; + this.MicrosoftNetCoreAppRuntimePackDir=microsoftNetCoreAppRuntimePackDir; + this.MainAssembly = mainAssembly; + this.MainJS = mainJS; + this.AssemblySearchPaths = assemblySearchPaths; + } + + SortedDictionary? _assemblies; + Resolver? _resolver; + + private class WasmAppConfig + { + [JsonPropertyName("assembly_root")] + public string AssemblyRoot { get; set; } = "managed"; + [JsonPropertyName("debug_level")] + public int DebugLevel { get; set; } = 0; + [JsonPropertyName("assets")] + public List Assets { get; } = new List(); + [JsonPropertyName("remote_sources")] + public List RemoteSources { get; set; } = new List(); + } + + private class AssetEntry { + protected AssetEntry (string name, string behavior) + { + Name = name; + Behavior = behavior; + } + [JsonPropertyName("behavior")] + public string Behavior { get; init; } + [JsonPropertyName("name")] + public string Name { get; init; } + } + + private class AssemblyEntry : AssetEntry + { + public AssemblyEntry(string name) : base(name, "assembly") {} + } + + private class VfsEntry : AssetEntry { + public VfsEntry(string name) : base(name, "vfs") {} + [JsonPropertyName("virtual_path")] + public string? VirtualPath { get; set; } + } + + private class IcuData : AssetEntry { + public IcuData(string name = "icudt.dat") : base(name, "icu") {} + [JsonPropertyName("load_remote")] + public bool LoadRemote { get; set; } + } + + public static void Main(string[] argv) + { + Dictionary parsedArgs = parseArguments(argv); + + Console.WriteLine("---Arguments---"); + foreach (KeyValuePair argValue in parsedArgs) + { + Console.WriteLine($"{argValue.Key}: {argValue.Value} "); + } + + + string[] assemblySearchPaths = parsedArgs["assemblysearchpaths"].Split(";"); + + + new WasmAppBuilder(parsedArgs["appdir"], + parsedArgs["microsoftnetcoreappruntimepackdir"], + parsedArgs["mainassembly"], + parsedArgs["mainjs"], + assemblySearchPaths).Execute(); + } + + private static Dictionary parseArguments(string[] arguments) + { + Dictionary argumentMap = new Dictionary(); + + foreach (string arg in arguments) + { + if (arg.Contains("=")) + { + string[] keyValue = arg.Split("="); + argumentMap.Add(keyValue[0], keyValue[1]); + } + } + + return argumentMap; + } + + public bool Execute () + { + if (!File.Exists(MainAssembly)) + throw new ArgumentException($"File MainAssembly='{MainAssembly}' doesn't exist."); + if (!File.Exists(MainJS)) + throw new ArgumentException($"File MainJS='{MainJS}' doesn't exist."); + + var paths = new List(); + _assemblies = new SortedDictionary(); + + // Collect and load assemblies used by the app + foreach (string dir in AssemblySearchPaths) + { + if (!Directory.Exists(dir)) + throw new ArgumentException($"Directory '{dir}' doesn't exist or not a directory."); + paths.Add(dir); + } + _resolver = new Resolver(paths); + var mlc = new MetadataLoadContext(_resolver, "System.Private.CoreLib"); + + var mainAssembly = mlc.LoadFromAssemblyPath(MainAssembly); + Add(mlc, mainAssembly); + + var config = new WasmAppConfig (); + + // Create app + Directory.CreateDirectory(AppDir!); + Directory.CreateDirectory(Path.Join(AppDir, config.AssemblyRoot)); + foreach (var assembly in _assemblies!.Values) { + File.Copy(assembly.Location, Path.Join(AppDir, config.AssemblyRoot, Path.GetFileName(assembly.Location)), true); + if (DebugLevel > 0) { + var pdb = assembly.Location; + pdb = Path.ChangeExtension(pdb, ".pdb"); + if (File.Exists(pdb)) + File.Copy(pdb, Path.Join(AppDir, config.AssemblyRoot, Path.GetFileName(pdb)), true); + } + } + + List nativeAssets = new List() { "dotnet.wasm", "dotnet.js", "dotnet.timezones.blat" }; + + if (!InvariantGlobalization) + { + nativeAssets.Add("icudt.dat"); + } + + foreach (var f in nativeAssets) + File.Copy(Path.Join (MicrosoftNetCoreAppRuntimePackDir, "native", f), Path.Join(AppDir, f), true); + File.Copy(MainJS!, Path.Join(AppDir, "runtime.js"), true); + + foreach (var assembly in _assemblies.Values) { + config.Assets.Add(new AssemblyEntry (Path.GetFileName(assembly.Location))); + if (DebugLevel > 0) { + var pdb = assembly.Location; + pdb = Path.ChangeExtension(pdb, ".pdb"); + if (File.Exists(pdb)) + config.Assets.Add(new AssemblyEntry (Path.GetFileName(pdb))); + } + } + + config.DebugLevel = DebugLevel; + + using (var sw = File.CreateText(Path.Join(AppDir, "mono-config.js"))) + { + var json = JsonSerializer.Serialize (config, new JsonSerializerOptions { WriteIndented = true }); + sw.Write($"config = {json};"); + } + + using (var sw = File.CreateText(Path.Join(AppDir, "run-v8.sh"))) + { + sw.WriteLine("v8 --expose_wasm runtime.js -- --run " + Path.GetFileName(MainAssembly) + " $*"); + } + + return true; + } + + private void Add(MetadataLoadContext mlc, Assembly assembly) + { + if (_assemblies!.ContainsKey(assembly.GetName().Name!)) + return; + _assemblies![assembly.GetName().Name!] = assembly; + foreach (var aname in assembly.GetReferencedAssemblies()) + { + try + { + Assembly refAssembly = mlc.LoadFromAssemblyName(aname); + Add(mlc, refAssembly); + } + catch (FileNotFoundException) + { + } + } + } +} + +class Resolver : MetadataAssemblyResolver +{ + List _searchPaths; + + public Resolver(List searchPaths) + { + _searchPaths = searchPaths; + } + + public override Assembly? Resolve(MetadataLoadContext context, AssemblyName assemblyName) + { + var name = assemblyName.Name; + foreach (var dir in _searchPaths) + { + var path = Path.Combine(dir, name + ".dll"); + if (File.Exists(path)) + { + return context.LoadFromAssemblyPath(path); + } + } + return null; + } +} diff --git a/tools-local/WasmAppBuilderConsole/WasmAppBuilderConsole.csproj b/tools-local/WasmAppBuilderConsole/WasmAppBuilderConsole.csproj new file mode 100644 index 0000000000000..3c647b0b0708a --- /dev/null +++ b/tools-local/WasmAppBuilderConsole/WasmAppBuilderConsole.csproj @@ -0,0 +1,13 @@ + + + + Exe + net5.0 + + + + + + + + From fedb93f6ed52ba83008c8eeb17e5c7356e103bcc Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 17 Aug 2020 00:23:54 -0400 Subject: [PATCH 078/185] Added publication of WasmAppBuilderConsole to test project. --- src/coreclr/tests/src/runtest.proj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/coreclr/tests/src/runtest.proj b/src/coreclr/tests/src/runtest.proj index aca7711d34440..dc5ee657d1d87 100644 --- a/src/coreclr/tests/src/runtest.proj +++ b/src/coreclr/tests/src/runtest.proj @@ -400,6 +400,10 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\",""). + + From 4658d6db422abc07279970093672763dc9b0266e Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 17 Aug 2020 01:06:16 -0400 Subject: [PATCH 079/185] Added restore to runtest. --- src/coreclr/tests/src/runtest.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/tests/src/runtest.proj b/src/coreclr/tests/src/runtest.proj index dc5ee657d1d87..08cca32853d72 100644 --- a/src/coreclr/tests/src/runtest.proj +++ b/src/coreclr/tests/src/runtest.proj @@ -401,7 +401,7 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\",""). Date: Mon, 17 Aug 2020 10:21:24 +0200 Subject: [PATCH 080/185] Fix path to test dll in Helix --- src/coreclr/tests/src/CLRTest.Execute.Bash.targets | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/coreclr/tests/src/CLRTest.Execute.Bash.targets b/src/coreclr/tests/src/CLRTest.Execute.Bash.targets index ef12415f6affe..55aa2ef0769de 100644 --- a/src/coreclr/tests/src/CLRTest.Execute.Bash.targets +++ b/src/coreclr/tests/src/CLRTest.Execute.Bash.targets @@ -269,12 +269,12 @@ fi # $__Command msbuild $CORE_ROOT/wasm-test-runner/WasmTestRunner.proj /p:TestAssembly=$(OutputPath)/$(MsBuildProjectName).dll /p:TestBinDir=`pwd` -TestAssembly=$(OutputPath)/$(MsBuildProjectName).dll -AppDir=`pwd`/WasmApp -MicrosoftNetCoreAppRuntimePackDir=$CORE_ROOT\runtimepack -MainJS="$CORE_ROOT\runtime-test\runtime-test.js" -AssemblySearchPaths="${MicrosoftNetCoreAppRuntimePackDir}\native%3B${MicrosoftNetCoreAppRuntimePackDir}\lib\$(NetCoreAppCurrent)%3B$CORE_ROOT/TargetingPack" - +TestDir=`pwd` +TestAssembly=$TestDir/$(MSBuildProjectName).dll +AppDir=$TestDir/WasmApp +MicrosoftNetCoreAppRuntimePackDir=$CORE_ROOT/runtimepack +MainJS="$CORE_ROOT/runtime-test/runtime-test.js" +AssemblySearchPaths="${MicrosoftNetCoreAppRuntimePackDir}/native%3B${MicrosoftNetCoreAppRuntimePackDir}/lib/$(NetCoreAppCurrent)%3B$CORE_ROOT/TargetingPack" $__Command $CORE_ROOT/WasmAppBuilderConsole/WasmAppBuilderConsole.dll mainassembly=$TestAssembly appdir=$AppDir microsoftnetcoreappruntimepackdir=$MicrosoftNetCoreAppRuntimePackDir mainjs=$MainJS assemblysearchpaths=$AssemblySearchPaths chmod u+x $AppDir/run-v8.sh From 93960400fe3ad36dcdc5768e754d2c13d970918f Mon Sep 17 00:00:00 2001 From: Tomas Rylek Date: Mon, 17 Aug 2020 11:48:20 +0200 Subject: [PATCH 081/185] Remove dirs.proj instrumentation limiting the run to a single test --- src/coreclr/tests/src/dirs.proj | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/coreclr/tests/src/dirs.proj b/src/coreclr/tests/src/dirs.proj index 1aeea72723586..50c31144d08b8 100644 --- a/src/coreclr/tests/src/dirs.proj +++ b/src/coreclr/tests/src/dirs.proj @@ -23,10 +23,9 @@ - - + - - @@ -295,8 +293,6 @@ - - %(PayloadDirectory) dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) dotnet $(XUnitRunnerDll) %(XUnitWrapperDlls) $(XUnitRunnerArgs) -trait TestGroup=%(TestGroup) From b13ac5ecdebdcb8151ef755a6a486794c87da833 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 17 Aug 2020 11:28:02 -0400 Subject: [PATCH 085/185] Fixed spelling error in comment. --- src/coreclr/tests/src/Directory.Build.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/tests/src/Directory.Build.targets b/src/coreclr/tests/src/Directory.Build.targets index a7f297bf9059b..02df61eb3c1f6 100644 --- a/src/coreclr/tests/src/Directory.Build.targets +++ b/src/coreclr/tests/src/Directory.Build.targets @@ -7,7 +7,7 @@ From 5691493ffc615f7561b6ef60cb3f1aa77e94953d Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 17 Aug 2020 11:32:45 -0400 Subject: [PATCH 086/185] Refactored wasm copy dependencies into a seperate ItemGroup. --- .../tests/src/Common/Directory.Build.targets | 32 ++++++++----------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/src/coreclr/tests/src/Common/Directory.Build.targets b/src/coreclr/tests/src/Common/Directory.Build.targets index 082f80688a4df..f6fa18d4e1415 100644 --- a/src/coreclr/tests/src/Common/Directory.Build.targets +++ b/src/coreclr/tests/src/Common/Directory.Build.targets @@ -85,31 +85,25 @@ Exclude="@(RunTimeArtifactsExcludeFiles -> '$(CoreCLRArtifactsPath)%(Identity)')" TargetDir="%(RunTimeArtifactsIncludeFolders.Identity)" /> - - + + - + Include="$(ArtifactsBinDir)microsoft.netcore.app.runtime.$(TargetOS.ToLower())-$(TargetArchitecture)\$(Configuration)\runtimes\$(TargetOS.ToLower())-$(TargetArchitecture)\**" + TargetDir="runtimepack/"/> - + + Condition="'$(TargetArchitecture)' == 'wasm'" + TargetDir="WasmAppBuilderConsole/"/> + + Date: Mon, 17 Aug 2020 11:41:46 -0400 Subject: [PATCH 087/185] Fixed syntax error in issues.targets. --- src/coreclr/tests/issues.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/tests/issues.targets b/src/coreclr/tests/issues.targets index 764620c7f7ebb..24b8a5810ac34 100644 --- a/src/coreclr/tests/issues.targets +++ b/src/coreclr/tests/issues.targets @@ -2729,7 +2729,7 @@ Depends on coreclr System.Private.CoreLib; can't be built for wasm. - Requires files to be included in wasm file system; don't have a per-test mechanisim for that yet. + Requires files to be included in wasm file system; don't have a per-test mechanisim for that yet. needs triage From 53bc489edfee7a55e5608e7969e071c062eb1905 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 17 Aug 2020 12:00:56 -0400 Subject: [PATCH 088/185] Fixed copy error. --- src/coreclr/scripts/coreclr_arguments.py | 3 ++- .../tests/src/Common/Directory.Build.targets | 18 +++++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/coreclr/scripts/coreclr_arguments.py b/src/coreclr/scripts/coreclr_arguments.py index a97216681c0d4..1617c50d5ae8d 100644 --- a/src/coreclr/scripts/coreclr_arguments.py +++ b/src/coreclr/scripts/coreclr_arguments.py @@ -227,6 +227,7 @@ def check_and_return_test_location(test_location): def check_and_return_default_core_root(core_root): + if core_root is not None: # core_root was specified on the command-line, so use that one. But verify it. return os.path.isdir(core_root) or not self.require_built_core_root @@ -234,7 +235,7 @@ def check_and_return_default_core_root(core_root): # No core_root specified; use a default location if possible. default_core_root = os.path.join(self.test_location, "Tests", "Core_Root") -l + if os.path.isdir(default_core_root) or not self.require_built_core_root: return default_core_root diff --git a/src/coreclr/tests/src/Common/Directory.Build.targets b/src/coreclr/tests/src/Common/Directory.Build.targets index f6fa18d4e1415..ad9fdcec6359d 100644 --- a/src/coreclr/tests/src/Common/Directory.Build.targets +++ b/src/coreclr/tests/src/Common/Directory.Build.targets @@ -89,21 +89,21 @@ - + + Include="$(ArtifactsDir)\TargetingPack\**" + TargetDir="TargetingPack/"/> + Include="$(ArtifactsBinDir)\WasmAppBuilderConsole\$(Configuration)\$(NetCoreAppCurrent)\publish\**" + TargetDir="WasmAppBuilderConsole/"/> + Include="$(MonoProjectRoot)\wasm\runtime-test.js" + TargetDir="runtime-test/"/> Date: Mon, 17 Aug 2020 12:34:29 -0400 Subject: [PATCH 089/185] Removed text in issues.targets. --- src/coreclr/tests/issues.targets | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/coreclr/tests/issues.targets b/src/coreclr/tests/issues.targets index 24b8a5810ac34..e3d377376c207 100644 --- a/src/coreclr/tests/issues.targets +++ b/src/coreclr/tests/issues.targets @@ -2731,6 +2731,12 @@ Requires files to be included in wasm file system; don't have a per-test mechanisim for that yet. + + needs triage + + + needs triage + needs triage From 093afd5470b57e84e0ce53b7ebff1d8c54ee3f49 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 17 Aug 2020 12:39:41 -0400 Subject: [PATCH 090/185] Removed intaller build/depedency. --- eng/pipelines/runtime.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 4f11a6f3bc573..660f4f4268d0a 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -159,13 +159,12 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_Mono_RuntimeTests - buildArgs: -s mono+libs+installer -c $(_BuildConfig) /p:ArchiveTests=true + buildArgs: -s mono+libs -c $(_BuildConfig) timeoutInMinutes: 120 condition: >- or( eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), - eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true), eq(variables['isFullMatrix'], true)) # extra steps, run tests extraStepsTemplate: /eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml From 6b50d5f51660748f54f636f04c488e02517b052a Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 17 Aug 2020 13:22:18 -0400 Subject: [PATCH 091/185] Fixed issue in issues.targets. --- src/coreclr/tests/issues.targets | 4 +- .../wasm/wasm-test-runner/WasmTestRunner.proj | 42 ------------------- 2 files changed, 2 insertions(+), 44 deletions(-) delete mode 100644 src/mono/wasm/wasm-test-runner/WasmTestRunner.proj diff --git a/src/coreclr/tests/issues.targets b/src/coreclr/tests/issues.targets index e3d377376c207..2bab56f0e9e94 100644 --- a/src/coreclr/tests/issues.targets +++ b/src/coreclr/tests/issues.targets @@ -2731,10 +2731,10 @@ Requires files to be included in wasm file system; don't have a per-test mechanisim for that yet. - + needs triage - + needs triage diff --git a/src/mono/wasm/wasm-test-runner/WasmTestRunner.proj b/src/mono/wasm/wasm-test-runner/WasmTestRunner.proj deleted file mode 100644 index be453e920b40a..0000000000000 --- a/src/mono/wasm/wasm-test-runner/WasmTestRunner.proj +++ /dev/null @@ -1,42 +0,0 @@ - - - Exe - bin - false - $(NetCoreAppCurrent) - wasm - Browser - $(CORE_ROOT)\runtimepack - $(MSBuildThisFileDirectory)\obj\$(Configuration)\wasm - $(TestBinDir)/WasmApp/ - browser-wasm - AnyCPU - - - - - - - - - - - - - - - - - - - - - - From e12639787579ad0f6a07f1f38a99b69d8f2122c1 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 17 Aug 2020 13:45:53 -0400 Subject: [PATCH 092/185] Reversed whitespace changes. --- src/coreclr/scripts/coreclr_arguments.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/coreclr/scripts/coreclr_arguments.py b/src/coreclr/scripts/coreclr_arguments.py index 1617c50d5ae8d..df777d1a6b8f8 100644 --- a/src/coreclr/scripts/coreclr_arguments.py +++ b/src/coreclr/scripts/coreclr_arguments.py @@ -226,16 +226,12 @@ def check_and_return_test_location(test_location): return test_location def check_and_return_default_core_root(core_root): - - if core_root is not None: # core_root was specified on the command-line, so use that one. But verify it. return os.path.isdir(core_root) or not self.require_built_core_root # No core_root specified; use a default location if possible. - default_core_root = os.path.join(self.test_location, "Tests", "Core_Root") - if os.path.isdir(default_core_root) or not self.require_built_core_root: return default_core_root From e1100245fb19329db1aef1235937509c1a1e4918 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 17 Aug 2020 13:47:32 -0400 Subject: [PATCH 093/185] Reversed more whitespace changes, extra logging. --- src/coreclr/build-test.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/coreclr/build-test.sh b/src/coreclr/build-test.sh index 26023761907a5..c91f49e1ec380 100755 --- a/src/coreclr/build-test.sh +++ b/src/coreclr/build-test.sh @@ -35,7 +35,6 @@ build_test_wrappers() nextCommand="\"${__DotNetCli}\" msbuild \"${__ProjectDir}/tests/src/runtest.proj\" /nodereuse:false /p:BuildWrappers=true /p:TestBuildMode=$__TestBuildMode /p:TargetsWindows=false $__Logging /p:TargetOS=$__TargetOS /p:Configuration=$__BuildType /p:TargetArchitecture=$__BuildArch /p:RuntimeFlavor=$__RuntimeFlavor \"/bl:${__RepoRootDir}/artifacts/log/${__BuildType}/build_test_wrappers_${__RuntimeFlavor}.binlog\" ${__UnprocessedBuildArgs[@]}" eval $nextCommand - local exitCode="$?" if [[ "$exitCode" -ne 0 ]]; then echo "${__ErrMsgPrefix}${__MsgPrefix}Error: XUnit wrapper build failed. Refer to the build log files for details (above)" @@ -475,7 +474,6 @@ build_MSBuild_projects() buildArgs+=("${__UnprocessedBuildArgs[@]}") buildArgs+=("\"/p:CopyNativeProjectBinaries=${__CopyNativeProjectsAfterCombinedTestBuild}\""); buildArgs+=("/p:__SkipPackageRestore=true"); - buildArgs+=("/bl:testlog.binlog") # Disable warnAsError - coreclr issue 19922 nextCommand="\"$__RepoRootDir/eng/common/msbuild.sh\" $__ArcadeScriptArgs --warnAsError false ${buildArgs[@]}" From 2670c1d16391ffccbd2f0194f5598b4e7d606bfd Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 17 Aug 2020 14:28:57 -0400 Subject: [PATCH 094/185] Fixed typo. --- src/coreclr/tests/dir.traversal.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/tests/dir.traversal.targets b/src/coreclr/tests/dir.traversal.targets index 40645af6961c2..92e397771152c 100644 --- a/src/coreclr/tests/dir.traversal.targets +++ b/src/coreclr/tests/dir.traversal.targets @@ -14,7 +14,7 @@ Properties="Dummy=%(Identity);DefaultBuildAllTarget=$(DefaultBuildAllTarget);BuildAllProjects=true" ContinueOnError="ErrorAndContinue" /> - Date: Mon, 17 Aug 2020 14:36:37 -0400 Subject: [PATCH 095/185] Fixed spacing, typos, binlog name. --- src/coreclr/tests/runtest.py | 3 +-- src/coreclr/tests/runtest.sh | 2 -- src/coreclr/tests/src/dirs.proj | 6 +++--- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/coreclr/tests/runtest.py b/src/coreclr/tests/runtest.py index c13ecaa05323f..7f4bf57745772 100755 --- a/src/coreclr/tests/runtest.py +++ b/src/coreclr/tests/runtest.py @@ -641,7 +641,7 @@ def call_msbuild(args): "/p:Configuration=%s" % args.build_type, "/p:__LogsDir=%s" % args.logs_dir] - command += ["/bl:runtest.binlog"] + command += ["/bl:%s.binlog" % (log_path)] print(" ".join(command)) @@ -1638,7 +1638,6 @@ def main(args): ################################################################################ if __name__ == "__main__": - print(" !!! runtest.py: main") print(sys.argv) args = parser.parse_args() diff --git a/src/coreclr/tests/runtest.sh b/src/coreclr/tests/runtest.sh index 2acd2b44d13ec..fdd61799a32a6 100755 --- a/src/coreclr/tests/runtest.sh +++ b/src/coreclr/tests/runtest.sh @@ -312,8 +312,6 @@ export COMPlus_gcServer="$serverGC" # Runtest.py ################################################################################ - - runtestPyArguments=("-arch" "${buildArch}" "-build_type" "${buildConfiguration}") scriptPath="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" diff --git a/src/coreclr/tests/src/dirs.proj b/src/coreclr/tests/src/dirs.proj index 4d6cdb75f1c44..50c31144d08b8 100644 --- a/src/coreclr/tests/src/dirs.proj +++ b/src/coreclr/tests/src/dirs.proj @@ -23,9 +23,9 @@ - - - + + + + @@ -391,9 +391,6 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\",""). - - - diff --git a/src/coreclr/tests/tests.targets b/src/coreclr/tests/tests.targets index 0da1c3edddbf0..d09affaa75037 100644 --- a/src/coreclr/tests/tests.targets +++ b/src/coreclr/tests/tests.targets @@ -73,7 +73,6 @@ $(CorerunExecutable) $(XunitConsoleRunner) @(TestAssemblies->'%(Identity)', ' ') $(XunitArgs) - From f566dd7b519d12fa00aaf49d621f99bfcfa16349 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 17 Aug 2020 14:53:17 -0400 Subject: [PATCH 099/185] Fixed copywrite header. --- tools-local/WasmAppBuilderConsole/Program.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/tools-local/WasmAppBuilderConsole/Program.cs b/tools-local/WasmAppBuilderConsole/Program.cs index b2268dcaef240..92f668e102427 100644 --- a/tools-local/WasmAppBuilderConsole/Program.cs +++ b/tools-local/WasmAppBuilderConsole/Program.cs @@ -1,4 +1,3 @@ -// -*- indent-tabs-mode: nil -*- // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. From 4c4d5ce590e46327f00273735ec396a47baffec4 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 17 Aug 2020 14:53:49 -0400 Subject: [PATCH 100/185] Excluded JitBench test from build. --- .../Scenario/JitBench/unofficial_dotnet/JitBench.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/performance/Scenario/JitBench/unofficial_dotnet/JitBench.csproj b/src/tests/performance/Scenario/JitBench/unofficial_dotnet/JitBench.csproj index e00e28e1f547b..81ad5b9512c1e 100644 --- a/src/tests/performance/Scenario/JitBench/unofficial_dotnet/JitBench.csproj +++ b/src/tests/performance/Scenario/JitBench/unofficial_dotnet/JitBench.csproj @@ -7,7 +7,7 @@ Release Exe netcoreapp2.0 - + true .NETCoreApp,Version=v2.0 netcoreapp2.0 From a5ad041b63222c133246f5949105448d0a3600ae Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 17 Aug 2020 14:56:38 -0400 Subject: [PATCH 101/185] REmoved redundant DotNetCliRuntime setting. --- src/coreclr/tests/helixpublishwitharcade.proj | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index 666cb9d843c42..5e8c83336edee 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -16,7 +16,7 @@ <_PropertiesToPass> TargetArchitecture=$(TargetArchitecture); - TargetOS=$(__TargetOS); + TargetOS=$(TargetOS); Configuration=$(Configuration); Creator=$(_Creator); HelixAccessToken=$(_HelixAccessToken); @@ -89,9 +89,6 @@ runtime $(BundledNETCoreAppPackageVersion) $(HelixRuntimeRid) - - - osx-x64 From b4855df3d7ad69365a9a1084a4faa6a1b898dcae Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 17 Aug 2020 16:55:07 -0400 Subject: [PATCH 102/185] Added back missing / --- src/coreclr/tests/src/dirs.proj | 8 ++++---- src/coreclr/tests/src/runtest.proj | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/coreclr/tests/src/dirs.proj b/src/coreclr/tests/src/dirs.proj index 50c31144d08b8..9656ac5da61c9 100644 --- a/src/coreclr/tests/src/dirs.proj +++ b/src/coreclr/tests/src/dirs.proj @@ -3,7 +3,7 @@ - $(RepoRoot)src\tests + $(RepoRoot)src\tests\ @@ -23,9 +23,9 @@ - - - + + + - + From 51a0e06c5d5d780efdee9ca81df8ebcfa5b37d63 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 17 Aug 2020 18:47:49 -0400 Subject: [PATCH 103/185] Added ci flag, explicitly set TargetOS in send to helix step. --- eng/pipelines/common/templates/runtimes/send-to-helix-step.yml | 2 +- .../templates/runtimes/wasm-runtime-and-send-to-helix.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml index 3602929653dc3..3eb27beae4255 100644 --- a/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml +++ b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml @@ -76,7 +76,7 @@ steps: # Arcade uses this SDK instead of trying to restore one. DotNetCoreSdkDir: /usr/local/dotnet - - script: $(Build.SourcesDirectory)/eng/common/msbuild.sh --ci ${{ parameters.helixProjectArguments }} /maxcpucount /bl:$(Build.SourcesDirectory)/artifacts/log/SendToHelix.binlog + - script: $(Build.SourcesDirectory)/eng/common/msbuild.sh --ci ${{ parameters.helixProjectArguments }} /maxcpucount /p:TargetOS=${{ parameters.osGroup }} /bl:$(Build.SourcesDirectory)/artifacts/log/SendToHelix.binlog displayName: ${{ parameters.displayName }} ${{ if ne(parameters.condition, '') }}: condition: ${{ parameters.condition }} diff --git a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml index ab4ef15766236..21d80ce19f69b 100644 --- a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml @@ -30,7 +30,7 @@ parameters: steps: - - script: $(Build.SourcesDirectory)/src/coreclr/build-test$(scriptExt) /p:LibrariesConfiguration=${{ parameters.buildConfig }} -skipnative -skipstressdependencies -excludemonofailures os Browser wasm + - script: $(Build.SourcesDirectory)/src/coreclr/build-test$(scriptExt) /p:LibrariesConfiguration=${{ parameters.buildConfig }} -ci -skipnative -skipstressdependencies -excludemonofailures os Browser wasm displayName: Build Tests # Send tests to Helix From c7696c6d65aeaa0572eccf81dcda15e747bf55bd Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 17 Aug 2020 18:54:57 -0400 Subject: [PATCH 104/185] Added missing __ in sendtohelixwitharcade.proj; removed explicit targetos in send-to-helix-step. --- .../common/templates/runtimes/send-to-helix-step.yml | 2 +- src/coreclr/tests/helixpublishwitharcade.proj | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml index 3eb27beae4255..3602929653dc3 100644 --- a/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml +++ b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml @@ -76,7 +76,7 @@ steps: # Arcade uses this SDK instead of trying to restore one. DotNetCoreSdkDir: /usr/local/dotnet - - script: $(Build.SourcesDirectory)/eng/common/msbuild.sh --ci ${{ parameters.helixProjectArguments }} /maxcpucount /p:TargetOS=${{ parameters.osGroup }} /bl:$(Build.SourcesDirectory)/artifacts/log/SendToHelix.binlog + - script: $(Build.SourcesDirectory)/eng/common/msbuild.sh --ci ${{ parameters.helixProjectArguments }} /maxcpucount /bl:$(Build.SourcesDirectory)/artifacts/log/SendToHelix.binlog displayName: ${{ parameters.displayName }} ${{ if ne(parameters.condition, '') }}: condition: ${{ parameters.condition }} diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index 5e8c83336edee..d3011272f6e1d 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -15,9 +15,9 @@ <_PropertiesToPass> - TargetArchitecture=$(TargetArchitecture); - TargetOS=$(TargetOS); - Configuration=$(Configuration); + TargetArchitecture=$(__TargetArchitecture); + TargetOS=$(__TargetOS); + Configuration=$(__Configuration); Creator=$(_Creator); HelixAccessToken=$(_HelixAccessToken); HelixBuild=$(_HelixBuild); From 8ae6954fbc7676b555a225d8f8096e722e0abe94 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 17 Aug 2020 19:11:59 -0400 Subject: [PATCH 105/185] Fixed names of paramters. --- src/coreclr/tests/helixpublishwitharcade.proj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index d3011272f6e1d..b0be7ecf280e0 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -15,9 +15,9 @@ <_PropertiesToPass> - TargetArchitecture=$(__TargetArchitecture); + TargetArchitecture=$(__BuildArch); TargetOS=$(__TargetOS); - Configuration=$(__Configuration); + Configuration=$(__BuildType); Creator=$(_Creator); HelixAccessToken=$(_HelixAccessToken); HelixBuild=$(_HelixBuild); From 37d3aa6e03a5d55a65b45be327b99751fce249fe Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 17 Aug 2020 21:03:27 -0400 Subject: [PATCH 106/185] Added back explicit targetOS setting. --- eng/pipelines/common/templates/runtimes/send-to-helix-step.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml index 3602929653dc3..5c6c8216b1d55 100644 --- a/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml +++ b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml @@ -76,7 +76,7 @@ steps: # Arcade uses this SDK instead of trying to restore one. DotNetCoreSdkDir: /usr/local/dotnet - - script: $(Build.SourcesDirectory)/eng/common/msbuild.sh --ci ${{ parameters.helixProjectArguments }} /maxcpucount /bl:$(Build.SourcesDirectory)/artifacts/log/SendToHelix.binlog + - script: $(Build.SourcesDirectory)/eng/common/msbuild.sh --ci ${{ parameters.helixProjectArguments }} /maxcpucount /p:TargetOS=${{ parameters.osGroup }} /bl:$(Build.SourcesDirectory)/artifacts/log/SendToHelix.binlog displayName: ${{ parameters.displayName }} ${{ if ne(parameters.condition, '') }}: condition: ${{ parameters.condition }} From a8aa04d94debf762241ba11c6f4af246d4d5113f Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 17 Aug 2020 21:20:29 -0400 Subject: [PATCH 107/185] Got rid of erroneous }} --- eng/pipelines/common/templates/runtimes/send-to-helix-step.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml index 31f338e4228ef..48b13939877da 100644 --- a/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml +++ b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml @@ -31,7 +31,7 @@ steps: osGroup: ${{ parameters.osGroup }} restoreParams: /p:DotNetPublishToBlobFeed=true -restore -projects $(Build.SourcesDirectory)$(dir)eng$(dir)empty.csproj sendParams: ${{ parameters.helixProjectArguments }} /p:TargetOS=${{ parameters.osGroup }} /maxcpucount /bl:$(Build.SourcesDirectory)/artifacts/log/SendToHelix.binlog - condition: and(succeeded(), ${{ parameters.condition }})}} + condition: and(succeeded(), ${{ parameters.condition }}) displayName: ${{ parameters.displayName }} environment: __BuildArch: ${{ parameters.archType }} From b2a80e30056fe77bcea6ceb0ba77da96e4b2b21e Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 18 Aug 2020 00:08:08 -0400 Subject: [PATCH 108/185] Added failing tests to issues.targets. Send config, arch explicitl in send-to-helix-step. --- .../templates/runtimes/send-to-helix-step.yml | 4 +- src/coreclr/tests/issues.targets | 172 ++++++++++++++++++ 2 files changed, 174 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml index 48b13939877da..802584bc405eb 100644 --- a/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml +++ b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml @@ -30,8 +30,8 @@ steps: parameters: osGroup: ${{ parameters.osGroup }} restoreParams: /p:DotNetPublishToBlobFeed=true -restore -projects $(Build.SourcesDirectory)$(dir)eng$(dir)empty.csproj - sendParams: ${{ parameters.helixProjectArguments }} /p:TargetOS=${{ parameters.osGroup }} /maxcpucount /bl:$(Build.SourcesDirectory)/artifacts/log/SendToHelix.binlog - condition: and(succeeded(), ${{ parameters.condition }}) + sendParams: ${{ parameters.helixProjectArguments }} /p:TargetOS=${{ parameters.osGroup }} /p:TargetArcitecture=${{ parameters.archType }} /p:Configuration={{ parameters.buildConfig }} /maxcpucount /bl:$(Build.SourcesDirectory)/artifacts/log/SendToHelix.binlog + condition: and(succeeded(), ${{ parameters.condition }} displayName: ${{ parameters.displayName }} environment: __BuildArch: ${{ parameters.archType }} diff --git a/src/coreclr/tests/issues.targets b/src/coreclr/tests/issues.targets index 72a1accf92f31..e177055eac2df 100644 --- a/src/coreclr/tests/issues.targets +++ b/src/coreclr/tests/issues.targets @@ -6403,5 +6403,177 @@ needs triage + + Times out;needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + From c7ced6a6f4bdf3eed5fc04fae887c1f2d5aabf48 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 18 Aug 2020 00:11:33 -0400 Subject: [PATCH 109/185] Added missing ) --- eng/pipelines/common/templates/runtimes/send-to-helix-step.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml index 802584bc405eb..5b9dd74f413d5 100644 --- a/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml +++ b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml @@ -31,7 +31,7 @@ steps: osGroup: ${{ parameters.osGroup }} restoreParams: /p:DotNetPublishToBlobFeed=true -restore -projects $(Build.SourcesDirectory)$(dir)eng$(dir)empty.csproj sendParams: ${{ parameters.helixProjectArguments }} /p:TargetOS=${{ parameters.osGroup }} /p:TargetArcitecture=${{ parameters.archType }} /p:Configuration={{ parameters.buildConfig }} /maxcpucount /bl:$(Build.SourcesDirectory)/artifacts/log/SendToHelix.binlog - condition: and(succeeded(), ${{ parameters.condition }} + condition: and(succeeded(), ${{ parameters.condition }}) displayName: ${{ parameters.displayName }} environment: __BuildArch: ${{ parameters.archType }} From f8a62a6bbb3e6a7617947a2cd9088e3c3db05d5a Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 18 Aug 2020 01:12:02 -0400 Subject: [PATCH 110/185] Added missing $ --- eng/pipelines/common/templates/runtimes/send-to-helix-step.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml index 5b9dd74f413d5..1d58835b8f1a0 100644 --- a/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml +++ b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml @@ -30,7 +30,7 @@ steps: parameters: osGroup: ${{ parameters.osGroup }} restoreParams: /p:DotNetPublishToBlobFeed=true -restore -projects $(Build.SourcesDirectory)$(dir)eng$(dir)empty.csproj - sendParams: ${{ parameters.helixProjectArguments }} /p:TargetOS=${{ parameters.osGroup }} /p:TargetArcitecture=${{ parameters.archType }} /p:Configuration={{ parameters.buildConfig }} /maxcpucount /bl:$(Build.SourcesDirectory)/artifacts/log/SendToHelix.binlog + sendParams: ${{ parameters.helixProjectArguments }} /p:TargetOS=${{ parameters.osGroup }} /p:TargetArcitecture=${{ parameters.archType }} /p:Configuration=${{ parameters.buildConfig }} /maxcpucount /bl:$(Build.SourcesDirectory)/artifacts/log/SendToHelix.binlog condition: and(succeeded(), ${{ parameters.condition }}) displayName: ${{ parameters.displayName }} environment: From bd4ccba5517229d969017c7629dbdaebfeed6784 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 18 Aug 2020 11:06:36 -0400 Subject: [PATCH 111/185] Try not setting arch, config. --- eng/pipelines/common/templates/runtimes/send-to-helix-step.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml index 1d58835b8f1a0..48b13939877da 100644 --- a/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml +++ b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml @@ -30,7 +30,7 @@ steps: parameters: osGroup: ${{ parameters.osGroup }} restoreParams: /p:DotNetPublishToBlobFeed=true -restore -projects $(Build.SourcesDirectory)$(dir)eng$(dir)empty.csproj - sendParams: ${{ parameters.helixProjectArguments }} /p:TargetOS=${{ parameters.osGroup }} /p:TargetArcitecture=${{ parameters.archType }} /p:Configuration=${{ parameters.buildConfig }} /maxcpucount /bl:$(Build.SourcesDirectory)/artifacts/log/SendToHelix.binlog + sendParams: ${{ parameters.helixProjectArguments }} /p:TargetOS=${{ parameters.osGroup }} /maxcpucount /bl:$(Build.SourcesDirectory)/artifacts/log/SendToHelix.binlog condition: and(succeeded(), ${{ parameters.condition }}) displayName: ${{ parameters.displayName }} environment: From e5527425535c526f775e0334e7cdbd402cf04346 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 18 Aug 2020 11:20:24 -0400 Subject: [PATCH 112/185] Added missing h. --- eng/pipelines/common/templates/runtimes/send-to-helix-step.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml index 48b13939877da..5da640eddcec6 100644 --- a/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml +++ b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml @@ -30,7 +30,7 @@ steps: parameters: osGroup: ${{ parameters.osGroup }} restoreParams: /p:DotNetPublishToBlobFeed=true -restore -projects $(Build.SourcesDirectory)$(dir)eng$(dir)empty.csproj - sendParams: ${{ parameters.helixProjectArguments }} /p:TargetOS=${{ parameters.osGroup }} /maxcpucount /bl:$(Build.SourcesDirectory)/artifacts/log/SendToHelix.binlog + sendParams: ${{ parameters.helixProjectArguments }} /p:TargetOS=${{ parameters.osGroup }} /p:TargetArchitecture=${{ parameters.archType }} /p:Configuration=${{ parameters.buildConfig }} /maxcpucount /bl:$(Build.SourcesDirectory)/artifacts/log/SendToHelix.binlog condition: and(succeeded(), ${{ parameters.condition }}) displayName: ${{ parameters.displayName }} environment: From c07189d3bf65b41e78d722c1e4a898097600d647 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 18 Aug 2020 12:40:43 -0400 Subject: [PATCH 113/185] Changed back to using WasmAppBuilder. --- .../tests/src/CLRTest.Execute.Bash.targets | 11 +---- .../wasm/wasm-test-runner/WasmTestRunner.proj | 42 +++++++++++++++++++ 2 files changed, 43 insertions(+), 10 deletions(-) create mode 100644 src/mono/wasm/wasm-test-runner/WasmTestRunner.proj diff --git a/src/coreclr/tests/src/CLRTest.Execute.Bash.targets b/src/coreclr/tests/src/CLRTest.Execute.Bash.targets index 55aa2ef0769de..7943364b2c5d3 100644 --- a/src/coreclr/tests/src/CLRTest.Execute.Bash.targets +++ b/src/coreclr/tests/src/CLRTest.Execute.Bash.targets @@ -267,17 +267,8 @@ else __Command+=" dotnet" fi -# $__Command msbuild $CORE_ROOT/wasm-test-runner/WasmTestRunner.proj /p:TestAssembly=$(OutputPath)/$(MsBuildProjectName).dll /p:TestBinDir=`pwd` +$__Command msbuild $CORE_ROOT/wasm-test-runner/WasmTestRunner.proj /p:TestAssembly=$(OutputPath)/$(MsBuildProjectName).dll /p:TestBinDir=`pwd` -TestDir=`pwd` -TestAssembly=$TestDir/$(MSBuildProjectName).dll -AppDir=$TestDir/WasmApp -MicrosoftNetCoreAppRuntimePackDir=$CORE_ROOT/runtimepack -MainJS="$CORE_ROOT/runtime-test/runtime-test.js" -AssemblySearchPaths="${MicrosoftNetCoreAppRuntimePackDir}/native%3B${MicrosoftNetCoreAppRuntimePackDir}/lib/$(NetCoreAppCurrent)%3B$CORE_ROOT/TargetingPack" - -$__Command $CORE_ROOT/WasmAppBuilderConsole/WasmAppBuilderConsole.dll mainassembly=$TestAssembly appdir=$AppDir microsoftnetcoreappruntimepackdir=$MicrosoftNetCoreAppRuntimePackDir mainjs=$MainJS assemblysearchpaths=$AssemblySearchPaths -chmod u+x $AppDir/run-v8.sh ]]> diff --git a/src/mono/wasm/wasm-test-runner/WasmTestRunner.proj b/src/mono/wasm/wasm-test-runner/WasmTestRunner.proj new file mode 100644 index 0000000000000..be453e920b40a --- /dev/null +++ b/src/mono/wasm/wasm-test-runner/WasmTestRunner.proj @@ -0,0 +1,42 @@ + + + Exe + bin + false + $(NetCoreAppCurrent) + wasm + Browser + $(CORE_ROOT)\runtimepack + $(MSBuildThisFileDirectory)\obj\$(Configuration)\wasm + $(TestBinDir)/WasmApp/ + browser-wasm + AnyCPU + + + + + + + + + + + + + + + + + + + + + + From d349580efb1ff4c3ea8d74c3cd10eab9de5cd7f7 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 18 Aug 2020 14:48:48 -0400 Subject: [PATCH 114/185] Changed back to using app builder task. --- src/coreclr/tests/helixpublishwitharcade.proj | 11 +- .../tests/src/Common/Directory.Build.targets | 8 +- src/coreclr/tests/src/runtest.proj | 9 +- tools-local/WasmAppBuilderConsole/Program.cs | 232 ------------------ .../WasmAppBuilderConsole.csproj | 13 - 5 files changed, 15 insertions(+), 258 deletions(-) delete mode 100644 tools-local/WasmAppBuilderConsole/Program.cs delete mode 100644 tools-local/WasmAppBuilderConsole/WasmAppBuilderConsole.csproj diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index b0be7ecf280e0..577ba03a9b770 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -15,9 +15,9 @@ <_PropertiesToPass> - TargetArchitecture=$(__BuildArch); - TargetOS=$(__TargetOS); - Configuration=$(__BuildType); + TargetArchitecture=$(TargetArchitecture); + TargetOS=$(TargetOS); + Configuration=$(Configuration); Creator=$(_Creator); HelixAccessToken=$(_HelixAccessToken); HelixBuild=$(_HelixBuild); @@ -40,7 +40,10 @@ <_PropertiesToPass Condition="'$(TargetArchitecture)' == 'wasm' "> - $(_PropertiesToPass);IncludeDotNetCli=true;DotNetCliRuntime=linux-x64 + $(_PropertiesToPass); + IncludeDotNetCli=true; + DotNetCliRuntime=linux-x64; + DotNetCliPackageType=sdk diff --git a/src/coreclr/tests/src/Common/Directory.Build.targets b/src/coreclr/tests/src/Common/Directory.Build.targets index ad9fdcec6359d..62416cb9a6c0f 100644 --- a/src/coreclr/tests/src/Common/Directory.Build.targets +++ b/src/coreclr/tests/src/Common/Directory.Build.targets @@ -98,8 +98,12 @@ TargetDir="TargetingPack/"/> + Include="$(ArtifactsBinDir)\WasmAppBuilder\$(Configuration)\$(NetCoreAppCurrent)\publish\**" + TargetDir="WasmAppBuilder/"/> + + - + @@ -388,8 +388,7 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\",""). - - + @@ -397,10 +396,6 @@ namespace $([System.String]::Copy($(Category)).Replace(".","_").Replace("\",""). - - diff --git a/tools-local/WasmAppBuilderConsole/Program.cs b/tools-local/WasmAppBuilderConsole/Program.cs deleted file mode 100644 index 92f668e102427..0000000000000 --- a/tools-local/WasmAppBuilderConsole/Program.cs +++ /dev/null @@ -1,232 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Collections.Generic; -using System.Collections.Immutable; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Text; -using System.Text.Json; -using System.Text.Json.Serialization; -using System.Reflection; - -public class WasmAppBuilder -{ - // FIXME: Document - private string AppDir; - public string MicrosoftNetCoreAppRuntimePackDir; - private string MainAssembly; - private string MainJS; - private string[] AssemblySearchPaths; - private int DebugLevel; - private bool InvariantGlobalization; - - public WasmAppBuilder(string appDir, string microsoftNetCoreAppRuntimePackDir, string mainAssembly, string mainJS, string[] assemblySearchPaths) - { - this.AppDir = appDir; - this.MicrosoftNetCoreAppRuntimePackDir=microsoftNetCoreAppRuntimePackDir; - this.MainAssembly = mainAssembly; - this.MainJS = mainJS; - this.AssemblySearchPaths = assemblySearchPaths; - } - - SortedDictionary? _assemblies; - Resolver? _resolver; - - private class WasmAppConfig - { - [JsonPropertyName("assembly_root")] - public string AssemblyRoot { get; set; } = "managed"; - [JsonPropertyName("debug_level")] - public int DebugLevel { get; set; } = 0; - [JsonPropertyName("assets")] - public List Assets { get; } = new List(); - [JsonPropertyName("remote_sources")] - public List RemoteSources { get; set; } = new List(); - } - - private class AssetEntry { - protected AssetEntry (string name, string behavior) - { - Name = name; - Behavior = behavior; - } - [JsonPropertyName("behavior")] - public string Behavior { get; init; } - [JsonPropertyName("name")] - public string Name { get; init; } - } - - private class AssemblyEntry : AssetEntry - { - public AssemblyEntry(string name) : base(name, "assembly") {} - } - - private class VfsEntry : AssetEntry { - public VfsEntry(string name) : base(name, "vfs") {} - [JsonPropertyName("virtual_path")] - public string? VirtualPath { get; set; } - } - - private class IcuData : AssetEntry { - public IcuData(string name = "icudt.dat") : base(name, "icu") {} - [JsonPropertyName("load_remote")] - public bool LoadRemote { get; set; } - } - - public static void Main(string[] argv) - { - Dictionary parsedArgs = parseArguments(argv); - - Console.WriteLine("---Arguments---"); - foreach (KeyValuePair argValue in parsedArgs) - { - Console.WriteLine($"{argValue.Key}: {argValue.Value} "); - } - - - string[] assemblySearchPaths = parsedArgs["assemblysearchpaths"].Split(";"); - - - new WasmAppBuilder(parsedArgs["appdir"], - parsedArgs["microsoftnetcoreappruntimepackdir"], - parsedArgs["mainassembly"], - parsedArgs["mainjs"], - assemblySearchPaths).Execute(); - } - - private static Dictionary parseArguments(string[] arguments) - { - Dictionary argumentMap = new Dictionary(); - - foreach (string arg in arguments) - { - if (arg.Contains("=")) - { - string[] keyValue = arg.Split("="); - argumentMap.Add(keyValue[0], keyValue[1]); - } - } - - return argumentMap; - } - - public bool Execute () - { - if (!File.Exists(MainAssembly)) - throw new ArgumentException($"File MainAssembly='{MainAssembly}' doesn't exist."); - if (!File.Exists(MainJS)) - throw new ArgumentException($"File MainJS='{MainJS}' doesn't exist."); - - var paths = new List(); - _assemblies = new SortedDictionary(); - - // Collect and load assemblies used by the app - foreach (string dir in AssemblySearchPaths) - { - if (!Directory.Exists(dir)) - throw new ArgumentException($"Directory '{dir}' doesn't exist or not a directory."); - paths.Add(dir); - } - _resolver = new Resolver(paths); - var mlc = new MetadataLoadContext(_resolver, "System.Private.CoreLib"); - - var mainAssembly = mlc.LoadFromAssemblyPath(MainAssembly); - Add(mlc, mainAssembly); - - var config = new WasmAppConfig (); - - // Create app - Directory.CreateDirectory(AppDir!); - Directory.CreateDirectory(Path.Join(AppDir, config.AssemblyRoot)); - foreach (var assembly in _assemblies!.Values) { - File.Copy(assembly.Location, Path.Join(AppDir, config.AssemblyRoot, Path.GetFileName(assembly.Location)), true); - if (DebugLevel > 0) { - var pdb = assembly.Location; - pdb = Path.ChangeExtension(pdb, ".pdb"); - if (File.Exists(pdb)) - File.Copy(pdb, Path.Join(AppDir, config.AssemblyRoot, Path.GetFileName(pdb)), true); - } - } - - List nativeAssets = new List() { "dotnet.wasm", "dotnet.js", "dotnet.timezones.blat" }; - - if (!InvariantGlobalization) - { - nativeAssets.Add("icudt.dat"); - } - - foreach (var f in nativeAssets) - File.Copy(Path.Join (MicrosoftNetCoreAppRuntimePackDir, "native", f), Path.Join(AppDir, f), true); - File.Copy(MainJS!, Path.Join(AppDir, "runtime.js"), true); - - foreach (var assembly in _assemblies.Values) { - config.Assets.Add(new AssemblyEntry (Path.GetFileName(assembly.Location))); - if (DebugLevel > 0) { - var pdb = assembly.Location; - pdb = Path.ChangeExtension(pdb, ".pdb"); - if (File.Exists(pdb)) - config.Assets.Add(new AssemblyEntry (Path.GetFileName(pdb))); - } - } - - config.DebugLevel = DebugLevel; - - using (var sw = File.CreateText(Path.Join(AppDir, "mono-config.js"))) - { - var json = JsonSerializer.Serialize (config, new JsonSerializerOptions { WriteIndented = true }); - sw.Write($"config = {json};"); - } - - using (var sw = File.CreateText(Path.Join(AppDir, "run-v8.sh"))) - { - sw.WriteLine("v8 --expose_wasm runtime.js -- --run " + Path.GetFileName(MainAssembly) + " $*"); - } - - return true; - } - - private void Add(MetadataLoadContext mlc, Assembly assembly) - { - if (_assemblies!.ContainsKey(assembly.GetName().Name!)) - return; - _assemblies![assembly.GetName().Name!] = assembly; - foreach (var aname in assembly.GetReferencedAssemblies()) - { - try - { - Assembly refAssembly = mlc.LoadFromAssemblyName(aname); - Add(mlc, refAssembly); - } - catch (FileNotFoundException) - { - } - } - } -} - -class Resolver : MetadataAssemblyResolver -{ - List _searchPaths; - - public Resolver(List searchPaths) - { - _searchPaths = searchPaths; - } - - public override Assembly? Resolve(MetadataLoadContext context, AssemblyName assemblyName) - { - var name = assemblyName.Name; - foreach (var dir in _searchPaths) - { - var path = Path.Combine(dir, name + ".dll"); - if (File.Exists(path)) - { - return context.LoadFromAssemblyPath(path); - } - } - return null; - } -} diff --git a/tools-local/WasmAppBuilderConsole/WasmAppBuilderConsole.csproj b/tools-local/WasmAppBuilderConsole/WasmAppBuilderConsole.csproj deleted file mode 100644 index 3c647b0b0708a..0000000000000 --- a/tools-local/WasmAppBuilderConsole/WasmAppBuilderConsole.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - - Exe - net5.0 - - - - - - - - From 9a4f0cff9cf6fdb236f1f8257bce47944bfe3272 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 18 Aug 2020 16:58:15 -0400 Subject: [PATCH 115/185] Removed bad wild card from issues.targets. --- src/coreclr/tests/issues.targets | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/coreclr/tests/issues.targets b/src/coreclr/tests/issues.targets index e177055eac2df..8a44dd306ec29 100644 --- a/src/coreclr/tests/issues.targets +++ b/src/coreclr/tests/issues.targets @@ -6571,9 +6571,5 @@ needs triage - - needs triage - - From 37b8623fbc43de39c7f607595594afdb932d2e6d Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 18 Aug 2020 21:11:04 -0400 Subject: [PATCH 116/185] Changed other runtime to sdk. --- src/coreclr/tests/helixpublishwitharcade.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index 577ba03a9b770..1f44833ae68f0 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -89,7 +89,7 @@ SetStressModes_$(Scenario).sh true - runtime + sdk $(BundledNETCoreAppPackageVersion) $(HelixRuntimeRid) From ee3e28d5e6ed2fd209dc096696db6570e8047444 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 18 Aug 2020 21:13:05 -0400 Subject: [PATCH 117/185] Changed DotnetRuntimeCli --- src/coreclr/tests/helixpublishwitharcade.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index 1f44833ae68f0..9dc4657155ea3 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -91,7 +91,7 @@ true sdk $(BundledNETCoreAppPackageVersion) - $(HelixRuntimeRid) + linux-x64 From 9fcd36276a5b45b2aafffe7be32be8151027e9c6 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Tue, 18 Aug 2020 22:12:35 -0400 Subject: [PATCH 118/185] Propagate skd version. --- src/coreclr/tests/helixpublishwitharcade.proj | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index 9dc4657155ea3..cda66c41d96bb 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -43,7 +43,8 @@ $(_PropertiesToPass); IncludeDotNetCli=true; DotNetCliRuntime=linux-x64; - DotNetCliPackageType=sdk + DotNetCliPackageType=sdk; + DotNetCliVersion=$(BundledNETCoreAppPackageVersion) From 099d4a8e254c57a121a0ff3199cb9c571ead1969 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 19 Aug 2020 00:29:18 -0400 Subject: [PATCH 119/185] Trying different parameters in helixpublishwithcarde. --- src/coreclr/tests/helixpublishwitharcade.proj | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index cda66c41d96bb..9939f014aa15d 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -43,7 +43,7 @@ $(_PropertiesToPass); IncludeDotNetCli=true; DotNetCliRuntime=linux-x64; - DotNetCliPackageType=sdk; + DotNetCliPackageType=sdk'; DotNetCliVersion=$(BundledNETCoreAppPackageVersion) @@ -92,7 +92,8 @@ true sdk $(BundledNETCoreAppPackageVersion) - linux-x64 + $(HelixRuntimeRid) + linux-x64 From 3e8289d31ef3a48a523b9d3f81ff44f99c3964dd Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 19 Aug 2020 10:25:02 -0400 Subject: [PATCH 120/185] Fixed end tag for dotnet cli. --- src/coreclr/tests/helixpublishwitharcade.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index 9939f014aa15d..52ad26a0ce87b 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -93,7 +93,7 @@ sdk $(BundledNETCoreAppPackageVersion) $(HelixRuntimeRid) - linux-x64 + linux-x64 From 2c4b8d2c9ca4e8ad7ab8539d872767844e521c80 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 19 Aug 2020 11:24:39 -0400 Subject: [PATCH 121/185] src/coreclr/tests/helixpublishwitharcade.proj --- src/coreclr/tests/helixpublishwitharcade.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index 52ad26a0ce87b..867937d4b2b0a 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -43,7 +43,7 @@ $(_PropertiesToPass); IncludeDotNetCli=true; DotNetCliRuntime=linux-x64; - DotNetCliPackageType=sdk'; + DotNetCliPackageType=sdk; DotNetCliVersion=$(BundledNETCoreAppPackageVersion) From 8ea7b5ef8ed5cc42c5f68d30390cb1fe841123ab Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 19 Aug 2020 11:37:03 -0400 Subject: [PATCH 122/185] Hard coded version number. --- src/coreclr/tests/helixpublishwitharcade.proj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index 867937d4b2b0a..ffbd861d13ead 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -34,7 +34,7 @@ TimeoutPerTestCollectionInMinutes=$(_TimeoutPerTestCollectionInMinutes); TimeoutPerTestInMinutes=$(_TimeoutPerTestInMinutes); RuntimeVariant=$(_RuntimeVariant); - BundledNETCoreAppPackageVersion=$(BundledNETCoreAppPackageVersion); + =$(BundledNETCoreAppPackageVersion); HelixRuntimeRid=$(HelixRuntimeRid) @@ -44,7 +44,7 @@ IncludeDotNetCli=true; DotNetCliRuntime=linux-x64; DotNetCliPackageType=sdk; - DotNetCliVersion=$(BundledNETCoreAppPackageVersion) + DotNetCliVersion=5.0.100-preview.8.20362.3 @@ -91,7 +91,7 @@ true sdk - $(BundledNETCoreAppPackageVersion) + 5.0.100-preview.8.20362.3 $(HelixRuntimeRid) linux-x64 From 9e34472598d8d16842e45c4c926b67b7c99033c1 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 19 Aug 2020 11:45:35 -0400 Subject: [PATCH 123/185] Helix publish with arcade version # changes. --- src/coreclr/tests/helixpublishwitharcade.proj | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index ffbd861d13ead..690340844ce8a 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -34,7 +34,7 @@ TimeoutPerTestCollectionInMinutes=$(_TimeoutPerTestCollectionInMinutes); TimeoutPerTestInMinutes=$(_TimeoutPerTestInMinutes); RuntimeVariant=$(_RuntimeVariant); - =$(BundledNETCoreAppPackageVersion); + BundledNETCoreAppPackageVersion=$(BundledNETCoreAppPackageVersion); HelixRuntimeRid=$(HelixRuntimeRid) @@ -44,7 +44,7 @@ IncludeDotNetCli=true; DotNetCliRuntime=linux-x64; DotNetCliPackageType=sdk; - DotNetCliVersion=5.0.100-preview.8.20362.3 + DotNetCliVersion=5.0.100-preview.8.20362.3 @@ -91,7 +91,7 @@ true sdk - 5.0.100-preview.8.20362.3 + 5.0.100-preview.8.20362.3 $(HelixRuntimeRid) linux-x64 From 7736dfab1a0609851803bfef070f14369052c672 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 19 Aug 2020 12:58:55 -0400 Subject: [PATCH 124/185] Explicitly s et netcoreappcurrent. --- src/coreclr/tests/src/CLRTest.Execute.Bash.targets | 2 +- src/mono/wasm/wasm-test-runner/WasmTestRunner.proj | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/coreclr/tests/src/CLRTest.Execute.Bash.targets b/src/coreclr/tests/src/CLRTest.Execute.Bash.targets index 7943364b2c5d3..760d1f768335f 100644 --- a/src/coreclr/tests/src/CLRTest.Execute.Bash.targets +++ b/src/coreclr/tests/src/CLRTest.Execute.Bash.targets @@ -267,7 +267,7 @@ else __Command+=" dotnet" fi -$__Command msbuild $CORE_ROOT/wasm-test-runner/WasmTestRunner.proj /p:TestAssembly=$(OutputPath)/$(MsBuildProjectName).dll /p:TestBinDir=`pwd` +$__Command msbuild $CORE_ROOT/wasm-test-runner/WasmTestRunner.proj /p:NetCoreAppCurrent=$(NetCoreAppCurrent) /p:TestAssembly=$(OutputPath)/$(MsBuildProjectName).dll /p:TestBinDir=`pwd` ]]> diff --git a/src/mono/wasm/wasm-test-runner/WasmTestRunner.proj b/src/mono/wasm/wasm-test-runner/WasmTestRunner.proj index be453e920b40a..e3563a85e0841 100644 --- a/src/mono/wasm/wasm-test-runner/WasmTestRunner.proj +++ b/src/mono/wasm/wasm-test-runner/WasmTestRunner.proj @@ -23,7 +23,6 @@ - From 46dd26e6f5fb70a305ed9db7095a78de913f7718 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 19 Aug 2020 14:00:38 -0400 Subject: [PATCH 125/185] Changed computation of test bin path so it will work on helix. --- src/coreclr/tests/src/CLRTest.Execute.Bash.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/tests/src/CLRTest.Execute.Bash.targets b/src/coreclr/tests/src/CLRTest.Execute.Bash.targets index 760d1f768335f..fbb62424e1673 100644 --- a/src/coreclr/tests/src/CLRTest.Execute.Bash.targets +++ b/src/coreclr/tests/src/CLRTest.Execute.Bash.targets @@ -267,7 +267,7 @@ else __Command+=" dotnet" fi -$__Command msbuild $CORE_ROOT/wasm-test-runner/WasmTestRunner.proj /p:NetCoreAppCurrent=$(NetCoreAppCurrent) /p:TestAssembly=$(OutputPath)/$(MsBuildProjectName).dll /p:TestBinDir=`pwd` +$__Command msbuild $CORE_ROOT/wasm-test-runner/WasmTestRunner.proj /p:NetCoreAppCurrent=$(NetCoreAppCurrent) /p:TestAssembly=`pwd`/$(MsBuildProjectName).dll /p:TestBinDir=`pwd` ]]> From 0577b72f229b1bdc04e58a74fb926a30cb3c1a58 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 19 Aug 2020 15:31:53 -0400 Subject: [PATCH 126/185] Added TestBinDir to assembly search paths. --- src/mono/wasm/wasm-test-runner/WasmTestRunner.proj | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mono/wasm/wasm-test-runner/WasmTestRunner.proj b/src/mono/wasm/wasm-test-runner/WasmTestRunner.proj index e3563a85e0841..15c07e09f920c 100644 --- a/src/mono/wasm/wasm-test-runner/WasmTestRunner.proj +++ b/src/mono/wasm/wasm-test-runner/WasmTestRunner.proj @@ -21,6 +21,7 @@ + From 3d9811e95a79d5d3817ab5c725239a1824852783 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 19 Aug 2020 15:33:04 -0400 Subject: [PATCH 127/185] Change dotnetcli variables in helixpublishwitharcade. --- src/coreclr/tests/helixpublishwitharcade.proj | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index 690340844ce8a..3557ae45448aa 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -41,10 +41,10 @@ <_PropertiesToPass Condition="'$(TargetArchitecture)' == 'wasm' "> $(_PropertiesToPass); - IncludeDotNetCli=true; - DotNetCliRuntime=linux-x64; - DotNetCliPackageType=sdk; - DotNetCliVersion=5.0.100-preview.8.20362.3 + IncludeDotNetCli=$(IncludeDotNetCli); + DotNetCliRuntime=$(DotNetCliRuntime); + DotNetCliPackageType=$(DotNetCliPackageType); + DotNetCliVersion=$(DotNetCliVersion) @@ -91,8 +91,10 @@ true sdk - 5.0.100-preview.8.20362.3 + $([System.IO.File]::ReadAllText('$(RepoRoot)global.json')) + $([System.Text.RegularExpressions.Regex]::Match($(GlobalJsonContent), '(%3F<="dotnet": ").*(%3F=")')) $(HelixRuntimeRid) + linux-x64 From 0653317921b12865aa27b3bf9b9ad0898cce3b26 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 19 Aug 2020 17:23:33 -0400 Subject: [PATCH 128/185] Added some more failing tests. --- src/coreclr/tests/issues.targets | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/coreclr/tests/issues.targets b/src/coreclr/tests/issues.targets index 8a44dd306ec29..6f679fd1a3ec3 100644 --- a/src/coreclr/tests/issues.targets +++ b/src/coreclr/tests/issues.targets @@ -6571,5 +6571,26 @@ needs triage + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + + + needs triage + From 773ce37210cd33461288d020374c5ba40cfd1506 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 19 Aug 2020 19:05:14 -0400 Subject: [PATCH 129/185] Added another failure to issues.targets. --- src/coreclr/tests/issues.targets | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/coreclr/tests/issues.targets b/src/coreclr/tests/issues.targets index 6f679fd1a3ec3..1c5b67a4012f5 100644 --- a/src/coreclr/tests/issues.targets +++ b/src/coreclr/tests/issues.targets @@ -6592,5 +6592,8 @@ needs triage + + needs triage + From 8b9d3b261daf405c7057975ab70eb7606a8af491 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Wed, 19 Aug 2020 20:48:49 -0400 Subject: [PATCH 130/185] Renabled other runtime lanes. --- eng/pipelines/runtime.yml | 833 +++++++++++++++++++++++++++++++++++++- 1 file changed, 832 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 660f4f4268d0a..16868f17d913b 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -130,6 +130,216 @@ jobs: - eng/pipelines/mono/* - eng/pipelines/libraries/* +# +# Build CoreCLR checked +# Only when CoreCLR is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: checked + platforms: + - Linux_x64 + - Linux_arm + - Linux_arm64 + - Linux_musl_arm64 + - Linux_musl_x64 + - Windows_NT_x86 + - Windows_NT_x64 + - Windows_NT_arm + - Windows_NT_arm64 + jobParameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Build CoreCLR checked using GCC toolchain +# Only when CoreCLR is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: checked + platforms: + - Linux_x64 + jobParameters: + testGroup: innerloop + compilerName: gcc + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Build CoreCLR OSX_x64 checked +# Only when CoreCLR or Libraries is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: checked + platforms: + - OSX_x64 + jobParameters: + testGroup: innerloop + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Build CoreCLR release +# Always as they are needed by Installer and we always build and test the Installer. +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: release + platforms: + - OSX_x64 + - Linux_x64 + - Linux_arm + - Linux_arm64 + - Linux_musl_x64 + - Linux_musl_arm64 + - Windows_NT_x64 + - Windows_NT_x86 + - Windows_NT_arm + - Windows_NT_arm64 + - FreeBSD_x64 + jobParameters: + testGroup: innerloop + +# +# Build CoreCLR Formatting Job +# Only when CoreCLR is changed, and only in the 'master' branch (no release branches; +# both CI and PR builds). +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/format-job.yml + platforms: + - Linux_x64 + # Isssue: https://github.com/dotnet/runtime/issues/40034 + #- Windows_NT_x64 + jobParameters: + condition: >- + and( + or( + eq(variables['Build.SourceBranchName'], 'master'), + eq(variables['System.PullRequest.TargetBranch'], 'master')), + or( + eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true))) + +# Build and test clr tools +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/build-job.yml + buildConfig: checked + platforms: + - Linux_x64 + jobParameters: + testGroup: clrTools + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# Build the whole product using Mono runtime +# Only when libraries, mono or installer are changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + runtimeFlavor: mono + platforms: + - Android_x86 + - Android_arm64 + - tvOS_x64 + - iOS_arm64 + - iOS_x86 + - Linux_arm + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono + buildArgs: -s mono+libs+installer -c $(_BuildConfig) + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - Android_x64 + - Android_arm + - tvOS_arm64 + - iOS_arm + - iOS_x64 + - Linux_musl_x64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono + buildArgs: -s mono+libs+installer -c $(_BuildConfig) + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Build the whole product using Mono and run tests +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - Browser_wasm + variables: + # map dependencies variables to local variables + - name: librariesContainsChange + value: $[ dependencies.checkout.outputs['SetPathVars_libraries.containsChange'] ] + - name: monoContainsChange + value: $[ dependencies.checkout.outputs['SetPathVars_mono.containsChange'] ] + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono + buildArgs: -s mono+libs+installer+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true + timeoutInMinutes: 120 + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) + # extra steps, run tests + extraStepsTemplate: /eng/pipelines/libraries/helix.yml + extraStepsParameters: + creator: dotnet-bot + testRunNamePrefixSuffix: Mono_$(_BuildConfig) + condition: >- + or( + eq(variables['librariesContainsChange'], true), + eq(variables['monoContainsChange'], true), + eq(variables['isFullMatrix'], true)) + # # Build the whole product using Mono and run runtime tests # @@ -170,4 +380,625 @@ jobs: extraStepsTemplate: /eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml extraStepsParameters: creator: dotnet-bot - testRunNamePrefixSuffix: Mono_$(_BuildConfig) \ No newline at end of file + testRunNamePrefixSuffix: Mono_$(_BuildConfig) + +# +# Build Mono and Installer on LLVMJIT mode +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - OSX_x64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_LLVMJIT + buildArgs: -s mono+libs+installer -c $(_BuildConfig) + /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + runtimeFlavor: mono + platforms: + - Linux_x64 + - Linux_arm64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_LLVMJIT + buildArgs: -s mono+libs+installer -c $(_BuildConfig) + /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=false + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Build Mono and Installer on LLVMAOT mode +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - Linux_x64 + - Linux_arm64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_LLVMAOT + buildArgs: -s mono+libs+installer -c $(_BuildConfig) + /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + runtimeFlavor: mono + platforms: + - OSX_x64 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_LLVMAOT + buildArgs: -s mono+libs+installer -c $(_BuildConfig) + /p:MonoEnableLLVM=true /p:MonoBundleLLVMOptimizer=true + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_installer.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Build Mono debug +# Only when libraries or mono changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: debug + platforms: + - OSX_x64 + - Linux_x64 + - Linux_arm64 + # - Linux_musl_arm64 + - Windows_NT_x64 + # - Windows_NT_x86 + # - Windows_NT_arm + # - Windows_NT_arm64 + jobParameters: + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Build Mono release +# Only when libraries or mono changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - Linux_x64 + # - Linux_musl_arm64 + - Windows_NT_x64 + # - Windows_NT_x86 + # - Windows_NT_arm + # - Windows_NT_arm64 + jobParameters: + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Build Mono release +# Only when libraries, mono, or the runtime tests changed +# Currently only these architectures are needed for the runtime tests. +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - OSX_x64 + - Linux_arm64 + jobParameters: + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Build Mono release with LLVM AOT +# Only when mono, or the runtime tests changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/mono/templates/build-job.yml + runtimeFlavor: mono + buildConfig: release + platforms: + - Linux_x64 + jobParameters: + runtimeVariant: llvmaot + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Build libraries using live CoreLib +# These set of libraries are built always no matter what changed +# The reason for that is because Corelib and Installer needs it and +# These are part of the test matrix for Libraries changes. +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: Release + platforms: + - Linux_arm + - Linux_musl_arm64 + - Windows_NT_arm + - Windows_NT_arm64 + - Windows_NT_x86 + jobParameters: + liveRuntimeBuildConfig: release + +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - Linux_arm64 + - Linux_musl_x64 + - Linux_x64 + - OSX_x64 + - Windows_NT_x64 + - FreeBSD_x64 + jobParameters: + testScope: innerloop + testBuildPlatforms: + - Linux_x64 + - Windows_NT_x64 + - OSX_x64 + liveRuntimeBuildConfig: release + +# +# Libraries Build that only run when libraries is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - ${{ if eq(variables['isFullMatrix'], false) }}: + - Windows_NT_x86 + jobParameters: + liveRuntimeBuildConfig: release + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: Release + platforms: + - Windows_NT_x86 + - ${{ if eq(variables['isFullMatrix'], true) }}: + - Windows_NT_x64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isFullMatrix: ${{ variables.isFullMatrix }} + framework: net48 + runTests: true + testScope: innerloop + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/build-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - Windows_NT_x64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isFullMatrix: ${{ variables.isFullMatrix }} + framework: allConfigurations + runTests: true + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Installer Build and Test +# These are always built since they only take like 15 minutes +# we expect these to be done before we finish libraries or coreclr testing. +# +- template: /eng/pipelines/installer/installer-matrix.yml + parameters: + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - Linux_arm + - Linux_musl_arm64 + - Windows_NT_x86 + - Windows_NT_arm + - Windows_NT_arm64 + jobParameters: + liveRuntimeBuildConfig: release + liveLibrariesBuildConfig: Release + +- template: /eng/pipelines/installer/installer-matrix.yml + parameters: + buildConfig: Release + platforms: + - OSX_x64 + - Linux_x64 + - Linux_arm64 + - Linux_musl_x64 + - Windows_NT_x64 + - FreeBSD_x64 + jobParameters: + liveRuntimeBuildConfig: release + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + +# +# Crossgen-comparison jobs +# Only when CoreCLR is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/coreclr/templates/crossgen-comparison-job.yml + buildConfig: checked + platforms: + - Linux_arm + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + liveLibrariesBuildConfig: Release + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# CoreCLR Test builds using live libraries release build +# Only when CoreCLR is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml + buildConfig: checked + platforms: + - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64 + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# CoreCLR Test executions using live libraries +# Only when CoreCLR is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + buildConfig: checked + platforms: + - Linux_arm + - Windows_NT_x86 + - Windows_NT_arm64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: Release + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + buildConfig: checked + platforms: + - OSX_x64 + - Linux_x64 + - Linux_arm64 + - Windows_NT_x64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Mono Test builds with CoreCLR runtime tests using live libraries debug build +# Only when Mono is changed +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/build-test-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - CoreClrTestBuildHost # Either OSX_x64 or Linux_x64 + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + liveRuntimeBuildConfig: release + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Mono CoreCLR runtime Test executions using live libraries +# Only when Mono is changed +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - OSX_x64 + - Linux_arm64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + liveRuntimeBuildConfig: release + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) +# +# Mono CoreCLR runtime Test executions using live libraries and LLVM AOT +# Only when Mono is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/templates/runtimes/run-test-job.yml + buildConfig: release + runtimeFlavor: mono + platforms: + - Linux_x64 + helixQueueGroup: pr + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + jobParameters: + testGroup: innerloop + liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + liveRuntimeBuildConfig: release + runtimeVariant: llvmaot + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Libraries Release Test Execution against a release mono runtime. +# Only when libraries or mono changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + runtimeFlavor: mono + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - Windows_NT_x64 + - OSX_x64 + - Linux_arm64 + - Linux_x64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isOfficialBuild: false + isFullMatrix: ${{ variables.isFullMatrix }} + runtimeDisplayName: mono + testScope: innerloop + liveRuntimeBuildConfig: release + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Libraries Release Test Execution against a release mono interpreter runtime. +# Only when libraries or mono changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + runtimeFlavor: mono + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + # - Windows_NT_x64 + #- OSX_x64 + - Linux_x64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isOfficialBuild: false + isFullMatrix: ${{ variables.isFullMatrix }} + interpreter: true + runtimeDisplayName: mono_interpreter + testScope: innerloop + liveRuntimeBuildConfig: release + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_mono.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Libraries Release Test Execution against a release coreclr runtime +# Only when the PR contains a libraries change +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: Release + platforms: + - Windows_NT_x86 + - ${{ if eq(variables['isFullMatrix'], true) }}: + - Windows_NT_arm64 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isOfficialBuild: false + isFullMatrix: ${{ variables.isFullMatrix }} + testScope: innerloop + liveRuntimeBuildConfig: release + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Libraries Debug Test Execution against a release coreclr runtime +# Only when the PR contains a libraries change +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - Windows_NT_x64 + - OSX_x64 + - Linux_x64 + - Linux_musl_x64 + - ${{ if eq(variables['isFullMatrix'], true) }}: + - Linux_arm64 + - ${{ if eq(variables['isFullMatrix'], false) }}: + - Windows_NT_x86 + helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml + jobParameters: + isOfficialBuild: false + isFullMatrix: ${{ variables.isFullMatrix }} + testScope: innerloop + liveRuntimeBuildConfig: release + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Libraries Test Execution against a checked runtime +# Only when the PR contains a coreclr change +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: Release + platforms: + # - Windows_NT_arm return this when https://github.com/dotnet/runtime/issues/1097 is fixed. + - Linux_arm + - Linux_musl_arm64 + - Windows_NT_x86 + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + helixQueueGroup: libraries + jobParameters: + testScope: innerloop + liveRuntimeBuildConfig: checked + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - Windows_NT_x64 + - Linux_x64 + - Linux_musl_x64 + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + helixQueueGroup: libraries + jobParameters: + testScope: innerloop + liveRuntimeBuildConfig: checked + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), + eq(variables['isFullMatrix'], true)) + +# +# Libraries Test Execution against a checked runtime +# Only if CoreCLR or Libraries is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/libraries/run-test-job.yml + buildConfig: ${{ variables.debugOnPrReleaseOnRolling }} + platforms: + - OSX_x64 + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + helixQueueGroup: libraries + jobParameters: + testScope: innerloop + liveRuntimeBuildConfig: checked + dependsOnTestBuildConfiguration: ${{ variables.debugOnPrReleaseOnRolling }} + dependsOnTestArchitecture: x64 + condition: >- + or( + eq(dependencies.checkout.outputs['SetPathVars_coreclr.containsChange'], true), + eq(dependencies.checkout.outputs['SetPathVars_libraries.containsChange'], true), + eq(variables['isFullMatrix'], true)) From ca6de1981904e372234eea948ae27211c19d3576 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 20 Aug 2020 09:58:34 -0400 Subject: [PATCH 131/185] Automatically skip wrappers when building native tests. --- src/coreclr/build-test.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coreclr/build-test.sh b/src/coreclr/build-test.sh index c91f49e1ec380..47e39020b57e2 100755 --- a/src/coreclr/build-test.sh +++ b/src/coreclr/build-test.sh @@ -369,7 +369,7 @@ build_Tests() fi if [[ "$__SkipNative" != 1 ]]; then - build_native "$__BuildArch" "$__TestDir" "$__ProjectRoot" "$__NativeTestIntermediatesDir" "CoreCLR test component" + build_native "$__BuildArch" "$__TestDir" "$__ProjectRoot" "$__NativeTestIntermediatesDir" "CoreCLR test component" "/p:GenerateRunScript=false" if [[ "$?" -ne 0 ]]; then echo "${__ErrMsgPrefix}${__MsgPrefix}Error: native test build failed. Refer to the build log files for details (above)" @@ -474,7 +474,7 @@ build_MSBuild_projects() buildArgs+=("${__UnprocessedBuildArgs[@]}") buildArgs+=("\"/p:CopyNativeProjectBinaries=${__CopyNativeProjectsAfterCombinedTestBuild}\""); buildArgs+=("/p:__SkipPackageRestore=true"); - + # Disable warnAsError - coreclr issue 19922 nextCommand="\"$__RepoRootDir/eng/common/msbuild.sh\" $__ArcadeScriptArgs --warnAsError false ${buildArgs[@]}" echo "Building step '$stepName' testGroupToBuild=$testGroupToBuild via $nextCommand" From ca7336dfd582dc572387eec165e07b8a2e0493a1 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 20 Aug 2020 10:26:22 -0400 Subject: [PATCH 132/185] Explicitly set GenerateRunScript false when copying native test. --- src/coreclr/build-test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/build-test.sh b/src/coreclr/build-test.sh index 47e39020b57e2..b1e8561364ff6 100755 --- a/src/coreclr/build-test.sh +++ b/src/coreclr/build-test.sh @@ -404,7 +404,7 @@ build_Tests() if [[ "$__CopyNativeTestBinaries" == 1 ]]; then echo "Copying native test binaries to output..." - build_MSBuild_projects "Tests_Managed" "$__ProjectDir/tests/build.proj" "Managed tests build (build tests)" "/t:CopyAllNativeProjectReferenceBinaries" + build_MSBuild_projects "Tests_Managed" "$__ProjectDir/tests/build.proj" "Managed tests build (build tests)" "/t:CopyAllNativeProjectReferenceBinaries" "/p:GenerateRunScript=false" if [[ "$?" -ne 0 ]]; then echo "${__ErrMsgPrefix}${__MsgPrefix}Error: copying native test binaries failed. Refer to the build log files for details (above)" From a2e19e32183936a895f81b90977535cb89e2443d Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 20 Aug 2020 10:27:56 -0400 Subject: [PATCH 133/185] Remove GenerateRunScript parameter from build native. --- src/coreclr/build-test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/build-test.sh b/src/coreclr/build-test.sh index b1e8561364ff6..5d8ff028a3c87 100755 --- a/src/coreclr/build-test.sh +++ b/src/coreclr/build-test.sh @@ -369,7 +369,7 @@ build_Tests() fi if [[ "$__SkipNative" != 1 ]]; then - build_native "$__BuildArch" "$__TestDir" "$__ProjectRoot" "$__NativeTestIntermediatesDir" "CoreCLR test component" "/p:GenerateRunScript=false" + build_native "$__BuildArch" "$__TestDir" "$__ProjectRoot" "$__NativeTestIntermediatesDir" "CoreCLR test component" if [[ "$?" -ne 0 ]]; then echo "${__ErrMsgPrefix}${__MsgPrefix}Error: native test build failed. Refer to the build log files for details (above)" From b1758b1302187cb3fb0c0b06ba53a3da90405d75 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 20 Aug 2020 12:33:45 -0400 Subject: [PATCH 134/185] Changed parameters to try to get it to not build wrapper when copying tests. --- src/coreclr/build-test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/build-test.sh b/src/coreclr/build-test.sh index 5d8ff028a3c87..f520df8277ae8 100755 --- a/src/coreclr/build-test.sh +++ b/src/coreclr/build-test.sh @@ -404,7 +404,7 @@ build_Tests() if [[ "$__CopyNativeTestBinaries" == 1 ]]; then echo "Copying native test binaries to output..." - build_MSBuild_projects "Tests_Managed" "$__ProjectDir/tests/build.proj" "Managed tests build (build tests)" "/t:CopyAllNativeProjectReferenceBinaries" "/p:GenerateRunScript=false" + build_MSBuild_projects "Tests_Managed" "$__ProjectDir/tests/build.proj" "Managed tests build (build tests)" "/t:CopyAllNativeProjectReferenceBinaries" "/p:CopyNativeTestBinariesOnly=false" "/bl:${__RepoRootDir}/artifacts/log/${__BuildType}/copy_native_test_binaries${__RuntimeFlavor}.binlog" if [[ "$?" -ne 0 ]]; then echo "${__ErrMsgPrefix}${__MsgPrefix}Error: copying native test binaries failed. Refer to the build log files for details (above)" From 281e78d2d8709d073d17dd216b11923ea5611b8e Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 20 Aug 2020 12:44:22 -0400 Subject: [PATCH 135/185] Changed parameters to try to get it to not build wrapper when copying tests. --- src/coreclr/tests/src/Directory.Build.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/tests/src/Directory.Build.targets b/src/coreclr/tests/src/Directory.Build.targets index 02df61eb3c1f6..5116a4aff914b 100644 --- a/src/coreclr/tests/src/Directory.Build.targets +++ b/src/coreclr/tests/src/Directory.Build.targets @@ -198,7 +198,7 @@ Date: Thu, 20 Aug 2020 12:50:43 -0400 Subject: [PATCH 136/185] Fixed propagation of CopyNativeTestBinariesOnly --- src/coreclr/build-test.sh | 2 +- src/coreclr/tests/src/Directory.Build.targets | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/coreclr/build-test.sh b/src/coreclr/build-test.sh index f520df8277ae8..95e2eebc8a66d 100755 --- a/src/coreclr/build-test.sh +++ b/src/coreclr/build-test.sh @@ -404,7 +404,7 @@ build_Tests() if [[ "$__CopyNativeTestBinaries" == 1 ]]; then echo "Copying native test binaries to output..." - build_MSBuild_projects "Tests_Managed" "$__ProjectDir/tests/build.proj" "Managed tests build (build tests)" "/t:CopyAllNativeProjectReferenceBinaries" "/p:CopyNativeTestBinariesOnly=false" "/bl:${__RepoRootDir}/artifacts/log/${__BuildType}/copy_native_test_binaries${__RuntimeFlavor}.binlog" + build_MSBuild_projects "Tests_Managed" "$__ProjectDir/tests/build.proj" "Managed tests build (build tests)" "/t:CopyAllNativeProjectReferenceBinaries" "/p:CopyNativeTestBinariesOnly=true" "/bl:${__RepoRootDir}/artifacts/log/${__BuildType}/copy_native_test_binaries${__RuntimeFlavor}.binlog" if [[ "$?" -ne 0 ]]; then echo "${__ErrMsgPrefix}${__MsgPrefix}Error: copying native test binaries failed. Refer to the build log files for details (above)" diff --git a/src/coreclr/tests/src/Directory.Build.targets b/src/coreclr/tests/src/Directory.Build.targets index 5116a4aff914b..3d8d096ab8d0e 100644 --- a/src/coreclr/tests/src/Directory.Build.targets +++ b/src/coreclr/tests/src/Directory.Build.targets @@ -187,7 +187,7 @@ - + @@ -198,7 +198,7 @@ Date: Thu, 20 Aug 2020 15:07:22 -0400 Subject: [PATCH 137/185] REversed change to skipnative; it will now also skip the wrapper generation. --- src/coreclr/build-test.sh | 2 +- src/coreclr/tests/src/Directory.Build.targets | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/coreclr/build-test.sh b/src/coreclr/build-test.sh index 95e2eebc8a66d..e9828b2b368b5 100755 --- a/src/coreclr/build-test.sh +++ b/src/coreclr/build-test.sh @@ -404,7 +404,7 @@ build_Tests() if [[ "$__CopyNativeTestBinaries" == 1 ]]; then echo "Copying native test binaries to output..." - build_MSBuild_projects "Tests_Managed" "$__ProjectDir/tests/build.proj" "Managed tests build (build tests)" "/t:CopyAllNativeProjectReferenceBinaries" "/p:CopyNativeTestBinariesOnly=true" "/bl:${__RepoRootDir}/artifacts/log/${__BuildType}/copy_native_test_binaries${__RuntimeFlavor}.binlog" + build_MSBuild_projects "Tests_Managed" "$__ProjectDir/tests/build.proj" "Managed tests build (build tests)" "/t:CopyAllNativeProjectReferenceBinaries" "/bl:${__RepoRootDir}/artifacts/log/${__BuildType}/copy_native_test_binaries${__RuntimeFlavor}.binlog" if [[ "$?" -ne 0 ]]; then echo "${__ErrMsgPrefix}${__MsgPrefix}Error: copying native test binaries failed. Refer to the build log files for details (above)" diff --git a/src/coreclr/tests/src/Directory.Build.targets b/src/coreclr/tests/src/Directory.Build.targets index 3d8d096ab8d0e..625e3b7624023 100644 --- a/src/coreclr/tests/src/Directory.Build.targets +++ b/src/coreclr/tests/src/Directory.Build.targets @@ -27,7 +27,6 @@ - <_CLRTestNeedsToRun>false false @@ -187,18 +186,17 @@ - + - Date: Thu, 20 Aug 2020 15:10:24 -0400 Subject: [PATCH 138/185] Break test build into two parts; building tests, generating wrappers. --- .../templates/runtimes/wasm-runtime-and-send-to-helix.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml index 21d80ce19f69b..cafe33078bb75 100644 --- a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml @@ -33,6 +33,9 @@ steps: - script: $(Build.SourcesDirectory)/src/coreclr/build-test$(scriptExt) /p:LibrariesConfiguration=${{ parameters.buildConfig }} -ci -skipnative -skipstressdependencies -excludemonofailures os Browser wasm displayName: Build Tests + - script: $(Build.SourcesDirectory)/src/coreclr/build-test$(scriptExt) /p:LibrariesConfiguration=${{ parameters.buildConfig }} -ci -buildtestwrappersonly os Browser wasm + displayName: Generate Test Wrappers + # Send tests to Helix - template: /eng/pipelines/common/templates/runtimes/send-to-helix-step.yml parameters: From 43d48efb96b64007c3f9c0c0f5b28e48dcef4114 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Thu, 20 Aug 2020 15:14:55 -0400 Subject: [PATCH 139/185] Added skipwrappers to first invocation of build-test.sh --- .../templates/runtimes/wasm-runtime-and-send-to-helix.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml index cafe33078bb75..f6851c9034d3c 100644 --- a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml @@ -30,7 +30,7 @@ parameters: steps: - - script: $(Build.SourcesDirectory)/src/coreclr/build-test$(scriptExt) /p:LibrariesConfiguration=${{ parameters.buildConfig }} -ci -skipnative -skipstressdependencies -excludemonofailures os Browser wasm + - script: $(Build.SourcesDirectory)/src/coreclr/build-test$(scriptExt) /p:LibrariesConfiguration=${{ parameters.buildConfig }} -ci -skipnative -skiptestwrappers -skipstressdependencies -excludemonofailures os Browser wasm displayName: Build Tests - script: $(Build.SourcesDirectory)/src/coreclr/build-test$(scriptExt) /p:LibrariesConfiguration=${{ parameters.buildConfig }} -ci -buildtestwrappersonly os Browser wasm From a96bbb4bcb377f7808d813bd6de401689664b45d Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 21 Aug 2020 00:43:40 -0400 Subject: [PATCH 140/185] Changes so we do not have to skipnative on wasm. --- src/coreclr/build-test.sh | 8 ++++---- src/coreclr/tests/src/Directory.Build.targets | 5 +++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/coreclr/build-test.sh b/src/coreclr/build-test.sh index e9828b2b368b5..b5c9e1ce02ef1 100755 --- a/src/coreclr/build-test.sh +++ b/src/coreclr/build-test.sh @@ -368,19 +368,19 @@ build_Tests() fi fi - if [[ "$__SkipNative" != 1 ]]; then - build_native "$__BuildArch" "$__TestDir" "$__ProjectRoot" "$__NativeTestIntermediatesDir" "CoreCLR test component" + if [[ "$__SkipNative" != 1 && __BuildArch != "wasm" ]]; then + # build_native "$__BuildArch" "$__TestDir" "$__ProjectRoot" "$__NativeTestIntermediatesDir" "CoreCLR test component" if [[ "$?" -ne 0 ]]; then echo "${__ErrMsgPrefix}${__MsgPrefix}Error: native test build failed. Refer to the build log files for details (above)" - exit 1 + exit 1 fi fi if [[ "$__SkipManaged" != 1 ]]; then echo "Starting the Managed Tests Build..." - build_MSBuild_projects "Tests_Managed" "$__ProjectDir/tests/build.proj" "Managed tests build (build tests)" "$__up" + build_MSBuild_projects "Tests_Managed" "$__ProjectDir/tests/build.proj" "Managed tests build (build tests)" "$__up" "/bl:${__RepoRootDir}/artifacts/log/${__BuildType}/managed_test_build_${__RuntimeFlavor}.binlog" if [[ "$?" -ne 0 ]]; then echo "${__ErrMsgPrefix}${__MsgPrefix}Error: managed test build failed. Refer to the build log files for details (above)" diff --git a/src/coreclr/tests/src/Directory.Build.targets b/src/coreclr/tests/src/Directory.Build.targets index 625e3b7624023..006a33a728004 100644 --- a/src/coreclr/tests/src/Directory.Build.targets +++ b/src/coreclr/tests/src/Directory.Build.targets @@ -75,7 +75,6 @@ <_WillCLRTestProjectBuild Condition="'$(CLRTestBuildAllTargets)' != 'allTargets' And '$(CLRTestTargetUnsupported)' == 'true'">false <_WillCLRTestProjectBuild Condition="'$(DisableProjectBuild)' == 'true'">false - <_CopyNativeProjectBinaries>$(CopyNativeProjectBinaries) <_CopyNativeProjectBinaries Condition="'$(_WillCLRTestProjectBuild)' != 'true'">false @@ -150,8 +149,9 @@ + + Condition="'@(NativeProjectBinaries)' == '' And '$(TargetArchitecture)' != 'wasm'" /> + From df3c70e7ebcf797c7a3458a16f92d311db1d60e8 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 21 Aug 2020 00:48:24 -0400 Subject: [PATCH 141/185] Changes to wasm-runtime-and-send-to-helix. --- .../templates/runtimes/wasm-runtime-and-send-to-helix.yml | 5 +---- src/coreclr/tests/src/dirs.proj | 7 +++++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml index f6851c9034d3c..8e3c46987adc3 100644 --- a/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/wasm-runtime-and-send-to-helix.yml @@ -30,12 +30,9 @@ parameters: steps: - - script: $(Build.SourcesDirectory)/src/coreclr/build-test$(scriptExt) /p:LibrariesConfiguration=${{ parameters.buildConfig }} -ci -skipnative -skiptestwrappers -skipstressdependencies -excludemonofailures os Browser wasm + - script: $(Build.SourcesDirectory)/src/coreclr/build-test$(scriptExt) /p:LibrariesConfiguration=${{ parameters.buildConfig }} -ci -skipstressdependencies -excludemonofailures os Browser wasm displayName: Build Tests - - script: $(Build.SourcesDirectory)/src/coreclr/build-test$(scriptExt) /p:LibrariesConfiguration=${{ parameters.buildConfig }} -ci -buildtestwrappersonly os Browser wasm - displayName: Generate Test Wrappers - # Send tests to Helix - template: /eng/pipelines/common/templates/runtimes/send-to-helix-step.yml parameters: diff --git a/src/coreclr/tests/src/dirs.proj b/src/coreclr/tests/src/dirs.proj index 9656ac5da61c9..8204480671156 100644 --- a/src/coreclr/tests/src/dirs.proj +++ b/src/coreclr/tests/src/dirs.proj @@ -23,11 +23,14 @@ - + + + + From 76595dd3883d5ac144236c348dcbe56b589a0086 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 21 Aug 2020 00:52:19 -0400 Subject: [PATCH 142/185] REmoved uneeded white space change, uncommented build_native. --- src/coreclr/build-test.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/coreclr/build-test.sh b/src/coreclr/build-test.sh index b5c9e1ce02ef1..e4978faddef70 100755 --- a/src/coreclr/build-test.sh +++ b/src/coreclr/build-test.sh @@ -33,7 +33,6 @@ build_test_wrappers() __Logging="$__MsbuildLog $__MsbuildWrn $__MsbuildErr /consoleloggerparameters:$buildVerbosity" nextCommand="\"${__DotNetCli}\" msbuild \"${__ProjectDir}/tests/src/runtest.proj\" /nodereuse:false /p:BuildWrappers=true /p:TestBuildMode=$__TestBuildMode /p:TargetsWindows=false $__Logging /p:TargetOS=$__TargetOS /p:Configuration=$__BuildType /p:TargetArchitecture=$__BuildArch /p:RuntimeFlavor=$__RuntimeFlavor \"/bl:${__RepoRootDir}/artifacts/log/${__BuildType}/build_test_wrappers_${__RuntimeFlavor}.binlog\" ${__UnprocessedBuildArgs[@]}" - eval $nextCommand local exitCode="$?" if [[ "$exitCode" -ne 0 ]]; then @@ -369,11 +368,11 @@ build_Tests() fi if [[ "$__SkipNative" != 1 && __BuildArch != "wasm" ]]; then - # build_native "$__BuildArch" "$__TestDir" "$__ProjectRoot" "$__NativeTestIntermediatesDir" "CoreCLR test component" + build_native "$__BuildArch" "$__TestDir" "$__ProjectRoot" "$__NativeTestIntermediatesDir" "CoreCLR test component" if [[ "$?" -ne 0 ]]; then echo "${__ErrMsgPrefix}${__MsgPrefix}Error: native test build failed. Refer to the build log files for details (above)" - exit 1 + exit 1 fi fi From 694de3d5fec736982f819a8d21e67f0c81a19ff1 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 21 Aug 2020 00:55:00 -0400 Subject: [PATCH 143/185] Fixed condtion on wasm check for building native. --- src/coreclr/build-test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/build-test.sh b/src/coreclr/build-test.sh index e4978faddef70..dde40a7c11336 100755 --- a/src/coreclr/build-test.sh +++ b/src/coreclr/build-test.sh @@ -367,7 +367,7 @@ build_Tests() fi fi - if [[ "$__SkipNative" != 1 && __BuildArch != "wasm" ]]; then + if [[ "$__SkipNative" != 1 && "$__BuildArch" != "wasm" ]]; then build_native "$__BuildArch" "$__TestDir" "$__ProjectRoot" "$__NativeTestIntermediatesDir" "CoreCLR test component" if [[ "$?" -ne 0 ]]; then From a9da5850674f435c39bbd8775844043acb36f2f1 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 21 Aug 2020 00:56:27 -0400 Subject: [PATCH 144/185] Removed debug printing. --- src/coreclr/tests/src/dirs.proj | 1 - src/coreclr/tests/src/runtest.proj | 1 - 2 files changed, 2 deletions(-) diff --git a/src/coreclr/tests/src/dirs.proj b/src/coreclr/tests/src/dirs.proj index 8204480671156..431c0c11399d3 100644 --- a/src/coreclr/tests/src/dirs.proj +++ b/src/coreclr/tests/src/dirs.proj @@ -29,7 +29,6 @@ - diff --git a/src/coreclr/tests/src/runtest.proj b/src/coreclr/tests/src/runtest.proj index d70453661502a..26f8865ccd574 100644 --- a/src/coreclr/tests/src/runtest.proj +++ b/src/coreclr/tests/src/runtest.proj @@ -33,7 +33,6 @@ - $([System.IO.Path]::GetFullPath(%(AllRunnableTestPaths.Identity))) From 8a24d9d763f09909b2e66c17065b9a53b3a52081 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 21 Aug 2020 01:45:43 -0400 Subject: [PATCH 145/185] Reenable full test suite. --- src/coreclr/tests/src/dirs.proj | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/coreclr/tests/src/dirs.proj b/src/coreclr/tests/src/dirs.proj index 431c0c11399d3..d1a23f8c44e31 100644 --- a/src/coreclr/tests/src/dirs.proj +++ b/src/coreclr/tests/src/dirs.proj @@ -23,10 +23,9 @@ - - + From b0997981d5fb938f518b1b967ddd357a5e5a1219 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 21 Aug 2020 15:17:20 -0400 Subject: [PATCH 146/185] Undid white space changes. --- src/coreclr/tests/src/dirs.proj | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/coreclr/tests/src/dirs.proj b/src/coreclr/tests/src/dirs.proj index d1a23f8c44e31..9656ac5da61c9 100644 --- a/src/coreclr/tests/src/dirs.proj +++ b/src/coreclr/tests/src/dirs.proj @@ -25,10 +25,9 @@ - + - From 97d4a30a33b2b0af19581df221a607105bbe30c0 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 21 Aug 2020 15:18:37 -0400 Subject: [PATCH 147/185] More white space removal. --- src/coreclr/tests/tests.targets | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/coreclr/tests/tests.targets b/src/coreclr/tests/tests.targets index d09affaa75037..4505da9f9ebb5 100644 --- a/src/coreclr/tests/tests.targets +++ b/src/coreclr/tests/tests.targets @@ -37,10 +37,8 @@ - - $(CORE_ROOT)\xunit.console.dll From ab926d0b8e6af3b5cd21a7a256e7d3990efa8bef Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 21 Aug 2020 15:32:15 -0400 Subject: [PATCH 148/185] Reversing more whitespace changes. --- src/coreclr/tests/runtest.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/src/coreclr/tests/runtest.sh b/src/coreclr/tests/runtest.sh index fdd61799a32a6..1b73a5d7f6bcf 100755 --- a/src/coreclr/tests/runtest.sh +++ b/src/coreclr/tests/runtest.sh @@ -408,7 +408,6 @@ if [[ ! "$runincontext" -eq 0 ]]; then runtestPyArguments+=("--run_in_context") fi - # Default to python3 if it is installed __Python=python if command -v python3 &>/dev/null; then From 42f6fd240cb8a822b99b8883307aafdf5da865f3 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 21 Aug 2020 15:33:36 -0400 Subject: [PATCH 149/185] Removed debug prints, white space changes. --- src/coreclr/tests/runtest.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/coreclr/tests/runtest.py b/src/coreclr/tests/runtest.py index 373f39479da6e..61cef5632e438 100755 --- a/src/coreclr/tests/runtest.py +++ b/src/coreclr/tests/runtest.py @@ -1638,7 +1638,5 @@ def main(args): ################################################################################ if __name__ == "__main__": - print(sys.argv) args = parser.parse_args() - sys.exit(main(args)) From a5910079ab49ca0b763af4767d0d82d27bb2f8dd Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 21 Aug 2020 15:37:44 -0400 Subject: [PATCH 150/185] Undoing more white space changes. --- src/coreclr/build-test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/build-test.sh b/src/coreclr/build-test.sh index dde40a7c11336..a8b482bccaa04 100755 --- a/src/coreclr/build-test.sh +++ b/src/coreclr/build-test.sh @@ -473,7 +473,7 @@ build_MSBuild_projects() buildArgs+=("${__UnprocessedBuildArgs[@]}") buildArgs+=("\"/p:CopyNativeProjectBinaries=${__CopyNativeProjectsAfterCombinedTestBuild}\""); buildArgs+=("/p:__SkipPackageRestore=true"); - + # Disable warnAsError - coreclr issue 19922 nextCommand="\"$__RepoRootDir/eng/common/msbuild.sh\" $__ArcadeScriptArgs --warnAsError false ${buildArgs[@]}" echo "Building step '$stepName' testGroupToBuild=$testGroupToBuild via $nextCommand" From 40b569810ddc05a276101d74683f2fbb6e276632 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 21 Aug 2020 16:03:00 -0400 Subject: [PATCH 151/185] Factored DotnetCli options into seperate propert group for wasm. --- src/coreclr/tests/helixpublishwitharcade.proj | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index 9cacbca452528..e2f7a64c8f4a0 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -90,12 +90,17 @@ SetStressModes_$(Scenario).sh true + runtime + $(BundledNETCoreAppPackageVersion) + $(HelixRuntimeRid) + + + sdk $([System.IO.File]::ReadAllText('$(RepoRoot)global.json')) $([System.Text.RegularExpressions.Regex]::Match($(GlobalJsonContent), '(%3F<="dotnet": ").*(%3F=")')) - $(HelixRuntimeRid) - linux-x64 + linux-x64 From 1a98a02642ab2dea8469a0917462570a1ef87b58 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 21 Aug 2020 17:17:17 -0400 Subject: [PATCH 152/185] Added missing quote. --- src/coreclr/tests/helixpublishwitharcade.proj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index e2f7a64c8f4a0..2d543dd2d6db9 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -92,10 +92,10 @@ true runtime $(BundledNETCoreAppPackageVersion) - $(HelixRuntimeRid) + $(HelixRuntimeRid) - + sdk $([System.IO.File]::ReadAllText('$(RepoRoot)global.json')) $([System.Text.RegularExpressions.Regex]::Match($(GlobalJsonContent), '(%3F<="dotnet": ").*(%3F=")')) From b6d0253e8f21dda56fe57150556d2fde55ec21dd Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 21 Aug 2020 19:14:03 -0400 Subject: [PATCH 153/185] Removed unneeeded whitespace change. --- eng/pipelines/common/templates/runtimes/send-to-helix-step.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml index 5a345589fd1ff..2671aa4891a98 100644 --- a/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml +++ b/eng/pipelines/common/templates/runtimes/send-to-helix-step.yml @@ -31,7 +31,6 @@ steps: osGroup: ${{ parameters.osGroup }} restoreParams: /p:DotNetPublishToBlobFeed=true -restore -projects $(Build.SourcesDirectory)$(dir)eng$(dir)empty.csproj sendParams: ${{ parameters.helixProjectArguments }} /maxcpucount /bl:$(Build.SourcesDirectory)/artifacts/log/SendToHelix.binlog /p:TargetArchitecture=${{ parameters.archType }} /p:TargetOS=${{ parameters.osGroup }}${{ parameters.osSubgroup }} /p:Configuration=${{ parameters.buildConfig }} - condition: and(succeeded(), ${{ parameters.condition }}) displayName: ${{ parameters.displayName }} environment: From 4a1d4598dfa91cac6b5ce9333662204b39d46a0f Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 21 Aug 2020 20:09:34 -0400 Subject: [PATCH 154/185] Added issues to issues.targets for tests that need locks. --- src/coreclr/tests/issues.targets | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coreclr/tests/issues.targets b/src/coreclr/tests/issues.targets index a14cc08969bdb..31bb62c923027 100644 --- a/src/coreclr/tests/issues.targets +++ b/src/coreclr/tests/issues.targets @@ -5783,7 +5783,7 @@ needs triage - needs triage + https://github.com/dotnet/runtime/issues/41193 needs triage @@ -6506,7 +6506,7 @@ needs triage - needs triage + https://github.com/dotnet/runtime/issues/41193 needs triage From 3036600aecef2423090d3b4efed03e1bb5b455ef Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 21 Aug 2020 20:18:11 -0400 Subject: [PATCH 155/185] Removed white space, removed extra debug binlog generaiton. --- src/coreclr/build-test.sh | 2 +- src/coreclr/tests/helixpublishwitharcade.proj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coreclr/build-test.sh b/src/coreclr/build-test.sh index a8b482bccaa04..9a8a471a56553 100755 --- a/src/coreclr/build-test.sh +++ b/src/coreclr/build-test.sh @@ -379,7 +379,7 @@ build_Tests() if [[ "$__SkipManaged" != 1 ]]; then echo "Starting the Managed Tests Build..." - build_MSBuild_projects "Tests_Managed" "$__ProjectDir/tests/build.proj" "Managed tests build (build tests)" "$__up" "/bl:${__RepoRootDir}/artifacts/log/${__BuildType}/managed_test_build_${__RuntimeFlavor}.binlog" + build_MSBuild_projects "Tests_Managed" "$__ProjectDir/tests/build.proj" "Managed tests build (build tests)" "$__up" if [[ "$?" -ne 0 ]]; then echo "${__ErrMsgPrefix}${__MsgPrefix}Error: managed test build failed. Refer to the build log files for details (above)" diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index 2d543dd2d6db9..68509e0a5321e 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -90,7 +90,7 @@ SetStressModes_$(Scenario).sh true - runtime + runtime $(BundledNETCoreAppPackageVersion) $(HelixRuntimeRid) From 9c322141b603004472f63b99478b018684858fcf Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Fri, 21 Aug 2020 20:20:37 -0400 Subject: [PATCH 156/185] Removed redundant conditional. --- src/coreclr/tests/tests.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/tests/tests.targets b/src/coreclr/tests/tests.targets index 4505da9f9ebb5..eee12765775d1 100644 --- a/src/coreclr/tests/tests.targets +++ b/src/coreclr/tests/tests.targets @@ -52,7 +52,7 @@ $(XunitArgs) -nocolor - $(CORE_ROOT)\corerun + $(CORE_ROOT)\corerun $(CORE_ROOT)\corerun.exe $(DotnetRoot)/dotnet From e79db95e46c1a0e853d48ef8d2aa61beebd17837 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Sat, 22 Aug 2020 13:23:10 -0400 Subject: [PATCH 157/185] Removed uneeded white space. MAde helixpublishwitharcade.proj consistently use TargetArchitecture == wasm check. --- src/coreclr/tests/helixpublishwitharcade.proj | 2 +- src/coreclr/tests/tests.targets | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index 68509e0a5321e..386cc8ca88657 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -79,7 +79,7 @@ osx-$(TargetArchitecture) linux-$(TargetArchitecture) linux-musl-$(TargetArchitecture) - browser-wasm + browser-wasm diff --git a/src/coreclr/tests/tests.targets b/src/coreclr/tests/tests.targets index eee12765775d1..1637017dd85ea 100644 --- a/src/coreclr/tests/tests.targets +++ b/src/coreclr/tests/tests.targets @@ -55,7 +55,6 @@ $(CORE_ROOT)\corerun $(CORE_ROOT)\corerun.exe $(DotnetRoot)/dotnet - + TargetDir="runtimepack/native/"/> Date: Mon, 24 Aug 2020 16:58:55 -0400 Subject: [PATCH 179/185] Added package reference to WasmTestRunner. --- src/tests/Common/wasm-test-runner/WasmTestRunner.proj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/tests/Common/wasm-test-runner/WasmTestRunner.proj b/src/tests/Common/wasm-test-runner/WasmTestRunner.proj index 78142f6aea29f..a89a415c7b3ae 100644 --- a/src/tests/Common/wasm-test-runner/WasmTestRunner.proj +++ b/src/tests/Common/wasm-test-runner/WasmTestRunner.proj @@ -8,6 +8,10 @@ https://api.nuget.org/v3/index.json; + + + + From 6bed9e094889e13a8ca91a3c6240233629182615 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 24 Aug 2020 17:16:48 -0400 Subject: [PATCH 180/185] Added version number to wasm test runner notarget sdk. --- src/tests/Common/wasm-test-runner/WasmTestRunner.proj | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/tests/Common/wasm-test-runner/WasmTestRunner.proj b/src/tests/Common/wasm-test-runner/WasmTestRunner.proj index a89a415c7b3ae..c94c6ad79c033 100644 --- a/src/tests/Common/wasm-test-runner/WasmTestRunner.proj +++ b/src/tests/Common/wasm-test-runner/WasmTestRunner.proj @@ -1,11 +1,10 @@ - + false $(CORE_ROOT)\runtimepack $(NetCoreAppCurrent) $(MSBuildThisFileDirectory)\obj\$(Configuration)\wasm $(TestBinDir)/WasmApp/ - https://api.nuget.org/v3/index.json; From 5e362a52b3f578585073761f8f120787b39094c0 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 24 Aug 2020 17:40:37 -0400 Subject: [PATCH 181/185] Got rid of package reference. --- src/tests/Common/wasm-test-runner/WasmTestRunner.proj | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/tests/Common/wasm-test-runner/WasmTestRunner.proj b/src/tests/Common/wasm-test-runner/WasmTestRunner.proj index c94c6ad79c033..ce8676d401482 100644 --- a/src/tests/Common/wasm-test-runner/WasmTestRunner.proj +++ b/src/tests/Common/wasm-test-runner/WasmTestRunner.proj @@ -7,10 +7,6 @@ $(TestBinDir)/WasmApp/ - - - - From 1dbce92f65826de68b22236650d96f8cbaad5034 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 24 Aug 2020 17:45:18 -0400 Subject: [PATCH 182/185] Always look for debug version of WasmAppBuilder. --- src/coreclr/tests/src/Common/Directory.Build.targets | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/coreclr/tests/src/Common/Directory.Build.targets b/src/coreclr/tests/src/Common/Directory.Build.targets index f9503a45956d7..1a0c14a658ce6 100644 --- a/src/coreclr/tests/src/Common/Directory.Build.targets +++ b/src/coreclr/tests/src/Common/Directory.Build.targets @@ -104,8 +104,9 @@ Include="$(ArtifactsDir)\TargetingPack\**" TargetDir="TargetingPack/"/> + Date: Mon, 24 Aug 2020 19:27:03 -0400 Subject: [PATCH 183/185] Removed unneeded helix precommand. --- src/coreclr/tests/helixpublishwitharcade.proj | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/coreclr/tests/helixpublishwitharcade.proj b/src/coreclr/tests/helixpublishwitharcade.proj index 48e54471bf785..45b7476550eb7 100644 --- a/src/coreclr/tests/helixpublishwitharcade.proj +++ b/src/coreclr/tests/helixpublishwitharcade.proj @@ -273,10 +273,6 @@ - - - - @(HelixPreCommand) From 48a52a1bd399eb13600422a71abba397e5bd0964 Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 24 Aug 2020 19:30:22 -0400 Subject: [PATCH 184/185] Added comment explaining explicit version number. --- src/tests/Common/wasm-test-runner/WasmTestRunner.proj | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/tests/Common/wasm-test-runner/WasmTestRunner.proj b/src/tests/Common/wasm-test-runner/WasmTestRunner.proj index ce8676d401482..3e05000395a04 100644 --- a/src/tests/Common/wasm-test-runner/WasmTestRunner.proj +++ b/src/tests/Common/wasm-test-runner/WasmTestRunner.proj @@ -1,3 +1,5 @@ + false From d37400d8652ae7fb0fbf9ccd02667d9584244dae Mon Sep 17 00:00:00 2001 From: Nathan Ricci Date: Mon, 24 Aug 2020 23:58:51 -0400 Subject: [PATCH 185/185] Increased time out. --- eng/pipelines/runtime.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 8967f49585f18..55911d9812030 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -366,7 +366,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_Mono_RuntimeTests buildArgs: -s mono+libs -c $(_BuildConfig) - timeoutInMinutes: 120 + timeoutInMinutes: 180 condition: >- or( eq(dependencies.checkout.outputs['SetPathVars_runtimetests.containsChange'], true),