Run browser wasm runtime tests with ReadyToRun - #133134
Conversation
Runtime_131285 and Runtime_131373 lacked RequiresProcessIsolation, so they resolved to CLRTestKind=SharedLibrary (build-only) instead of BuildAndRun, meaning no execution script was ever generated and the tests silently passed without exercising the wasm R2R codegen they were written to validate. Confirmed both now run end-to-end under node with the fix and pass (Expected/Actual: 100). Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: db8401cb-c388-4481-a625-34811ab8a269
|
Azure Pipelines: Successfully started running 3 pipeline(s). 13 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
|
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
There was a problem hiding this comment.
🟢 Approval recommended
The change is consistent with existing src/tests infrastructure (RequiresProcessIsolation -> OutputType=Exe -> CLRTestKind=BuildAndRun) and is a low-risk test-project fix with no additional issues found.
Pull request overview
This PR updates two JIT regression test projects under src/tests/JIT/Regression/JitBlue/ so they are classified as runnable tests (BuildAndRun) rather than shared-library build-only projects, ensuring their browser/wasm crossgen2 R2R path is actually exercised.
Changes:
- Set
RequiresProcessIsolation=trueforRuntime_131285andRuntime_131373soOutputType=Exeis inferred andCLRTestKindbecomesBuildAndRun. - Add brief comments explaining why process isolation is required to avoid silent build-only “passes”.
File summaries
| File | Description |
|---|---|
| src/tests/JIT/Regression/JitBlue/Runtime_131373/Runtime_131373.csproj | Marks the test as process-isolated so it generates/run-scripts and executes instead of building only. |
| src/tests/JIT/Regression/JitBlue/Runtime_131285/Runtime_131285.csproj | Same: forces runnable classification via RequiresProcessIsolation to ensure the test actually executes. |
Review details
- Files reviewed: 2/2 changed files
- Comments generated: 0
- Review effort level: Lite
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: df5c3f14-aa63-4239-bebd-8cf863c70f96
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: df5c3f14-aa63-4239-bebd-8cf863c70f96
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: df5c3f14-aa63-4239-bebd-8cf863c70f96
There was a problem hiding this comment.
🟡 Changes recommended
PaddingHelper.PadStream can now hang indefinitely if constructed with a zero-length buffer, so it should defensively guard against that to avoid tooling/build deadlocks.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review details
- Files reviewed: 14/14 changed files
- Comments generated: 1
- Review effort level: Lite
|
Tagging subscribers to 'arch-wasm': @lewing, @pavelsavara |
There was a problem hiding this comment.
🟡 Changes recommended
Runtime_70259.cs gains an ActiveIssue attribute but lacks the needed using directives / qualification, so the “IL source” reference file no longer compiles if used for IL regeneration.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review details
- Files reviewed: 11/11 changed files
- Comments generated: 1
- Review effort level: Lite
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: df5c3f14-aa63-4239-bebd-8cf863c70f96
There was a problem hiding this comment.
🔵 Needs a closer look
It changes CI/test execution infrastructure (pipeline + Crossgen/R2R test plumbing), which has a high blast radius and warrants final validation by a human reviewer/CI run results.
Review details
- Files reviewed: 10/10 changed files
- Comments generated: 0 new
- Review effort level: Lite
| extraBuildArgs: -os browser -p:HostConfiguration=Release | ||
| condition: >- | ||
| or( | ||
| eq(variables['wasmDarcDependenciesChanged'], true), |
There was a problem hiding this comment.
@adamperlin How are we testing Wasm R2R currently? I would have expected a test leg like this to already exist somewhere, but I haven’t been able to find.
There was a problem hiding this comment.
There is/was some testing in outerloop, for example, it lead to this issue
|
This should be updated to also remove the process isolation from #133136 if it merges first. |
|
the sos failures are #133175 but BI/BA don't match because of what they scan |
|
/ba-g SOS failures are tracked in #133175 |
Summary
Add a parallel browser-wasm CoreCLR runtime-test leg with
readyToRun: true. The existing browser leg exercises the interpreter; the new leg Crossgen2-compiles merged runners and their referenced test assemblies to wasm so wasm JIT regressions are actually exercised.This replaces the per-test
AlwaysUseCrossGen2/RequiresProcessIsolationworkaround with systemic merged-runner coverage.Changes
R2R_CG2innerloop job while retaining the interpreter job.Runtime_131285,Runtime_131373,Runtime_131635, andRuntime_131640.TEST_READY_TO_RUN_MODEenvironment marker from the shared Crossgen2 scripts, covering native and wasm runtime-test R2R lanes.Runtime_70259active-issue only for wasm R2R. It still compiles to R2R, but execution is skipped because it currently asserts inToPortableEntryPointunder this newly enabled coverage.Validation
JIT/Regression/Regression_2.csprojfor browser-wasm Checked.Runtime_70259is R2R-compiled and recorded against its active issue only when the ReadyToRun environment marker is present.Note
This pull request description was updated with the assistance of GitHub Copilot.