Skip to content

[WBT] enable coreCLR#124850

Open
pavelsavara wants to merge 24 commits intodotnet:mainfrom
pavelsavara:wbt_coreclr
Open

[WBT] enable coreCLR#124850
pavelsavara wants to merge 24 commits intodotnet:mainfrom
pavelsavara:wbt_coreclr

Conversation

@pavelsavara
Copy link
Member

@pavelsavara pavelsavara commented Feb 25, 2026

  • drop WasmBrowserRunMainOnly
  • add [TestCategory("native")] as necessary
  • always expect dotnet.diagnostics.js on CoreCLR
  • disable native trait for CoreCLR run
  • split off AOT tests

Passing: 59 Failing: 27

@pavelsavara pavelsavara added this to the 11.0.0 milestone Feb 25, 2026
@pavelsavara pavelsavara self-assigned this Feb 25, 2026
Copilot AI review requested due to automatic review settings February 25, 2026 09:27
@pavelsavara pavelsavara added arch-wasm WebAssembly architecture area-Infrastructure-coreclr os-browser Browser variant of arch-wasm labels Feb 25, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request enables CoreCLR runtime testing in the WASM Build Tests suite by categorizing tests and filtering them appropriately based on the runtime flavor. The PR removes a CoreCLR-specific test asset that is no longer needed and ensures that tests requiring native builds, Mono-specific features, or workload installations are properly excluded when running with CoreCLR.

Changes:

  • Removed the WasmBrowserRunMainOnly test asset and test class, which was specifically created for CoreCLR but is no longer needed
  • Added TestCategory attributes to categorize tests as "native" (requiring AOT/native builds), "mono" (Mono-specific features), or "workload" (requiring workload installation)
  • Updated test filtering logic in Wasm.Build.Tests.csproj to exclude native/mono/workload tests when running with CoreCLR runtime
  • Modified WasmSdkBasedProjectProvider to expect diagnostics files for CoreCLR builds

Reviewed changes

Copilot reviewed 46 out of 46 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/mono/wasm/testassets/WasmBrowserRunMainOnly/* Deleted entire test asset directory (6 files) that was specific to CoreCLR testing
src/mono/wasm/Wasm.Build.Tests/WasmBrowserRunMainOnly.cs Deleted CoreCLR-specific test class
src/mono/wasm/Wasm.Build.Tests/BrowserStructures/TestAsset.cs Removed WasmBrowserRunMainOnly test asset reference
src/mono/wasm/Wasm.Build.Tests/Wasm.Build.Tests.csproj Updated XUnit trait filtering to exclude native/mono/workload categories for CoreCLR
src/mono/wasm/Wasm.Build.Tests/WasmSdkBasedProjectProvider.cs Added logic to expect diagnostics.js files for CoreCLR builds
src/mono/wasm/Wasm.Build.Tests/WorkloadTests.cs Added "native" category to class-level TestCategory
src/mono/wasm/Wasm.Build.Tests/WasmBuildAppTest.cs Added "native" category to AOT test methods
src/mono/wasm/Wasm.Build.Tests/WasmSIMDTests.cs Added "native" category to PublishSIMD_AOT test
src/mono/wasm/Wasm.Build.Tests/WasmNativeDefaultsTests.cs Added "native" category to class-level TestCategory
src/mono/wasm/Wasm.Build.Tests/Templates/WasmTemplateTests.cs Added "workload" and "native" categories to various template tests
src/mono/wasm/Wasm.Build.Tests/Templates/NativeBuildTests.cs Added "native" category to class-level TestCategory
src/mono/wasm/Wasm.Build.Tests/SatelliteAssembliesTests.cs Added "native" category to resource assembly tests
src/mono/wasm/Wasm.Build.Tests/PInvokeTableGeneratorTests.cs Added "native" category to class-level TestCategory
src/mono/wasm/Wasm.Build.Tests/NativeRebuildTests/* Added "native" category to all native rebuild test classes (5 files)
src/mono/wasm/Wasm.Build.Tests/NativeLibraryTests.cs Added "native" category to class-level TestCategory
src/mono/wasm/Wasm.Build.Tests/NativeBuildTests.cs Added "native" category to class-level TestCategory
src/mono/wasm/Wasm.Build.Tests/ModuleConfigTests.cs Split SymbolMapFileEmitted test into two separate tests, marking only the emitting case as "native"
src/mono/wasm/Wasm.Build.Tests/MemoryTests.cs Added "native" category to class-level TestCategory
src/mono/wasm/Wasm.Build.Tests/MainWithArgsTests.cs Added "native" category to main-with-args tests
src/mono/wasm/Wasm.Build.Tests/InvariantTimezoneTests.cs Added "native" category to invariant timezone tests
src/mono/wasm/Wasm.Build.Tests/InvariantGlobalizationTests.cs Added "native" category to invariant globalization tests
src/mono/wasm/Wasm.Build.Tests/InterpPgoTests.cs Added "mono" category to class-level TestCategory
src/mono/wasm/Wasm.Build.Tests/IcuTests.cs Added "native" and "workload" categories to ICU tests
src/mono/wasm/Wasm.Build.Tests/IcuShardingTests*.cs Added "native" category to ICU sharding tests (2 files)
src/mono/wasm/Wasm.Build.Tests/DllImportTests.cs Added "native" category to class-level TestCategory
src/mono/wasm/Wasm.Build.Tests/DiagnosticsTests.cs Added "mono" category to class-level TestCategory
src/mono/wasm/Wasm.Build.Tests/BuildPublishTests.cs Added "native" category to AOT publish tests
src/mono/wasm/Wasm.Build.Tests/Blazor/* Added "native" and "mono" categories to various Blazor tests (8 files)

Copilot AI review requested due to automatic review settings February 25, 2026 10:49
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 49 out of 49 changed files in this pull request and generated 3 comments.

Copilot AI review requested due to automatic review settings February 25, 2026 16:35
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 50 out of 50 changed files in this pull request and generated no new comments.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 53 out of 53 changed files in this pull request and generated 2 comments.

Comments suppressed due to low confidence (1)

src/libraries/sendtohelix-wasm.targets:70

  • For RuntimeFlavor=CoreCLR the per-class HelixWorkItem is created even when TestUsingWorkloads=false, but the aggregate Wasm.Build.Tests work item is also created because its condition includes $(TestUsingWorkloads) != 'true'. This will schedule the same tests twice in CoreCLR BuildWasmApps jobs. Update the conditions so CoreCLR runs either the per-class work items or the aggregate work item, but not both (e.g., gate the CoreCLR per-class items on TestUsingWorkloads=='true', or exclude RuntimeFlavor=CoreCLR from the aggregate condition when per-class splitting is enabled).
      <HelixWorkItem Include="@(BuildWasmApps_PerJobList->'$(WorkItemPrefix)%(Identity)')" Condition="'$(RuntimeFlavor)' == 'CoreCLR' and '$(WasmFingerprintAssets)' == 'true' and '$(WasmBundlerFriendlyBootConfig)' == 'false'">
        <PayloadArchive>$(_BuildWasmAppsPayloadArchive)</PayloadArchive>
        <PreCommands>$(EnvVarCommand) &quot;HELIX_XUNIT_ARGS=-class %(Identity)&quot;</PreCommands>
        <Command>$(HelixCommand)</Command>
        <Timeout>$(_workItemTimeout)</Timeout>
      </HelixWorkItem>

      <HelixWorkItem Include="$(WorkItemPrefix)Wasm.Build.Tests" Condition="'$(TestUsingWorkloads)' != 'true' or '$(WasmFingerprintAssets)' != 'true' or '$(WasmBundlerFriendlyBootConfig)' != 'false'">
        <PayloadArchive>$(_BuildWasmAppsPayloadArchive)</PayloadArchive>
        <Command>$(HelixCommand)</Command>
        <Timeout>$(_workItemTimeout)</Timeout>
      </HelixWorkItem>

Copilot AI review requested due to automatic review settings February 26, 2026 19:42
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 56 out of 56 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (1)

src/libraries/sendtohelix-wasm.targets:64

  • The CoreCLR work item condition on line 59 does not check for TestUsingWorkloads like the Mono condition on line 52 does. This means CoreCLR tests will run even when TestUsingWorkloads is 'false', while Mono tests require workloads. Is this intentional? If CoreCLR WASM requires workloads to function, the condition should include the same '$(TestUsingWorkloads)' == 'true' check. Otherwise, the test could fail in non-workload scenarios for CoreCLR.
      <HelixWorkItem Include="@(BuildWasmApps_PerJobList->'$(WorkItemPrefix)%(Identity)')" Condition="'$(RuntimeFlavor)' == 'CoreCLR' and '$(WasmFingerprintAssets)' == 'true' and '$(WasmBundlerFriendlyBootConfig)' == 'false'">
        <PayloadArchive>$(_BuildWasmAppsPayloadArchive)</PayloadArchive>
        <PreCommands>$(EnvVarCommand) &quot;HELIX_XUNIT_ARGS=-class %(Identity)&quot;</PreCommands>
        <Command>$(HelixCommand)</Command>
        <Timeout>$(_workItemTimeout)</Timeout>
      </HelixWorkItem>

Copilot AI review requested due to automatic review settings February 26, 2026 20:01
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 56 out of 56 changed files in this pull request and generated 1 comment.

Copilot AI review requested due to automatic review settings February 27, 2026 07:58
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 56 out of 56 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

src/libraries/sendtohelix-wasm.targets:70

  • In BuildWasmApps, when RuntimeFlavor=CoreCLR and TestUsingWorkloads is not true, this target will create both the per-class HelixWorkItem entries (line 59 condition does not check TestUsingWorkloads) and the fallback Wasm.Build.Tests work item (line 66 condition becomes true because TestUsingWorkloads != 'true'). This likely duplicates test execution. Consider gating the fallback item (or the CoreCLR per-class items) so only one set of work items is produced for CoreCLR runs.
      <HelixWorkItem Include="@(BuildWasmApps_PerJobList->'$(WorkItemPrefix)%(Identity)')" Condition="'$(RuntimeFlavor)' == 'CoreCLR' and '$(WasmFingerprintAssets)' == 'true' and '$(WasmBundlerFriendlyBootConfig)' == 'false'">
        <PayloadArchive>$(_BuildWasmAppsPayloadArchive)</PayloadArchive>
        <PreCommands>$(EnvVarCommand) &quot;HELIX_XUNIT_ARGS=-class %(Identity)&quot;</PreCommands>
        <Command>$(HelixCommand)</Command>
        <Timeout>$(_workItemTimeout)</Timeout>
      </HelixWorkItem>

      <HelixWorkItem Include="$(WorkItemPrefix)Wasm.Build.Tests" Condition="'$(TestUsingWorkloads)' != 'true' or '$(WasmFingerprintAssets)' != 'true' or '$(WasmBundlerFriendlyBootConfig)' != 'false'">
        <PayloadArchive>$(_BuildWasmAppsPayloadArchive)</PayloadArchive>
        <Command>$(HelixCommand)</Command>
        <Timeout>$(_workItemTimeout)</Timeout>
      </HelixWorkItem>

@ilonatommy ilonatommy marked this pull request as ready for review February 27, 2026 11:19
Copilot AI review requested due to automatic review settings February 27, 2026 11:19
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 56 out of 56 changed files in this pull request and generated no new comments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

arch-wasm WebAssembly architecture area-Infrastructure-coreclr os-browser Browser variant of arch-wasm

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

4 participants