From c810e32faf2d4335305b724459d229937f007939 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 20 Jun 2026 13:50:35 +0000 Subject: [PATCH 1/2] Use order-insensitive assertions for polymorphic DerivedTypes The test MetadataServices_NullPolymorphismOptions_DoesNotActivateAttributeClassifier used Assert.Collection which is order-sensitive. On tvOS Mono, attribute ordering from Type.GetCustomAttributes differs from CoreCLR, causing DerivedTypes to appear as [Cat, Dog] instead of [Dog, Cat]. Since the ECMA specification does not guarantee attribute ordering from GetCustomAttributes, replace the order-sensitive Assert.Collection with Assert.Contains checks that verify both derived types are present with correct discriminators, regardless of order. Remove the [ActiveIssue] annotation that disabled the test on Apple Mobile Mono since the fix addresses the root cause. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../PolymorphicTests.TypeClassifier.cs | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/PolymorphicTests.TypeClassifier.cs b/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/PolymorphicTests.TypeClassifier.cs index b8b7f26243f291..db2363114dbb15 100644 --- a/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/PolymorphicTests.TypeClassifier.cs +++ b/src/libraries/System.Text.Json/tests/System.Text.Json.Tests/Serialization/PolymorphicTests.TypeClassifier.cs @@ -741,7 +741,6 @@ public void MetadataServices_NullPolymorphismOptions_ReadsAttributes() } [Fact] - [ActiveIssue("https://github.com/dotnet/runtime/issues/128765", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile), nameof(PlatformDetection.IsMonoRuntime))] public void MetadataServices_NullPolymorphismOptions_DoesNotActivateAttributeClassifier() { JsonTypeInfo typeInfo = JsonMetadataServices.CreateObjectInfo( @@ -752,18 +751,9 @@ public void MetadataServices_NullPolymorphismOptions_DoesNotActivateAttributeCla }); JsonPolymorphismOptions options = Assert.IsType(typeInfo.PolymorphismOptions); - Assert.Collection( - options.DerivedTypes, - derivedType => - { - Assert.Equal(typeof(AttrClassifiedDog), derivedType.DerivedType); - Assert.Equal("dog", derivedType.TypeDiscriminator); - }, - derivedType => - { - Assert.Equal(typeof(AttrClassifiedCat), derivedType.DerivedType); - Assert.Equal("cat", derivedType.TypeDiscriminator); - }); + Assert.Equal(2, options.DerivedTypes.Count); + Assert.Contains(options.DerivedTypes, dt => dt.DerivedType == typeof(AttrClassifiedDog) && (string?)dt.TypeDiscriminator == "dog"); + Assert.Contains(options.DerivedTypes, dt => dt.DerivedType == typeof(AttrClassifiedCat) && (string?)dt.TypeDiscriminator == "cat"); Assert.Null(typeInfo.TypeClassifier); } From e9dc7fa2d1acdc38c24bec5449f3b799f9c1802f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 20 Jun 2026 13:50:40 +0000 Subject: [PATCH 2/2] ci: trigger checks