Skip to content

Commit d26befa

Browse files
marafCopilot
andauthored
[browser] Run Wasm.Build.Tests on CoreCLR the same way as Mono (#132478)
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: d566c082-e742-4aa5-bb44-a03b6f05cce2 Copilot-Session: d518821e-6489-46c4-8db6-848b28e0d693 Copilot-Session: 1d752104-9131-48cb-bf89-b90d39d9f33f
1 parent d68eeea commit d26befa

45 files changed

Lines changed: 142 additions & 283 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

eng/pipelines/common/templates/browser-wasm-coreclr-build-tests.yml

Lines changed: 38 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,12 @@ jobs:
4444
dependsOn:
4545
- ${{ if eq(platform, 'browser_wasm') }}:
4646
- build_browser_wasm_linux_Release_CoreCLR
47+
- build_browser_wasm_linux_Release_MultiThreaded_BuildOnly
48+
- build_browser_wasm_linux_Release_SingleThreaded_BuildOnly
4749
- ${{ if eq(platform, 'browser_wasm_win') }}:
4850
- build_browser_wasm_windows_Release_CoreCLR
51+
- build_browser_wasm_windows_Release_MultiThreaded_BuildOnly
52+
- build_browser_wasm_windows_Release_SingleThreaded_BuildOnly
4953
isExtraPlatforms: ${{ parameters.isExtraPlatformsBuild }}
5054
testGroup: innerloop
5155
nameSuffix: CoreCLR_WasmBuildTests
@@ -82,6 +86,39 @@ jobs:
8286
# TargetFolder: '$(Build.SourcesDirectory)/artifacts'
8387
# CleanTargetFolder: false
8488

89+
# The wasm-tools workload manifest and its runtime packs are produced by the Mono build.
90+
# Stage all of its shipping packages so workload installation resolves the CI manifests
91+
# and packs from the same local feed.
92+
- task: DownloadPipelineArtifact@2
93+
displayName: Download built nugets for Mono singlethreaded runtime
94+
inputs:
95+
buildType: current
96+
artifactName: 'BuildArtifacts_browser_wasm_$(_hostedOs)_Release_SingleThreaded_BuildOnly'
97+
targetPath: '$(Build.SourcesDirectory)/artifacts/BuildArtifacts_browser_wasm_$(_hostedOs)_Release_SingleThreaded_BuildOnly'
98+
99+
- task: CopyFiles@2
100+
displayName: Copy Mono shipping packages
101+
inputs:
102+
SourceFolder: '$(Build.SourcesDirectory)/artifacts/BuildArtifacts_browser_wasm_$(_hostedOs)_Release_SingleThreaded_BuildOnly'
103+
Contents: packages/$(_BuildConfig)/Shipping/**
104+
TargetFolder: '$(Build.SourcesDirectory)/artifacts'
105+
CleanTargetFolder: false
106+
107+
- task: DownloadPipelineArtifact@2
108+
displayName: Download built nugets for Mono multi-threaded runtime
109+
inputs:
110+
buildType: current
111+
artifactName: BuildArtifacts_browser_wasm_$(_hostedOs)_Release_MultiThreaded_BuildOnly
112+
targetPath: '$(Build.SourcesDirectory)/artifacts/BuildArtifacts_browser_wasm_$(_hostedOs)_Release_MultiThreaded_BuildOnly'
113+
114+
- task: CopyFiles@2
115+
displayName: Copy Mono multithreading runtime pack
116+
inputs:
117+
SourceFolder: '$(Build.SourcesDirectory)/artifacts/BuildArtifacts_browser_wasm_$(_hostedOs)_Release_MultiThreaded_BuildOnly'
118+
Contents: packages/$(_BuildConfig)/Shipping/Microsoft.NETCore.App.Runtime.Mono.multithread.*
119+
TargetFolder: '$(Build.SourcesDirectory)/artifacts'
120+
CleanTargetFolder: false
121+
85122
# Download WBT - TODO-WASM: This points to "mono" build, altough
86123
- task: DownloadPipelineArtifact@2
87124
displayName: Download Wasm.Build.Tests
@@ -98,27 +135,12 @@ jobs:
98135
TargetFolder: '$(Build.SourcesDirectory)/artifacts'
99136
CleanTargetFolder: false
100137

101-
# Provision emsdk on this agent so the shared wasm tool cache is populated
102-
# before sendtohelix runs. The upstream runtime-build job acquires emsdk on
103-
# its own agent (via src/coreclr/runtime.proj's BuildRuntimeDependsOnTargets),
104-
# but that state is not shipped in its build artifacts. Mono WBT provisions
105-
# implicitly because it builds the runtime in the same job; CoreCLR WBT is
106-
# split across two agents, so we acquire it here on the WBT agent.
107-
- ${{ if eq(platform, 'browser_wasm_win') }}:
108-
- script: build.cmd -s provision.emsdk -os browser -c $(_BuildConfig)
109-
displayName: Provision emsdk
110-
workingDirectory: $(Build.SourcesDirectory)
111-
- ${{ else }}:
112-
- script: ./build.sh -s provision.emsdk -os browser -c $(_BuildConfig)
113-
displayName: Provision emsdk
114-
workingDirectory: $(Build.SourcesDirectory)
115-
116138
# build WBT
117139
buildArgs: >-
118140
$(wbtProjectArg) $(Build.SourcesDirectory)/src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj
119141
/bl:$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)/Build.binlog
120142
/p:Configuration=$(_BuildConfig)
121-
/p:TestUsingWorkloads=false
143+
/p:TestUsingWorkloads=true
122144
/p:InstallWorkloadForTesting=true
123145
/p:WasmSkipMissingRuntimePackBuild=true
124146
/p:PreparePackagesForWorkloadInstall=false

eng/testing/workloads-browser.targets

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,20 @@
5454
<!--<WorkloadCombinationsToInstall Include="net6+7" Variants="net6;net7" />-->
5555
<!--<WorkloadCombinationsToInstall Include="none" />-->
5656
</ItemGroup>
57+
58+
<!-- CoreCLR does not have its own workload; the `wasm-tools` workload carries the WebAssembly
59+
SDK and Emscripten packs it needs, and the CoreCLR browser-wasm runtime pack is resolved
60+
through KnownRuntimePack. `wasm-experimental` is installed for the WebAssembly templates
61+
pack, which the template-based tests need. Only the current band is installed - the
62+
previous-version manifests are Mono-only. -->
63+
<ItemGroup Condition="'$(RuntimeFlavor)' == 'CoreCLR'">
64+
<WorkloadIdForTesting Include="wasm-tools;wasm-experimental"
65+
ManifestName="Microsoft.NET.Workload.Mono.ToolChain.Current"
66+
Variant="latest"
67+
Version="$(PackageVersionForWorkloadManifests)" />
68+
69+
<WorkloadCombinationsToInstall Include="latest" Variants="latest" />
70+
</ItemGroup>
5771
</Target>
5872

5973
<!-- For local builds, only one of the 2 required runtime packs might be available. In that case,

src/libraries/sendtohelix-browser.targets

Lines changed: 5 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,6 @@
8181

8282
<NeedsWorkload Condition="'$(Scenario)' == 'BuildWasmApps'">true</NeedsWorkload>
8383
<NeedsEMSDK Condition="'$(NeedsToBuildWasmAppsOnHelix)' == 'true'">true</NeedsEMSDK>
84-
<!-- CoreCLR WBT re-links dotnet.native.wasm per-app via emcc, so it needs the full EMSDK payload too. -->
85-
<NeedsEMSDK Condition="'$(RuntimeFlavor)' == 'CoreCLR' and '$(Scenario)' == 'BuildWasmApps'">true</NeedsEMSDK>
8684
<NeedsEMSDKNode Condition="'$(Scenario)' == 'BuildWasmApps'">false</NeedsEMSDKNode>
8785
<NeedsToRunOnChrome Condition="'$(Scenario)' == 'WasmTestOnChrome' or '$(Scenario)' == 'BuildWasmApps'">true</NeedsToRunOnChrome>
8886
<NeedsToRunOnFirefox Condition="'$(Scenario)' == 'WasmTestOnFirefox'">true</NeedsToRunOnFirefox>
@@ -111,10 +109,7 @@
111109

112110
<!--
113111
Stage emsdk as a Helix dependency so it ends up at $(EmSdkDirForHelixPayload) and can be
114-
packaged into the correlation payload. This is needed for CoreCLR WBT agents, which do not
115-
build the wasm runtime locally and therefore do not pre-populate the shared wasm tool cache.
116-
Those agents provision emsdk in a separate pipeline step before sendtohelix runs, at which
117-
point AcquireEmscriptenSdk.props/targets set $(EMSDK_PATH) during project evaluation.
112+
packaged into the correlation payload.
118113
119114
This ItemGroup must be at project-evaluation scope (not inside a target), because
120115
StageDependenciesForHelix guards its body with a condition over @(HelixDependenciesToStage)
@@ -177,39 +172,17 @@
177172
<HelixPreCommand Include="$(EnvVarCommand) PATH=$(_HelixLocalNodePath)/%_HELIX_NODEJS_VERSION%/bin%3B%PATH%" />
178173
</ItemGroup>
179174

180-
<!--
181-
CoreCLR WBT (BuildWasmApps) needs BrowserWasmApp.CoreCLR.targets and its import chain on Helix.
182-
The NeedsEMSDK payload already ships BrowserBuildTargetsDir (build/wasm), WasmAppBuilderDir
183-
(build/WasmAppBuilder) and EmSdk (build/emsdk); eng/native.wasm.targets + AcquireEmscriptenSdk.targets
184-
are shipped as build/eng. These env vars bridge those payload locations to the MSBuild properties
185-
consumed by BrowserWasmApp.CoreCLR.targets when the test-created project imports it.
186-
-->
187-
<ItemGroup Condition="'$(RuntimeFlavor)' == 'CoreCLR' and '$(Scenario)' == 'BuildWasmApps' and '$(WindowsShell)' != 'true'">
188-
<HelixPreCommand Include="$(EnvVarCommand) REPOSITORY_ENGINEERING_DIR=$HELIX_CORRELATION_PAYLOAD/build/eng/" />
189-
<HelixPreCommand Include="$(EnvVarCommand) BROWSER_BUILD_TARGETS_DIR=$HELIX_CORRELATION_PAYLOAD/build/wasm/" />
190-
<HelixPreCommand Include="$(EnvVarCommand) WASM_APP_BUILDER_TASKS_ASSEMBLY_PATH=$HELIX_CORRELATION_PAYLOAD/build/WasmAppBuilder/WasmAppBuilder.dll" />
191-
<HelixPreCommand Include="$(EnvVarCommand) EMSDK_PATH=$HELIX_CORRELATION_PAYLOAD/build/emsdk/" />
192-
<HelixPreCommand Include="$(EnvVarCommand) MINIPAL_INCLUDE_DIR=$HELIX_CORRELATION_PAYLOAD/build/minipal/" />
193-
<HelixPreCommand Include="$(EnvVarCommand) CORECLR_VM_WASM_INCLUDE_DIR=$HELIX_CORRELATION_PAYLOAD/build/coreclr-vm-wasm/" />
194-
</ItemGroup>
195-
196-
<ItemGroup Condition="'$(RuntimeFlavor)' == 'CoreCLR' and '$(Scenario)' == 'BuildWasmApps' and '$(WindowsShell)' == 'true'">
197-
<HelixPreCommand Include="$(EnvVarCommand) REPOSITORY_ENGINEERING_DIR=%HELIX_CORRELATION_PAYLOAD%\build\eng\" />
198-
<HelixPreCommand Include="$(EnvVarCommand) BROWSER_BUILD_TARGETS_DIR=%HELIX_CORRELATION_PAYLOAD%\build\wasm\" />
199-
<HelixPreCommand Include="$(EnvVarCommand) WASM_APP_BUILDER_TASKS_ASSEMBLY_PATH=%HELIX_CORRELATION_PAYLOAD%\build\WasmAppBuilder\WasmAppBuilder.dll" />
200-
<HelixPreCommand Include="$(EnvVarCommand) EMSDK_PATH=%HELIX_CORRELATION_PAYLOAD%\build\emsdk\" />
201-
<HelixPreCommand Include="$(EnvVarCommand) MINIPAL_INCLUDE_DIR=%HELIX_CORRELATION_PAYLOAD%\build\minipal\" />
202-
<HelixPreCommand Include="$(EnvVarCommand) CORECLR_VM_WASM_INCLUDE_DIR=%HELIX_CORRELATION_PAYLOAD%\build\coreclr-vm-wasm\" />
203-
</ItemGroup>
204-
205175
<PropertyGroup Condition="'$(Scenario)' == 'BuildWasmApps'">
206176
<BuildWasmAppsJobsList Condition="'$(RuntimeFlavor)' == 'Mono'">$(RepositoryEngineeringDir)testing\scenarios\BuildWasmAppsJobsList.txt</BuildWasmAppsJobsList>
207177
<BuildWasmAppsJobsList Condition="'$(RuntimeFlavor)' == 'CoreCLR'">$(RepositoryEngineeringDir)testing\scenarios\BuildWasmAppsJobsListCoreCLR.txt</BuildWasmAppsJobsList>
208178
<_XUnitTraitArg Condition="'$(TestUsingWorkloads)' == 'true'">-notrait category=no-workload</_XUnitTraitArg>
209179
<_XUnitTraitArg Condition="'$(TestUsingWorkloads)' != 'true'">-trait category=no-workload</_XUnitTraitArg>
210180
<_XUnitTraitArg Condition="'$(WasmFingerprintAssets)' == 'false'">$(_XUnitTraitArg) -trait category=no-fingerprinting</_XUnitTraitArg>
211181
<_XUnitTraitArg Condition="'$(WasmBundlerFriendlyBootConfig)' == 'true'">$(_XUnitTraitArg) -trait category=bundler-friendly</_XUnitTraitArg>
212-
<_XUnitTraitArg Condition="'$(RuntimeFlavor)' == 'CoreCLR'">-notrait category=native-mono -notrait category=mono -notrait category=workload</_XUnitTraitArg>
182+
<!-- Mono-specific tests never apply to CoreCLR. Tests that are both native and Mono-only carry
183+
the `mono` category too, so excluding `mono` alone covers them; `native` on its own marks
184+
relink/AOT coverage that CoreCLR does run. The workload/no-workload selection above still applies. -->
185+
<_XUnitTraitArg Condition="'$(RuntimeFlavor)' == 'CoreCLR'">$(_XUnitTraitArg) -notrait category=mono</_XUnitTraitArg>
213186
</PropertyGroup>
214187

215188
<PropertyGroup>
@@ -311,53 +284,6 @@
311284
<HelixCorrelationPayload Include="$(MonoTargetsTasksDir)" Destination="build/MonoTargetsTasks" />
312285
</ItemGroup>
313286

314-
<!-- CoreCLR WBT needs eng/native.wasm.targets + eng/AcquireEmscriptenSdk.targets (the import chain
315-
of BrowserWasmApp.CoreCLR.targets) shipped alongside BrowserBuildTargetsDir. Stage them into
316-
a directory first — HelixCorrelationPayload on individual files causes the Helix client to
317-
try unzipping them as archives. -->
318-
<PropertyGroup Condition="'$(NeedsEMSDK)' == 'true' and '$(RuntimeFlavor)' == 'CoreCLR'">
319-
<_CoreCLRWbtEngPayloadDir>$(ArtifactsObjDir)helix-staging\coreclr-wbt-eng\</_CoreCLRWbtEngPayloadDir>
320-
</PropertyGroup>
321-
<ItemGroup Condition="'$(NeedsEMSDK)' == 'true' and '$(RuntimeFlavor)' == 'CoreCLR'">
322-
<_CoreCLRWbtEngFiles Include="$(RepositoryEngineeringDir)native.wasm.targets" />
323-
<_CoreCLRWbtEngFiles Include="$(RepositoryEngineeringDir)AcquireEmscriptenSdk.targets" />
324-
</ItemGroup>
325-
<Copy Condition="'$(NeedsEMSDK)' == 'true' and '$(RuntimeFlavor)' == 'CoreCLR'"
326-
SourceFiles="@(_CoreCLRWbtEngFiles)"
327-
DestinationFolder="$(_CoreCLRWbtEngPayloadDir)"
328-
SkipUnchangedFiles="true" />
329-
<ItemGroup Condition="'$(NeedsEMSDK)' == 'true' and '$(RuntimeFlavor)' == 'CoreCLR'">
330-
<HelixCorrelationPayload Include="$(_CoreCLRWbtEngPayloadDir)" Destination="build/eng" />
331-
</ItemGroup>
332-
333-
<!-- CoreCLR WBT: ship src/native/minipal/{utils.h,entrypoints.h} and
334-
src/coreclr/vm/wasm/callhelpers.hpp into the payload so per-app native
335-
re-link (BrowserWasmApp.CoreCLR.targets) can resolve the #include lines
336-
emitted by ManagedToNativeGenerator output. Stage into directories first
337-
because HelixCorrelationPayload on individual files causes the Helix
338-
client to try unzipping them as archives. -->
339-
<PropertyGroup Condition="'$(NeedsEMSDK)' == 'true' and '$(RuntimeFlavor)' == 'CoreCLR'">
340-
<_CoreCLRWbtMinipalPayloadDir>$(ArtifactsObjDir)helix-staging\coreclr-wbt-minipal\</_CoreCLRWbtMinipalPayloadDir>
341-
<_CoreCLRWbtVmWasmPayloadDir>$(ArtifactsObjDir)helix-staging\coreclr-wbt-vm-wasm\</_CoreCLRWbtVmWasmPayloadDir>
342-
</PropertyGroup>
343-
<ItemGroup Condition="'$(NeedsEMSDK)' == 'true' and '$(RuntimeFlavor)' == 'CoreCLR'">
344-
<_CoreCLRWbtMinipalFiles Include="$(RepoRoot)src\native\minipal\utils.h" />
345-
<_CoreCLRWbtMinipalFiles Include="$(RepoRoot)src\native\minipal\entrypoints.h" />
346-
<_CoreCLRWbtVmWasmFiles Include="$(RepoRoot)src\coreclr\vm\wasm\callhelpers.hpp" />
347-
</ItemGroup>
348-
<Copy Condition="'$(NeedsEMSDK)' == 'true' and '$(RuntimeFlavor)' == 'CoreCLR'"
349-
SourceFiles="@(_CoreCLRWbtMinipalFiles)"
350-
DestinationFolder="$(_CoreCLRWbtMinipalPayloadDir)"
351-
SkipUnchangedFiles="true" />
352-
<Copy Condition="'$(NeedsEMSDK)' == 'true' and '$(RuntimeFlavor)' == 'CoreCLR'"
353-
SourceFiles="@(_CoreCLRWbtVmWasmFiles)"
354-
DestinationFolder="$(_CoreCLRWbtVmWasmPayloadDir)"
355-
SkipUnchangedFiles="true" />
356-
<ItemGroup Condition="'$(NeedsEMSDK)' == 'true' and '$(RuntimeFlavor)' == 'CoreCLR'">
357-
<HelixCorrelationPayload Include="$(_CoreCLRWbtMinipalPayloadDir)" Destination="build/minipal" />
358-
<HelixCorrelationPayload Include="$(_CoreCLRWbtVmWasmPayloadDir)" Destination="build/coreclr-vm-wasm" />
359-
</ItemGroup>
360-
361287
<!-- copy node separately only if EMSDK is not being included -->
362288
<ItemGroup Condition="'$(IncludeNodePayload)' == 'true'">
363289
<HelixCorrelationPayload Include="$(EmSdkDirForHelixPayload)node" Destination="build/emsdk-node" />

src/libraries/sendtohelix-wasm.targets

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
2020
<WorkItemPrefix Condition="'$(WasmBundlerFriendlyBootConfig)' == 'true'">WBT-JavascriptBundler-</WorkItemPrefix>
2121
<WorkItemPrefix Condition="'$(RuntimeFlavor)' == 'Mono'">$(WorkItemPrefix)MONO-</WorkItemPrefix>
2222
<WorkItemPrefix Condition="'$(RuntimeFlavor)' == 'CoreCLR'">$(WorkItemPrefix)CLR-</WorkItemPrefix>
23-
<WorkItemPrefix Condition="'$(WasmEnableThreads)' != 'true'">$(WorkItemPrefix)ST-</WorkItemPrefix>
24-
<WorkItemPrefix Condition="'$(WasmEnableThreads)' == 'true'">$(WorkItemPrefix)MT-</WorkItemPrefix>
2523
</PropertyGroup>
2624

2725
<ItemGroup Condition="'$(Scenario)' == 'BuildWasmApps'">
@@ -47,23 +45,19 @@
4745
<Output TaskParameter="Lines" ItemName="BuildWasmApps_PerJobList" />
4846
</ReadLinesFromFile>
4947

50-
<!-- for testing with workloads, we use separate items -->
48+
<!-- Lanes that run with the workload installed and with the default fingerprinting/bundler
49+
settings fan out per test class (this includes the webcil permutations); every other
50+
lane runs as a single work item. Identical for every runtime flavor - only
51+
$(BuildWasmAppsJobsList) differs. -->
5152
<ItemGroup>
52-
<HelixWorkItem Include="@(BuildWasmApps_PerJobList->'$(WorkItemPrefix)%(Identity)')" Condition="'$(RuntimeFlavor)' == 'Mono' and '$(TestUsingWorkloads)' == 'true' and '$(WasmFingerprintAssets)' == 'true' and '$(WasmBundlerFriendlyBootConfig)' == 'false'">
53+
<HelixWorkItem Include="@(BuildWasmApps_PerJobList->'$(WorkItemPrefix)%(Identity)')" Condition="'$(TestUsingWorkloads)' == 'true' and '$(WasmFingerprintAssets)' == 'true' and '$(WasmBundlerFriendlyBootConfig)' == 'false'">
5354
<PayloadArchive>$(_BuildWasmAppsPayloadArchive)</PayloadArchive>
5455
<PreCommands>$(EnvVarCommand) &quot;HELIX_XUNIT_ARGS=-class %(Identity)&quot;</PreCommands>
5556
<Command>$(HelixCommand)</Command>
5657
<Timeout>$(_workItemTimeout)</Timeout>
5758
</HelixWorkItem>
5859

59-
<HelixWorkItem Include="@(BuildWasmApps_PerJobList->'$(WorkItemPrefix)%(Identity)')" Condition="'$(RuntimeFlavor)' == 'CoreCLR'">
60-
<PayloadArchive>$(_BuildWasmAppsPayloadArchive)</PayloadArchive>
61-
<PreCommands>$(EnvVarCommand) &quot;HELIX_XUNIT_ARGS=-class %(Identity)&quot;</PreCommands>
62-
<Command>$(HelixCommand)</Command>
63-
<Timeout>$(_workItemTimeout)</Timeout>
64-
</HelixWorkItem>
65-
66-
<HelixWorkItem Include="$(WorkItemPrefix)Wasm.Build.Tests" Condition="'$(RuntimeFlavor)' != 'CoreCLR' and ('$(TestUsingWorkloads)' != 'true' or '$(WasmFingerprintAssets)' != 'true' or '$(WasmBundlerFriendlyBootConfig)' != 'false')">
60+
<HelixWorkItem Include="$(WorkItemPrefix)Wasm.Build.Tests" Condition="'$(TestUsingWorkloads)' != 'true' or '$(WasmFingerprintAssets)' != 'true' or '$(WasmBundlerFriendlyBootConfig)' != 'false'">
6761
<PayloadArchive>$(_BuildWasmAppsPayloadArchive)</PayloadArchive>
6862
<Command>$(HelixCommand)</Command>
6963
<Timeout>$(_workItemTimeout)</Timeout>

src/libraries/sendtohelix.proj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,9 @@
8787
<!-- For BuildWasmApps we want to build the project 4 times, with: TestUsingWorkloads=true, and TestUsingWorkloads=false and WasmEnableWebcil=true and WasmEnableWebcil=false-->
8888
<ItemGroup Condition="'@(_Scenarios -> AnyHaveMetadataValue('Identity', 'buildwasmapps'))' == 'true'">
8989
<_TestUsingWorkloadsValues Include="false" />
90-
<_TestUsingWorkloadsValues Include="true" Condition="'$(RuntimeFlavor)' == 'Mono'" />
90+
<_TestUsingWorkloadsValues Include="true" />
9191
<_TestUsingWebcilValues Include="true;false" Condition="'$(TargetOS)' == 'browser' and '$(RuntimeFlavor)' == 'Mono'" />
92-
<_TestUsingFingerprintingValues Include="true;false" Condition="'$(TargetOS)' == 'browser' and '$(RuntimeFlavor)' == 'Mono'" />
92+
<_TestUsingFingerprintingValues Include="true;false" Condition="'$(TargetOS)' == 'browser'" />
9393

9494
<!-- now make the cartesian product of true and false values for two categories -->
9595
<_TestUsingCrossProductValuesTemp Include="@(_TestUsingWorkloadsValues)">
@@ -107,7 +107,7 @@
107107
<_TestUsingCrossProductValues Remove="@(_TestUsingCrossProductValues)" Condition="'%(_TestUsingCrossProductValues.Workloads)' == 'false' and '%(_TestUsingCrossProductValues.Fingerprinting)' == 'false'" />
108108

109109
<!-- Add combination for JavascriptBundler friendliness -->
110-
<_TestUsingCrossProductValues Include="JavaScriptBundlerFriendly" Condition="'$(RuntimeFlavor)' == 'Mono'">
110+
<_TestUsingCrossProductValues Include="JavaScriptBundlerFriendly" Condition="'$(TargetOS)' == 'browser'">
111111
<Workloads>true</Workloads>
112112
<Webcil>true</Webcil>
113113
<Fingerprinting>true</Fingerprinting>

0 commit comments

Comments
 (0)