From 3af35edb7fc4482efdce820fcedf5ca631ee7623 Mon Sep 17 00:00:00 2001 From: Matous Kozak Date: Mon, 10 Mar 2025 08:56:23 +0100 Subject: [PATCH 1/9] migrate apple mobile jobs to osx.15 queue --- eng/pipelines/coreclr/templates/helix-queues-setup.yml | 4 ++-- eng/pipelines/libraries/helix-queues-setup.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/eng/pipelines/coreclr/templates/helix-queues-setup.yml b/eng/pipelines/coreclr/templates/helix-queues-setup.yml index 6b2c83a20cf25b..86fc08a24062b8 100644 --- a/eng/pipelines/coreclr/templates/helix-queues-setup.yml +++ b/eng/pipelines/coreclr/templates/helix-queues-setup.yml @@ -34,11 +34,11 @@ jobs: # iOS Simulator/Mac Catalyst arm64 - ${{ if in(parameters.platform, 'maccatalyst_arm64', 'iossimulator_arm64') }}: - - OSX.1200.Arm64.Open + - OSX.15.Arm64.Open # iOS/tvOS Simulator x64 & MacCatalyst x64 - ${{ if in(parameters.platform, 'iossimulator_x64', 'tvossimulator_x64', 'maccatalyst_x64') }}: - - OSX.1200.Amd64.Open + - OSX.15.Amd64.Open # Android arm64 - ${{ if in(parameters.platform, 'android_arm64') }}: diff --git a/eng/pipelines/libraries/helix-queues-setup.yml b/eng/pipelines/libraries/helix-queues-setup.yml index f5b94c910c9dec..ec75ca06b49ed9 100644 --- a/eng/pipelines/libraries/helix-queues-setup.yml +++ b/eng/pipelines/libraries/helix-queues-setup.yml @@ -98,11 +98,11 @@ jobs: # iOS Simulator/Mac Catalyst arm64 - ${{ if in(parameters.platform, 'maccatalyst_arm64', 'iossimulator_arm64') }}: - - OSX.1200.Arm64.Open + - OSX.15.Arm64.Open # iOS/tvOS Simulator x64 & MacCatalyst x64 - ${{ if in(parameters.platform, 'iossimulator_x64', 'tvossimulator_x64', 'maccatalyst_x64') }}: - - OSX.1200.Amd64.Open + - OSX.15.Amd64.Open # iOS devices - ${{ if in(parameters.platform, 'ios_arm64') }}: From 8156e31d1348c5fa1edc4d4f8368162df30a1dbd Mon Sep 17 00:00:00 2001 From: Matous Kozak Date: Mon, 17 Mar 2025 17:14:47 +0000 Subject: [PATCH 2/9] use osx 14 for arm64 and enable simulators --- .../coreclr/templates/helix-queues-setup.yml | 2 +- .../runtime-extra-platforms-ioslikesimulator.yml | 12 +++--------- eng/pipelines/libraries/helix-queues-setup.yml | 2 +- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/eng/pipelines/coreclr/templates/helix-queues-setup.yml b/eng/pipelines/coreclr/templates/helix-queues-setup.yml index 86fc08a24062b8..dcf7a62d409022 100644 --- a/eng/pipelines/coreclr/templates/helix-queues-setup.yml +++ b/eng/pipelines/coreclr/templates/helix-queues-setup.yml @@ -34,7 +34,7 @@ jobs: # iOS Simulator/Mac Catalyst arm64 - ${{ if in(parameters.platform, 'maccatalyst_arm64', 'iossimulator_arm64') }}: - - OSX.15.Arm64.Open + - OSX.14.Arm64.Open # iOS/tvOS Simulator x64 & MacCatalyst x64 - ${{ if in(parameters.platform, 'iossimulator_x64', 'tvossimulator_x64', 'maccatalyst_x64') }}: diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index 2cfb553d5dbd6e..1fe69fddda68c8 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -25,9 +25,7 @@ jobs: platforms: - iossimulator_x64 - tvossimulator_x64 - # don't run tests on arm64 PRs until we can get significantly more devices - - ${{ if eq(variables['isRollingBuild'], true) }}: - - iossimulator_arm64 + - iossimulator_arm64 variables: # map dependencies variables to local variables - name: librariesContainsChange @@ -61,9 +59,7 @@ jobs: platforms: - iossimulator_x64 - tvossimulator_x64 - # don't run tests on arm64 PRs until we can get significantly more devices - - ${{ if eq(variables['isRollingBuild'], true) }}: - - iossimulator_arm64 + - iossimulator_arm64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource @@ -108,9 +104,7 @@ jobs: platforms: - iossimulator_x64 - tvossimulator_x64 - # don't run tests on arm64 PRs until we can get significantly more devices - - ${{ if eq(variables['isRollingBuild'], true) }}: - - iossimulator_arm64 + - iossimulator_arm64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource diff --git a/eng/pipelines/libraries/helix-queues-setup.yml b/eng/pipelines/libraries/helix-queues-setup.yml index ec75ca06b49ed9..bf05bcc3377399 100644 --- a/eng/pipelines/libraries/helix-queues-setup.yml +++ b/eng/pipelines/libraries/helix-queues-setup.yml @@ -98,7 +98,7 @@ jobs: # iOS Simulator/Mac Catalyst arm64 - ${{ if in(parameters.platform, 'maccatalyst_arm64', 'iossimulator_arm64') }}: - - OSX.15.Arm64.Open + - OSX.14.Arm64.Open # iOS/tvOS Simulator x64 & MacCatalyst x64 - ${{ if in(parameters.platform, 'iossimulator_x64', 'tvossimulator_x64', 'maccatalyst_x64') }}: From 96e0df86e11bd4920a8ba10c280739e8c4be5190 Mon Sep 17 00:00:00 2001 From: Matous Kozak Date: Tue, 1 Apr 2025 09:37:50 +0100 Subject: [PATCH 3/9] Revert "use osx 14 for arm64 and enable simulators" This reverts commit 8156e31d1348c5fa1edc4d4f8368162df30a1dbd. --- .../coreclr/templates/helix-queues-setup.yml | 2 +- .../runtime-extra-platforms-ioslikesimulator.yml | 12 +++++++++--- eng/pipelines/libraries/helix-queues-setup.yml | 2 +- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/eng/pipelines/coreclr/templates/helix-queues-setup.yml b/eng/pipelines/coreclr/templates/helix-queues-setup.yml index aa4c44e02b3886..9c983d2ee7ca35 100644 --- a/eng/pipelines/coreclr/templates/helix-queues-setup.yml +++ b/eng/pipelines/coreclr/templates/helix-queues-setup.yml @@ -34,7 +34,7 @@ jobs: # iOS Simulator/Mac Catalyst arm64 - ${{ if in(parameters.platform, 'maccatalyst_arm64', 'iossimulator_arm64') }}: - - OSX.14.Arm64.Open + - OSX.15.Arm64.Open # iOS/tvOS Simulator x64 & MacCatalyst x64 - ${{ if in(parameters.platform, 'iossimulator_x64', 'tvossimulator_x64', 'maccatalyst_x64') }}: diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index 1fe69fddda68c8..2cfb553d5dbd6e 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -25,7 +25,9 @@ jobs: platforms: - iossimulator_x64 - tvossimulator_x64 - - iossimulator_arm64 + # don't run tests on arm64 PRs until we can get significantly more devices + - ${{ if eq(variables['isRollingBuild'], true) }}: + - iossimulator_arm64 variables: # map dependencies variables to local variables - name: librariesContainsChange @@ -59,7 +61,9 @@ jobs: platforms: - iossimulator_x64 - tvossimulator_x64 - - iossimulator_arm64 + # don't run tests on arm64 PRs until we can get significantly more devices + - ${{ if eq(variables['isRollingBuild'], true) }}: + - iossimulator_arm64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource @@ -104,7 +108,9 @@ jobs: platforms: - iossimulator_x64 - tvossimulator_x64 - - iossimulator_arm64 + # don't run tests on arm64 PRs until we can get significantly more devices + - ${{ if eq(variables['isRollingBuild'], true) }}: + - iossimulator_arm64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource diff --git a/eng/pipelines/libraries/helix-queues-setup.yml b/eng/pipelines/libraries/helix-queues-setup.yml index 49c8e565ba9291..3c66324354ec6f 100644 --- a/eng/pipelines/libraries/helix-queues-setup.yml +++ b/eng/pipelines/libraries/helix-queues-setup.yml @@ -98,7 +98,7 @@ jobs: # iOS Simulator/Mac Catalyst arm64 - ${{ if in(parameters.platform, 'maccatalyst_arm64', 'iossimulator_arm64') }}: - - OSX.14.Arm64.Open + - OSX.15.Arm64.Open # iOS/tvOS Simulator x64 & MacCatalyst x64 - ${{ if in(parameters.platform, 'iossimulator_x64', 'tvossimulator_x64', 'maccatalyst_x64') }}: From 1064f8b03fa4a02a58aec0274a64234959f4cd1b Mon Sep 17 00:00:00 2001 From: Matous Kozak Date: Tue, 1 Apr 2025 09:41:54 +0100 Subject: [PATCH 4/9] use osx.14.arm64 queues --- eng/pipelines/coreclr/templates/helix-queues-setup.yml | 2 +- eng/pipelines/libraries/helix-queues-setup.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/coreclr/templates/helix-queues-setup.yml b/eng/pipelines/coreclr/templates/helix-queues-setup.yml index 9c983d2ee7ca35..aa4c44e02b3886 100644 --- a/eng/pipelines/coreclr/templates/helix-queues-setup.yml +++ b/eng/pipelines/coreclr/templates/helix-queues-setup.yml @@ -34,7 +34,7 @@ jobs: # iOS Simulator/Mac Catalyst arm64 - ${{ if in(parameters.platform, 'maccatalyst_arm64', 'iossimulator_arm64') }}: - - OSX.15.Arm64.Open + - OSX.14.Arm64.Open # iOS/tvOS Simulator x64 & MacCatalyst x64 - ${{ if in(parameters.platform, 'iossimulator_x64', 'tvossimulator_x64', 'maccatalyst_x64') }}: diff --git a/eng/pipelines/libraries/helix-queues-setup.yml b/eng/pipelines/libraries/helix-queues-setup.yml index 3c66324354ec6f..49c8e565ba9291 100644 --- a/eng/pipelines/libraries/helix-queues-setup.yml +++ b/eng/pipelines/libraries/helix-queues-setup.yml @@ -98,7 +98,7 @@ jobs: # iOS Simulator/Mac Catalyst arm64 - ${{ if in(parameters.platform, 'maccatalyst_arm64', 'iossimulator_arm64') }}: - - OSX.15.Arm64.Open + - OSX.14.Arm64.Open # iOS/tvOS Simulator x64 & MacCatalyst x64 - ${{ if in(parameters.platform, 'iossimulator_x64', 'tvossimulator_x64', 'maccatalyst_x64') }}: From 8cb44e732027dc0e4d3e4f8d14512be32984f364 Mon Sep 17 00:00:00 2001 From: Matous Kozak Date: Tue, 8 Apr 2025 19:41:36 +0100 Subject: [PATCH 5/9] enable arm64 simulators and maccatalyst on PRs --- .../runtime-extra-platforms-ioslikesimulator.yml | 12 +++--------- eng/pipelines/runtime.yml | 3 +-- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index 3527856913c7ce..9f483dbbe75eb3 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -25,9 +25,7 @@ jobs: platforms: - iossimulator_x64 - tvossimulator_x64 - # don't run tests on arm64 PRs until we can get significantly more devices - - ${{ if eq(variables['isRollingBuild'], true) }}: - - iossimulator_arm64 + - iossimulator_arm64 variables: # map dependencies variables to local variables - name: librariesContainsChange @@ -61,9 +59,7 @@ jobs: platforms: - iossimulator_x64 - tvossimulator_x64 - # don't run tests on arm64 PRs until we can get significantly more devices - - ${{ if eq(variables['isRollingBuild'], true) }}: - - iossimulator_arm64 + - iossimulator_arm64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource @@ -108,9 +104,7 @@ jobs: platforms: - iossimulator_x64 - tvossimulator_x64 - # don't run tests on arm64 PRs until we can get significantly more devices - - ${{ if eq(variables['isRollingBuild'], true) }}: - - iossimulator_arm64 + - iossimulator_arm64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: - name: _HelixSource diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 48d65de310e92f..2deaf8d8eaf378 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1096,8 +1096,7 @@ extends: runtimeFlavor: mono platforms: - maccatalyst_x64 - - ${{ if eq(variables['isRollingBuild'], true) }}: - - maccatalyst_arm64 + - maccatalyst_arm64 variables: # map dependencies variables to local variables - name: librariesContainsChange From 32c7f708e80daff45aebe41f1e0083bfee50ff6d Mon Sep 17 00:00:00 2001 From: Matous Kozak Date: Tue, 8 Apr 2025 19:41:56 +0100 Subject: [PATCH 6/9] dis MulticastInterface_Set_AnyInterface_Succeeds --- .../tests/FunctionalTests/SocketOptionNameTest.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketOptionNameTest.cs b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketOptionNameTest.cs index 8962f6b128e041..6bb1ec42f58866 100644 --- a/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketOptionNameTest.cs +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SocketOptionNameTest.cs @@ -68,6 +68,7 @@ public void MulticastOption_CreateSocketSetGetOption_GroupAndInterfaceIndex_SetS [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotWindowsNanoNorServerCore))] // Skip on Nano: https://github.com/dotnet/runtime/issues/26286 [ActiveIssue("https://github.com/dotnet/runtime/issues/104547", typeof(PlatformDetection), nameof(PlatformDetection.IsQemuLinux))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/113827", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile))] public async Task MulticastInterface_Set_AnyInterface_Succeeds() { // On all platforms, index 0 means "any interface" From 82eafc407702312f75f7e47e8831a5d7d12d4927 Mon Sep 17 00:00:00 2001 From: Matous Kozak Date: Tue, 8 Apr 2025 20:46:54 +0100 Subject: [PATCH 7/9] disable IO tests causing timeouts and crashes --- .../System/IO/IsolatedStorage/RemoveTests.cs | 13 ++++-- .../tests/MemoryMappedViewAccessor.Tests.cs | 44 ++++++++++++------- .../tests/MemoryMappedViewStream.Tests.cs | 44 ++++++++++++------- 3 files changed, 63 insertions(+), 38 deletions(-) diff --git a/src/libraries/System.IO.IsolatedStorage/tests/System/IO/IsolatedStorage/RemoveTests.cs b/src/libraries/System.IO.IsolatedStorage/tests/System/IO/IsolatedStorage/RemoveTests.cs index ed0e72a6f53304..ea3b27fcf68243 100644 --- a/src/libraries/System.IO.IsolatedStorage/tests/System/IO/IsolatedStorage/RemoveTests.cs +++ b/src/libraries/System.IO.IsolatedStorage/tests/System/IO/IsolatedStorage/RemoveTests.cs @@ -7,7 +7,8 @@ namespace System.IO.IsolatedStorage { public class RemoveTests : IsoStorageTest { - [Fact] + [ConditionalFact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/114403", typeof(PlatformDetection), nameof(PlatformDetection.IsMacCatalyst))] public void RemoveUserStoreForApplication() { TestHelper.WipeStores(); @@ -22,7 +23,8 @@ public void RemoveUserStoreForApplication() } } - [Fact] + [ConditionalFact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/114403", typeof(PlatformDetection), nameof(PlatformDetection.IsMacCatalyst))] public void RemoveUserStoreForAssembly() { TestHelper.WipeStores(); @@ -37,7 +39,8 @@ public void RemoveUserStoreForAssembly() } } - [Fact] + [ConditionalFact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/114403", typeof(PlatformDetection), nameof(PlatformDetection.IsMacCatalyst))] public void RemoveUserStoreForDomain() { TestHelper.WipeStores(); @@ -54,7 +57,9 @@ public void RemoveUserStoreForDomain() } } - [Theory, MemberData(nameof(ValidStores))] + [ConditionalTheory] + [MemberData(nameof(ValidStores))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/114403", typeof(PlatformDetection), nameof(PlatformDetection.IsMacCatalyst))] public void RemoveStoreWithContent(PresetScopes scope) { TestHelper.WipeStores(); diff --git a/src/libraries/System.IO.MemoryMappedFiles/tests/MemoryMappedViewAccessor.Tests.cs b/src/libraries/System.IO.MemoryMappedFiles/tests/MemoryMappedViewAccessor.Tests.cs index 6747758c7b5330..b7c9175b5c97be 100644 --- a/src/libraries/System.IO.MemoryMappedFiles/tests/MemoryMappedViewAccessor.Tests.cs +++ b/src/libraries/System.IO.MemoryMappedFiles/tests/MemoryMappedViewAccessor.Tests.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.Win32.SafeHandles; +using System.Collections.Generic; using System.Runtime.CompilerServices; using Microsoft.DotNet.XUnitExtensions; using Xunit; @@ -56,24 +57,33 @@ public void InvalidArguments() } } + public static IEnumerable AccessLevelCombinationsData() + { + yield return new object[] { MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.Read }; + yield return new object[] { MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.Write }; + yield return new object[] { MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.ReadWrite }; + yield return new object[] { MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.CopyOnWrite }; + yield return new object[] { MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.ReadExecute }; + yield return new object[] { MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.ReadWriteExecute }; + yield return new object[] { MemoryMappedFileAccess.ReadExecute, MemoryMappedFileAccess.Read }; + yield return new object[] { MemoryMappedFileAccess.ReadExecute, MemoryMappedFileAccess.CopyOnWrite }; + if (PlatformDetection.IsNotMacCatalyst) + { + // https://github.com/dotnet/runtime/issues/114403 + yield return new object[] { MemoryMappedFileAccess.ReadExecute, MemoryMappedFileAccess.ReadExecute }; + } + yield return new object[] { MemoryMappedFileAccess.CopyOnWrite, MemoryMappedFileAccess.Read }; + yield return new object[] { MemoryMappedFileAccess.CopyOnWrite, MemoryMappedFileAccess.CopyOnWrite }; + yield return new object[] { MemoryMappedFileAccess.ReadWrite, MemoryMappedFileAccess.Read }; + yield return new object[] { MemoryMappedFileAccess.ReadWrite, MemoryMappedFileAccess.Write }; + yield return new object[] { MemoryMappedFileAccess.ReadWrite, MemoryMappedFileAccess.ReadWrite }; + yield return new object[] { MemoryMappedFileAccess.ReadWrite, MemoryMappedFileAccess.CopyOnWrite }; + yield return new object[] { MemoryMappedFileAccess.Read, MemoryMappedFileAccess.Read }; + yield return new object[] { MemoryMappedFileAccess.Read, MemoryMappedFileAccess.CopyOnWrite }; + } + [ConditionalTheory] - [InlineData(MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.Read)] - [InlineData(MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.Write)] - [InlineData(MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.ReadWrite)] - [InlineData(MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.CopyOnWrite)] - [InlineData(MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.ReadExecute)] - [InlineData(MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.ReadWriteExecute)] - [InlineData(MemoryMappedFileAccess.ReadExecute, MemoryMappedFileAccess.Read)] - [InlineData(MemoryMappedFileAccess.ReadExecute, MemoryMappedFileAccess.CopyOnWrite)] - [InlineData(MemoryMappedFileAccess.ReadExecute, MemoryMappedFileAccess.ReadExecute)] - [InlineData(MemoryMappedFileAccess.CopyOnWrite, MemoryMappedFileAccess.Read)] - [InlineData(MemoryMappedFileAccess.CopyOnWrite, MemoryMappedFileAccess.CopyOnWrite)] - [InlineData(MemoryMappedFileAccess.ReadWrite, MemoryMappedFileAccess.Read)] - [InlineData(MemoryMappedFileAccess.ReadWrite, MemoryMappedFileAccess.Write)] - [InlineData(MemoryMappedFileAccess.ReadWrite, MemoryMappedFileAccess.ReadWrite)] - [InlineData(MemoryMappedFileAccess.ReadWrite, MemoryMappedFileAccess.CopyOnWrite)] - [InlineData(MemoryMappedFileAccess.Read, MemoryMappedFileAccess.Read)] - [InlineData(MemoryMappedFileAccess.Read, MemoryMappedFileAccess.CopyOnWrite)] + [MemberData(nameof(AccessLevelCombinationsData))] public void ValidAccessLevelCombinations(MemoryMappedFileAccess mapAccess, MemoryMappedFileAccess viewAccess) { const int Capacity = 4096; diff --git a/src/libraries/System.IO.MemoryMappedFiles/tests/MemoryMappedViewStream.Tests.cs b/src/libraries/System.IO.MemoryMappedFiles/tests/MemoryMappedViewStream.Tests.cs index f279b8c33f98f7..d10b6ec7408379 100644 --- a/src/libraries/System.IO.MemoryMappedFiles/tests/MemoryMappedViewStream.Tests.cs +++ b/src/libraries/System.IO.MemoryMappedFiles/tests/MemoryMappedViewStream.Tests.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.Win32.SafeHandles; +using System.Collections.Generic; using System.Runtime.CompilerServices; using Microsoft.DotNet.XUnitExtensions; using Xunit; @@ -56,24 +57,33 @@ public void InvalidArguments() } } + public static IEnumerable AccessLevelCombinationsData() + { + yield return new object[] { MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.Read }; + yield return new object[] { MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.Write }; + yield return new object[] { MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.ReadWrite }; + yield return new object[] { MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.CopyOnWrite }; + yield return new object[] { MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.ReadExecute }; + yield return new object[] { MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.ReadWriteExecute }; + yield return new object[] { MemoryMappedFileAccess.ReadExecute, MemoryMappedFileAccess.Read }; + yield return new object[] { MemoryMappedFileAccess.ReadExecute, MemoryMappedFileAccess.CopyOnWrite }; + if (PlatformDetection.IsNotMacCatalyst) + { + // https://github.com/dotnet/runtime/issues/114403 + yield return new object[] { MemoryMappedFileAccess.ReadExecute, MemoryMappedFileAccess.ReadExecute }; + } + yield return new object[] { MemoryMappedFileAccess.CopyOnWrite, MemoryMappedFileAccess.Read }; + yield return new object[] { MemoryMappedFileAccess.CopyOnWrite, MemoryMappedFileAccess.CopyOnWrite }; + yield return new object[] { MemoryMappedFileAccess.ReadWrite, MemoryMappedFileAccess.Read }; + yield return new object[] { MemoryMappedFileAccess.ReadWrite, MemoryMappedFileAccess.Write }; + yield return new object[] { MemoryMappedFileAccess.ReadWrite, MemoryMappedFileAccess.ReadWrite }; + yield return new object[] { MemoryMappedFileAccess.ReadWrite, MemoryMappedFileAccess.CopyOnWrite }; + yield return new object[] { MemoryMappedFileAccess.Read, MemoryMappedFileAccess.Read }; + yield return new object[] { MemoryMappedFileAccess.Read, MemoryMappedFileAccess.CopyOnWrite }; + } + [ConditionalTheory] - [InlineData(MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.Read)] - [InlineData(MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.Write)] - [InlineData(MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.ReadWrite)] - [InlineData(MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.CopyOnWrite)] - [InlineData(MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.ReadExecute)] - [InlineData(MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.ReadWriteExecute)] - [InlineData(MemoryMappedFileAccess.ReadExecute, MemoryMappedFileAccess.Read)] - [InlineData(MemoryMappedFileAccess.ReadExecute, MemoryMappedFileAccess.CopyOnWrite)] - [InlineData(MemoryMappedFileAccess.ReadExecute, MemoryMappedFileAccess.ReadExecute)] - [InlineData(MemoryMappedFileAccess.CopyOnWrite, MemoryMappedFileAccess.Read)] - [InlineData(MemoryMappedFileAccess.CopyOnWrite, MemoryMappedFileAccess.CopyOnWrite)] - [InlineData(MemoryMappedFileAccess.ReadWrite, MemoryMappedFileAccess.Read)] - [InlineData(MemoryMappedFileAccess.ReadWrite, MemoryMappedFileAccess.Write)] - [InlineData(MemoryMappedFileAccess.ReadWrite, MemoryMappedFileAccess.ReadWrite)] - [InlineData(MemoryMappedFileAccess.ReadWrite, MemoryMappedFileAccess.CopyOnWrite)] - [InlineData(MemoryMappedFileAccess.Read, MemoryMappedFileAccess.Read)] - [InlineData(MemoryMappedFileAccess.Read, MemoryMappedFileAccess.CopyOnWrite)] + [MemberData(nameof(AccessLevelCombinationsData))] public void ValidAccessLevelCombinations(MemoryMappedFileAccess mapAccess, MemoryMappedFileAccess viewAccess) { const int Capacity = 4096; From 9fe14486bc8b2912b830a320071ac5002bdd0bda Mon Sep 17 00:00:00 2001 From: Matous Kozak Date: Wed, 9 Apr 2025 18:15:59 +0100 Subject: [PATCH 8/9] dis Datagram_UDP_AccessDenied_Throws_DoesNotBind --- .../tests/System/IO/IsolatedStorage/RemoveTests.cs | 8 ++++---- .../System.Net.Sockets/tests/FunctionalTests/SendTo.cs | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/libraries/System.IO.IsolatedStorage/tests/System/IO/IsolatedStorage/RemoveTests.cs b/src/libraries/System.IO.IsolatedStorage/tests/System/IO/IsolatedStorage/RemoveTests.cs index ea3b27fcf68243..f2b9e37f31a909 100644 --- a/src/libraries/System.IO.IsolatedStorage/tests/System/IO/IsolatedStorage/RemoveTests.cs +++ b/src/libraries/System.IO.IsolatedStorage/tests/System/IO/IsolatedStorage/RemoveTests.cs @@ -7,7 +7,7 @@ namespace System.IO.IsolatedStorage { public class RemoveTests : IsoStorageTest { - [ConditionalFact] + [Fact] [ActiveIssue("https://github.com/dotnet/runtime/issues/114403", typeof(PlatformDetection), nameof(PlatformDetection.IsMacCatalyst))] public void RemoveUserStoreForApplication() { @@ -23,7 +23,7 @@ public void RemoveUserStoreForApplication() } } - [ConditionalFact] + [Fact] [ActiveIssue("https://github.com/dotnet/runtime/issues/114403", typeof(PlatformDetection), nameof(PlatformDetection.IsMacCatalyst))] public void RemoveUserStoreForAssembly() { @@ -39,7 +39,7 @@ public void RemoveUserStoreForAssembly() } } - [ConditionalFact] + [Fact] [ActiveIssue("https://github.com/dotnet/runtime/issues/114403", typeof(PlatformDetection), nameof(PlatformDetection.IsMacCatalyst))] public void RemoveUserStoreForDomain() { @@ -57,7 +57,7 @@ public void RemoveUserStoreForDomain() } } - [ConditionalTheory] + [Theory] [MemberData(nameof(ValidStores))] [ActiveIssue("https://github.com/dotnet/runtime/issues/114403", typeof(PlatformDetection), nameof(PlatformDetection.IsMacCatalyst))] public void RemoveStoreWithContent(PresetScopes scope) diff --git a/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendTo.cs b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendTo.cs index 62598f6be434cc..af4f83a2e632c1 100644 --- a/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendTo.cs +++ b/src/libraries/System.Net.Sockets/tests/FunctionalTests/SendTo.cs @@ -95,6 +95,7 @@ public async Task Datagram_UDP_ShouldImplicitlyBindLocalEndpoint() [Fact] [SkipOnPlatform(TestPlatforms.FreeBSD, "FreeBSD allows sendto() to broadcast")] + [ActiveIssue("https://github.com/dotnet/runtime/issues/114450", typeof(PlatformDetection), nameof(PlatformDetection.IsMacCatalyst), nameof(PlatformDetection.IsX64Process))] public async Task Datagram_UDP_AccessDenied_Throws_DoesNotBind() { IPEndPoint invalidEndpoint = new IPEndPoint(IPAddress.Broadcast, 1234); From 780d79f314fb62d658c9efa7cb4cd897714f56eb Mon Sep 17 00:00:00 2001 From: Matous Kozak Date: Thu, 10 Apr 2025 17:38:18 +0100 Subject: [PATCH 9/9] move comment above if statement --- .../tests/MemoryMappedViewAccessor.Tests.cs | 2 +- .../tests/MemoryMappedViewStream.Tests.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libraries/System.IO.MemoryMappedFiles/tests/MemoryMappedViewAccessor.Tests.cs b/src/libraries/System.IO.MemoryMappedFiles/tests/MemoryMappedViewAccessor.Tests.cs index b7c9175b5c97be..3b78641a006839 100644 --- a/src/libraries/System.IO.MemoryMappedFiles/tests/MemoryMappedViewAccessor.Tests.cs +++ b/src/libraries/System.IO.MemoryMappedFiles/tests/MemoryMappedViewAccessor.Tests.cs @@ -67,9 +67,9 @@ public static IEnumerable AccessLevelCombinationsData() yield return new object[] { MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.ReadWriteExecute }; yield return new object[] { MemoryMappedFileAccess.ReadExecute, MemoryMappedFileAccess.Read }; yield return new object[] { MemoryMappedFileAccess.ReadExecute, MemoryMappedFileAccess.CopyOnWrite }; + // https://github.com/dotnet/runtime/issues/114403 if (PlatformDetection.IsNotMacCatalyst) { - // https://github.com/dotnet/runtime/issues/114403 yield return new object[] { MemoryMappedFileAccess.ReadExecute, MemoryMappedFileAccess.ReadExecute }; } yield return new object[] { MemoryMappedFileAccess.CopyOnWrite, MemoryMappedFileAccess.Read }; diff --git a/src/libraries/System.IO.MemoryMappedFiles/tests/MemoryMappedViewStream.Tests.cs b/src/libraries/System.IO.MemoryMappedFiles/tests/MemoryMappedViewStream.Tests.cs index d10b6ec7408379..cd1af097e216f4 100644 --- a/src/libraries/System.IO.MemoryMappedFiles/tests/MemoryMappedViewStream.Tests.cs +++ b/src/libraries/System.IO.MemoryMappedFiles/tests/MemoryMappedViewStream.Tests.cs @@ -67,9 +67,9 @@ public static IEnumerable AccessLevelCombinationsData() yield return new object[] { MemoryMappedFileAccess.ReadWriteExecute, MemoryMappedFileAccess.ReadWriteExecute }; yield return new object[] { MemoryMappedFileAccess.ReadExecute, MemoryMappedFileAccess.Read }; yield return new object[] { MemoryMappedFileAccess.ReadExecute, MemoryMappedFileAccess.CopyOnWrite }; + // https://github.com/dotnet/runtime/issues/114403 if (PlatformDetection.IsNotMacCatalyst) { - // https://github.com/dotnet/runtime/issues/114403 yield return new object[] { MemoryMappedFileAccess.ReadExecute, MemoryMappedFileAccess.ReadExecute }; } yield return new object[] { MemoryMappedFileAccess.CopyOnWrite, MemoryMappedFileAccess.Read };