Skip to content

Enable browser WASM R2R tests in manual pipeline - #133308

Merged
lewing merged 1 commit into
dotnet:mainfrom
lewing:lewing-manual-wasm-r2r-leg
Sep 5, 2026
Merged

Enable browser WASM R2R tests in manual pipeline#133308
lewing merged 1 commit into
dotnet:mainfrom
lewing:lewing-manual-wasm-r2r-leg

Conversation

@lewing

Copy link
Copy Markdown
Member

Summary

Restore the browser WASM CoreCLR R2R_CG2 runtime-test leg removed by #133294, but keep it out of the default runtime pipeline while its failures are investigated.

The leg and its required build jobs are enabled only by runtime-wasm-non-libtests, so it can be queued on a PR with:

/azp run runtime-wasm-non-libtests

Other WASM wrappers and scheduled extra-platform runs retain their existing behavior.

Validation

  • Parsed the changed pipeline YAML files successfully.
  • Confirmed the changes pass git diff --check.

Note

This pull request was created with the assistance of GitHub Copilot.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 5 pipeline(s).
11 pipeline(s) were filtered out due to trigger conditions.
There may be pipelines that require an authorized user to comment /azp run to run.

@lewing

Copy link
Copy Markdown
MemberAuthor

/azp run runtime-wasm-non-libtests

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @akoeplinger, @matouskozak, @simonrozsival
See info in area-owners.md if you want to be subscribed.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🔵 Needs a closer look

The “manual pipeline only” intent should be made unambiguous by explicitly disabling PR triggers (e.g., pr: none) in the manual pipeline YAML to avoid accidental automatic execution of the new R2R leg.

Pull request overview

Restores the browser WASM CoreCLR R2R_CG2 runtime-test leg behind an explicit pipeline parameter, enabling it only in the runtime-wasm-non-libtests manual pipeline while keeping default WASM/extra-platform behavior unchanged.

Changes:

  • Enable runR2RTests in runtime-wasm-non-libtests to turn on the R2R_CG2 leg for that manual pipeline.
  • Add a runR2RTests parameter (default false) to the WASM extra-platforms template and gate the R2R build/test jobs behind it.
File summaries
FileDescription
eng/pipelines/runtime-wasm-non-libtests.ymlEnables the R2R leg for this manual WASM non-libtests pipeline by setting runR2RTests: true.
eng/pipelines/extra-platforms/runtime-extra-platforms-wasm.ymlIntroduces runR2RTests parameter (default off) and conditionally adds the R2R_CG2 build/run jobs when enabled.
Review details

Suppressed comments (1)

eng/pipelines/runtime-wasm-non-libtests.yml:35

  • If the intent is for runtime-wasm-non-libtests to be manual-only (queued via /azp run), this pipeline file currently doesn’t disable PR triggers (there’s trigger: none but no pr: none). With runR2RTests: true added, an accidentally-enabled PR trigger would run the R2R leg automatically on PR updates, which conflicts with the PR description’s “manual pipeline” goal. Consider explicitly adding pr: none near the top of the file to make the behavior unambiguous.
 useHelixMonitor: ${{ variables.enableHelixJobMonitor }}
excludeNonLibTests: false
excludeLibTests: true
runR2RTests: true
  • Files reviewed: 2/2 changed files
  • Comments generated: 0
  • Review effort level: Lite

@lewing

lewing commented Sep 5, 2026

Copy link
Copy Markdown
MemberAuthor

I'm working on the active issues/skips, but being able to verify while doin that would be nice then we can move it back to required once things are green.

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to 'arch-wasm': @lewing, @pavelsavara
See info in area-owners.md if you want to be subscribed.

@lewing

Copy link
Copy Markdown
MemberAuthor

/ba-g I've verified this change does not impact the tests run on PRs and the failures are known

@lewing
lewing merged commit 982757a into dotnet:mainSep 5, 2026
213 of 222 checks passed
lewing added a commit that referenced this pull request Sep 6, 2026
## Summary
Narrowly suppress the confirmed WASM ReadyToRun failure shapes tracked
by #131886, #133259, #133303, and #133307 so the browser R2R lane can be
restored without losing interpreter or unaffected-platform coverage.
- use method-level `ActiveIssue` conditions for `Runtime_79354` and
`Runtime_58874`, scoped to WASM R2R
- treat an empty `Assembly.Location` as an unsupported premise in
`Runtime_117566`, following review feedback from #133274
- mark the merged `Interop` work item R2R-incompatible on CoreCLR Wasm
because Crossgen2 aborts before execution while resolving `TypeMapApp`
metadata
- skip only the failing generic multidimensional-array subtest in the
manual Crossgen2 smoke runner, using `PlatformDetection.IsWasm` and
`PlatformDetection.IsReadyToRunCompiled`
This intentionally does not suppress #133219, #133221, #133224, #133286,
or the remaining unclassified failure shapes in #133305. Exact-base R2R
evidence shows `b125091` now passes, and the current-main R2R baseline
also shows `pinnedlocal` passing when reached.
## Testing
- built all affected standalone and merged runtime-test projects
- ran the affected local non-R2R wrapper scripts
- inspected generated merged-runner conditions for the method-level
exclusions
- exact-base browser R2R baseline #133308 reproduced every retained
target failure while `b125091` passed
- ordinary browser-WASM CI executed and passed all affected tests,
including all 70 ReadyToRun smoke subtests
- purpose-built WASI comparison reproduced the `Runtime_79354`,
`Runtime_117566`, `Runtime_58874`, and generic multidimensional-array
R2R failures while their interpreter controls passed
- applying the exact `Runtime_117566` empty-location guard on WASI made
both interpreter and R2R executions pass
- purpose-built WASI comparison confirmed the full `Interop` composite
aborts before execution while `TypeMapApp` individually compiles and
passes
- regenerated WASI `Interop` with the parent `R2RIncompatible` property:
interpreter ran 57/57 and R2R skipped before compilation with exit 0
- confirmed the merged `Interop` exclusion is set for browser-wasm and
wasi-wasm but unset for native targets
The broader WASI work items remain outside the curated lane:
`Regression_o_3` has three additional `Assembly.Location` failures, and
`Regression_1` later aborts in `csharptester`, even though `b125091`
itself passes.
> [!NOTE]
> This pull request was created with GitHub Copilot assistance.
---------
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

arch-wasmWebAssembly architecturearea-Infrastructure-monoos-browserBrowser variant of arch-wasm

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@lewing@jkotas