Repository navigation
[browser][CoreCLR] Track remaining WBT coverage gaps #135046
Description
Track the remaining browser-WASM Wasm.Build.Tests scenarios applicable to CoreCLR, using Mono coverage as a reference. This covers application build/publish behavior, not the separate runtime and libraries test suites.
CoreCLR is WebCIL-only by design. No-WebCIL lanes or smoke tests are out of scope. Mono-specific AOT, profiler, and threading cases are not automatic CoreCLR parity targets.
Progress and baseline
- #135018, merged on October 1, enables 23 methods / 54 additional CoreCLR CI-selected rows per OS while preserving Mono's existing inputs. All 84 local CoreCLR rows passed.
- Verified the newly enabled rows in the first completed scheduled
mainbuild containing [browser][CoreCLR] Enable non-AOT WBT relinking and rebuild coverage #135018: build 1620135, source commitc873bfd8, contains merge commitbeb346ac. The selected WBT jobs succeeded on Linux and Windows. - Uploaded xUnit XML contains the exact +54 workload-row increase per OS expected from [browser][CoreCLR] Enable non-AOT WBT relinking and rebuild coverage #135018: 216 -> 270, with 270 passed, 0 failed, and 0 skipped on both Linux and Windows. Across all CoreCLR WBT groups, each OS ran 406 tests from 48 uploaded XML files; all 406 passed, and all 52 Helix work items passed.
The post-merge counts below come from authoritative uploaded xUnit XML. The separate four-case no-workload increase is from #134618: three PublishRunAllPagesComposite rows and CompositeRequiresWebcil, all passing on both OSes. No other WBT source or CoreCLR job-list changes landed between the pre-merge and post-merge source commits, so the workload delta isolates #135018's 54 rows.
| Scenario | CoreCLR pre-merge, build 1616764 | CoreCLR post-merge, build 1620135 | Delta | Mono September 29 reference |
|---|---|---|---|---|
| No workload | 104 | 108 | +4 | 102 |
| No fingerprinting | 17 | 17 | 0 | 17 |
| JavaScriptBundler | 11 | 11 | 0 | 11 |
| Workload | 216 | 270 | +54 | 409 |
| Total | 348 | 406 | +58 | 539 |
Linux and Windows have the same totals. The Mono column remains the September 29 WebCIL reference and was not remeasured in build 1620135. These totals include runtime-specific cases and are not a count of missing CoreCLR tests. Mono's no-WebCIL repetitions are excluded from the comparison. Although the parent build failed elsewhere, both selected CoreCLR WBT jobs and all of their Helix/XML results were green.
Remaining test work
- New assembly during incremental publish: fix the trimmed-closure asset-selection bug, then enable
NativeRebuildTests.ReferenceNewAssemblyRebuildTest.ReferenceNewAssembly. The reproduced CoreCLR failure leaves the newly requiredSystem.Text.RegularExpressions.dllin linker output but omits it from WebCIL/published assets and boot configuration. A separate bug report is drafted; the test remains excluded from [browser][CoreCLR] Enable non-AOT WBT relinking and rebuild coverage #135018. - Large-heap interop: revalidate
MemoryTests.AllocateLargeHeapThenRepeatedlyInteropafter the startup fix in [browser] Fix Debug-only startup failures: stack-first assert, incoming Module API, preRun function form #134527. Verify native relinking and allocations above 2 GB before removing its Mono gate. - Undefined native symbols: recheck
Templates.NativeBuildTests.BuildWithUndefinedNativeSymbolagainst CoreCLR'sWasmAllowUndefinedSymbolsbehavior; resolve any contract mismatch before enabling it. - Invariant/native-build conflict: port
NativeRebuildTests.NoopNativeRebuildTest.NativeRelinkFailsWithInvariantto the CoreCLR diagnostic contract without requiring Mono AOT tooling. - Auto-layout diagnostics: recheck
PInvokeTableGeneratorTests.UnmanagedStructsAreConsideredBlittableFromDifferentAssembly_WithAutoLayoutagainst the current generator and resolve its differing error expectations. - Windows path handling: run
NativeBuildTests.NativeBuildWithSpecialCharsInTempPathon CoreCLR/Windows and enable it if the command-line quoting behavior passes. - Accurate compilation-mode coverage: correct misleading AOT-labeled cases, including
Blazor.SimpleRunTests.BlazorPublishRunTest, whoseaotargument is not forwarded to publish. Additional CoreCLR precompiled-mode cases should explicitly requestPublishReadyToRunand verify its output; do not add duplicate rows merely becauseRunAOTCompilation=trueis accepted.
Related open issues
These issues were open when checked on October 1. Keep implementation details in the existing issues and record the resulting WBT coverage here.
- [browser][CoreCLR] Match Mono NativeFileReference linker input support #134119 - Cover the supported CoreCLR
NativeFileReferenceinputs and ensure P/Invoke module discovery matches actual linker inputs. - [wasm][coreclr] Call-helper generation fails when the bundle contains an assembly deployed under a different file name #134915 - Add coverage for relinking an assembly deployed under a different filename. The filed repro is on WASI; first verify the browser path that uses the same call-helper generator.
- [browser][wbt] Re-enable HotReload in Wasm.Build.Tests #118442 - Restore WBT Hot Reload coverage once its SDK/Blazor prerequisites are satisfied.
- [wasm] Run Wasm.Build.Tests across .NET versions #110049 - Exercise supported SDK/workload/target-framework combinations across .NET versions.
- [browser] Move workload build from mono subsets to coreclr #132699 and [browser][coreclr] Strip workload content #134074 - Keep WBT setup and compatibility coverage working as CoreCLR is decoupled from Mono-produced workloads and workload contents are reorganized.
- [coreclr] Load PDBs for lazy-loaded assemblies #124898, [coreclr] CoreCLR does not load correct satellite resources #124901, and [coreclr]
appsettings.jsonis Not Bundled in CoreCLR WASM #124895 - Revalidate the historical lazy-PDB, satellite-resource, and appsettings reports against current CoreCLR WebCIL behavior. Corresponding tests already execute successfully in the baseline; narrow or close stale reports rather than treating their open state as proof of missing coverage.
Acceptance criteria
- Each remaining applicable exclusion is either enabled with a regression test or linked to a concrete blocker.
- Newly enabled cases appear in generated workload selection and pass on the required platforms; existing Mono inputs and assertions are preserved.
- Updated Linux/Windows counts come from uploaded xUnit XML and distinguish executed cases, skips, and intentionally runtime-specific coverage.
- Relinking and R2R/AOT claims are supported by actual build outputs or compiler invocations, not test names or flag values alone.
Note
This issue draft was generated with GitHub Copilot.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsNo status
Activity
dotnet-policy-service commentedon Oct 1, 2026
Tagging subscribers to 'arch-wasm': @lewing, @pavelsavara
See info in area-owners.md if you want to be subscribed.
dotnet-policy-service commentedon Oct 1, 2026
Tagging subscribers to this area: @dotnet/runtime-infrastructure
See info in area-owners.md if you want to be subscribed.