[wasm][coreclr] Enable priority1 runtime tests in outerloop#127438
Conversation
Disable few more MT tests Decorate and exclude failing tests
|
/azp run ci |
|
No pipelines are associated with this pull request. |
|
/azp run runtime-coreclr-outerloop |
|
No pipelines are associated with this pull request. |
There was a problem hiding this comment.
Pull request overview
This PR updates CoreCLR/wasm outerloop coverage by adding a browser-wasm checked build + outerloop runtime test run to the CoreCLR CI pipeline, while suppressing known-failing scenarios on Browser/wasm and non-multithreaded environments.
Changes:
- Add
browser_wasmchecked build artifact production and a corresponding outerloop runtime test run toeng/pipelines/coreclr/ci.yml. - Gate several multithreading-dependent tests with
ConditionalFact(...IsMultithreadingSupported)and add requiredTestLibraryreferences. - Exclude/disable specific known-failing tests on Browser/wasm (ActiveIssue + conditional
Compile/MergedWrapperProjectReferenceremovals).
Reviewed changes
Copilot reviewed 19 out of 19 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| eng/pipelines/coreclr/ci.yml | Adds browser-wasm checked build + outerloop test run jobs for CoreCLR CI. |
| src/tests/Loader/classloader/MethodImpl/Desktop/self_override5.il | Adds Browser-only ActiveIssue to disable a known failing loader test on Browser. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_add.cs | Gates test on multithreading support via ConditionalFact. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_sub.cs | Gates test on multithreading support via ConditionalFact. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_mul.cs | Gates test on multithreading support via ConditionalFact. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_div.cs | Gates test on multithreading support via ConditionalFact. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_mod.cs | Gates test on multithreading support via ConditionalFact. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_xor.cs | Gates test on multithreading support via ConditionalFact. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_or.cs | Gates test on multithreading support via ConditionalFact. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_and.cs | Gates test on multithreading support via ConditionalFact. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_shr.cs | Gates test on multithreading support via ConditionalFact. |
| src/tests/JIT/jit64/opt/cse/VolatileTest.csproj | Adds TestLibrary project reference to support new PlatformDetection usage. |
| src/tests/JIT/Methodical/Methodical_ro.csproj | Excludes a known failing callconv test on Browser via Condition. |
| src/tests/JIT/Methodical/Methodical_do.csproj | Excludes a known failing callconv test on Browser via Condition. |
| src/tests/JIT/Methodical/Methodical_r2.csproj | Removes specific wrapper test projects on Browser and excludes call.cs via Condition. |
| src/tests/JIT/Methodical/Methodical_d2.csproj | Removes specific wrapper test projects on Browser and excludes call.cs via Condition. |
| src/tests/JIT/Directed/tailcall/mutual_recursion.fs | Adds Browser-only ActiveIssue to disable a known failing tailcall test on Browser. |
| src/tests/CoreMangLib/system/span/RefStructWithSpan.cs | Gates a multithreaded stress test on multithreading support via ConditionalFact. |
| src/tests/CoreMangLib/CoreMangLib.csproj | Adds TestLibrary project reference to support new PlatformDetection usage. |
|
@akoeplinger @jkoritzinsky how can I test the changes in ci.yml? |
|
/azp run runtime-coreclr outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run runtime-coreclr outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
There was a problem hiding this comment.
Pull request overview
This PR adjusts CoreCLR WASM outerloop coverage by enabling browser_wasm Priority1 runtime test execution while suppressing known-failing tests (mainly browser/interpreter and single-threaded WASM constraints).
Changes:
- Enable CoreCLR
outerloopruns forbrowser_wasmin the CoreCLR CI pipeline (build + test run jobs). - Guard multithreaded tests with
IsMultithreadingSupportedand add neededTestLibraryproject references. - Exclude/skip known failing tests on Browser/WASM via
ActiveIssueand csproj conditional excludes.
Reviewed changes
Copilot reviewed 20 out of 20 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/tests/Loader/classloader/MethodImpl/Desktop/self_override5.il | Adds ActiveIssue skip on Browser for a known failure. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_xor.cs | Switches to ConditionalFact gated on multithreading support. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_sub.cs | Switches to ConditionalFact gated on multithreading support. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_shr.cs | Switches to ConditionalFact gated on multithreading support. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_or.cs | Switches to ConditionalFact gated on multithreading support. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_mul.cs | Switches to ConditionalFact gated on multithreading support. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_mod.cs | Switches to ConditionalFact gated on multithreading support. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_div.cs | Switches to ConditionalFact gated on multithreading support. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_and.cs | Switches to ConditionalFact gated on multithreading support. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_add.cs | Switches to ConditionalFact gated on multithreading support. |
| src/tests/JIT/jit64/opt/cse/VolatileTest.csproj | Adds TestLibrary reference to support PlatformDetection usage. |
| src/tests/JIT/Methodical/Methodical_ro.csproj | Excludes a known failing source file on browser builds. |
| src/tests/JIT/Methodical/Methodical_r2.csproj | Excludes known failing browser/interpreter projects and source file. |
| src/tests/JIT/Methodical/Methodical_do.csproj | Excludes a known failing source file on browser builds. |
| src/tests/JIT/Methodical/Methodical_d2.csproj | Excludes known failing browser/interpreter projects and source file. |
| src/tests/JIT/Directed/tailcall/mutual_recursion.fs | Adds ActiveIssue skip on Browser. |
| src/tests/CoreMangLib/system/span/RefStructWithSpan.cs | Switches to ConditionalFact gated on multithreading support. |
| src/tests/CoreMangLib/CoreMangLib.csproj | Adds TestLibrary reference to support PlatformDetection usage. |
| eng/pipelines/coreclr/ci.yml | Adds checked browser_wasm build + outerloop test run jobs. |
| eng/liveBuilds.targets | Ensures Browser CoreCLR live-build runtime file set includes browser host artifacts when present. |
|
/azp run runtime-coreclr outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run runtime-coreclr outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
There was a problem hiding this comment.
Pull request overview
This PR updates CoreCLR/wasm outerloop CI to start running Pri1 runtime tests for browser_wasm, and adjusts a set of existing tests so they’re excluded or conditionally skipped on Browser/wasm (and on platforms without multithreading support) to keep the newly-enabled runs green.
Changes:
- Add
browser_wasmchecked build and outerloop test run jobs to CoreCLR CI. - Mark several tests as
ActiveIssueon Browser and gate multithreaded tests withConditionalFact(PlatformDetection.IsMultithreadingSupported). - Ensure live-build runtime file publishing includes additional Browser/CoreCLR host assets when present.
Reviewed changes
Copilot reviewed 22 out of 22 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/tests/Loader/classloader/MethodImpl/Desktop/self_override5.il | Adds ActiveIssue to exclude this test on Browser. |
| src/tests/JIT/Methodical/VT/callconv/ee.il | Adds XUnitExtensions/TestLibrary externs and ActiveIssue for Browser. |
| src/tests/JIT/Methodical/VT/callconv/dd.il | Adds XUnitExtensions/TestLibrary externs and ActiveIssue for Browser. |
| src/tests/JIT/Methodical/VT/callconv/calli.il | Adds XUnitExtensions/TestLibrary externs and ActiveIssue for Browser. |
| src/tests/JIT/Methodical/VT/callconv/call.cs | Adds Browser ActiveIssue attribute to exclude the entrypoint on Browser. |
| src/tests/JIT/Methodical/VT/callconv/aa.il | Adds XUnitExtensions/TestLibrary externs and ActiveIssue for Browser. |
| src/tests/JIT/Methodical/Methodical_d2.csproj | No functional change (whitespace-only). |
| src/tests/JIT/jit64/opt/cse/VolatileTest.csproj | Adds TestLibrary reference to enable PlatformDetection usage in tests. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_add.cs | Switches to ConditionalFact based on multithreading support. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_sub.cs | Switches to ConditionalFact based on multithreading support. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_shr.cs | Switches to ConditionalFact based on multithreading support. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_or.cs | Switches to ConditionalFact based on multithreading support. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_mul.cs | Switches to ConditionalFact based on multithreading support. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_mod.cs | Switches to ConditionalFact based on multithreading support. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_div.cs | Switches to ConditionalFact based on multithreading support. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_and.cs | Switches to ConditionalFact based on multithreading support. |
| src/tests/JIT/jit64/opt/cse/VolatileTest_op_xor.cs | Switches to ConditionalFact based on multithreading support. |
| src/tests/JIT/Directed/tailcall/mutual_recursion.fs | Adds Browser ActiveIssue to exclude on Browser. |
| src/tests/CoreMangLib/system/span/RefStructWithSpan.cs | Switches to ConditionalFact based on multithreading support. |
| src/tests/CoreMangLib/CoreMangLib.csproj | Adds TestLibrary reference to enable PlatformDetection usage in tests. |
| eng/pipelines/coreclr/ci.yml | Adds checked browser_wasm build and outerloop test jobs. |
| eng/liveBuilds.targets | Adds Browser/CoreCLR host runtime files to the live-build file set (when present). |
pavelsavara
left a comment
There was a problem hiding this comment.
There is one change that would be good to review by Maraf
to not skip the files accidentaly in other cases than runtime tests build
|
/azp run runtime-coreclr outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/ba-g CI failure is unrelated timeout |
PR dotnet#127438 split the browser+CoreCLR <LibrariesRuntimeFiles> element into two: one with the $(LibrariesSharedFrameworkDir)*.a glob, and a separate one for the host files. The Exclude= added in commit c0b0e63 for the three duplicate static libs (libminipal.a, libSystem.IO.Compression.Native.a, libz.a) stayed on the host element, where it had no effect because that element does not include any $(LibrariesSharedFrameworkDir) items. This caused NU5118 (duplicate file) to return for browser-wasm CoreCLR runtime pack builds: the three .a files are produced under both $(CoreCLRSharedFrameworkDir) and $(LibrariesSharedFrameworkDir), and both copies were getting packed. Move the Exclude= to the ItemGroup that actually contains the *.a glob so the duplicates are dropped again. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Disable few more MT tests
Decorate and exclude failing tests
The outerloop priority 1 tests improve our coverage of runtime tests on CI. Currently we have priority0 on every PR, outerloop is run less frequently and has higher number of tests.
Pri0: 3,998 total — 3,638 passed, 0 failed, 360 skipped
Pri1: 14,085 total — 13,679 passed, 0 failed, 406 skipped
When the remaining issue will be fixed, we can have:
Pri1: 14,978 total — 14,593 passed, 0 failed, 385 skipped)
The outerloop red state is not blocking PRs and other platforms are not green either. So I think we don't need to block this PR on remaining failure (#127426).