Skip to content

[wasm][CoreCLR] Enable passing System.Runtime.Tests on wasm#126870

Merged
radekdoulik merged 1 commit intodotnet:mainfrom
radekdoulik:clr-wasm-s-r-tests-update
Apr 14, 2026
Merged

[wasm][CoreCLR] Enable passing System.Runtime.Tests on wasm#126870
radekdoulik merged 1 commit intodotnet:mainfrom
radekdoulik:clr-wasm-s-r-tests-update

Conversation

@radekdoulik
Copy link
Copy Markdown
Member

@radekdoulik radekdoulik commented Apr 14, 2026

Note

This PR description was AI/Copilot-generated.

Summary

Enable 44 previously-disabled System.Runtime.Tests on browser/wasm CoreCLR interpreter by removing unnecessary [ActiveIssue] and [SkipOnPlatform] attributes added in #122980.

Changes

Removed 44 attributes across 15 test these tests pass on the wasm interpreter without issues.files

Replaced [ActiveIssue] with proper platform detection for tests that require multithreading:
[ConditionalClass(..., uses Task.Run() + infinite loop that deadlocks on single-threaded wasmIsMultithreadingSupported)]
added IsMultithreadingSupported to usesThread.Start()ConditionalFact

10 [ActiveIssue] attributes remain for tests with genuine failures on wasm:

  • GC finalizer tests ( no finalizer thread on single-threaded wasm4)
    int saturation bug
  • ModuleTests ( Module.FullyQualifiedName/Name returns <Unknown>2)
  • DateTimeTests ( System.Runtime.Serialization.Formatters not available1)
  • RuntimeFeatureTests ( IsDynamicCodeSupported is false (no JIT)1)

Validation

Full test suite runs locally in ~7 minutes with 68,025 tests, 0 failures, 94 skipped.

Triage

See libraries-tests-triage.md in the test directory for detailed analysis of remaining disabled tests.

Remove 42 ActiveIssue/SkipOnPlatform attributes from tests that pass
on browser/wasm CoreCLR interpreter. Use ConditionalClass/ConditionalFact
with IsMultithreadingSupported for tests that deadlock on single-threaded
wasm (ControlledExecutionTests, JitInfoTests).

12 ActiveIssue attributes remain for tests with genuine failures:
- GC finalizer tests (no finalizer thread)
- ConvertToInteger tests (numeric conversion bug)
- Module.FullyQualifiedName/Name (returns <Unknown>)
- DateTime.GetObjectData (missing Serialization.Formatters)
- RuntimeFeature.DynamicCode_Jit (no dynamic code)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 14, 2026 09:19
@radekdoulik radekdoulik added this to the Future milestone Apr 14, 2026
@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.

Copy link
Copy Markdown
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

Note

Copilot was unable to run its full agentic suite in this review.

Enables previously-disabled System.Runtime.Tests on browser/wasm CoreCLR interpreter by removing unnecessary [ActiveIssue] / [SkipOnPlatform] annotations and replacing a couple of skips with capability-based platform detection (multithreading).

Changes:

  • Removed a broad set of wasm/browser CoreCLR test disables ([ActiveIssue], [SkipOnPlatform]) where tests now pass.
  • Switched threading-dependent tests from issue-based disables to PlatformDetection.IsMultithreadingSupported conditions.
  • Added a triage doc summarizing remaining wasm/CoreCLR interpreter test gaps and their root causes.

Reviewed changes

Copilot reviewed 16 out of 16 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
src/libraries/System.Runtime/tests/System.Runtime.Tests/libraries-tests-triage.md New triage document tracking remaining skipped/disabled tests on browser/wasm CoreCLR interpreter.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/UInt128Tests.cs Removes wasm/browser CoreCLR [ActiveIssue] to re-enable parsing tests.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Threading/PeriodicTimerTests.cs Removes wasm/browser CoreCLR [ActiveIssue] to re-enable PeriodicTimer tests.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/StringTests.cs Removes wasm/browser CoreCLR [ActiveIssue] to re-enable a GetHashCode argument-validation test.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/SingleTests.GenericMath.cs Removes wasm/browser CoreCLR [ActiveIssue] from ConvertToIntegerNativeTest.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Runtime/JitInfoTests.cs Replaces [ActiveIssue] with ConditionalFact including multithreading capability detection.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Runtime/ControlledExecutionTests.cs Replaces [ActiveIssue] with ConditionalClass gated on multithreading support.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Reflection/InvokeWithRefLikeArgs.cs Removes browser skip to re-enable ref-like reflection invocation test.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Numerics/TotalOrderIeee754ComparerTests.cs Removes wasm/browser CoreCLR [ActiveIssue] to re-enable invalid-significand test.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Int128Tests.cs Removes wasm/browser CoreCLR [ActiveIssue] to re-enable parsing tests.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/HalfTests.cs Removes wasm/browser CoreCLR [ActiveIssue] to re-enable UTF8 span parsing test.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/HalfTests.GenericMath.cs Removes wasm/browser CoreCLR [ActiveIssue] to re-enable parsing tests in generic-math suite.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/GCTests.cs Removes wasm/browser CoreCLR [ActiveIssue] to re-enable negative-size allocation test.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/DoubleTests.GenericMath.cs Removes wasm/browser CoreCLR [ActiveIssue] from ConvertToIntegerNativeTest.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/DelegateTests.cs Removes wasm/browser CoreCLR [ActiveIssue] to re-enable DynamicInvoke default-parameter tests.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/DecimalTests.cs Removes wasm/browser CoreCLR [ActiveIssue] across multiple decimal tests/classes.

@radekdoulik radekdoulik force-pushed the clr-wasm-s-r-tests-update branch from d796f5f to 7337e9b Compare April 14, 2026 09:33
@radekdoulik radekdoulik enabled auto-merge (squash) April 14, 2026 15:05
@radekdoulik radekdoulik changed the title [browser][CoreCLR] Enable passing System.Runtime.Tests on wasm [wasm][CoreCLR] Enable passing System.Runtime.Tests on wasm Apr 14, 2026
@radekdoulik radekdoulik merged commit e8314cc into dotnet:main Apr 14, 2026
120 of 124 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants