Skip to content

Enable 12 browser/CoreCLR library test suites#126996

Open
radekdoulik wants to merge 5 commits intodotnet:mainfrom
radekdoulik:wasm-coreclr-enable-library-tests
Open

Enable 12 browser/CoreCLR library test suites#126996
radekdoulik wants to merge 5 commits intodotnet:mainfrom
radekdoulik:wasm-coreclr-enable-library-tests

Conversation

@radekdoulik
Copy link
Copy Markdown
Member

@radekdoulik radekdoulik commented Apr 16, 2026

Note

This PR was AI/Copilot-generated.

Enable 12 library test suites that were previously excluded for browser-wasm + CoreCLR (interpreter). Instead of disabling entire suites, individual failing tests are marked with [ActiveIssue] attributes referencing #123011.

Enabled suites (75,272 tests now passing)

Suite Pass Skip
System.Collections 33,603 113
System.Collections.Concurrent 2,245 78
System.ComponentModel.EventBasedAsync 32 12
System.Data.Common 11,699 9
System.Diagnostics.Tracing 35 2
Microsoft.Extensions.DependencyInjection 1,314 36
Microsoft.Extensions.Logging.Generators 21 5
System.Net.ServicePoint 0 ~3
System.Runtime.InteropServices 2,322 151
System.Runtime.Intrinsics 12,944 0
System.Dynamic.Runtime 2,899 9
System.Runtime.Extensions 8,158 67

Changes

  • tests.proj: Remove 12 suite-level exclusions from the browser-wasm/CoreCLR block
  • 25 test files: Add [ActiveIssue] or [ConditionalFact] attributes to ~50 individual failing tests
  • Failure categories: GC finalization (no finalizer thread), missing System.Runtime.Serialization.Formatters, COM interop unsupported, WASM SIMD (interpreter), threading limitations, dynamic dispatch interpreter bugs, Roslyn generator infrastructure

Copilot AI review requested due to automatic review settings April 16, 2026 10:38
@radekdoulik radekdoulik added this to the Future milestone Apr 16, 2026
@radekdoulik radekdoulik force-pushed the wasm-coreclr-enable-library-tests branch from 275be05 to 79b0e3d Compare April 16, 2026 10:46
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

Enables broader library test coverage for browser-wasm + CoreCLR (interpreter) by removing suite-level exclusions and replacing them with targeted per-test skips via [ActiveIssue] / [ConditionalFact].

Changes:

  • Removed suite-level browser/CoreCLR test project exclusions in src/libraries/tests.proj to run additional suites.
  • Added [ActiveIssue(.../123011)] to individual failing tests (and a few class-level skips) to keep the enabled suites green on browser/CoreCLR.
  • Added conditionalization for a serialization-related dictionary test based on PlatformDetection.IsBinaryFormatterSupported.

Reviewed changes

Copilot reviewed 26 out of 26 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/libraries/tests.proj Removes multiple browser/CoreCLR project exclusions to enable more suites.
src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Tests/ServiceProviderCompilationTest.cs Adds [ActiveIssue] for browser/CoreCLR to a DI compilation/stack-space test.
src/libraries/Microsoft.Extensions.Logging.Abstractions/tests/Microsoft.Extensions.Logging.Generators.Tests/LoggerMessageGeneratorIncrementalTests.cs Skips incremental-generator tests on browser/CoreCLR via [ActiveIssue].
src/libraries/Microsoft.VisualBasic.Core/tests/Microsoft/VisualBasic/FileIO/FileSystemTests.cs Skips current-directory related tests on browser/CoreCLR.
src/libraries/System.Collections.Concurrent/tests/ConcurrentQueueTests.cs Skips known-failing queue tests on browser/CoreCLR.
src/libraries/System.Collections/tests/Generic/HashSet/HashSet.NonGeneric.Tests.cs Skips a non-generic HashSet comparer test on browser/CoreCLR.
src/libraries/System.Collections/tests/Generic/Dictionary/HashCollisionScenarios/OutOfBoundsRegression.cs Skips hash-collision regression test base on browser/CoreCLR.
src/libraries/System.Collections/tests/Generic/Dictionary/Dictionary.Generic.Tests.cs Gates comparer serialization test with IsBinaryFormatterSupported.
src/libraries/System.ComponentModel.EventBasedAsync/tests/BackgroundWorkerTests.cs Skips finalization/threading-sensitive tests on browser/CoreCLR.
src/libraries/System.Data.Common/tests/System/Data/Common/DbConnectionTests.cs Skips finalization-sensitive connection test on browser/CoreCLR.
src/libraries/System.Data.Common/tests/System/Data/Common/DbCommandTests.cs Skips finalization-sensitive command test on browser/CoreCLR.
src/libraries/System.Diagnostics.Tracing/tests/BasicEventSourceTest/ActivityTracking.cs Skips activity tracking/flow tests on browser/CoreCLR.
src/libraries/System.IO.Compression.ZipFile/tests/ZipFile.Unix.cs Skips Unix permission metadata tests on browser/CoreCLR.
src/libraries/System.Net.Requests/tests/ServicePointTests/ServicePointManagerTest.cs Skips the ServicePointManager test class on browser/CoreCLR.
src/libraries/System.Net.Requests/tests/ServicePointTests/TlsSystemDefault.cs Skips TLS default tests on browser/CoreCLR.
src/libraries/System.Runtime.Intrinsics/tests/Wasm/PackedSimdTests.cs Skips WASM SIMD tests on browser/CoreCLR.
src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System/Runtime/InteropServices/Marshal/AddRefTests.cs Skips COM-related Marshal.AddRef test on browser/CoreCLR.
src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System/Runtime/InteropServices/Marshal/QueryInterfaceTests.cs Skips COM-related Marshal.QueryInterface tests on browser/CoreCLR.
src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System/Runtime/InteropServices/Marshal/ReleaseTests.cs Skips COM-related Marshal.Release test on browser/CoreCLR.
src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System/Runtime/InteropServices/ComVariantTests.cs Skips COM variant tests on browser/CoreCLR.
src/libraries/System.Runtime.InteropServices/tests/System.Runtime.InteropServices.UnitTests/System/Runtime/InteropServices/ComVariantMarshallerTests.cs Skips COM variant marshalling tests on browser/CoreCLR (and adjusts existing skips).
src/libraries/System.Runtime/tests/System.Dynamic.Runtime.Tests/Dynamic.Context/Conformance.dynamic.context.property.autoproperty.regclass.cs Skips dynamic conformance tests on browser/CoreCLR.
src/libraries/System.Runtime/tests/System.Dynamic.Runtime.Tests/Dynamic.Context/Conformance.dynamic.context.operator.regclass.cs Skips dynamic conformance tests on browser/CoreCLR.
src/libraries/System.Runtime/tests/System.Dynamic.Runtime.Tests/Dynamic.Context/Conformance.dynamic.context.method.genmethod.regclass.cs Skips dynamic conformance tests on browser/CoreCLR.
src/libraries/System.Runtime/tests/System.Dynamic.Runtime.Tests/Dynamic.Context/Conformance.dynamic.context.indexer.regclass.cs Skips dynamic conformance tests on browser/CoreCLR.
src/libraries/System.Runtime/tests/System.Runtime.Extensions.Tests/System/EnvironmentTests.cs Skips environment path/folder tests on browser/CoreCLR.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/DateTimeTests.cs Skips serialization-related DateTime test on browser/CoreCLR.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/DecimalTests.cs Skips Decimal tests on browser/CoreCLR.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/DelegateTests.cs Skips Delegate tests on browser/CoreCLR.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/DoubleTests.GenericMath.cs Skips generic-math Double tests on browser/CoreCLR.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/GCTests.cs Skips GC behavior tests on browser/CoreCLR.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/HalfTests.cs Skips Half tests on browser/CoreCLR.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/HalfTests.GenericMath.cs Skips generic-math Half tests on browser/CoreCLR.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Int128Tests.cs Skips Int128 tests on browser/CoreCLR.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Numerics/TotalOrderIeee754ComparerTests.cs Skips IEEE754 ordering tests on browser/CoreCLR.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Reflection/ModuleTests.cs Skips reflection module tests on browser/CoreCLR.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Runtime/CompilerServices/RuntimeFeatureTests.cs Skips RuntimeFeature tests on browser/CoreCLR.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Runtime/ControlledExecutionTests.cs Skips controlled-execution tests on browser/CoreCLR.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Runtime/JitInfoTests.cs Skips JIT info tests on browser/CoreCLR.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/SingleTests.GenericMath.cs Skips generic-math Single tests on browser/CoreCLR.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/StringTests.cs Skips String tests on browser/CoreCLR.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Threading/PeriodicTimerTests.cs Skips PeriodicTimer tests on browser/CoreCLR.
src/libraries/System.Runtime/tests/System.Runtime.Tests/System/UInt128Tests.cs Skips UInt128 tests on browser/CoreCLR.

Comment thread src/libraries/tests.proj
[InlineData(ServiceProviderMode.Expressions, typeof(I999))]
[ActiveIssue("https://github.com/dotnet/runtime/issues/33894", TestRuntimes.Mono)]
[ActiveIssue("https://github.com/dotnet/runtime/issues/123011", typeof(PlatformDetection), nameof(PlatformDetection.IsBrowser), nameof(PlatformDetection.IsCoreCLR))]
private async Task CompilesInLimitedStackSpace(ServiceProviderMode mode, Type serviceType)
Copy link

Copilot AI Apr 16, 2026

Choose a reason for hiding this comment

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

This method is marked with [Theory]/[InlineData] but is declared private. xUnit test methods are expected to be public in this repo; as-written, the test cases may not be discovered/executed (and the new [ActiveIssue] won’t have any effect). Consider making the method public (or adding a public wrapper) so it actually runs.

Suggested change
private async Task CompilesInLimitedStackSpace(ServiceProviderMode mode, Type serviceType)
public async Task CompilesInLimitedStackSpace(ServiceProviderMode mode, Type serviceType)

Copilot uses AI. Check for mistakes.
@radekdoulik radekdoulik force-pushed the wasm-coreclr-enable-library-tests branch from 79b0e3d to 9334f01 Compare April 16, 2026 10:49
…ry tests

Apply issue dotnet#123011 [ActiveIssue] attributes to 22 specific failing test
methods across 22 library test files to disable them on browser/CoreCLR.

The following test suites now pass cleanly with these tests disabled:
- System.Collections
- System.Collections.Concurrent
- System.ComponentModel.EventBasedAsync
- System.Data.Common
- System.Diagnostics.Tracing
- System.Net.ServicePoint (ServicePointTests)
- System.Runtime.InteropServices
- System.Runtime.Intrinsics (45 tests, class-level)
- System.Runtime.Extensions
- System.Dynamic.Runtime
- Microsoft.Extensions.DependencyInjection
- Microsoft.Extensions.Logging.Generators

Update src/libraries/tests.proj to remove exclusions for these 12 suites
from the CoreCLR/browser block. Keep 4 suites excluded due to unfixable
issues:
- Microsoft.VisualBasic.Core (finalizer crash)
- System.IO.Compression.ZipFile (native crash)
- System.Threading.Thread (post-test finalizer crash)
- System.Formats.Nrbf (assembly loading in test discovery)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 16, 2026 10:55
@radekdoulik radekdoulik force-pushed the wasm-coreclr-enable-library-tests branch from 9334f01 to 5035baf Compare April 16, 2026 10:55
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

Copilot reviewed 26 out of 26 changed files in this pull request and generated no new comments.

Copilot AI review requested due to automatic review settings April 16, 2026 19:06
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

Copilot reviewed 26 out of 26 changed files in this pull request and generated 6 comments.

Comment thread src/libraries/tests.proj Outdated
The LoggerMessageGeneratorIncrementalTests.cs file was missing
'using System;' which is needed to resolve PlatformDetection
(defined in System namespace) in attribute arguments.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@radekdoulik radekdoulik force-pushed the wasm-coreclr-enable-library-tests branch from 82519f5 to ae8a8c7 Compare April 17, 2026 08:38
Removed project exclusions for specific test projects.
Copilot AI review requested due to automatic review settings April 17, 2026 15:11
…ime.InteropServices.UnitTests/System/Runtime/InteropServices/ComVariantMarshallerTests.cs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
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

Copilot reviewed 26 out of 26 changed files in this pull request and generated no new comments.

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

Labels

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

2 participants