Skip to content

Conversation

@pavelsavara
Copy link
Member

@pavelsavara pavelsavara commented Jan 7, 2026

CoreCLR

WasmTestRunner

Emscripten build

  • fix JS minification problem with AJSDCE
  • make BrowserHost-Static private linking too
  • reduce EmccExportedRuntimeMethod and other exports

CI & MSBuild

  • switch runtime pipeline to Release
  • add wasm-coreclr-library-tests.yml
  • enable WasmTestLogExitCode, WasmTestAppendElementOnExit, WasmTestExitOnUnhandledError for library tests on CoreCLR
  • install chrome for CoreCLR tests
  • disabled IL trimming [browser][coreCLR] Fix IL trimming in publish #123030

System.Runtime.Tests

Fixes #120707

@pavelsavara pavelsavara changed the title [browser][coreCLR] enable System.Runtime.Tests on CI [browser][coreCLR] enable System.Runtime.Tests on CI as Release build Jan 8, 2026
@pavelsavara pavelsavara marked this pull request as ready for review January 9, 2026 12:47
Copilot AI review requested due to automatic review settings January 9, 2026 12:47
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This pull request enables System.Runtime.Tests on CI for browser/CoreCLR as a Release build, addressing multiple components to support this functionality.

Key changes include:

  • Adding missing function signatures in CoreCLR's interpreter-to-managed call helpers for browser/WASM
  • Implementing workarounds for test loading issues and access checks on WASM
  • Refactoring JavaScript/TypeScript code to reduce exported symbols and improve modularity by moving FS operations to a centralized location
  • Switching CI pipeline configuration from Debug to Release build
  • Disabling IL trimming temporarily for CoreCLR on WASM
  • Marking failing tests with ActiveIssue attributes to track them systematically

Reviewed changes

Copilot reviewed 43 out of 44 changed files in this pull request and generated 23 comments.

Show a summary per file
File Description
src/tasks/WasmAppBuilder/coreclr/ManagedToNativeGenerator.cs Adds missing function signature cookies for interpreter-to-managed calls
src/native/rollup.config.defines.js Removes CI build check from isDebug condition to ensure proper debug configuration
src/native/libs/Common/JavaScript/types/emscripten.ts Removes FS_createPath, FS_createDataFile, and addFunction from EmscriptenModule interface
src/native/libs/Common/JavaScript/ems-ambient/index.ts Adds FS object with createPath and createDataFile methods, removes maybeExit
src/native/corehost/browserhost/loader/dotnet.d.ts Removes FS_createPath, FS_createDataFile, and addFunction from EmscriptenModule interface
src/native/corehost/browserhost/libBrowserHost.footer.js Adds AJSDCE_Deps workaround for acorn-optimizer and reformats dependency list
src/native/corehost/browserhost/host/host.ts Updates FS API calls to use ems.FS instead of ems.Module
src/native/corehost/browserhost/CMakeLists.txt Changes BrowserHost-Static from PUBLIC to PRIVATE linking and adds comment markers
src/mono/wasm/testassets/WasmBrowserRunMainOnly/WasmBrowserRunMainOnly.csproj Adds CoreCLR-specific properties for invariant globalization and disables trimming
src/mono/browser/test-main.js Adds timing output to log test execution duration
src/mono/browser/build/WasmApp.InTree.props Adds comment referencing IL trimming issue
src/libraries/tests.proj Restricts browser smoke tests to Mono runtime only
src/libraries/pretest.proj Removes Mono-only restriction from WASM provisioning
eng/testing/tests.browser.targets Adds CoreCLR-specific test support properties and disables trimming
eng/pipelines/runtime.yml Changes build config to Release and adds CoreCLR library tests template
eng/pipelines/common/templates/wasm-coreclr-library-tests.yml New file defining CoreCLR library test pipeline configuration
eng/pipelines/common/templates/browser-wasm-coreclr-build-tests.yml Updates build config from Debug to Release
eng/native.wasm.targets Reduces EmccExportedRuntimeMethod and EmccExportedFunction items
src/libraries/Common/tests/WasmTestRunner/WasmTestRunner.cs Implements workaround for test assembly loading issue
src/coreclr/vm/wasm/callhelpers-interp-to-managed.cpp Adds numerous missing function signatures for WASM interop
src/coreclr/interpreter/compiler.cpp Adds TARGET_WASM conditional to skip EmitCallsiteCallout workaround
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/*.cs Adds ActiveIssue attributes to disable failing tests for Browser+CoreCLR

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@pavelsavara
Copy link
Member Author

Log

[14:21:58] info: [STRT] System.Tests.StringTests.Contains_NullValue_WithComparisonType_ThrowsArgumentNullException(comparisonType: Ordinal)
[14:21:58] info: [STRT] System.Tests.StringTests.Contains_NullValue_WithComparisonType_ThrowsArgumentNullException(comparisonType: OrdinalIgnoreCase)
[14:21:58] info: [STRT] System.Tests.StringTests.Contains_ZeroLength_Char
[14:21:58] info: [STRT] System.Tests.StringTests.Create_NullState_Allowed
[14:21:58] info: Finished:    System.Runtime.Tests.dll
[14:22:13] info: Received expected 17463831 of /root/helix/work/workitem/uploads/xharness-output/testResults.xml
[14:22:13] info: Finished writing 17463831 bytes of RESULTXML
[14:22:13] info: Xml file was written to the provided writer.
[14:22:13] info: 
[14:22:13] info: === TEST EXECUTION SUMMARY ===
[14:22:13] info: Tests run: 64047 Passed: 63955 Inconclusive: 0 Failed: 0 Ignored: 0 Skipped: 92
[14:22:13] info: 
[14:22:13] info: test-main.js exiting WasmTestRunner.dll System.Runtime.Tests.dll after 13.740933333333333 minutes with result 0 and linear memory 1155596288 bytes
[14:22:13] info: WASM EXIT 0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

arch-wasm WebAssembly architecture area-System.Runtime os-browser Browser variant of arch-wasm

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[wasm][coreclr] make a few libraries tests run on CI

2 participants