From cec490ed52baeba9988db7ae1b577576d23c0658 Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Tue, 24 Oct 2023 23:39:32 +0000 Subject: [PATCH 01/14] workload-testing.targets: Make dotnet script paths available outside .. targets. This is useful when `dotnet-none` is already installed and thus the installation target does not run. --- eng/testing/workloads-testing.targets | 42 +++++++++++++-------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/eng/testing/workloads-testing.targets b/eng/testing/workloads-testing.targets index eb8a84468d9dc0..d205af6fbdfde7 100644 --- a/eng/testing/workloads-testing.targets +++ b/eng/testing/workloads-testing.targets @@ -28,6 +28,27 @@ + + <_DotNetInstallScriptName Condition="!$([MSBuild]::IsOSPlatform('windows'))">dotnet-install.sh + <_DotNetInstallScriptName Condition=" $([MSBuild]::IsOSPlatform('windows'))">dotnet-install.ps1 + + <_DotNetInstallScriptPath>$(ArtifactsObjDir)$(_DotNetInstallScriptName) + + + + <_DotNetInstallCommand Condition="!$([MSBuild]::IsOSPlatform('windows'))" + >$(_DotNetInstallScriptPath) -i $(_SdkWithNoWorkloadPath) -v $(SdkVersionForWorkloadTesting) + <_DotNetInstallCommand Condition="$([MSBuild]::IsOSPlatform('windows'))" + >$(_DotNetInstallScriptPath) -InstallDir $(_SdkWithNoWorkloadPath) -Version $(SdkVersionForWorkloadTesting) + + + + <_DotNetInstallCommand Condition="!$([MSBuild]::IsOSPlatform('windows'))" + >$(_DotNetInstallScriptPath) -i $(_SdkWithNoWorkloadPath) -v latest -q daily --channel 9.0 + <_DotNetInstallCommand Condition="$([MSBuild]::IsOSPlatform('windows'))" + >$(_DotNetInstallScriptPath) -InstallDir $(_SdkWithNoWorkloadPath) -Quality daily -Channel 9.0 + + - true + + true + false true From 4fb7c1954e0c82c03e4a6e12dc22624cd198158b Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Tue, 24 Oct 2023 23:42:47 +0000 Subject: [PATCH 03/14] [wasm] Improve parsing runtime pack versions from environment variables --- .../Common/BuildEnvironment.cs | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/mono/wasm/Wasm.Build.Tests/Common/BuildEnvironment.cs b/src/mono/wasm/Wasm.Build.Tests/Common/BuildEnvironment.cs index 37a7668b5d099a..de7700c76f7f31 100644 --- a/src/mono/wasm/Wasm.Build.Tests/Common/BuildEnvironment.cs +++ b/src/mono/wasm/Wasm.Build.Tests/Common/BuildEnvironment.cs @@ -2,9 +2,11 @@ // The .NET Foundation licenses this file to you under the MIT license. using System; +using System.Collections; using System.Collections.Generic; using System.IO; using System.Runtime.InteropServices; +using System.Text.RegularExpressions; #nullable enable @@ -81,11 +83,15 @@ public BuildEnvironment() sdkForWorkloadPath = Path.GetFullPath(sdkForWorkloadPath); - // FIXME: - foreach (string verStr in new[] { "8", "7", "6" }) + Regex runtimePackRegex = new(@"^RUNTIME_PACK_VER(\d+)$"); + foreach (DictionaryEntry de in Environment.GetEnvironmentVariables()) { - string versionValue = Environment.GetEnvironmentVariable($"RUNTIME_PACK_VER{verStr}") ?? string.Empty; - s_runtimePackVersions[$"net{verStr}.0"] = versionValue; + Match m = runtimePackRegex.Match((string)de.Key); + if (!m.Success) + continue; + + int major = int.Parse(m.Groups[1].Value); + s_runtimePackVersions[$"net{major}.0"] = (string)(de.Value ?? string.Empty); } DefaultBuildArgs = string.Empty; @@ -159,8 +165,11 @@ public BuildEnvironment() Directory.CreateDirectory(TmpPath); } - // FIXME: error checks - public string GetRuntimePackVersion(string tfm = BuildTestBase.DefaultTargetFramework) => s_runtimePackVersions[tfm]; + public string GetRuntimePackVersion(string tfm = BuildTestBase.DefaultTargetFramework) + => s_runtimePackVersions.TryGetValue(tfm, out string? version) + ? version + : throw new ArgumentException($"No runtime pack version found for tfm={tfm} ."); + public string GetRuntimePackDir(string tfm = BuildTestBase.DefaultTargetFramework, RuntimeVariant runtimeType = RuntimeVariant.SingleThreaded) => Path.Combine(WorkloadPacksDir, runtimeType is RuntimeVariant.SingleThreaded From 7c4070863c37ffec6c8b1c6a95c5102abf85dd7a Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Tue, 24 Oct 2023 23:44:17 +0000 Subject: [PATCH 04/14] [wasm] Allow WBTOverridePack targets use to be set per test This allows having it enabled only for the blazor projects right now, which are still on tfm=net8.0 . --- .../wasi/Wasi.Build.Tests/BuildTestBase.cs | 9 +++++++++ .../Blazor/BlazorWasmTestBase.cs | 5 ++++- .../wasm/Wasm.Build.Tests/BuildTestBase.cs | 18 ++++++++++++++---- .../Common/BuildEnvironment.cs | 9 --------- .../SatelliteAssembliesTests.cs | 2 +- .../Wasm.Build.Tests/WasmTemplateTestBase.cs | 2 +- 6 files changed, 29 insertions(+), 16 deletions(-) diff --git a/src/mono/wasi/Wasi.Build.Tests/BuildTestBase.cs b/src/mono/wasi/Wasi.Build.Tests/BuildTestBase.cs index d819ce4ec31ff2..86379f3dd97ec1 100644 --- a/src/mono/wasi/Wasi.Build.Tests/BuildTestBase.cs +++ b/src/mono/wasi/Wasi.Build.Tests/BuildTestBase.cs @@ -36,6 +36,13 @@ public abstract class BuildTestBase : IClassFixture(); _provider.BundleDirName = "wwwroot"; + + if (DefaultTargetFrameworkForBlazor == "net8.0") + UseWBTOverridePackTargets = true; } public void InitBlazorWasmProjectDir(string id, string targetFramework = DefaultTargetFrameworkForBlazor) @@ -39,7 +42,7 @@ public void InitBlazorWasmProjectDir(string id, string targetFramework = Default File.Copy(Path.Combine(BuildEnvironment.TestDataPath, "Blazor.Directory.Build.props"), Path.Combine(_projectDir, "Directory.Build.props")); File.Copy(Path.Combine(BuildEnvironment.TestDataPath, "Blazor.Directory.Build.targets"), Path.Combine(_projectDir, "Directory.Build.targets")); - if (BuildEnvironment.UseWBTOverridePackTargets) + if (UseWBTOverridePackTargets) File.Copy(BuildEnvironment.WasmOverridePacksTargetsPath, Path.Combine(_projectDir, Path.GetFileName(BuildEnvironment.WasmOverridePacksTargetsPath)), overwrite: true); } diff --git a/src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs b/src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs index 0ed147a41f7a35..23bcddfe4406f2 100644 --- a/src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs +++ b/src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs @@ -38,6 +38,13 @@ public abstract class BuildTestBase : IClassFixture EnvironmentVariables.IsRunningOnCI; - /* This will trigger importing WasmOverridePacks.targets for the tests, - * which will override the runtime pack with with the locally built one. - * But note that this only partially helps with "switching workloads" because - * the tasks/targets, aot compiler, etc would still be from the old version - */ - public static readonly bool UseWBTOverridePackTargets = false; - public static readonly string RelativeTestAssetsPath = @"..\testassets\"; public static readonly string TestAssetsPath = Path.Combine(AppContext.BaseDirectory, "testassets"); public static readonly string TestDataPath = Path.Combine(AppContext.BaseDirectory, "data"); @@ -134,8 +127,6 @@ public BuildEnvironment() EnvVars["DOTNET_SKIP_FIRST_TIME_EXPERIENCE"] = "1"; EnvVars["PATH"] = $"{sdkForWorkloadPath}{Path.PathSeparator}{Environment.GetEnvironmentVariable("PATH")}"; EnvVars["EM_WORKAROUND_PYTHON_BUG_34780"] = "1"; - if (UseWBTOverridePackTargets && IsWorkload) - EnvVars["WBTOverrideRuntimePack"] = "true"; if (!UseWebcil) { diff --git a/src/mono/wasm/Wasm.Build.Tests/SatelliteAssembliesTests.cs b/src/mono/wasm/Wasm.Build.Tests/SatelliteAssembliesTests.cs index 45ec5d21dbd155..348538c8dab5b3 100644 --- a/src/mono/wasm/Wasm.Build.Tests/SatelliteAssembliesTests.cs +++ b/src/mono/wasm/Wasm.Build.Tests/SatelliteAssembliesTests.cs @@ -110,7 +110,7 @@ public void ResourcesFromProjectReference(BuildArgs buildArgs, // affect the non-wasm library project File.Move(Path.Combine(rootDir, "Directory.Build.props"), Path.Combine(_projectDir, "Directory.Build.props")); File.Move(Path.Combine(rootDir, "Directory.Build.targets"), Path.Combine(_projectDir, "Directory.Build.targets")); - if (BuildEnvironment.UseWBTOverridePackTargets) + if (UseWBTOverridePackTargets) File.Move(Path.Combine(rootDir, "WasmOverridePacks.targets"), Path.Combine(_projectDir, "WasmOverridePacks.targets")); CreateProgramForCultureTest(_projectDir, "LibraryWithResources.resx.words", "LibraryWithResources.Class1"); diff --git a/src/mono/wasm/Wasm.Build.Tests/WasmTemplateTestBase.cs b/src/mono/wasm/Wasm.Build.Tests/WasmTemplateTestBase.cs index e58e7002a368bd..1b90d57d64b6ae 100644 --- a/src/mono/wasm/Wasm.Build.Tests/WasmTemplateTestBase.cs +++ b/src/mono/wasm/Wasm.Build.Tests/WasmTemplateTestBase.cs @@ -37,7 +37,7 @@ public string CreateWasmTemplateProject(string id, string template = "wasmbrowse """); - if (BuildEnvironment.UseWBTOverridePackTargets) + if (UseWBTOverridePackTargets) File.Copy(BuildEnvironment.WasmOverridePacksTargetsPath, Path.Combine(_projectDir, Path.GetFileName(BuildEnvironment.WasmOverridePacksTargetsPath)), overwrite: true); if (addFrameworkArg) From 0df52ace155f4af5734e1213c16a8c3bdd85f44b Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Tue, 24 Oct 2023 23:46:10 +0000 Subject: [PATCH 05/14] [wasm] WBT: Update tests to run with net9.0 --- src/mono/wasi/Wasi.Build.Tests/BuildTestBase.cs | 6 +++--- .../wasi/Wasi.Build.Tests/data/nuget9.config | 17 +++++++++++++++++ src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs | 8 ++++---- .../NonWasmTemplateBuildTests.cs | 4 ++-- .../Templates/WasmTemplateTests.cs | 15 ++++++++++----- .../wasm/Wasm.Build.Tests/TestMainJsTestBase.cs | 6 +++--- .../Wasm.Build.Tests/Wasm.Build.Tests.csproj | 3 ++- .../Wasm.Build.Tests/WasmTemplateTestBase.cs | 2 +- .../wasm/Wasm.Build.Tests/data/nuget9.config | 17 +++++++++++++++++ 9 files changed, 59 insertions(+), 19 deletions(-) create mode 100644 src/mono/wasi/Wasi.Build.Tests/data/nuget9.config create mode 100644 src/mono/wasm/Wasm.Build.Tests/data/nuget9.config diff --git a/src/mono/wasi/Wasi.Build.Tests/BuildTestBase.cs b/src/mono/wasi/Wasi.Build.Tests/BuildTestBase.cs index 86379f3dd97ec1..6a1e1ccc1e036b 100644 --- a/src/mono/wasi/Wasi.Build.Tests/BuildTestBase.cs +++ b/src/mono/wasi/Wasi.Build.Tests/BuildTestBase.cs @@ -26,7 +26,7 @@ namespace Wasm.Build.Tests { public abstract class BuildTestBase : IClassFixture, IDisposable { - public const string DefaultTargetFramework = "net8.0"; + public const string DefaultTargetFramework = "net9.0"; protected static readonly bool s_skipProjectCleanup; protected static readonly string s_xharnessRunnerCommand; protected string? _projectDir; @@ -55,7 +55,7 @@ public abstract class BuildTestBase : IClassFixture s_buildEnv.IsWorkload; public static bool IsNotUsingWorkloads => !s_buildEnv.IsWorkload; public static string GetNuGetConfigPathFor(string targetFramework) => - Path.Combine(BuildEnvironment.TestDataPath, "nuget8.config"); // for now - we are still using net7, but with + Path.Combine(BuildEnvironment.TestDataPath, "nuget9.config"); // targetFramework == "net7.0" ? "nuget7.config" : "nuget8.config"); static BuildTestBase() @@ -212,7 +212,7 @@ protected static BuildArgs ExpandBuildArgs(BuildArgs buildArgs, string extraProp File.WriteAllText(Path.Combine(_projectDir, $"{buildArgs.ProjectName}.csproj"), buildArgs.ProjectFileContents); File.Copy(Path.Combine(AppContext.BaseDirectory, - options.TargetFramework == "net8.0" ? "test-main.js" : "data/test-main-7.0.js"), + options.TargetFramework == "net7.0" ? "data/test-main-7.0.js" : "test-main.js"), Path.Combine(_projectDir, "test-main.js")); } else if (_projectDir is null) diff --git a/src/mono/wasi/Wasi.Build.Tests/data/nuget9.config b/src/mono/wasi/Wasi.Build.Tests/data/nuget9.config new file mode 100644 index 00000000000000..439c0c6101738b --- /dev/null +++ b/src/mono/wasi/Wasi.Build.Tests/data/nuget9.config @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs b/src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs index 23bcddfe4406f2..3f878fb23b6c4f 100644 --- a/src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs +++ b/src/mono/wasm/Wasm.Build.Tests/BuildTestBase.cs @@ -25,8 +25,9 @@ namespace Wasm.Build.Tests { public abstract class BuildTestBase : IClassFixture, IDisposable { - public const string DefaultTargetFramework = "net8.0"; + public const string DefaultTargetFramework = "net9.0"; public const string DefaultTargetFrameworkForBlazor = "net8.0"; + public const string TargetFrameworkForTasks = "net8.0"; private const string DefaultEnvironmentLocale = "en-US"; protected static readonly char s_unicodeChar = '\u7149'; protected static readonly bool s_skipProjectCleanup; @@ -60,9 +61,8 @@ public abstract class BuildTestBase : IClassFixture !s_buildEnv.IsWorkload; public static bool IsWorkloadWithMultiThreadingForDefaultFramework => s_buildEnv.IsWorkloadWithMultiThreadingForDefaultFramework; public static bool UseWebcil => s_buildEnv.UseWebcil; - public static string GetNuGetConfigPathFor(string targetFramework) => - Path.Combine(BuildEnvironment.TestDataPath, "nuget8.config"); // for now - we are still using net7, but with - // targetFramework == "net7.0" ? "nuget7.config" : "nuget8.config"); + public static string GetNuGetConfigPathFor(string targetFramework) + => Path.Combine(BuildEnvironment.TestDataPath, targetFramework == "net9.0" ? "nuget9.config" : "nuget8.config"); public TProvider GetProvider() where TProvider : ProjectProviderBase => (TProvider)_providerOfBaseType; diff --git a/src/mono/wasm/Wasm.Build.Tests/NonWasmTemplateBuildTests.cs b/src/mono/wasm/Wasm.Build.Tests/NonWasmTemplateBuildTests.cs index 579debf24502d9..4f86c39c3addf8 100644 --- a/src/mono/wasm/Wasm.Build.Tests/NonWasmTemplateBuildTests.cs +++ b/src/mono/wasm/Wasm.Build.Tests/NonWasmTemplateBuildTests.cs @@ -25,8 +25,8 @@ public NonWasmTemplateBuildTests(ITestOutputHelper output, SharedBuildPerTestCla // // This is useful for the case when we are on tfm=net7.0, but sdk, and packages // are really 8.0 . - private const string s_latestTargetFramework = "net8.0"; - private const string s_previousTargetFramework = "net7.0"; + private const string s_latestTargetFramework = "net9.0"; + private const string s_previousTargetFramework = "net8.0"; private static string s_directoryBuildTargetsForPreviousTFM = $$""" diff --git a/src/mono/wasm/Wasm.Build.Tests/Templates/WasmTemplateTests.cs b/src/mono/wasm/Wasm.Build.Tests/Templates/WasmTemplateTests.cs index 4462452486768f..e255640d6b1894 100644 --- a/src/mono/wasm/Wasm.Build.Tests/Templates/WasmTemplateTests.cs +++ b/src/mono/wasm/Wasm.Build.Tests/Templates/WasmTemplateTests.cs @@ -44,7 +44,7 @@ private void UpdateBrowserMainJs(string targetFramework, string runtimeAssetsRel // .withExitOnUnhandledError() is available only only >net7.0 mainJsContent = mainJsContent.Replace(".create()", - targetFramework == "net8.0" + (targetFramework == "net8.0" || targetFramework == "net9.0") ? ".withConsoleForwarding().withElementOnExit().withExitCodeLogging().withExitOnUnhandledError().create()" : ".withConsoleForwarding().withElementOnExit().withExitCodeLogging().create()"); @@ -191,6 +191,7 @@ public void ConsoleBuildAndRunDefault(string config, bool relinking) // [ActiveIssue("https://github.com/dotnet/runtime/issues/79313")] // [InlineData("Debug", "-f net7.0", "net7.0")] [InlineData("Debug", "-f net8.0", "net8.0")] + [InlineData("Debug", "-f net9.0", "net9.0")] public void ConsoleBuildAndRunForSpecificTFM(string config, string extraNewArgs, string expectedTFM) => ConsoleBuildAndRun(config, false, extraNewArgs, expectedTFM, addFrameworkArg: extraNewArgs?.Length == 0); @@ -392,7 +393,12 @@ public void ConsolePublishAndRun(string config, bool aot, bool relinking) UseCache: false, IsBrowserProject: false)); - string runArgs = $"run --no-silent --no-build -c {config}"; + new RunCommand(s_buildEnv, _testOutput, label: id) + .WithWorkingDirectory(_projectDir!) + .ExecuteWithCapturedOutput("--info") + .EnsureExitCode(0); + + string runArgs = $"run --no-silent --no-build -c {config} -v diag"; runArgs += " x y z"; var res = new RunCommand(s_buildEnv, _testOutput, label: id) .WithWorkingDirectory(_projectDir!) @@ -408,12 +414,11 @@ public void ConsolePublishAndRun(string config, bool aot, bool relinking) [Theory] [InlineData("", BuildTestBase.DefaultTargetFramework, DefaultRuntimeAssetsRelativePath)] + [InlineData("-f net9.0", "net9.0", DefaultRuntimeAssetsRelativePath)] + [InlineData("-f net8.0", "net8.0", DefaultRuntimeAssetsRelativePath)] // [ActiveIssue("https://github.com/dotnet/runtime/issues/90979")] // [InlineData("", BuildTestBase.DefaultTargetFramework, "./")] // [InlineData("-f net8.0", "net8.0", "./")] - // [ActiveIssue("https://github.com/dotnet/runtime/issues/79313")] - // [InlineData("-f net7.0", "net7.0")] - [InlineData("-f net8.0", "net8.0", DefaultRuntimeAssetsRelativePath)] public async Task BrowserBuildAndRun(string extraNewArgs, string targetFramework, string runtimeAssetsRelativePath) { string config = "Debug"; diff --git a/src/mono/wasm/Wasm.Build.Tests/TestMainJsTestBase.cs b/src/mono/wasm/Wasm.Build.Tests/TestMainJsTestBase.cs index ae36d1cdb38187..d154aafacd2bac 100644 --- a/src/mono/wasm/Wasm.Build.Tests/TestMainJsTestBase.cs +++ b/src/mono/wasm/Wasm.Build.Tests/TestMainJsTestBase.cs @@ -47,9 +47,9 @@ protected TestMainJsTestBase(ITestOutputHelper output, SharedBuildPerTestClassFi File.Copy( Path.Combine( AppContext.BaseDirectory, - string.IsNullOrEmpty(options.TargetFramework) || options.TargetFramework == "net8.0" - ? "test-main.js" - : "data/test-main-7.0.js" + options.TargetFramework == "net7.0" + ? "data/test-main-7.0.js" + : "test-main.js" ), Path.Combine(_projectDir, "test-main.js") ); diff --git a/src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj b/src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj index fb3359df0b9291..b05bd0ea5bcf9b 100644 --- a/src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj +++ b/src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj @@ -104,7 +104,8 @@ - <_RuntimePackVersions Include="$(PackageVersion)" EnvVarName="RUNTIME_PACK_VER8" /> + <_RuntimePackVersions Include="$(PackageVersion)" EnvVarName="RUNTIME_PACK_VER9" /> + <_RuntimePackVersions Include="$(PackageVersionNet8)" EnvVarName="RUNTIME_PACK_VER8" /> <_RuntimePackVersions Include="$(PackageVersionNet7)" EnvVarName="RUNTIME_PACK_VER7" Condition="'$(PackageVersionNet7)' != ''" /> <_RuntimePackVersions Include="$(PackageVersion)" EnvVarName="RUNTIME_PACK_VER7" Condition="'$(PackageVersionNet7)' == ''" /> <_RuntimePackVersions Include="$(PackageVersionNet6)" EnvVarName="RUNTIME_PACK_VER6" /> diff --git a/src/mono/wasm/Wasm.Build.Tests/WasmTemplateTestBase.cs b/src/mono/wasm/Wasm.Build.Tests/WasmTemplateTestBase.cs index 1b90d57d64b6ae..f7e7ccb2108fbe 100644 --- a/src/mono/wasm/Wasm.Build.Tests/WasmTemplateTestBase.cs +++ b/src/mono/wasm/Wasm.Build.Tests/WasmTemplateTestBase.cs @@ -21,7 +21,7 @@ protected WasmTemplateTestBase(ITestOutputHelper output, SharedBuildPerTestClass _provider.BundleDirName = "AppBundle"; } - public string CreateWasmTemplateProject(string id, string template = "wasmbrowser", string extraArgs = "", bool runAnalyzers = true, bool addFrameworkArg = true) + public string CreateWasmTemplateProject(string id, string template = "wasmbrowser", string extraArgs = "", bool runAnalyzers = true, bool addFrameworkArg = false) { InitPaths(id); InitProjectDir(_projectDir, addNuGetSourceForLocalPackages: true); diff --git a/src/mono/wasm/Wasm.Build.Tests/data/nuget9.config b/src/mono/wasm/Wasm.Build.Tests/data/nuget9.config new file mode 100644 index 00000000000000..439c0c6101738b --- /dev/null +++ b/src/mono/wasm/Wasm.Build.Tests/data/nuget9.config @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + From c3cd978c9737f1f1c0998408ccea3371dc84c537 Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Tue, 24 Oct 2023 23:46:39 +0000 Subject: [PATCH 06/14] [wasm] WBT: Remove --experiment-wasm-simd for v8 --- src/mono/wasm/Wasm.Build.Tests/HostRunner/V8HostRunner.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mono/wasm/Wasm.Build.Tests/HostRunner/V8HostRunner.cs b/src/mono/wasm/Wasm.Build.Tests/HostRunner/V8HostRunner.cs index 95349d72090034..4153a7326c441d 100644 --- a/src/mono/wasm/Wasm.Build.Tests/HostRunner/V8HostRunner.cs +++ b/src/mono/wasm/Wasm.Build.Tests/HostRunner/V8HostRunner.cs @@ -33,7 +33,7 @@ private static string BinaryPathArg } } - private string GetXharnessArgs(string jsRelativePath) => $"--js-file={jsRelativePath} --engine=V8 -v trace --engine-arg=--experimental-wasm-simd --engine-arg=--module {BinaryPathArg}"; + private string GetXharnessArgs(string jsRelativePath) => $"--js-file={jsRelativePath} --engine=V8 -v trace --engine-arg=--module {BinaryPathArg}"; public string GetTestCommand() => "wasm test"; public string GetXharnessArgsWindowsOS(XHarnessArgsOptions options) => GetXharnessArgs(options.jsRelativePath); From f611c4ad5dbd7e0c325bdbca2edb046ff2549b1e Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Tue, 24 Oct 2023 23:47:09 +0000 Subject: [PATCH 07/14] [wasm] WBT: differentiate version used for tasks from the tfm --- src/mono/wasm/Wasm.Build.Tests/PInvokeTableGeneratorTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mono/wasm/Wasm.Build.Tests/PInvokeTableGeneratorTests.cs b/src/mono/wasm/Wasm.Build.Tests/PInvokeTableGeneratorTests.cs index ff8a7c880453f5..cf1228020196aa 100644 --- a/src/mono/wasm/Wasm.Build.Tests/PInvokeTableGeneratorTests.cs +++ b/src/mono/wasm/Wasm.Build.Tests/PInvokeTableGeneratorTests.cs @@ -467,7 +467,7 @@ public static void Main() "Microsoft.NET.Runtime.WebAssembly.Sdk", s_buildEnv.GetRuntimePackVersion(DefaultTargetFramework), "tasks", - BuildTestBase.DefaultTargetFramework); // not net472! + BuildTestBase.TargetFrameworkForTasks); // not net472! if (!Directory.Exists(tasksDir)) { string? tasksDirParent = Path.GetDirectoryName (tasksDir); if (!string.IsNullOrEmpty (tasksDirParent)) { From b08ed1ca9bb4e1d63f3e4ea5dddffd9a486122ff Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Tue, 24 Oct 2023 23:47:32 +0000 Subject: [PATCH 08/14] [wasm] Fix wasmbrowser template so it correctly updates the tfm in csproj --- src/mono/wasm/templates/templates/browser/browser.0.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mono/wasm/templates/templates/browser/browser.0.csproj b/src/mono/wasm/templates/templates/browser/browser.0.csproj index 588c5219582125..1bc8c1bdc15c66 100644 --- a/src/mono/wasm/templates/templates/browser/browser.0.csproj +++ b/src/mono/wasm/templates/templates/browser/browser.0.csproj @@ -1,6 +1,6 @@ - net8.0 + net7.0 true From 63a69808bc5e04148098f86b4ff8e5843d9aa951 Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Wed, 25 Oct 2023 18:37:10 +0000 Subject: [PATCH 09/14] [wasm] WBT: Add runtime pack version for 9 in wasi --- src/mono/wasi/Wasi.Build.Tests/Wasi.Build.Tests.csproj | 4 +++- src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/mono/wasi/Wasi.Build.Tests/Wasi.Build.Tests.csproj b/src/mono/wasi/Wasi.Build.Tests/Wasi.Build.Tests.csproj index 0170425cab1c81..11de2b718d5abe 100644 --- a/src/mono/wasi/Wasi.Build.Tests/Wasi.Build.Tests.csproj +++ b/src/mono/wasi/Wasi.Build.Tests/Wasi.Build.Tests.csproj @@ -90,7 +90,9 @@ - <_RuntimePackVersions Include="$(PackageVersion)" EnvVarName="RUNTIME_PACK_VER8" /> + <_RuntimePackVersions Include="$(PackageVersion)" EnvVarName="RUNTIME_PACK_VER9" /> + <_RuntimePackVersions Include="$(PackageVersionNet8)" EnvVarName="RUNTIME_PACK_VER8" Condition="'$(PackageVersionNet8)' != ''" /> + <_RuntimePackVersions Include="$(PackageVersion)" EnvVarName="RUNTIME_PACK_VER8" Condition="'$(PackageVersionNet8)' == ''" /> diff --git a/src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj b/src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj index b05bd0ea5bcf9b..7417fbe2fe6133 100644 --- a/src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj +++ b/src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj @@ -105,7 +105,8 @@ <_RuntimePackVersions Include="$(PackageVersion)" EnvVarName="RUNTIME_PACK_VER9" /> - <_RuntimePackVersions Include="$(PackageVersionNet8)" EnvVarName="RUNTIME_PACK_VER8" /> + <_RuntimePackVersions Include="$(PackageVersionNet8)" EnvVarName="RUNTIME_PACK_VER8" Condition="'$(PackageVersionNet8)' != ''" /> + <_RuntimePackVersions Include="$(PackageVersion)" EnvVarName="RUNTIME_PACK_VER8" Condition="'$(PackageVersionNet8)' == ''" /> <_RuntimePackVersions Include="$(PackageVersionNet7)" EnvVarName="RUNTIME_PACK_VER7" Condition="'$(PackageVersionNet7)' != ''" /> <_RuntimePackVersions Include="$(PackageVersion)" EnvVarName="RUNTIME_PACK_VER7" Condition="'$(PackageVersionNet7)' == ''" /> <_RuntimePackVersions Include="$(PackageVersionNet6)" EnvVarName="RUNTIME_PACK_VER6" /> From 798b14707ace6615698fc8af4cbe27aa1beed988 Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Wed, 25 Oct 2023 18:40:10 +0000 Subject: [PATCH 10/14] [wasm] WBT: Share nuget config files between wasm and wasi --- .../Wasi.Build.Tests/Wasi.Build.Tests.csproj | 1 + .../wasi/Wasi.Build.Tests/data/nuget8.config | 16 ---------------- .../wasi/Wasi.Build.Tests/data/nuget9.config | 17 ----------------- 3 files changed, 1 insertion(+), 33 deletions(-) delete mode 100644 src/mono/wasi/Wasi.Build.Tests/data/nuget8.config delete mode 100644 src/mono/wasi/Wasi.Build.Tests/data/nuget9.config diff --git a/src/mono/wasi/Wasi.Build.Tests/Wasi.Build.Tests.csproj b/src/mono/wasi/Wasi.Build.Tests/Wasi.Build.Tests.csproj index 11de2b718d5abe..cc27e159d25e6e 100644 --- a/src/mono/wasi/Wasi.Build.Tests/Wasi.Build.Tests.csproj +++ b/src/mono/wasi/Wasi.Build.Tests/Wasi.Build.Tests.csproj @@ -39,6 +39,7 @@ + diff --git a/src/mono/wasi/Wasi.Build.Tests/data/nuget8.config b/src/mono/wasi/Wasi.Build.Tests/data/nuget8.config deleted file mode 100644 index dfdc8009c6a5d5..00000000000000 --- a/src/mono/wasi/Wasi.Build.Tests/data/nuget8.config +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/src/mono/wasi/Wasi.Build.Tests/data/nuget9.config b/src/mono/wasi/Wasi.Build.Tests/data/nuget9.config deleted file mode 100644 index 439c0c6101738b..00000000000000 --- a/src/mono/wasi/Wasi.Build.Tests/data/nuget9.config +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - From d58ddf767b8d7c76ccf757cd40d8b3b7b33fe60b Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Wed, 25 Oct 2023 20:26:38 +0000 Subject: [PATCH 11/14] [wasm] WBT: Fix blazor tests --- src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj b/src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj index 7417fbe2fe6133..a4ac1a26d960c8 100644 --- a/src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj +++ b/src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj @@ -105,8 +105,13 @@ <_RuntimePackVersions Include="$(PackageVersion)" EnvVarName="RUNTIME_PACK_VER9" /> - <_RuntimePackVersions Include="$(PackageVersionNet8)" EnvVarName="RUNTIME_PACK_VER8" Condition="'$(PackageVersionNet8)' != ''" /> - <_RuntimePackVersions Include="$(PackageVersion)" EnvVarName="RUNTIME_PACK_VER8" Condition="'$(PackageVersionNet8)' == ''" /> + + + <_RuntimePackVersions Include="$(PackageVersion)" EnvVarName="RUNTIME_PACK_VER8" /> + + + <_RuntimePackVersions Include="$(PackageVersionNet7)" EnvVarName="RUNTIME_PACK_VER7" Condition="'$(PackageVersionNet7)' != ''" /> <_RuntimePackVersions Include="$(PackageVersion)" EnvVarName="RUNTIME_PACK_VER7" Condition="'$(PackageVersionNet7)' == ''" /> <_RuntimePackVersions Include="$(PackageVersionNet6)" EnvVarName="RUNTIME_PACK_VER6" /> From c21b2ce5e156823fdaa4ef25b74d54a1e5a45730 Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Wed, 25 Oct 2023 22:19:03 +0000 Subject: [PATCH 12/14] [wasm] WBT: Don't test 8.0 templates yet. this will need more changes --- src/mono/wasm/Wasm.Build.Tests/Templates/WasmTemplateTests.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mono/wasm/Wasm.Build.Tests/Templates/WasmTemplateTests.cs b/src/mono/wasm/Wasm.Build.Tests/Templates/WasmTemplateTests.cs index e255640d6b1894..cf626a59ff282d 100644 --- a/src/mono/wasm/Wasm.Build.Tests/Templates/WasmTemplateTests.cs +++ b/src/mono/wasm/Wasm.Build.Tests/Templates/WasmTemplateTests.cs @@ -190,7 +190,7 @@ public void ConsoleBuildAndRunDefault(string config, bool relinking) [Theory] // [ActiveIssue("https://github.com/dotnet/runtime/issues/79313")] // [InlineData("Debug", "-f net7.0", "net7.0")] - [InlineData("Debug", "-f net8.0", "net8.0")] + //[InlineData("Debug", "-f net8.0", "net8.0")] [InlineData("Debug", "-f net9.0", "net9.0")] public void ConsoleBuildAndRunForSpecificTFM(string config, string extraNewArgs, string expectedTFM) => ConsoleBuildAndRun(config, false, extraNewArgs, expectedTFM, addFrameworkArg: extraNewArgs?.Length == 0); From 8e4f087a5e9af5674d72385cdcf2f9a050c9b73c Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Thu, 26 Oct 2023 18:51:02 +0000 Subject: [PATCH 13/14] [wasm] Don't default ForceNet8Current=false yet Instead set this only for WBT. --- .../WorkloadManifest.targets.in | 5 ++--- src/mono/wasm/Wasm.Build.Tests/Blazor/BlazorWasmTestBase.cs | 3 --- src/mono/wasm/Wasm.Build.Tests/TestMainJsTestBase.cs | 5 +++++ src/mono/wasm/Wasm.Build.Tests/WasmTemplateTestBase.cs | 5 +++++ 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest/WorkloadManifest.targets.in b/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest/WorkloadManifest.targets.in index 23b485bb396af4..6569a88712d583 100644 --- a/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest/WorkloadManifest.targets.in +++ b/src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest/WorkloadManifest.targets.in @@ -7,9 +7,8 @@ <_RuntimePackInWorkloadVersion6>${PackageVersionNet6} true - - true - false + + true true diff --git a/src/mono/wasm/Wasm.Build.Tests/Blazor/BlazorWasmTestBase.cs b/src/mono/wasm/Wasm.Build.Tests/Blazor/BlazorWasmTestBase.cs index e8babed820a41c..a5d01c2d883865 100644 --- a/src/mono/wasm/Wasm.Build.Tests/Blazor/BlazorWasmTestBase.cs +++ b/src/mono/wasm/Wasm.Build.Tests/Blazor/BlazorWasmTestBase.cs @@ -23,9 +23,6 @@ protected BlazorWasmTestBase(ITestOutputHelper output, SharedBuildPerTestClassFi { _provider = GetProvider(); _provider.BundleDirName = "wwwroot"; - - if (DefaultTargetFrameworkForBlazor == "net8.0") - UseWBTOverridePackTargets = true; } public void InitBlazorWasmProjectDir(string id, string targetFramework = DefaultTargetFrameworkForBlazor) diff --git a/src/mono/wasm/Wasm.Build.Tests/TestMainJsTestBase.cs b/src/mono/wasm/Wasm.Build.Tests/TestMainJsTestBase.cs index d154aafacd2bac..2c56227c6693a3 100644 --- a/src/mono/wasm/Wasm.Build.Tests/TestMainJsTestBase.cs +++ b/src/mono/wasm/Wasm.Build.Tests/TestMainJsTestBase.cs @@ -4,6 +4,7 @@ #nullable enable using System; +using System.Collections.Generic; using System.IO; using Xunit.Abstractions; using Xunit.Sdk; @@ -61,6 +62,10 @@ protected TestMainJsTestBase(ITestOutputHelper output, SharedBuildPerTestClassFi throw new Exception("_projectDir should be set, to use options.createProject=false"); } + if (options.ExtraBuildEnvironmentVariables is null) + options = options with { ExtraBuildEnvironmentVariables = new Dictionary() }; + options.ExtraBuildEnvironmentVariables["ForceNet8Current"] = "false"; + try { (CommandResult res, string logFilePath) = BuildProjectWithoutAssert(id, diff --git a/src/mono/wasm/Wasm.Build.Tests/WasmTemplateTestBase.cs b/src/mono/wasm/Wasm.Build.Tests/WasmTemplateTestBase.cs index f7e7ccb2108fbe..c9de1408701dc2 100644 --- a/src/mono/wasm/Wasm.Build.Tests/WasmTemplateTestBase.cs +++ b/src/mono/wasm/Wasm.Build.Tests/WasmTemplateTestBase.cs @@ -4,6 +4,7 @@ #nullable enable using System; +using System.Collections.Generic; using System.IO; using System.Text.Json.Nodes; using Xunit.Abstractions; @@ -89,6 +90,10 @@ private static void UpdateRuntimeconfigTemplateForNode(string projectDir) string id, BuildProjectOptions buildProjectOptions) { + if (buildProjectOptions.ExtraBuildEnvironmentVariables is null) + buildProjectOptions = buildProjectOptions with { ExtraBuildEnvironmentVariables = new Dictionary() }; + buildProjectOptions.ExtraBuildEnvironmentVariables["ForceNet8Current"] = "false"; + (CommandResult res, string logFilePath) = BuildProjectWithoutAssert(id, buildArgs.Config, buildProjectOptions); if (buildProjectOptions.UseCache) _buildContext.CacheBuild(buildArgs, new BuildProduct(_projectDir!, logFilePath, true, res.Output)); From 43289cb10061026cd66db8635ecab279fdf7228b Mon Sep 17 00:00:00 2001 From: Ankit Jain Date: Thu, 26 Oct 2023 19:02:09 +0000 Subject: [PATCH 14/14] perf: add dummy change to trigger runtime-wasm-perf --- eng/pipelines/runtime-wasm-perf.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/runtime-wasm-perf.yml b/eng/pipelines/runtime-wasm-perf.yml index 120cc2df85307d..478bbb81f8a4c8 100644 --- a/eng/pipelines/runtime-wasm-perf.yml +++ b/eng/pipelines/runtime-wasm-perf.yml @@ -39,7 +39,7 @@ extends: runProfile: 'v8' collectHelixLogsScript: ${{ variables._wasmCollectHelixLogsScript }} onlySanityCheck: true - #perfForkToUse: + #perfForkToUse: - dummy change #url: https://github.com/radical/performance #branch: fix-build #downloadSpecificBuild: