[wasm] Build a test-specific corerun for nine more runtime tests - #133367
[wasm] Build a test-specific corerun for nine more runtime tests#133367radekdoulik wants to merge 2 commits into
Conversation
dotnet#131877 replaced the hardcoded struct-size table in the wasm interop generator with crossgen2's type system, so nine of the projects that opted out of the test-specific corerun no longer need to. Each was verified by building and running it for browser-wasm: all nine link their own corerun.wasm and pass, so the methods gated on PlatformDoesNotSupportNativeTestAssets execute their native code instead of skipping. The remaining opt-outs stay. They are blocked on gaps this does not address, tracked by dotnet#131811. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: f6d6e5a4-5b25-4198-b42d-d5b2dc781f47
|
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 'arch-wasm': @lewing, @pavelsavara |
|
Tagging subscribers to this area: @dotnet/interop-contrib |
There was a problem hiding this comment.
🟢 Approval recommended
The change is a straightforward removal of browser-wasm CoreCLR opt-outs in test project files with no identified correctness, build-logic, or convention issues in the modified regions.
Pull request overview
This PR removes the WasmBuildTestCorerun=false opt-out from nine src/tests projects so that, for CoreCLR + browser-wasm, they fall back to the default behavior of building a test-specific corerun.wasm when applicable.
Changes:
- Removed the
WasmBuildTestCorerunopt-out (and its explanatory comment) from nine runtime test.csprojfiles. - As a result, these projects will now participate in the browser-wasm CoreCLR test-specific corerun build flow when
Common/CLRTest.WasmCorerun.targetsis imported.
File summaries
| File | Description |
|---|---|
| src/tests/Interop/StructMarshalling/PInvoke/NestedStruct.csproj | Removes browser-wasm CoreCLR opt-out for test-specific corerun. |
| src/tests/JIT/Directed/StructABI/StructABI.csproj | Removes browser-wasm CoreCLR opt-out for test-specific corerun. |
| src/tests/JIT/Directed/callconv/CdeclMemberFunction/CdeclMemberFunctionTest.csproj | Removes browser-wasm CoreCLR opt-out for test-specific corerun. |
| src/tests/JIT/Directed/callconv/PlatformDefaultMemberFunction/PlatformDefaultMemberFunctionTest.csproj | Removes browser-wasm CoreCLR opt-out for test-specific corerun. |
| src/tests/JIT/Directed/callconv/StdCallMemberFunction/StdCallMemberFunctionTest.csproj | Removes browser-wasm CoreCLR opt-out for test-specific corerun. |
| src/tests/JIT/Directed/callconv/ThisCall/ThisCallTest.csproj | Removes browser-wasm CoreCLR opt-out for test-specific corerun. |
| src/tests/JIT/Methodical/Methodical_others.csproj | Removes browser-wasm CoreCLR opt-out for test-specific corerun in merged runner project. |
| src/tests/JIT/SIMD/JIT.SIMD_r.csproj | Removes browser-wasm CoreCLR opt-out for test-specific corerun in merged runner project. |
| src/tests/JIT/SIMD/JIT.SIMD_ro.csproj | Removes browser-wasm CoreCLR opt-out for test-specific corerun in merged runner project. |
Review details
- Files reviewed: 9/9 changed files
- Comments generated: 0
- Review effort level: Lite
|
/azp run runtime-wasm-non-libtests |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
|
it looks like: |
Nine runtime test projects opted out of the test-specific corerun on browser-wasm because the interop generator could not handle their P/Invoke surface. #131877 replaced the hardcoded struct-size table with crossgen2's type system, and these nine no longer need the opt-out.
Removing it lets each build its own
corerun.wasmwith the test's native library linked in, which sets__TestNativeAssetsLinkedand so lifts thePlatformDoesNotSupportNativeTestAssetsgate — the native-dependent methods execute instead of skipping.Interop/StructMarshalling/PInvoke/NestedStructJIT/Directed/StructABI/StructABIJIT/Directed/callconv/CdeclMemberFunction/CdeclMemberFunctionTestJIT/Directed/callconv/PlatformDefaultMemberFunction/PlatformDefaultMemberFunctionTestJIT/Directed/callconv/StdCallMemberFunction/StdCallMemberFunctionTestJIT/Directed/callconv/ThisCall/ThisCallTestJIT/Methodical/Methodical_othersJIT/SIMD/JIT.SIMD_rJIT/SIMD/JIT.SIMD_roMethodical_othersis a merged runner whose reverse P/Invokes the generator previously could not emit helpers for.Verification
All 41 opt-out projects were built for browser-wasm with the property removed, then run; the nine here are the ones that both link a corerun and pass. The other 32 were restored, each because of a specific blocker this change does not address — those stay tracked by #131811.
Verified from a clean tree at the final state: 9/9 build, 9/9 link their own
corerun.wasm, 9/9 reportEND EXECUTION - PASSED. Local only, macOS/arm64 with node.CI
The
browser_wasmruntime-test leg (coreclr Pri0 Runtime Tests Run browser wasm checked) is green onmainand is what this change triggers, viaSetPathVars_runtimetests. All nine are Pri0, so they run there.Note
This description was drafted with GitHub Copilot.