diff --git a/eng/pipelines/common/evaluate-default-paths.yml b/eng/pipelines/common/evaluate-default-paths.yml
index da3f291a9ce28..d7ae882df406f 100644
--- a/eng/pipelines/common/evaluate-default-paths.yml
+++ b/eng/pipelines/common/evaluate-default-paths.yml
@@ -31,7 +31,6 @@ jobs:
- src/libraries/System.Private.CoreLib/*
- src/libraries/Native/Unix/System.Globalization.Native/*
- src/libraries/Native/Unix/Common/*
- - src/tests/BuildWasmApps/*
- src/native/*
exclude:
- eng/Version.Details.xml
@@ -102,6 +101,19 @@ jobs:
- subset: coreclr_jit
include:
- src/coreclr/jit/*
+ - subset: wasmbuildtests
+ include:
+ - src/tasks/*
+ - src/tests/BuildWasmApps/*
+ - src/mono/wasm/build/*
+ - src/mono/wasm/runtime/*
+ - src/mono/nuget/Microsoft.NET.Workload.Mono.Toolchain.Manifest/*
+ - src/mono/nuget/Microsoft.NET.Runtime.WebAssembly.Sdk/*
+ - src/mono/nuget/Microsoft.NET.Runtime.wasm.Sample.Mono/*
+ - src/mono/nuget/Microsoft.NETCore.BrowserDebugHost.Transport/*
+ - src/mono/nuget/Microsoft.NET.Runtime.MonoAOTCompiler.Task/*
+ - src/mono/nuget/Microsoft.NET.Runtime.MonoTargets.Sdk/*
+ - src/mono/mono/*
- ${{ if ne(parameters.extraSubsets, '') }}:
- ${{ parameters.extraSubsets }}
diff --git a/eng/pipelines/common/global-build-job.yml b/eng/pipelines/common/global-build-job.yml
index 7db10e91e68b3..cf30d702dda60 100644
--- a/eng/pipelines/common/global-build-job.yml
+++ b/eng/pipelines/common/global-build-job.yml
@@ -136,7 +136,7 @@ jobs:
df -h
displayName: Disk Usage before Build
- - ${{ if eq(parameters.nameSuffix, 'Browser_wasm_Windows') }}:
+ - ${{ if contains(parameters.nameSuffix, 'Windows_wasm') }}:
# Update machine certs
- task: PowerShell@2
displayName: Update machine certs
diff --git a/eng/pipelines/runtime-manual.yml b/eng/pipelines/runtime-manual.yml
index 3139a1f76cbc4..e79f469471bde 100644
--- a/eng/pipelines/runtime-manual.yml
+++ b/eng/pipelines/runtime-manual.yml
@@ -270,7 +270,7 @@ jobs:
value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ]
jobParameters:
testGroup: innerloop
- nameSuffix: Browser_wasm_Windows
+ nameSuffix: Windows_wasm
buildArgs: -subset mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:BrowserHost=windows
timeoutInMinutes: 180
condition: >-
@@ -297,7 +297,82 @@ jobs:
eq(variables['isManualOrIsNotPR'], true),
eq(variables['isFullMatrix'], true))
+- 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_win
+ variables:
+ # map dependencies variables to local variables
+ - name: wasmbuildtestsContainsChange
+ value: $[ dependencies.evaluate_paths.outputs['SetPathVars_wasmbuildtests.containsChange'] ]
+ jobParameters:
+ testGroup: innerloop
+ nameSuffix: Windows_wasm_WBT
+ buildArgs: -subset mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:BrowserHost=windows /p:TestWasmBuildTests=true /p:TestAssemblies=false
+ timeoutInMinutes: 180
+ condition: >-
+ or(
+ eq(dependencies.evaluate_paths.outputs['SetPathVars_wasmbuildtests.containsChange'], true),
+ eq(variables['isManualOrIsNotPR'], true),
+ eq(variables['isFullMatrix'], true))
+ # extra steps, run tests
+ extraStepsTemplate: /eng/pipelines/libraries/helix.yml
+ extraStepsParameters:
+ creator: dotnet-bot
+ testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ extraHelixArguments: /p:BrowserHost=windows
+ scenarios:
+ - buildwasmapps
+ condition: >-
+ or(
+ eq(variables['wasmbuildtestsContainsChange'], true),
+ eq(variables['isManualOrIsNotPR'], true),
+ eq(variables['isFullMatrix'], true))
+- 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_win
+ variables:
+ # map dependencies variables to local variables
+ - name: librariesContainsChange
+ value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ]
+ - name: monoContainsChange
+ value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ]
+ jobParameters:
+ testGroup: innerloop
+ nameSuffix: Windows_wasm_AOT
+ buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:BrowserHost=windows /p:EnableAggressiveTrimming=true /p:BuildAOTTestsOnHelix=true /p:RunAOTCompilation=true $(_runSmokeTestsOnlyArg)
+ timeoutInMinutes: 180
+ condition: >-
+ or(
+ eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+ eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
+ eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+ eq(variables['isManualOrIsNotPR'], true),
+ eq(variables['isFullMatrix'], true))
+ # extra steps, run tests
+ extraStepsTemplate: /eng/pipelines/libraries/helix.yml
+ extraStepsParameters:
+ creator: dotnet-bot
+ testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ extraHelixArguments: /p:BrowserHost=windows /p:NeedsToBuildWasmAppsOnHelix=true $(_runSmokeTestsOnlyArg)
+ scenarios:
+ - normal
+ condition: >-
+ or(
+ eq(variables['librariesContainsChange'], true),
+ eq(variables['monoContainsChange'], true),
+ eq(variables['isManualOrIsNotPR'], true),
+ eq(variables['isFullMatrix'], true))
#
# Build for Browser/wasm, with EnableAggressiveTrimming=true
@@ -427,4 +502,4 @@ jobs:
extraStepsTemplate: /eng/pipelines/common/templates/runtimes/android-runtime-and-send-to-helix.yml
extraStepsParameters:
creator: dotnet-bot
- testRunNamePrefixSuffix: Mono_$(_BuildConfig)
\ No newline at end of file
+ testRunNamePrefixSuffix: Mono_$(_BuildConfig)
diff --git a/eng/pipelines/runtime-staging.yml b/eng/pipelines/runtime-staging.yml
index 9dce643f1a3ac..fa634a1e571d2 100644
--- a/eng/pipelines/runtime-staging.yml
+++ b/eng/pipelines/runtime-staging.yml
@@ -463,7 +463,7 @@ jobs:
value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ]
jobParameters:
testGroup: innerloop
- nameSuffix: Browser_wasm_Windows
+ nameSuffix: Windows_wasm
buildArgs: -subset mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:BrowserHost=windows
timeoutInMinutes: 180
condition: >-
@@ -490,6 +490,90 @@ jobs:
eq(variables['isManualOrIsNotPR'], true),
eq(variables['isFullMatrix'], true))
+#
+# Build Browser_wasm, on windows, and run tests with AOT
+#
+- 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_win
+ variables:
+ # map dependencies variables to local variables
+ - name: librariesContainsChange
+ value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ]
+ - name: monoContainsChange
+ value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ]
+ jobParameters:
+ testGroup: innerloop
+ nameSuffix: Windows_wasm_AOT
+ buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:BrowserHost=windows /p:EnableAggressiveTrimming=true /p:BuildAOTTestsOnHelix=true /p:RunAOTCompilation=true $(_runSmokeTestsOnlyArg)
+ timeoutInMinutes: 180
+ condition: >-
+ or(
+ eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
+ eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
+ eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+ eq(variables['isManualOrIsNotPR'], true),
+ eq(variables['isFullMatrix'], true))
+ # extra steps, run tests
+ extraStepsTemplate: /eng/pipelines/libraries/helix.yml
+ extraStepsParameters:
+ creator: dotnet-bot
+ testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ extraHelixArguments: /p:BrowserHost=windows /p:NeedsToBuildWasmAppsOnHelix=true $(_runSmokeTestsOnlyArg)
+ scenarios:
+ - normal
+ condition: >-
+ or(
+ eq(variables['librariesContainsChange'], true),
+ eq(variables['monoContainsChange'], true),
+ eq(variables['isManualOrIsNotPR'], true),
+ eq(variables['isFullMatrix'], true))
+
+
+#
+# Build Browser_wasm, on windows, and run Wasm.Build.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_win
+ variables:
+ # map dependencies variables to local variables
+ - name: wasmbuildtestsContainsChange
+ value: $[ dependencies.evaluate_paths.outputs['SetPathVars_wasmbuildtests.containsChange'] ]
+ jobParameters:
+ testGroup: innerloop
+ nameSuffix: Windows_wasm_WBT
+ buildArgs: -subset mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:BrowserHost=windows /p:TestWasmBuildTests=true /p:TestAssemblies=false
+ timeoutInMinutes: 180
+ condition: >-
+ or(
+ eq(dependencies.evaluate_paths.outputs['SetPathVars_wasmbuildtests.containsChange'], true),
+ eq(variables['isManualOrIsNotPR'], true),
+ eq(variables['isFullMatrix'], true))
+ # extra steps, run tests
+ extraStepsTemplate: /eng/pipelines/libraries/helix.yml
+ extraStepsParameters:
+ creator: dotnet-bot
+ testRunNamePrefixSuffix: Mono_$(_BuildConfig)
+ extraHelixArguments: /p:BrowserHost=windows
+ scenarios:
+ - buildwasmapps
+ condition: >-
+ or(
+ eq(variables['wasmbuildtestsContainsChange'], true),
+ eq(variables['isManualOrIsNotPR'], true),
+ eq(variables['isFullMatrix'], true))
+
#
# CoreCLR Build for running Apple Silicon libraries-innerloop
#
diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml
index 770d9c1de4cda..ae420ad125272 100644
--- a/eng/pipelines/runtime.yml
+++ b/eng/pipelines/runtime.yml
@@ -328,15 +328,11 @@ jobs:
buildConfig: Release
runtimeFlavor: mono
platforms:
- # BuildWasmApps should only happen on the rolling build. No need to duplicate the build on PR's
- - ${{ if eq(variables['isFullMatrix'], true) }}:
- - Browser_wasm
+ - Browser_wasm
variables:
# map dependencies variables to local variables
- - name: monoContainsChange
- value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ]
- - name: installerContainsChange
- value: $[ dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'] ]
+ - name: wasmbuildtestsContainsChange
+ value: $[ dependencies.evaluate_paths.outputs['SetPathVars_wasmbuildtests.containsChange'] ]
jobParameters:
testGroup: innerloop
nameSuffix: AllSubsets_Mono_WasmBuildTests
@@ -344,8 +340,7 @@ jobs:
timeoutInMinutes: 180
condition: >-
or(
- eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
- eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
+ eq(dependencies.evaluate_paths.outputs['SetPathVars_wasmbuildtests.containsChange'], true),
eq(variables['isFullMatrix'], true))
# extra steps, run tests
extraStepsTemplate: /eng/pipelines/libraries/helix.yml
@@ -356,8 +351,7 @@ jobs:
- buildwasmapps
condition: >-
or(
- eq(variables['monoContainsChange'], true),
- eq(variables['installerContainsChange'], true),
+ eq(variables['wasmbuildtestsContainsChange'], true),
eq(variables['isFullMatrix'], true))
#
diff --git a/eng/testing/tests.wasm.targets b/eng/testing/tests.wasm.targets
index 53b0f0254148d..000316cfd46d5 100644
--- a/eng/testing/tests.wasm.targets
+++ b/eng/testing/tests.wasm.targets
@@ -5,9 +5,13 @@
true
$(BundleTestAppTargets);BundleTestWasmApp
true
+ false
true
+
+ <_ShellCommandSeparator Condition="'$(OS)' == 'Windows_NT'">&
+ <_ShellCommandSeparator Condition="'$(OS)' != 'Windows_NT'">&&
@@ -38,16 +42,19 @@
- <_AOTBuildCommand>_buildAOTFunc publish/ProxyProjectForAOTOnHelix.proj $XHARNESS_OUT/AOTBuild.binlog
+ <_AOTBuildCommand Condition="'$(BrowserHost)' != 'windows'">_buildAOTFunc publish/ProxyProjectForAOTOnHelix.proj $XHARNESS_OUT/AOTBuild.binlog
+ <_AOTBuildCommand Condition="'$(BrowserHost)' == 'windows'">dotnet msbuild publish/ProxyProjectForAOTOnHelix.proj /bl:%XHARNESS_OUT%/AOTBuild.binlog
+
+ <_AOTBuildCommand Condition="'$(BrowserHost)' == 'windows'">$(_AOTBuildCommand) "/p:WasmCachePath=%USERPROFILE%\.emscripten-cache"
<_AOTBuildCommand Condition="'$(ContinuousIntegrationBuild)' != 'true'">$(_AOTBuildCommand) /p:RuntimeSrcDir=$(RepoRoot) /p:RuntimeConfig=$(Configuration)
<_AOTBuildCommand>$(_AOTBuildCommand) /p:RunAOTCompilation=$(RunAOTCompilation)
- <_AOTBuildCommand>$(_AOTBuildCommand) && cd wasm_build/AppBundle
+ <_AOTBuildCommand>$(_AOTBuildCommand) $(_ShellCommandSeparator) cd wasm_build/AppBundle
$(_AOTBuildCommand)
- $(_AOTBuildCommand) && $(RunScriptCommand)
+ $(_AOTBuildCommand) $(_ShellCommandSeparator) $(RunScriptCommand)
diff --git a/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.Windows.cs b/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.Windows.cs
index d5b2c36e961e0..2eeb8bdd367fe 100644
--- a/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.Windows.cs
+++ b/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.Windows.cs
@@ -36,6 +36,7 @@ public static partial class PlatformDetection
public static bool IsNotWindowsHomeEdition => !IsWindowsHomeEdition;
public static bool IsNotInAppContainer => !IsInAppContainer;
public static bool IsSoundPlaySupported => IsWindows && IsNotWindowsNanoServer;
+ public static bool IsBrowserOnWindows => IsBrowser && Path.DirectorySeparatorChar == '\\';
// >= Windows 10 Anniversary Update
public static bool IsWindows10Version1607OrGreater => IsWindowsVersionOrLater(10, 0, 14393);
diff --git a/src/libraries/System.Globalization.Extensions/tests/IdnMapping/IdnMappingIdnaConformanceTests.cs b/src/libraries/System.Globalization.Extensions/tests/IdnMapping/IdnMappingIdnaConformanceTests.cs
index 26e99ce7686b1..b9324d48f0f24 100644
--- a/src/libraries/System.Globalization.Extensions/tests/IdnMapping/IdnMappingIdnaConformanceTests.cs
+++ b/src/libraries/System.Globalization.Extensions/tests/IdnMapping/IdnMappingIdnaConformanceTests.cs
@@ -21,6 +21,7 @@ public class IdnMappingIdnaConformanceTests
/// There are some others that failed which have been commented out and marked in the dataset as "GETASCII DOES FAILS ON WINDOWS 8.1"
/// Same applies to Windows 10 >= 10.0.15063 in the IdnaTest_9.txt file
[Fact]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/58708", typeof(PlatformDetection), nameof(PlatformDetection.IsBrowserOnWindows), nameof(PlatformDetection.IsMonoAOT))]
public void GetAscii_Success()
{
Assert.All(Factory.GetDataset().Where(e => e.ASCIIResult.Success), entry =>
@@ -51,6 +52,7 @@ public void GetAscii_Success()
/// Same applies to Windows 10 >= 10.0.15063 in the IdnaTest_9.txt file
///
[Fact]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/58708", typeof(PlatformDetection), nameof(PlatformDetection.IsBrowserOnWindows), nameof(PlatformDetection.IsMonoAOT))]
public void GetUnicode_Success()
{
Assert.All(Factory.GetDataset().Where(e => e.UnicodeResult.Success && e.UnicodeResult.ValidDomainName), entry =>
@@ -83,6 +85,7 @@ public void GetUnicode_Success()
/// Same applies to Windows 10 >= 10.0.15063 in the IdnaTest_9.txt file
///
[ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindowsNanoServer))] // https://github.com/dotnet/runtime/issues/22409
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/58708", typeof(PlatformDetection), nameof(PlatformDetection.IsBrowserOnWindows), nameof(PlatformDetection.IsMonoAOT))]
public void GetAscii_Invalid()
{
Assert.All(Factory.GetDataset().Where(entry => !entry.ASCIIResult.Success), entry =>
@@ -112,6 +115,7 @@ public void GetAscii_Invalid()
/// Same applies to Windows 10 >= 10.0.15063 in the IdnaTest_9.txt file
///
[Fact]
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/58708", typeof(PlatformDetection), nameof(PlatformDetection.IsBrowserOnWindows), nameof(PlatformDetection.IsMonoAOT))]
public void GetUnicode_Invalid()
{
Assert.All(Factory.GetDataset().Where(entry => !entry.UnicodeResult.Success), entry =>
diff --git a/src/libraries/System.IO.FileSystem/tests/FileInfo/CopyTo.cs b/src/libraries/System.IO.FileSystem/tests/FileInfo/CopyTo.cs
index 99a0701e7a042..49625c1f0c193 100644
--- a/src/libraries/System.IO.FileSystem/tests/FileInfo/CopyTo.cs
+++ b/src/libraries/System.IO.FileSystem/tests/FileInfo/CopyTo.cs
@@ -5,6 +5,7 @@
namespace System.IO.Tests
{
+ [ActiveIssue("https://github.com/dotnet/runtime/issues/58707", typeof(PlatformDetection), nameof(PlatformDetection.IsBrowserOnWindows), nameof(PlatformDetection.IsMonoAOT))]
public class FileInfo_CopyTo_str : File_Copy_str_str
{
protected override void Copy(string source, string dest)
diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj
index 6dbb311329b34..280ad64231e7c 100644
--- a/src/libraries/tests.proj
+++ b/src/libraries/tests.proj
@@ -405,11 +405,16 @@
BuildInParallel="false" />
+
+ false
+ true
+
+
+ BuildInParallel="$(Samples_BuildInParallel)" />
diff --git a/src/mono/wasm/build/WasmApp.Native.targets b/src/mono/wasm/build/WasmApp.Native.targets
index b33b74d1611b0..bfac812dadd9b 100644
--- a/src/mono/wasm/build/WasmApp.Native.targets
+++ b/src/mono/wasm/build/WasmApp.Native.targets
@@ -225,6 +225,9 @@
<_DotnetJSSrcFile Include="$(_WasmRuntimePackSrcDir)\*.js" Exclude="$(_WasmRuntimePackSrcDir)\*.iffe.js"/>
<_WasmExtraJSFile Include="$(_WasmRuntimePackSrcDir)\*.iffe.js" Kind="extern-pre-js" />
<_WasmNativeFileForLinking Include="@(NativeFileReference)" />
+
+
+
diff --git a/src/mono/wasm/build/WasmApp.targets b/src/mono/wasm/build/WasmApp.targets
index 85195c1ae637a..4bcaac94f329d 100644
--- a/src/mono/wasm/build/WasmApp.targets
+++ b/src/mono/wasm/build/WasmApp.targets
@@ -180,6 +180,7 @@
<_WasmShouldAOT Condition="'$(_WasmShouldAOT)' == ''">false
+
diff --git a/src/tests/BuildWasmApps/Wasm.Build.Tests/BuildEnvironment.cs b/src/tests/BuildWasmApps/Wasm.Build.Tests/BuildEnvironment.cs
index b1de19ba1690d..366612b850f62 100644
--- a/src/tests/BuildWasmApps/Wasm.Build.Tests/BuildEnvironment.cs
+++ b/src/tests/BuildWasmApps/Wasm.Build.Tests/BuildEnvironment.cs
@@ -111,6 +111,15 @@ public BuildEnvironment()
EnvVars["MSBuildSDKsPath"] = string.Empty;
EnvVars["PATH"] = $"{sdkForWorkloadPath}{Path.PathSeparator}{Environment.GetEnvironmentVariable("PATH")}";
+ // helps with debugging
+ EnvVars["WasmNativeStrip"] = "false";
+
+ if (OperatingSystem.IsWindows())
+ {
+ EnvVars["WasmCachePath"] = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile),
+ ".emscripten-cache");
+ }
+
RuntimeNativeDir = Path.Combine(RuntimePackDir, "runtimes", "browser-wasm", "native");
DotNet = Path.Combine(sdkForWorkloadPath!, "dotnet");
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
diff --git a/src/tests/BuildWasmApps/Wasm.Build.Tests/NativeRebuildTests/FlagsChangeRebuildTest.cs b/src/tests/BuildWasmApps/Wasm.Build.Tests/NativeRebuildTests/FlagsChangeRebuildTest.cs
index b73e521f8ca20..21671324a210e 100644
--- a/src/tests/BuildWasmApps/Wasm.Build.Tests/NativeRebuildTests/FlagsChangeRebuildTest.cs
+++ b/src/tests/BuildWasmApps/Wasm.Build.Tests/NativeRebuildTests/FlagsChangeRebuildTest.cs
@@ -54,7 +54,7 @@ public void ExtraEmccFlagsSetButNoRealChange(BuildArgs buildArgs, string extraCF
AssertSubstring("pinvoke.c -> pinvoke.o", output, contains: extraCFlags.Length > 0);
// ldflags: link step args change, so it should trigger relink
- AssertSubstring("wasm-opt", output, contains: extraLDFlags.Length > 0);
+ AssertSubstring("Linking with emcc", output, contains: extraLDFlags.Length > 0);
if (buildArgs.AOT)
{
diff --git a/src/tests/BuildWasmApps/Wasm.Build.Tests/Wasm.Build.Tests.csproj b/src/tests/BuildWasmApps/Wasm.Build.Tests/Wasm.Build.Tests.csproj
index 7250c9e029dcd..445e6c6d0987e 100644
--- a/src/tests/BuildWasmApps/Wasm.Build.Tests/Wasm.Build.Tests.csproj
+++ b/src/tests/BuildWasmApps/Wasm.Build.Tests/Wasm.Build.Tests.csproj
@@ -66,6 +66,7 @@
$(RunScriptCommand) -nocolor
$(RunScriptCommand) -verbose
+ $(RunScriptCommand) -parallel none
$(RunScriptCommand) -method $(XUnitMethodName)
$(RunScriptCommand) -class $(XUnitClassName)
diff --git a/src/tests/BuildWasmApps/Wasm.Build.Tests/data/Blazor.Directory.Build.targets b/src/tests/BuildWasmApps/Wasm.Build.Tests/data/Blazor.Directory.Build.targets
index 5cef9821d8f80..eef5145d0bc1f 100644
--- a/src/tests/BuildWasmApps/Wasm.Build.Tests/data/Blazor.Directory.Build.targets
+++ b/src/tests/BuildWasmApps/Wasm.Build.Tests/data/Blazor.Directory.Build.targets
@@ -3,6 +3,9 @@
<_MicrosoftNetCoreAppRefDir>$(AppRefDir)\
Microsoft.NETCore.App
+
+
+
diff --git a/src/tests/BuildWasmApps/Wasm.Build.Tests/data/Local.Directory.Build.targets b/src/tests/BuildWasmApps/Wasm.Build.Tests/data/Local.Directory.Build.targets
index b327d1e91f6eb..2bc257a74862f 100644
--- a/src/tests/BuildWasmApps/Wasm.Build.Tests/data/Local.Directory.Build.targets
+++ b/src/tests/BuildWasmApps/Wasm.Build.Tests/data/Local.Directory.Build.targets
@@ -1,4 +1,8 @@
+
+
+
+
diff --git a/src/tests/BuildWasmApps/Wasm.Build.Tests/data/Workloads.Directory.Build.targets b/src/tests/BuildWasmApps/Wasm.Build.Tests/data/Workloads.Directory.Build.targets
index 34eeeaeee7bd7..76e505544f534 100644
--- a/src/tests/BuildWasmApps/Wasm.Build.Tests/data/Workloads.Directory.Build.targets
+++ b/src/tests/BuildWasmApps/Wasm.Build.Tests/data/Workloads.Directory.Build.targets
@@ -3,6 +3,10 @@
<_MicrosoftNetCoreAppRefDir>$(AppRefDir)\
+
+
+
+