From 4344f902e3081f00421972ab0c91c028e92b90e5 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 9 Jan 2026 14:52:46 +0100 Subject: [PATCH 01/45] Run full test suite on Apple mobile platforms --- .../runtime-extra-platforms-ioslike.yml | 9 +++++---- .../runtime-extra-platforms-ioslikesimulator.yml | 11 ++++++----- .../runtime-extra-platforms-maccatalyst.yml | 8 +++++--- eng/pipelines/runtime.yml | 5 +++-- 4 files changed, 19 insertions(+), 14 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index 9b400f09b0bf8a..b167902a9aa183 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -206,9 +206,9 @@ jobs: - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml parameters: creator: dotnet-bot - testBuildArgs: tree baseservices /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:BuildTestsOnHelix=false + testBuildArgs: /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:BuildTestsOnHelix=true testRunNamePrefixSuffix: CoreCLR_$(_BuildConfig) - extraHelixArguments: /p:NeedsToBuildAppsOnHelix=false + extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true # # Build the whole product using CoreCLR R2R and run library tests @@ -234,8 +234,8 @@ jobs: value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'] ] jobParameters: testGroup: innerloop - nameSuffix: AllSubsets_CoreCLR_Smoke - buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:BuildTestsOnHelix=false /p:UseNativeAOTRuntime=false /p:RunSmokeTestsOnly=true + nameSuffix: AllSubsets_CoreCLR + buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false $(_runSmokeTestsOnlyArg) /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=false /p:EnableAggressiveTrimming=true timeoutInMinutes: 120 # extra steps, run tests postBuildSteps: @@ -243,3 +243,4 @@ jobs: parameters: creator: dotnet-bot testRunNamePrefixSuffix: CoreCLR_$(_BuildConfig) + extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index 6a55be22171566..0d666fd79a8b20 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -174,12 +174,12 @@ jobs: - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml parameters: creator: dotnet-bot - testBuildArgs: tree baseservices /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:BuildTestsOnHelix=false + testBuildArgs: /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:BuildTestsOnHelix=true /p:UsePortableRuntimePack=false testRunNamePrefixSuffix: CoreCLR_$(_BuildConfig) - extraHelixArguments: /p:NeedsToBuildAppsOnHelix=false + extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true # -# Build the whole product using CoreCLR R2R and run library tests +# Build the whole product using CoreCLR R2R and run libraries tests # - template: /eng/pipelines/common/platform-matrix.yml parameters: @@ -203,8 +203,8 @@ jobs: value: $[ stageDependencies.EvaluatePaths.evaluate_paths.outputs['SetPathVars_tools_illink.containsChange'] ] jobParameters: testGroup: innerloop - nameSuffix: AllSubsets_CoreCLR_Smoke - buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:BuildTestsOnHelix=false /p:UseNativeAOTRuntime=false /p:RunSmokeTestsOnly=true + nameSuffix: AllSubsets_CoreCLR + buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:BuildTestsOnHelix=true /p:UsePortableRuntimePack=false timeoutInMinutes: 120 # extra steps, run tests postBuildSteps: @@ -212,3 +212,4 @@ jobs: parameters: creator: dotnet-bot testRunNamePrefixSuffix: CoreCLR_$(_BuildConfig) + extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml index 233f0788532667..f68f87baf9a289 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml @@ -243,11 +243,12 @@ jobs: - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml parameters: creator: dotnet-bot - testBuildArgs: tree baseservices /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:BuildTestsOnHelix=false + testBuildArgs: /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:BuildTestsOnHelix=true /p:UsePortableRuntimePack=false testRunNamePrefixSuffix: CoreCLR_$(_BuildConfig) + extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true # -# Build the whole product using CoreCLR R2R and run library tests +# Build the whole product using CoreCLR R2R and run libraries tests # - template: /eng/pipelines/common/platform-matrix.yml parameters: @@ -271,7 +272,7 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR_Smoke - buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:BuildTestsOnHelix=false /p:UseNativeAOTRuntime=false /p:RunSmokeTestsOnly=true + buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=false /p:UsePortableRuntimePack=false timeoutInMinutes: 120 # extra steps, run tests postBuildSteps: @@ -279,3 +280,4 @@ jobs: parameters: creator: dotnet-bot testRunNamePrefixSuffix: CoreCLR_$(_BuildConfig) + extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index d96fe5cd30fb18..bfe9182c32cb99 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1071,7 +1071,7 @@ extends: eq(variables['isRollingBuild'], true)) # - # Build the whole product using CoreCLR and run functional tests + # Build the whole product using CoreCLR and run libraries tests # - template: /eng/pipelines/common/platform-matrix.yml parameters: @@ -1093,7 +1093,7 @@ extends: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR_Smoke - buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:BuildTestsOnHelix=false /p:UseNativeAOTRuntime=false /p:RunSmokeTestsOnly=true + buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=false /p:EnableAggressiveTrimming=true timeoutInMinutes: 120 condition: >- or( @@ -1107,6 +1107,7 @@ extends: parameters: creator: dotnet-bot testRunNamePrefixSuffix: CoreCLR_$(_BuildConfig) + extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true condition: >- or( eq(variables['librariesContainsChange'], true), From 17008b726239fc7ca2f9355a63a2fa72895cb5af Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 9 Jan 2026 17:03:42 +0100 Subject: [PATCH 02/45] Test run --- eng/pipelines/runtime.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index bfe9182c32cb99..6b2afecab1fd0a 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1093,7 +1093,7 @@ extends: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR_Smoke - buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=false /p:EnableAggressiveTrimming=true + buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true timeoutInMinutes: 120 condition: >- or( From 0d941ebfbd09dff1fee593b72d6c19ace5facf15 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 13 Jan 2026 11:17:58 +0100 Subject: [PATCH 03/45] Move AfterMicrosoftNETSdkTargets to tests.ioslike.targets --- eng/testing/tests.ioslike.targets | 11 ++++++++++- src/mono/msbuild/apple/build/AppleBuild.props | 9 --------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index 0f3302bae3ce2b..22d5879300a7fa 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -16,7 +16,7 @@ <_AOTBuildCommand Condition="'$(ContinuousIntegrationBuild)' != 'true'">$(_AOTBuildCommand) /p:RuntimeSrcDir=$(RepoRoot) /p:RuntimeConfig=$(Configuration) - <_AOTBuildCommand>$(_AOTBuildCommand) /p:XHARNESS_EXECUTION_DIR="$XHARNESS_EXECUTION_DIR" /p:RunAOTCompilation=$(RunAOTCompilation) /p:UseNativeAOTRuntime=$(UseNativeAOTRuntime) /p:TargetOS=$(TargetOS) /p:TargetArchitecture=$(TargetArchitecture) /p:MonoForceInterpreter=$(MonoForceInterpreter) /p:MonoEnableLLVM=true /p:DevTeamProvisioning=$(DevTeamProvisioning) /p:UsePortableRuntimePack=$(UsePortableRuntimePack) /p:Configuration=$(Configuration) + <_AOTBuildCommand>$(_AOTBuildCommand) /p:XHARNESS_EXECUTION_DIR="$XHARNESS_EXECUTION_DIR" /p:RunAOTCompilation=$(RunAOTCompilation) /p:UseNativeAOTRuntime=$(UseNativeAOTRuntime) /p:TargetOS=$(TargetOS) /p:TargetArchitecture=$(TargetArchitecture) /p:MonoForceInterpreter=$(MonoForceInterpreter) /p:MonoEnableLLVM=true /p:DevTeamProvisioning=$(DevTeamProvisioning) /p:UsePortableRuntimePack=$(UsePortableRuntimePack) /p:Configuration=$(Configuration) /p:UseMonoRuntime=$(UseMonoRuntime) <_AOTBuildCommand Condition="'$(NativeLib)' != ''">$(_AOTBuildCommand) /p:NativeLib=$(NativeLib) /p:BundlesResources=$(BundlesResources) /p:ForceLibraryModeGenerateAppBundle=$(ForceLibraryModeGenerateAppBundle) <_AOTBuildCommand>$(_AOTBuildCommand) @@ -38,6 +38,15 @@ $(_AOTBuildCommand) $(_AfterBuildCommands) + + + + $(AfterMicrosoftNETSdkTargets);$(Crossgen2SdkOverrideTargetsPath) + $(AfterMicrosoftNETSdkTargets);$(MonoProjectRoot)\msbuild\apple\build\AppleBuild.ReadyToRun.targets + + $([MSBuild]::NormalizeDirectory($(MSBuildThisFileDirectory), '..', '..', 'common')) - - - - $(AfterMicrosoftNETSdkTargets);$(Crossgen2SdkOverrideTargetsPath) - $(AfterMicrosoftNETSdkTargets);$(MonoProjectRoot)\msbuild\apple\build\AppleBuild.ReadyToRun.targets - - From 352054f96288db08500e0591258b04a02725d27d Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 14 Jan 2026 15:47:20 +0100 Subject: [PATCH 04/45] Fix assemblies path for intree crossgen2 --- eng/pipelines/runtime.yml | 2 +- eng/testing/tests.mobile.targets | 21 +++++++++++++++++++ .../apple/build/AppleBuild.ReadyToRun.targets | 6 ++++++ src/mono/msbuild/apple/build/AppleBuild.props | 6 ------ 4 files changed, 28 insertions(+), 7 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 6b2afecab1fd0a..a2e29516932382 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1093,7 +1093,7 @@ extends: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR_Smoke - buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true + buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:UsePortableRuntimePack=false timeoutInMinutes: 120 condition: >- or( diff --git a/eng/testing/tests.mobile.targets b/eng/testing/tests.mobile.targets index b5e2692bc45fa9..b4d584eac7ff09 100644 --- a/eng/testing/tests.mobile.targets +++ b/eng/testing/tests.mobile.targets @@ -143,6 +143,27 @@ + + + <_LocalFrameworkAssemblies Include="@(RuntimeFiles);@(LibrariesRuntimeFiles)" + Condition="'%(Extension)' == '.dll'" /> + + + + + + + true + true + macho + + $([MSBuild]::NormalizePath('$(Crossgen2InBuildDir)', 'crossgen2$(ExeSuffix)')) diff --git a/src/mono/msbuild/apple/build/AppleBuild.props b/src/mono/msbuild/apple/build/AppleBuild.props index dbb2451e0b1eae..c31474a6e2ef06 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.props +++ b/src/mono/msbuild/apple/build/AppleBuild.props @@ -9,12 +9,6 @@ true - - true - true - macho - - From 05157adae21d540f070811b8936f30c8aaf87b94 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 15 Jan 2026 20:55:37 +0100 Subject: [PATCH 05/45] Revert changes --- eng/pipelines/runtime.yml | 3 +-- eng/testing/tests.ioslike.targets | 11 +--------- eng/testing/tests.mobile.targets | 21 ------------------- .../apple/build/AppleBuild.ReadyToRun.targets | 6 ------ src/mono/msbuild/apple/build/AppleBuild.props | 15 +++++++++++++ 5 files changed, 17 insertions(+), 39 deletions(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index a2e29516932382..05b992d515c483 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1093,7 +1093,7 @@ extends: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR_Smoke - buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:UsePortableRuntimePack=false + buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:RunSmokeTestsOnly=false /p:BuildTestsOnHelix=false timeoutInMinutes: 120 condition: >- or( @@ -1107,7 +1107,6 @@ extends: parameters: creator: dotnet-bot testRunNamePrefixSuffix: CoreCLR_$(_BuildConfig) - extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true condition: >- or( eq(variables['librariesContainsChange'], true), diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index 22d5879300a7fa..0f3302bae3ce2b 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -16,7 +16,7 @@ <_AOTBuildCommand Condition="'$(ContinuousIntegrationBuild)' != 'true'">$(_AOTBuildCommand) /p:RuntimeSrcDir=$(RepoRoot) /p:RuntimeConfig=$(Configuration) - <_AOTBuildCommand>$(_AOTBuildCommand) /p:XHARNESS_EXECUTION_DIR="$XHARNESS_EXECUTION_DIR" /p:RunAOTCompilation=$(RunAOTCompilation) /p:UseNativeAOTRuntime=$(UseNativeAOTRuntime) /p:TargetOS=$(TargetOS) /p:TargetArchitecture=$(TargetArchitecture) /p:MonoForceInterpreter=$(MonoForceInterpreter) /p:MonoEnableLLVM=true /p:DevTeamProvisioning=$(DevTeamProvisioning) /p:UsePortableRuntimePack=$(UsePortableRuntimePack) /p:Configuration=$(Configuration) /p:UseMonoRuntime=$(UseMonoRuntime) + <_AOTBuildCommand>$(_AOTBuildCommand) /p:XHARNESS_EXECUTION_DIR="$XHARNESS_EXECUTION_DIR" /p:RunAOTCompilation=$(RunAOTCompilation) /p:UseNativeAOTRuntime=$(UseNativeAOTRuntime) /p:TargetOS=$(TargetOS) /p:TargetArchitecture=$(TargetArchitecture) /p:MonoForceInterpreter=$(MonoForceInterpreter) /p:MonoEnableLLVM=true /p:DevTeamProvisioning=$(DevTeamProvisioning) /p:UsePortableRuntimePack=$(UsePortableRuntimePack) /p:Configuration=$(Configuration) <_AOTBuildCommand Condition="'$(NativeLib)' != ''">$(_AOTBuildCommand) /p:NativeLib=$(NativeLib) /p:BundlesResources=$(BundlesResources) /p:ForceLibraryModeGenerateAppBundle=$(ForceLibraryModeGenerateAppBundle) <_AOTBuildCommand>$(_AOTBuildCommand) @@ -38,15 +38,6 @@ $(_AOTBuildCommand) $(_AfterBuildCommands) - - - - $(AfterMicrosoftNETSdkTargets);$(Crossgen2SdkOverrideTargetsPath) - $(AfterMicrosoftNETSdkTargets);$(MonoProjectRoot)\msbuild\apple\build\AppleBuild.ReadyToRun.targets - - - - - <_LocalFrameworkAssemblies Include="@(RuntimeFiles);@(LibrariesRuntimeFiles)" - Condition="'%(Extension)' == '.dll'" /> - - - - - - - true - true - macho - - $([MSBuild]::NormalizePath('$(Crossgen2InBuildDir)', 'crossgen2$(ExeSuffix)')) diff --git a/src/mono/msbuild/apple/build/AppleBuild.props b/src/mono/msbuild/apple/build/AppleBuild.props index c31474a6e2ef06..476ba4770472ab 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.props +++ b/src/mono/msbuild/apple/build/AppleBuild.props @@ -9,6 +9,12 @@ true + + true + true + macho + + @@ -50,6 +56,15 @@ <_CommonTargetsDir Condition="'$(_CommonTargetsDir)' == ''">$([MSBuild]::NormalizeDirectory($(MSBuildThisFileDirectory), '..', '..', 'common')) + + + + $(AfterMicrosoftNETSdkTargets);$(Crossgen2SdkOverrideTargetsPath) + $(AfterMicrosoftNETSdkTargets);$(MonoProjectRoot)\msbuild\apple\build\AppleBuild.ReadyToRun.targets + + From 6bfcef195d3e1eac07781e7ae0c5722c8636ed63 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 15 Jan 2026 20:56:11 +0100 Subject: [PATCH 06/45] Fix indentation in AppleBuild.props for clarity --- src/mono/msbuild/apple/build/AppleBuild.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mono/msbuild/apple/build/AppleBuild.props b/src/mono/msbuild/apple/build/AppleBuild.props index 476ba4770472ab..f3edc755c1959e 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.props +++ b/src/mono/msbuild/apple/build/AppleBuild.props @@ -9,7 +9,7 @@ true - + true true macho From 21447722db98b1b3e031df318e6124dd95bebcb2 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 16 Jan 2026 14:22:26 +0100 Subject: [PATCH 07/45] Enable helix builds --- eng/pipelines/runtime.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 05b992d515c483..a2e29516932382 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1093,7 +1093,7 @@ extends: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR_Smoke - buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:RunSmokeTestsOnly=false /p:BuildTestsOnHelix=false + buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:UsePortableRuntimePack=false timeoutInMinutes: 120 condition: >- or( @@ -1107,6 +1107,7 @@ extends: parameters: creator: dotnet-bot testRunNamePrefixSuffix: CoreCLR_$(_BuildConfig) + extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true condition: >- or( eq(variables['librariesContainsChange'], true), From f8bc27dbb6e2493169bb515fa77d4bc37b418cc7 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 16 Jan 2026 16:55:01 +0100 Subject: [PATCH 08/45] Import crossgen2 from intree --- eng/testing/tests.ioslike.targets | 6 ++---- .../msbuild/apple/build/AppleBuild.ReadyToRun.targets | 9 ++++++++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index 0f3302bae3ce2b..28d6db89b2552f 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -38,10 +38,8 @@ $(_AOTBuildCommand) $(_AfterBuildCommands) - - + + diff --git a/src/mono/msbuild/apple/build/AppleBuild.ReadyToRun.targets b/src/mono/msbuild/apple/build/AppleBuild.ReadyToRun.targets index 1bfe6b140f2ca5..41e1df00034ddb 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.ReadyToRun.targets +++ b/src/mono/msbuild/apple/build/AppleBuild.ReadyToRun.targets @@ -2,7 +2,7 @@ - + $([MSBuild]::NormalizePath('$(Crossgen2InBuildDir)', 'crossgen2$(ExeSuffix)')) @@ -13,5 +13,12 @@ TargetOS="$(TargetOS)" PerfmapFormatVersion="$(PublishReadyToRunPerfmapFormatVersion)"/> + + + + <_ReadyToRunImplementationAssemblies Include="@(RuntimeFiles)" Condition="'%(RuntimeFiles.Extension)' == '.dll'" ReferenceOnly="true" /> + <_ReadyToRunImplementationAssemblies Include="@(LibrariesRuntimeFiles)" Condition="'%(LibrariesRuntimeFiles.Extension)' == '.dll'" ReferenceOnly="true" /> + From 903f53767b8940f04b8e2efce8a34576d7be1601 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 26 Jan 2026 17:31:51 +0100 Subject: [PATCH 09/45] Add condition to _MonoReadAvailableComponentsManifest target --- src/mono/msbuild/common/RuntimeComponentManifest.targets | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mono/msbuild/common/RuntimeComponentManifest.targets b/src/mono/msbuild/common/RuntimeComponentManifest.targets index fcf1ff70d9a8f5..267df0c44c980b 100644 --- a/src/mono/msbuild/common/RuntimeComponentManifest.targets +++ b/src/mono/msbuild/common/RuntimeComponentManifest.targets @@ -1,10 +1,10 @@ - + - <_MonoRuntimeComponentManifestJsonFilePath + <_MonoRuntimeComponentManifestJsonFilePath Condition="'$(_MonoRuntimeComponentManifestJsonFilePath)' == '' and '%(ResolvedFrameworkReference.Identity)' == 'Microsoft.NETCore.App'">$([MSBuild]::NormalizePath('%(RuntimePackPath)', 'runtimes', '$(RuntimeIdentifier)', 'build', 'RuntimeComponentManifest.json')) @@ -69,7 +69,7 @@ Such a workload should then use DontLink to exclude the disabled components. On the other hand a workload that explicitly picks the native libraries from native/ should use _MonoRuntimeComponentLink to pick just the needed runtime component artifacts. --> - + From 126d31ddca8e37da6662464dae25a407c879bb7c Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 29 Jan 2026 10:56:59 +0100 Subject: [PATCH 10/45] Pass UseMonoRuntime property --- eng/testing/tests.ioslike.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index 28d6db89b2552f..38e5147719ace3 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -16,7 +16,7 @@ <_AOTBuildCommand Condition="'$(ContinuousIntegrationBuild)' != 'true'">$(_AOTBuildCommand) /p:RuntimeSrcDir=$(RepoRoot) /p:RuntimeConfig=$(Configuration) - <_AOTBuildCommand>$(_AOTBuildCommand) /p:XHARNESS_EXECUTION_DIR="$XHARNESS_EXECUTION_DIR" /p:RunAOTCompilation=$(RunAOTCompilation) /p:UseNativeAOTRuntime=$(UseNativeAOTRuntime) /p:TargetOS=$(TargetOS) /p:TargetArchitecture=$(TargetArchitecture) /p:MonoForceInterpreter=$(MonoForceInterpreter) /p:MonoEnableLLVM=true /p:DevTeamProvisioning=$(DevTeamProvisioning) /p:UsePortableRuntimePack=$(UsePortableRuntimePack) /p:Configuration=$(Configuration) + <_AOTBuildCommand>$(_AOTBuildCommand) /p:XHARNESS_EXECUTION_DIR="$XHARNESS_EXECUTION_DIR" /p:RunAOTCompilation=$(RunAOTCompilation) /p:UseNativeAOTRuntime=$(UseNativeAOTRuntime) /p:TargetOS=$(TargetOS) /p:TargetArchitecture=$(TargetArchitecture) /p:UseMonoRuntime=$(UseMonoRuntime) /p:MonoForceInterpreter=$(MonoForceInterpreter) /p:MonoEnableLLVM=true /p:DevTeamProvisioning=$(DevTeamProvisioning) /p:UsePortableRuntimePack=$(UsePortableRuntimePack) /p:Configuration=$(Configuration) <_AOTBuildCommand Condition="'$(NativeLib)' != ''">$(_AOTBuildCommand) /p:NativeLib=$(NativeLib) /p:BundlesResources=$(BundlesResources) /p:ForceLibraryModeGenerateAppBundle=$(ForceLibraryModeGenerateAppBundle) <_AOTBuildCommand>$(_AOTBuildCommand) From 1b6620ee5fb54dd8852698bc003d53e6b17e08bf Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 29 Jan 2026 12:41:52 +0100 Subject: [PATCH 11/45] Add crossgen2 to the helix payload --- src/mono/msbuild/apple/build/AppleBuild.LocalBuild.props | 1 + src/mono/msbuild/apple/build/AppleBuild.props | 2 +- src/tests/Common/helixpublishwitharcade.proj | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/mono/msbuild/apple/build/AppleBuild.LocalBuild.props b/src/mono/msbuild/apple/build/AppleBuild.LocalBuild.props index 92668cf265fafe..0bd41771aa4709 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.LocalBuild.props +++ b/src/mono/msbuild/apple/build/AppleBuild.LocalBuild.props @@ -61,6 +61,7 @@ $([MSBuild]::NormalizeDirectory($(BuildBaseDir), 'LibraryBuilder')) $([MSBuild]::NormalizePath($(BuildBaseDir), 'cross')) + $([MSBuild]::NormalizeDirectory('$(BuildBaseDir)', 'crossgen2')) $([MSBuild]::NormalizeDirectory('$(BuildBaseDir)', 'ilc')) $([MSBuild]::NormalizePath('$(BuildBaseDir)', 'BuildIntegration')) $([MSBuild]::NormalizePath('$(ILCompilerTargetsDir)', 'Microsoft.DotNet.ILCompiler.SingleEntry.targets')) diff --git a/src/mono/msbuild/apple/build/AppleBuild.props b/src/mono/msbuild/apple/build/AppleBuild.props index f3edc755c1959e..4802d446caee22 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.props +++ b/src/mono/msbuild/apple/build/AppleBuild.props @@ -62,7 +62,7 @@ $(AfterMicrosoftNETSdkTargets);$(Crossgen2SdkOverrideTargetsPath) - $(AfterMicrosoftNETSdkTargets);$(MonoProjectRoot)\msbuild\apple\build\AppleBuild.ReadyToRun.targets + $(AfterMicrosoftNETSdkTargets);$(MSBuildThisFileDirectory)AppleBuild.ReadyToRun.targets diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index cdcc25f8665c32..209606aba8372c 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -981,6 +981,8 @@ Destination="build/BuildIntegration" /> + From fd7161ef5decd1fc6c847cbad1b1444c00e36bad Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 29 Jan 2026 14:08:18 +0100 Subject: [PATCH 12/45] Remove unused parameters --- .../runtime-extra-platforms-ioslikesimulator.yml | 4 ++-- .../extra-platforms/runtime-extra-platforms-maccatalyst.yml | 4 ++-- eng/pipelines/runtime.yml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index 0d666fd79a8b20..f6eff5f2e4b593 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -174,7 +174,7 @@ jobs: - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml parameters: creator: dotnet-bot - testBuildArgs: /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:BuildTestsOnHelix=true /p:UsePortableRuntimePack=false + testBuildArgs: /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:BuildTestsOnHelix=true testRunNamePrefixSuffix: CoreCLR_$(_BuildConfig) extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true @@ -204,7 +204,7 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR - buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:BuildTestsOnHelix=true /p:UsePortableRuntimePack=false + buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:BuildTestsOnHelix=true timeoutInMinutes: 120 # extra steps, run tests postBuildSteps: diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml index f68f87baf9a289..f7b37a48f23cf1 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml @@ -243,7 +243,7 @@ jobs: - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml parameters: creator: dotnet-bot - testBuildArgs: /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:BuildTestsOnHelix=true /p:UsePortableRuntimePack=false + testBuildArgs: /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:BuildTestsOnHelix=true testRunNamePrefixSuffix: CoreCLR_$(_BuildConfig) extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true @@ -272,7 +272,7 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR_Smoke - buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=false /p:UsePortableRuntimePack=false + buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=false timeoutInMinutes: 120 # extra steps, run tests postBuildSteps: diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 15db2cb8fa156f..616e3b64076525 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1105,7 +1105,7 @@ extends: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR_Smoke - buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:UsePortableRuntimePack=false + buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:UsePortableRuntimePack=false /p:EnableAggressiveTrimming=true timeoutInMinutes: 120 condition: >- or( From cf08f82c159709ce38467950d0e4cbd354ef2cff Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 29 Jan 2026 16:21:36 +0100 Subject: [PATCH 13/45] Increase timeout and include libraries tests --- .../runtime-extra-platforms-ioslike.yml | 4 ++-- .../runtime-extra-platforms-ioslikesimulator.yml | 4 ++-- .../runtime-extra-platforms-maccatalyst.yml | 4 ++-- eng/pipelines/runtime.yml | 2 +- src/libraries/tests.proj | 11 +++++++++-- 5 files changed, 16 insertions(+), 9 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index b167902a9aa183..77a5eac26c02b6 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -196,7 +196,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR_RuntimeTests buildArgs: -s clr+libs -c $(_BuildConfig) - timeoutInMinutes: 240 + timeoutInMinutes: 480 # extra steps, run tests extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml @@ -236,7 +236,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false $(_runSmokeTestsOnlyArg) /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=false /p:EnableAggressiveTrimming=true - timeoutInMinutes: 120 + timeoutInMinutes: 480 # extra steps, run tests postBuildSteps: - template: /eng/pipelines/libraries/helix.yml diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index f6eff5f2e4b593..46b99c5fb3978e 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -164,7 +164,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR_RuntimeTests buildArgs: -s clr+libs -c $(_BuildConfig) - timeoutInMinutes: 240 + timeoutInMinutes: 480 # extra steps, run tests extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml @@ -205,7 +205,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:BuildTestsOnHelix=true - timeoutInMinutes: 120 + timeoutInMinutes: 480 # extra steps, run tests postBuildSteps: - template: /eng/pipelines/libraries/helix.yml diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml index f7b37a48f23cf1..b8c45d3bb6afc8 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml @@ -233,7 +233,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR_RuntimeTests buildArgs: -s clr+libs -c $(_BuildConfig) - timeoutInMinutes: 240 + timeoutInMinutes: 480 # extra steps, run tests extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml @@ -273,7 +273,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR_Smoke buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=false - timeoutInMinutes: 120 + timeoutInMinutes: 480 # extra steps, run tests postBuildSteps: - template: /eng/pipelines/libraries/helix.yml diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 616e3b64076525..d85c93444eb183 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1105,7 +1105,7 @@ extends: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR_Smoke - buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:UsePortableRuntimePack=false /p:EnableAggressiveTrimming=true + buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:UsePortableRuntimePack=false /p:EnableAggressiveTrimming=true /p:EmbedPgoData=false timeoutInMinutes: 120 condition: >- or( diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index 7f94b863343adc..7a91333711b158 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -702,7 +702,14 @@ - + + + + + + - + From c87844bb0db60d46d90ccb49becbcbe35ffbc495 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 30 Jan 2026 08:58:48 +0100 Subject: [PATCH 14/45] Fix properties for tests --- .../extra-platforms/runtime-extra-platforms-maccatalyst.yml | 3 +-- eng/pipelines/runtime.yml | 2 +- eng/testing/tests.targets | 2 ++ 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml index b8c45d3bb6afc8..8241315f274a8e 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml @@ -272,7 +272,7 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR_Smoke - buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:BuildTestsOnHelix=true /p:UseNativeAOTRuntime=false + buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false timeoutInMinutes: 480 # extra steps, run tests postBuildSteps: @@ -280,4 +280,3 @@ jobs: parameters: creator: dotnet-bot testRunNamePrefixSuffix: CoreCLR_$(_BuildConfig) - extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index d85c93444eb183..616e3b64076525 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1105,7 +1105,7 @@ extends: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR_Smoke - buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:UsePortableRuntimePack=false /p:EnableAggressiveTrimming=true /p:EmbedPgoData=false + buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:UsePortableRuntimePack=false /p:EnableAggressiveTrimming=true timeoutInMinutes: 120 condition: >- or( diff --git a/eng/testing/tests.targets b/eng/testing/tests.targets index 8c058abf2b7990..c3b67492c40d45 100644 --- a/eng/testing/tests.targets +++ b/eng/testing/tests.targets @@ -6,6 +6,8 @@ and '$(UseNativeAOTRuntime)' != 'true' and '$(TargetOS)' != 'browser' and '$(TargetOS)' != 'wasi' + and '$(TargetOS)' != 'android' + and '$(TargetsAppleMobile)' != 'true' and '$(RuntimeFlavor)' != 'Mono' and '$(UseRuntimeAsync)' != 'false'"> true From 0e4bccc94ea7f7c458afd625b204f6542da13e53 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 30 Jan 2026 09:26:47 +0100 Subject: [PATCH 15/45] Revert changes --- src/libraries/tests.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index 7a91333711b158..d14d065b17caac 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -730,7 +730,7 @@ - + From 26356ad521f681340c36ee13e51b283d89778057 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 30 Jan 2026 14:56:13 +0100 Subject: [PATCH 16/45] Remove EnableAggressiveTrimming --- .../extra-platforms/runtime-extra-platforms-ioslike.yml | 2 +- eng/pipelines/runtime.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index 77a5eac26c02b6..03aad9f7458182 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -235,7 +235,7 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR - buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false $(_runSmokeTestsOnlyArg) /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=false /p:EnableAggressiveTrimming=true + buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false $(_runSmokeTestsOnlyArg) /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=false timeoutInMinutes: 480 # extra steps, run tests postBuildSteps: diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index 616e3b64076525..15db2cb8fa156f 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -1105,7 +1105,7 @@ extends: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR_Smoke - buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:UsePortableRuntimePack=false /p:EnableAggressiveTrimming=true + buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:RunSmokeTestsOnly=true /p:BuildTestsOnHelix=true /p:UsePortableRuntimePack=false timeoutInMinutes: 120 condition: >- or( From 0cbe42bef6938c5c2d3ca4c3de8a926f1966d64b Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 4 Feb 2026 11:33:04 +0100 Subject: [PATCH 17/45] Revert changes --- src/libraries/tests.proj | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index d14d065b17caac..7f94b863343adc 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -702,14 +702,7 @@ - - - - - - + Date: Wed, 4 Feb 2026 12:12:06 +0100 Subject: [PATCH 18/45] Invoke crossgen2 compiler on Helix --- eng/testing/tests.ioslike.targets | 7 ++ src/mono/msbuild/apple/build/AppleBuild.props | 9 ++- .../apple/data/ProxyProjectForAOTOnHelix.proj | 80 ++++++++++++++++++- 3 files changed, 93 insertions(+), 3 deletions(-) diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index 38e5147719ace3..a8b62dc2db1d7b 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -18,6 +18,8 @@ <_AOTBuildCommand>$(_AOTBuildCommand) /p:XHARNESS_EXECUTION_DIR="$XHARNESS_EXECUTION_DIR" /p:RunAOTCompilation=$(RunAOTCompilation) /p:UseNativeAOTRuntime=$(UseNativeAOTRuntime) /p:TargetOS=$(TargetOS) /p:TargetArchitecture=$(TargetArchitecture) /p:UseMonoRuntime=$(UseMonoRuntime) /p:MonoForceInterpreter=$(MonoForceInterpreter) /p:MonoEnableLLVM=true /p:DevTeamProvisioning=$(DevTeamProvisioning) /p:UsePortableRuntimePack=$(UsePortableRuntimePack) /p:Configuration=$(Configuration) <_AOTBuildCommand Condition="'$(NativeLib)' != ''">$(_AOTBuildCommand) /p:NativeLib=$(NativeLib) /p:BundlesResources=$(BundlesResources) /p:ForceLibraryModeGenerateAppBundle=$(ForceLibraryModeGenerateAppBundle) + + <_AOTBuildCommand Condition="'$(UseMonoRuntime)' != 'true' and '$(UseNativeAOTRuntime)' != 'true'">$(_AOTBuildCommand) /p:PublishReadyToRun=true /p:PublishReadyToRunComposite=true /p:PublishReadyToRunContainerFormat=macho <_AOTBuildCommand>$(_AOTBuildCommand) <_ResetSimulatorSwitch Condition="('$(TargetOS)' == 'iossimulator' or '$(TargetOS)' == 'tvossimulator') and '$(IncludesTestRunner)' == 'true'">--reset-simulator @@ -135,6 +137,11 @@ <_ApplePropertyNames Include="HybridGlobalization" /> <_ApplePropertyNames Include="InvariantGlobalization" /> + + <_ApplePropertyNames Condition="'$(UseMonoRuntime)' != 'true' and '$(UseNativeAOTRuntime)' != 'true'" Include="Crossgen2InBuildDir" /> + <_ApplePropertyNames Condition="'$(UseMonoRuntime)' != 'true' and '$(UseNativeAOTRuntime)' != 'true'" Include="Crossgen2SdkOverridePropsPath" /> + <_ApplePropertyNames Condition="'$(UseMonoRuntime)' != 'true' and '$(UseNativeAOTRuntime)' != 'true'" Include="Crossgen2SdkOverrideTargetsPath" /> + <_AppleUsedRuntimePackFiles Include="@(_UsedRuntimePackFiles->'%(FileName)%(Extension)')" RemoveMetadata="_IsNative;TargetDir" /> diff --git a/src/mono/msbuild/apple/build/AppleBuild.props b/src/mono/msbuild/apple/build/AppleBuild.props index 4802d446caee22..d5ca0ad779f84f 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.props +++ b/src/mono/msbuild/apple/build/AppleBuild.props @@ -10,9 +10,14 @@ - true + + true + false + + <_DeferR2RToHelix Condition="'$(BuildTestsOnHelix)' == 'true' and '$(UseMonoRuntime)' != 'true' and '$(UseNativeAOTRuntime)' != 'true'">true true - macho + macho diff --git a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj index 2035333122a2f0..5ff68f950a0958 100644 --- a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj +++ b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj @@ -7,12 +7,20 @@ $([MSBuild]::NormalizeDirectory($(TestRootDir), '..', 'extraFiles')) $([MSBuild]::NormalizeDirectory($(TestRootDir), '..', 'obj')) - _PublishRuntimePack;_PrepareForAppleBuildAppOnHelix;$(AppleBuildDependsOn);_AfterAppleBuildOnHelix + _PublishRuntimePack;_PrepareForAppleBuildAppOnHelix;_RunR2RCompilationOnHelix;$(AppleBuildDependsOn);_AfterAppleBuildOnHelix true $(OriginalPublishDir) + + + $(BaseIntermediateOutputPath) + $(TargetOS)-$(TargetArchitecture.ToLowerInvariant()) + + $([MSBuild]::NormalizeDirectory($(HELIX_CORRELATION_PAYLOAD), 'build', 'crossgen2')) + + false true @@ -96,6 +104,76 @@ + + + + + + <_R2RIntermediateDir>$([MSBuild]::NormalizeDirectory($(BaseIntermediateOutputPath), 'R2R')) + + + + + + + <_AssembliesToR2R Include="$(OriginalPublishDir)*.dll" + Exclude="$(OriginalPublishDir)*.resources.dll" /> + + <_AssembliesToR2R Remove="@(_AppleUsedRuntimePackFiles->'$(OriginalPublishDir)%(FileName)%(Extension)')" /> + + + + + <_R2RReferenceAssemblies Include="$(OriginalPublishDir)*.dll" /> + <_R2RReferenceAssemblies Include="$(MicrosoftNetCoreAppRuntimePackLibDir)*.dll" Condition="Exists('$(MicrosoftNetCoreAppRuntimePackLibDir)')" /> + + + + + + + <_Crossgen2Path>$([MSBuild]::NormalizePath('$(Crossgen2InBuildDir)', 'crossgen2')) + <_R2RTargetArch Condition="'$(TargetArchitecture)' == 'arm64'">arm64 + <_R2RTargetArch Condition="'$(TargetArchitecture)' == 'x64'">x64 + + + <_AppleSdkName Condition="'$(TargetOS)' == 'ios'">iphoneos + <_AppleSdkName Condition="'$(TargetOS)' == 'iossimulator'">iphonesimulator + <_AppleSdkName Condition="'$(TargetOS)' == 'tvos'">appletvos + <_AppleSdkName Condition="'$(TargetOS)' == 'tvossimulator'">appletvsimulator + <_AppleSdkName Condition="'$(TargetOS)' == 'maccatalyst'">macosx + + + <_AppleTripleOS Condition="$(TargetOS.StartsWith('ios'))">ios + <_AppleTripleOS Condition="$(TargetOS.StartsWith('tvos'))">tvos + <_AppleTripleOS Condition="'$(TargetOS)' == 'maccatalyst'">ios + + <_AppleTripleAbi Condition="'$(TargetOS)' == 'ios' or '$(TargetOS)' == 'tvos'"> + <_AppleTripleAbi Condition="'$(TargetOS)' == 'maccatalyst'">-macabi + <_AppleTripleAbi Condition="$(TargetOS.EndsWith('simulator'))">-simulator + + <_R2RTargetTriple>$(_R2RTargetArch)-apple-$(_AppleTripleOS)13.0$(_AppleTripleAbi) + + <_R2ROutputName>$(AssemblyName).r2r + + + + + + + + + + From a5e5d23ad17781e50f307c2c8871dac31b8b785f Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 4 Feb 2026 13:46:29 +0100 Subject: [PATCH 19/45] Update Crossgen2InBuildDir condition for Helix correlation payload --- src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj index 5ff68f950a0958..acbbb7adbeaa56 100644 --- a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj +++ b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj @@ -18,7 +18,7 @@ $(BaseIntermediateOutputPath) $(TargetOS)-$(TargetArchitecture.ToLowerInvariant()) - $([MSBuild]::NormalizeDirectory($(HELIX_CORRELATION_PAYLOAD), 'build', 'crossgen2')) + $([MSBuild]::NormalizeDirectory($(HELIX_CORRELATION_PAYLOAD), 'build', 'crossgen2')) From d214a84d2abd2a7aa79ba6b9fda0734339be1643 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 4 Feb 2026 16:27:49 +0100 Subject: [PATCH 20/45] Remove Crossgen2InBuildDir property --- eng/testing/tests.ioslike.targets | 1 - 1 file changed, 1 deletion(-) diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index a8b62dc2db1d7b..f632668f2bcfae 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -138,7 +138,6 @@ <_ApplePropertyNames Include="InvariantGlobalization" /> - <_ApplePropertyNames Condition="'$(UseMonoRuntime)' != 'true' and '$(UseNativeAOTRuntime)' != 'true'" Include="Crossgen2InBuildDir" /> <_ApplePropertyNames Condition="'$(UseMonoRuntime)' != 'true' and '$(UseNativeAOTRuntime)' != 'true'" Include="Crossgen2SdkOverridePropsPath" /> <_ApplePropertyNames Condition="'$(UseMonoRuntime)' != 'true' and '$(UseNativeAOTRuntime)' != 'true'" Include="Crossgen2SdkOverrideTargetsPath" /> From b6e910682366f650efdf17bcc2e9c63f39a9cbe4 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 5 Feb 2026 12:09:29 +0100 Subject: [PATCH 21/45] Revert timeout changes --- .../extra-platforms/runtime-extra-platforms-ioslike.yml | 4 ++-- .../runtime-extra-platforms-ioslikesimulator.yml | 4 ++-- .../extra-platforms/runtime-extra-platforms-maccatalyst.yml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index 03aad9f7458182..ef77c422d4f867 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -196,7 +196,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR_RuntimeTests buildArgs: -s clr+libs -c $(_BuildConfig) - timeoutInMinutes: 480 + timeoutInMinutes: 240 # extra steps, run tests extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml @@ -236,7 +236,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false $(_runSmokeTestsOnlyArg) /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=false - timeoutInMinutes: 480 + timeoutInMinutes: 240 # extra steps, run tests postBuildSteps: - template: /eng/pipelines/libraries/helix.yml diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml index 46b99c5fb3978e..b65d86ce4083ad 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslikesimulator.yml @@ -164,7 +164,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR_RuntimeTests buildArgs: -s clr+libs -c $(_BuildConfig) - timeoutInMinutes: 480 + timeoutInMinutes: 240 # extra steps, run tests extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml @@ -205,7 +205,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:BuildTestsOnHelix=true - timeoutInMinutes: 480 + timeoutInMinutes: 240 # extra steps, run tests postBuildSteps: - template: /eng/pipelines/libraries/helix.yml diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml index 8241315f274a8e..8fdb9b54418fc0 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml @@ -233,7 +233,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR_RuntimeTests buildArgs: -s clr+libs -c $(_BuildConfig) - timeoutInMinutes: 480 + timeoutInMinutes: 240 # extra steps, run tests extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml @@ -273,7 +273,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR_Smoke buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false - timeoutInMinutes: 480 + timeoutInMinutes: 240 # extra steps, run tests postBuildSteps: - template: /eng/pipelines/libraries/helix.yml From 797ce9b4c6df5dd48849d9029ddfd2902d34abf7 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 5 Feb 2026 12:10:36 +0100 Subject: [PATCH 22/45] Add Crossgen2InBuildDir to Helix correlation payload --- eng/testing/tests.ioslike.targets | 4 ---- src/libraries/sendtohelix-mobile.targets | 2 ++ src/mono/msbuild/apple/build/AppleBuild.props | 2 -- 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index f632668f2bcfae..4aa92a39d98609 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -137,10 +137,6 @@ <_ApplePropertyNames Include="HybridGlobalization" /> <_ApplePropertyNames Include="InvariantGlobalization" /> - - <_ApplePropertyNames Condition="'$(UseMonoRuntime)' != 'true' and '$(UseNativeAOTRuntime)' != 'true'" Include="Crossgen2SdkOverridePropsPath" /> - <_ApplePropertyNames Condition="'$(UseMonoRuntime)' != 'true' and '$(UseNativeAOTRuntime)' != 'true'" Include="Crossgen2SdkOverrideTargetsPath" /> - <_AppleUsedRuntimePackFiles Include="@(_UsedRuntimePackFiles->'%(FileName)%(Extension)')" RemoveMetadata="_IsNative;TargetDir" /> diff --git a/src/libraries/sendtohelix-mobile.targets b/src/libraries/sendtohelix-mobile.targets index f45a28ca50dc30..87991399245120 100644 --- a/src/libraries/sendtohelix-mobile.targets +++ b/src/libraries/sendtohelix-mobile.targets @@ -81,6 +81,8 @@ Destination="build/BuildIntegration" /> + diff --git a/src/mono/msbuild/apple/build/AppleBuild.props b/src/mono/msbuild/apple/build/AppleBuild.props index d5ca0ad779f84f..532badaae981ff 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.props +++ b/src/mono/msbuild/apple/build/AppleBuild.props @@ -10,8 +10,6 @@ - true false From 558c4dbc416f759c8745ab98428f510268cadb4d Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 5 Feb 2026 14:18:08 +0100 Subject: [PATCH 23/45] Enable trimming --- .../apple/build/AppleBuild.ReadyToRun.targets | 7 -- src/mono/msbuild/apple/build/AppleBuild.props | 7 +- .../apple/data/ProxyProjectForAOTOnHelix.proj | 72 +------------------ 3 files changed, 3 insertions(+), 83 deletions(-) diff --git a/src/mono/msbuild/apple/build/AppleBuild.ReadyToRun.targets b/src/mono/msbuild/apple/build/AppleBuild.ReadyToRun.targets index 41e1df00034ddb..88e6f883af7926 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.ReadyToRun.targets +++ b/src/mono/msbuild/apple/build/AppleBuild.ReadyToRun.targets @@ -13,12 +13,5 @@ TargetOS="$(TargetOS)" PerfmapFormatVersion="$(PublishReadyToRunPerfmapFormatVersion)"/> - - - - <_ReadyToRunImplementationAssemblies Include="@(RuntimeFiles)" Condition="'%(RuntimeFiles.Extension)' == '.dll'" ReferenceOnly="true" /> - <_ReadyToRunImplementationAssemblies Include="@(LibrariesRuntimeFiles)" Condition="'%(LibrariesRuntimeFiles.Extension)' == '.dll'" ReferenceOnly="true" /> - diff --git a/src/mono/msbuild/apple/build/AppleBuild.props b/src/mono/msbuild/apple/build/AppleBuild.props index 532badaae981ff..4802d446caee22 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.props +++ b/src/mono/msbuild/apple/build/AppleBuild.props @@ -10,12 +10,9 @@ - true - false - - <_DeferR2RToHelix Condition="'$(BuildTestsOnHelix)' == 'true' and '$(UseMonoRuntime)' != 'true' and '$(UseNativeAOTRuntime)' != 'true'">true + true true - macho + macho diff --git a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj index acbbb7adbeaa56..8d99b09d2a79d1 100644 --- a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj +++ b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj @@ -7,13 +7,12 @@ $([MSBuild]::NormalizeDirectory($(TestRootDir), '..', 'extraFiles')) $([MSBuild]::NormalizeDirectory($(TestRootDir), '..', 'obj')) - _PublishRuntimePack;_PrepareForAppleBuildAppOnHelix;_RunR2RCompilationOnHelix;$(AppleBuildDependsOn);_AfterAppleBuildOnHelix + _PublishRuntimePack;_PrepareForAppleBuildAppOnHelix;$(AppleBuildDependsOn);_AfterAppleBuildOnHelix true $(OriginalPublishDir) - $(BaseIntermediateOutputPath) $(TargetOS)-$(TargetArchitecture.ToLowerInvariant()) @@ -104,75 +103,6 @@ - - - - - - <_R2RIntermediateDir>$([MSBuild]::NormalizeDirectory($(BaseIntermediateOutputPath), 'R2R')) - - - - - - - <_AssembliesToR2R Include="$(OriginalPublishDir)*.dll" - Exclude="$(OriginalPublishDir)*.resources.dll" /> - - <_AssembliesToR2R Remove="@(_AppleUsedRuntimePackFiles->'$(OriginalPublishDir)%(FileName)%(Extension)')" /> - - - - - <_R2RReferenceAssemblies Include="$(OriginalPublishDir)*.dll" /> - <_R2RReferenceAssemblies Include="$(MicrosoftNetCoreAppRuntimePackLibDir)*.dll" Condition="Exists('$(MicrosoftNetCoreAppRuntimePackLibDir)')" /> - - - - - - - <_Crossgen2Path>$([MSBuild]::NormalizePath('$(Crossgen2InBuildDir)', 'crossgen2')) - <_R2RTargetArch Condition="'$(TargetArchitecture)' == 'arm64'">arm64 - <_R2RTargetArch Condition="'$(TargetArchitecture)' == 'x64'">x64 - - - <_AppleSdkName Condition="'$(TargetOS)' == 'ios'">iphoneos - <_AppleSdkName Condition="'$(TargetOS)' == 'iossimulator'">iphonesimulator - <_AppleSdkName Condition="'$(TargetOS)' == 'tvos'">appletvos - <_AppleSdkName Condition="'$(TargetOS)' == 'tvossimulator'">appletvsimulator - <_AppleSdkName Condition="'$(TargetOS)' == 'maccatalyst'">macosx - - - <_AppleTripleOS Condition="$(TargetOS.StartsWith('ios'))">ios - <_AppleTripleOS Condition="$(TargetOS.StartsWith('tvos'))">tvos - <_AppleTripleOS Condition="'$(TargetOS)' == 'maccatalyst'">ios - - <_AppleTripleAbi Condition="'$(TargetOS)' == 'ios' or '$(TargetOS)' == 'tvos'"> - <_AppleTripleAbi Condition="'$(TargetOS)' == 'maccatalyst'">-macabi - <_AppleTripleAbi Condition="$(TargetOS.EndsWith('simulator'))">-simulator - - <_R2RTargetTriple>$(_R2RTargetArch)-apple-$(_AppleTripleOS)13.0$(_AppleTripleAbi) - - <_R2ROutputName>$(AssemblyName).r2r - - - - - - - - - From 17dd7cd022e2f642ea5dc29b9aa17593109e5fdb Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 6 Feb 2026 10:13:18 +0100 Subject: [PATCH 24/45] Enable aggressive trimming in iOS/tvOS build --- .../extra-platforms/runtime-extra-platforms-ioslike.yml | 2 +- .../msbuild/apple/build/AppleBuild.ReadyToRun.targets | 2 +- .../msbuild/apple/data/ProxyProjectForAOTOnHelix.proj | 8 -------- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index ef77c422d4f867..fcfec1ceab3141 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -235,7 +235,7 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR - buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false $(_runSmokeTestsOnlyArg) /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=false + buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false $(_runSmokeTestsOnlyArg) /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=false /p:EnableAggressiveTrimming=true timeoutInMinutes: 240 # extra steps, run tests postBuildSteps: diff --git a/src/mono/msbuild/apple/build/AppleBuild.ReadyToRun.targets b/src/mono/msbuild/apple/build/AppleBuild.ReadyToRun.targets index 88e6f883af7926..1bfe6b140f2ca5 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.ReadyToRun.targets +++ b/src/mono/msbuild/apple/build/AppleBuild.ReadyToRun.targets @@ -2,7 +2,7 @@ - + $([MSBuild]::NormalizePath('$(Crossgen2InBuildDir)', 'crossgen2$(ExeSuffix)')) diff --git a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj index 8d99b09d2a79d1..2035333122a2f0 100644 --- a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj +++ b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj @@ -13,13 +13,6 @@ $(OriginalPublishDir) - - $(BaseIntermediateOutputPath) - $(TargetOS)-$(TargetArchitecture.ToLowerInvariant()) - - $([MSBuild]::NormalizeDirectory($(HELIX_CORRELATION_PAYLOAD), 'build', 'crossgen2')) - - false true @@ -103,7 +96,6 @@ - From fc16a60903a391d1be9cf835e0f7885676f82aa1 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 6 Feb 2026 14:09:38 +0100 Subject: [PATCH 25/45] Update project references for FileVersionInfo tests to include Apple mobile targets --- .../System.Diagnostics.FileVersionInfo.Tests.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libraries/System.Diagnostics.FileVersionInfo/tests/System.Diagnostics.FileVersionInfo.Tests/System.Diagnostics.FileVersionInfo.Tests.csproj b/src/libraries/System.Diagnostics.FileVersionInfo/tests/System.Diagnostics.FileVersionInfo.Tests/System.Diagnostics.FileVersionInfo.Tests.csproj index fa358a2a90893b..2c7f7d2d503a60 100644 --- a/src/libraries/System.Diagnostics.FileVersionInfo/tests/System.Diagnostics.FileVersionInfo.Tests/System.Diagnostics.FileVersionInfo.Tests.csproj +++ b/src/libraries/System.Diagnostics.FileVersionInfo/tests/System.Diagnostics.FileVersionInfo.Tests/System.Diagnostics.FileVersionInfo.Tests.csproj @@ -44,11 +44,11 @@ - + Content PreserveNewest - + From 89fb0594b2e485ee831215f5089eab7ad4278046 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 9 Feb 2026 10:53:30 +0100 Subject: [PATCH 26/45] Increase timeout for CoreCLR tests to 300 minutes --- .../extra-platforms/runtime-extra-platforms-ioslike.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index fcfec1ceab3141..99882958c834cd 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -196,7 +196,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR_RuntimeTests buildArgs: -s clr+libs -c $(_BuildConfig) - timeoutInMinutes: 240 + timeoutInMinutes: 300 # extra steps, run tests extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml @@ -236,7 +236,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false $(_runSmokeTestsOnlyArg) /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=false /p:EnableAggressiveTrimming=true - timeoutInMinutes: 240 + timeoutInMinutes: 300 # extra steps, run tests postBuildSteps: - template: /eng/pipelines/libraries/helix.yml From 8487b528feb1b6983b05b87c9b6b66991ea3f6c0 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 10 Feb 2026 12:12:52 +0100 Subject: [PATCH 27/45] Add R2R on helix --- .../runtime-extra-platforms-ioslike.yml | 4 +-- .../apple/build/AppleBuild.ReadyToRun.targets | 4 ++- src/mono/msbuild/apple/build/AppleBuild.props | 3 +- .../apple/data/ProxyProjectForAOTOnHelix.proj | 33 ++++++++++++++++++- 4 files changed, 39 insertions(+), 5 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml index 99882958c834cd..fcfec1ceab3141 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-ioslike.yml @@ -196,7 +196,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR_RuntimeTests buildArgs: -s clr+libs -c $(_BuildConfig) - timeoutInMinutes: 300 + timeoutInMinutes: 240 # extra steps, run tests extraVariablesTemplates: - template: /eng/pipelines/common/templates/runtimes/test-variables.yml @@ -236,7 +236,7 @@ jobs: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true /p:DevTeamProvisioning=- /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false $(_runSmokeTestsOnlyArg) /p:BuildTestsOnHelix=true /p:EnableAdditionalTimezoneChecks=true /p:UsePortableRuntimePack=false /p:EnableAggressiveTrimming=true - timeoutInMinutes: 300 + timeoutInMinutes: 240 # extra steps, run tests postBuildSteps: - template: /eng/pipelines/libraries/helix.yml diff --git a/src/mono/msbuild/apple/build/AppleBuild.ReadyToRun.targets b/src/mono/msbuild/apple/build/AppleBuild.ReadyToRun.targets index 1bfe6b140f2ca5..6e546a78d02e44 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.ReadyToRun.targets +++ b/src/mono/msbuild/apple/build/AppleBuild.ReadyToRun.targets @@ -2,7 +2,9 @@ - + $([MSBuild]::NormalizePath('$(Crossgen2InBuildDir)', 'crossgen2$(ExeSuffix)')) diff --git a/src/mono/msbuild/apple/build/AppleBuild.props b/src/mono/msbuild/apple/build/AppleBuild.props index 4802d446caee22..ec67cde3c84259 100644 --- a/src/mono/msbuild/apple/build/AppleBuild.props +++ b/src/mono/msbuild/apple/build/AppleBuild.props @@ -9,7 +9,7 @@ true - + true true macho @@ -61,6 +61,7 @@ This can be removed once we upstream Mach-O support in the targets to the SDK --> + ResolveRuntimeFilesFromLocalBuild $(AfterMicrosoftNETSdkTargets);$(Crossgen2SdkOverrideTargetsPath) $(AfterMicrosoftNETSdkTargets);$(MSBuildThisFileDirectory)AppleBuild.ReadyToRun.targets diff --git a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj index 2035333122a2f0..f94efbb17cd646 100644 --- a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj +++ b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj @@ -7,7 +7,7 @@ $([MSBuild]::NormalizeDirectory($(TestRootDir), '..', 'extraFiles')) $([MSBuild]::NormalizeDirectory($(TestRootDir), '..', 'obj')) - _PublishRuntimePack;_PrepareForAppleBuildAppOnHelix;$(AppleBuildDependsOn);_AfterAppleBuildOnHelix + _PublishRuntimePack;_PrepareForAppleBuildAppOnHelix;_RunR2RCompilationOnHelix;$(AppleBuildDependsOn);_AfterAppleBuildOnHelix true $(OriginalPublishDir) @@ -96,6 +96,37 @@ + + + + + $(BaseIntermediateOutputPath) + $(TargetOS)-$(TargetArchitecture) + + + + <_R2RPublishAssembly Include="$(OriginalPublishDir)*.dll" Exclude="$(OriginalPublishDir)*.resources.dll" /> + + + + + %(Filename)%(Extension) + + + + + + + + + + + + + + From f655ef2bd06d4213d66a30d8e4f7ebeeeb0e7c27 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 10 Feb 2026 14:13:10 +0100 Subject: [PATCH 28/45] Remove IntermediateAssembly from ItemGroup --- src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj index f94efbb17cd646..4bf67d775bd720 100644 --- a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj +++ b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj @@ -117,6 +117,7 @@ + From 9671258a3634f67564825074eaa404bc008b6a9c Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 10 Feb 2026 17:02:23 +0100 Subject: [PATCH 29/45] Update IntermediateAssembly handling for R2R compilation on Helix --- src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj index 4bf67d775bd720..c6664c4e571d77 100644 --- a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj +++ b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj @@ -116,9 +116,9 @@ - + - + From 7fd2ee1cf85a1ee44af5c25deb1e448e8cdce8d5 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 11 Feb 2026 10:41:15 +0100 Subject: [PATCH 30/45] Add R2R files to Apple bundle during Helix build process --- .../apple/data/ProxyProjectForAOTOnHelix.proj | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj index c6664c4e571d77..328d262a2f0c60 100644 --- a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj +++ b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj @@ -98,7 +98,28 @@ + DependsOnTargets="_PrepareR2RItemsOnHelix;CreateReadyToRunImages;_AddR2RFilesToAppleBundle" /> + + + + + <_R2ROutputPath>$(IntermediateOutputPath)R2R + + + + <_R2RCompiledAssemblies Include="$(_R2ROutputPath)\*.dll" /> + <_R2RDylibFiles Include="$(_R2ROutputPath)\*.r2r.dylib" /> + + + + + + @@ -120,8 +141,6 @@ - - From dc7849e94fd064b89eef8a34a743ed77b18e1a6d Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 11 Feb 2026 15:09:02 +0100 Subject: [PATCH 31/45] Add logging and warnings for R2R dylib files in Helix build process --- eng/testing/tests.ioslike.targets | 2 +- .../apple/data/ProxyProjectForAOTOnHelix.proj | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index 4aa92a39d98609..34bb5eaf998eea 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -19,7 +19,7 @@ <_AOTBuildCommand>$(_AOTBuildCommand) /p:XHARNESS_EXECUTION_DIR="$XHARNESS_EXECUTION_DIR" /p:RunAOTCompilation=$(RunAOTCompilation) /p:UseNativeAOTRuntime=$(UseNativeAOTRuntime) /p:TargetOS=$(TargetOS) /p:TargetArchitecture=$(TargetArchitecture) /p:UseMonoRuntime=$(UseMonoRuntime) /p:MonoForceInterpreter=$(MonoForceInterpreter) /p:MonoEnableLLVM=true /p:DevTeamProvisioning=$(DevTeamProvisioning) /p:UsePortableRuntimePack=$(UsePortableRuntimePack) /p:Configuration=$(Configuration) <_AOTBuildCommand Condition="'$(NativeLib)' != ''">$(_AOTBuildCommand) /p:NativeLib=$(NativeLib) /p:BundlesResources=$(BundlesResources) /p:ForceLibraryModeGenerateAppBundle=$(ForceLibraryModeGenerateAppBundle) - <_AOTBuildCommand Condition="'$(UseMonoRuntime)' != 'true' and '$(UseNativeAOTRuntime)' != 'true'">$(_AOTBuildCommand) /p:PublishReadyToRun=true /p:PublishReadyToRunComposite=true /p:PublishReadyToRunContainerFormat=macho + <_AOTBuildCommand Condition="'$(UseMonoRuntime)' != 'true' and '$(UseNativeAOTRuntime)' != 'true'">$(_AOTBuildCommand) /p:PublishReadyToRun=true /p:PublishReadyToRunComposite=true /p:PublishReadyToRunContainerFormat=macho /p:StripSymbols=true <_AOTBuildCommand>$(_AOTBuildCommand) <_ResetSimulatorSwitch Condition="('$(TargetOS)' == 'iossimulator' or '$(TargetOS)' == 'tvossimulator') and '$(IncludesTestRunner)' == 'true'">--reset-simulator diff --git a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj index 328d262a2f0c60..26a7ed52370a4b 100644 --- a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj +++ b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj @@ -112,6 +112,10 @@ <_R2RDylibFiles Include="$(_R2ROutputPath)\*.r2r.dylib" /> + + + + @@ -119,15 +123,22 @@ + + + + - $(BaseIntermediateOutputPath) + $(BaseIntermediateOutputPath) $(TargetOS)-$(TargetArchitecture) + + + <_R2RPublishAssembly Include="$(OriginalPublishDir)*.dll" Exclude="$(OriginalPublishDir)*.resources.dll" /> @@ -141,6 +152,8 @@ + + From fd66488da65895eaeb11831ae66073a9e35e0200 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Wed, 11 Feb 2026 16:25:36 +0100 Subject: [PATCH 32/45] Disable failing tests for CoreCLR on Apple mobile - ProjectExclusions for tests that crash/timeout on tvOS CoreCLR - Assembly-level [ActiveIssue] for tests with many failures (using PlatformDetection.IsAppleMobileCoreCLR) - Method-level [ActiveIssue] for individual failing test methods (using TestPlatforms.iOS | TestPlatforms.tvOS) - Add PlatformDetection.IsAppleMobileCoreCLR helper property --- .../TestUtilities/System/PlatformDetection.cs | 1 + .../tests/Common/ConfigurationBinderTests.cs | 2 ++ .../tests/DI.Tests/AssemblyInfo.cs | 7 +++++++ .../tests/EventSourceLoggerTest.cs | 1 + .../tests/ErrObjectTests.cs | 1 + .../tests/AssemblyInfo.cs | 2 ++ .../System.Composition/tests/AssemblyInfo.cs | 7 +++++++ .../System.Data.Common/tests/AssemblyInfo.cs | 7 +++++++ .../TestWithConfigSwitches/AssemblyInfo.cs | 7 +++++++ .../FileVersionInfoTest.cs | 1 + .../tests/AssemblyInfo.cs | 7 +++++++ .../tests/TrimCompatibilityTests.cs | 1 + .../tests/TensorPrimitives.Generic.cs | 1 + .../ObservableCollection_Serialization.cs | 1 + .../tests/XmlSerializer/XmlSerializerTests.cs | 1 + .../Decoding/CustomAttributeDecoderTests.cs | 1 + .../Metadata/Decoding/SignatureDecoderTests.cs | 1 + .../Tests/CustomAttributes/DllImportTests.cs | 1 + .../tests/AssemblyInfo.cs | 7 +++++++ .../tests/RefEmitLoadContext/AssemblyInfo.cs | 7 +++++++ .../AssemblyInfo.cs | 7 +++++++ .../AssemblyInfo.cs | 7 +++++++ .../DisabledFileLockingSwitchTests.cs | 1 + .../System/EnvironmentTests.cs | 1 + .../System.Runtime.Tests/System/Attributes.cs | 1 + .../System/NullableMetadataTests.cs | 1 + src/libraries/tests.proj | 18 ++++++++++++++++++ 27 files changed, 100 insertions(+) create mode 100644 src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Tests/AssemblyInfo.cs create mode 100644 src/libraries/System.Composition/tests/AssemblyInfo.cs create mode 100644 src/libraries/System.Data.Common/tests/AssemblyInfo.cs create mode 100644 src/libraries/System.Diagnostics.DiagnosticSource/tests/TestWithConfigSwitches/AssemblyInfo.cs create mode 100644 src/libraries/System.Diagnostics.Tracing/tests/AssemblyInfo.cs create mode 100644 src/libraries/System.Runtime.Loader/tests/AssemblyInfo.cs create mode 100644 src/libraries/System.Runtime.Loader/tests/RefEmitLoadContext/AssemblyInfo.cs create mode 100644 src/libraries/System.Runtime/tests/System.Dynamic.Runtime.Tests/AssemblyInfo.cs create mode 100644 src/libraries/System.Runtime/tests/System.Globalization.Calendars.Tests/CalendarTestWithConfigSwitch/AssemblyInfo.cs diff --git a/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.cs b/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.cs index 30c1cd022a9d9c..bfe890f917044d 100644 --- a/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.cs +++ b/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.cs @@ -62,6 +62,7 @@ public static partial class PlatformDetection public static bool IsNotMobile => !IsMobile; public static bool IsAppleMobile => IsMacCatalyst || IsiOS || IstvOS; public static bool IsNotAppleMobile => !IsAppleMobile; + public static bool IsAppleMobileCoreCLR => IsAppleMobile && IsCoreCLR; public static bool IsNotNetFramework => !IsNetFramework; public static bool IsBsdLike => IsApplePlatform || IsFreeBSD || IsNetBSD; diff --git a/src/libraries/Microsoft.Extensions.Configuration.Binder/tests/Common/ConfigurationBinderTests.cs b/src/libraries/Microsoft.Extensions.Configuration.Binder/tests/Common/ConfigurationBinderTests.cs index fe5efa9f1356e2..1f9497f329f736 100644 --- a/src/libraries/Microsoft.Extensions.Configuration.Binder/tests/Common/ConfigurationBinderTests.cs +++ b/src/libraries/Microsoft.Extensions.Configuration.Binder/tests/Common/ConfigurationBinderTests.cs @@ -2375,6 +2375,7 @@ public void ComplexObj_As_Enumerable_Element() #if !BUILDING_SOURCE_GENERATOR_TESTS [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotBrowser))] [ActiveIssue("https://github.com/dotnet/runtime/issues/91923", typeof(PlatformDetection), nameof(PlatformDetection.IsMonoRuntime), nameof(PlatformDetection.IsBuiltWithAggressiveTrimming), nameof(PlatformDetection.IsAppleMobile))] + [ActiveIssue("https://github.com/dotnet/runtime/pull/123033", TestPlatforms.iOS | TestPlatforms.tvOS)] public void TraceSwitchTest() { var dic = new Dictionary @@ -2405,6 +2406,7 @@ private void ValidateGeolocation(IGeolocation location) #if !BUILDING_SOURCE_GENERATOR_TESTS [ActiveIssue("Investigate Build browser-wasm linux Release LibraryTests_EAT CI failure for reflection impl", TestPlatforms.Browser)] [ActiveIssue("https://github.com/dotnet/runtime/issues/91923", typeof(PlatformDetection), nameof(PlatformDetection.IsMonoRuntime), nameof(PlatformDetection.IsBuiltWithAggressiveTrimming), nameof(PlatformDetection.IsAppleMobile))] + [ActiveIssue("https://github.com/dotnet/runtime/pull/123033", TestPlatforms.iOS | TestPlatforms.tvOS)] #endif public void TestGraphWithUnsupportedMember() { diff --git a/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Tests/AssemblyInfo.cs b/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Tests/AssemblyInfo.cs new file mode 100644 index 00000000000000..8f6c1b53810c9b --- /dev/null +++ b/src/libraries/Microsoft.Extensions.DependencyInjection/tests/DI.Tests/AssemblyInfo.cs @@ -0,0 +1,7 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using Xunit; + +[assembly: ActiveIssue("https://github.com/dotnet/runtime/pull/123033", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobileCoreCLR))] diff --git a/src/libraries/Microsoft.Extensions.Logging.EventSource/tests/EventSourceLoggerTest.cs b/src/libraries/Microsoft.Extensions.Logging.EventSource/tests/EventSourceLoggerTest.cs index d7cdc0c52e2def..64fc85a3b26e85 100644 --- a/src/libraries/Microsoft.Extensions.Logging.EventSource/tests/EventSourceLoggerTest.cs +++ b/src/libraries/Microsoft.Extensions.Logging.EventSource/tests/EventSourceLoggerTest.cs @@ -302,6 +302,7 @@ public void Logs_Nothing_IfNotEnabled() } [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/pull/123033", TestPlatforms.iOS | TestPlatforms.tvOS)] public void Logs_OnlyFormattedMessage_IfKeywordSet() { using (var testListener = new TestEventListener()) diff --git a/src/libraries/Microsoft.VisualBasic.Core/tests/ErrObjectTests.cs b/src/libraries/Microsoft.VisualBasic.Core/tests/ErrObjectTests.cs index 61a1f8c4b66fbd..d887fc19650191 100644 --- a/src/libraries/Microsoft.VisualBasic.Core/tests/ErrObjectTests.cs +++ b/src/libraries/Microsoft.VisualBasic.Core/tests/ErrObjectTests.cs @@ -12,6 +12,7 @@ public class ErrObjectTests [Fact] [ActiveIssue("https://github.com/mono/mono/issues/14854", typeof(PlatformDetection), nameof(PlatformDetection.IsSingleFile))] [ActiveIssue("https://github.com/mono/mono/issues/14854", TestRuntimes.Mono)] + [ActiveIssue("https://github.com/dotnet/runtime/pull/123033", TestPlatforms.iOS | TestPlatforms.tvOS)] public void Clear() { ProjectData.ClearProjectError(); diff --git a/src/libraries/System.ComponentModel.Composition/tests/AssemblyInfo.cs b/src/libraries/System.ComponentModel.Composition/tests/AssemblyInfo.cs index 243d54910ab0d3..70ee9205dc313d 100644 --- a/src/libraries/System.ComponentModel.Composition/tests/AssemblyInfo.cs +++ b/src/libraries/System.ComponentModel.Composition/tests/AssemblyInfo.cs @@ -1,6 +1,8 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System; using Xunit; [assembly: ActiveIssue("https://github.com/mono/mono/issues/16417", TestRuntimes.Mono)] // flaky tests. Note: remove IgnoreForCI from .csproj when reenabling +[assembly: ActiveIssue("https://github.com/dotnet/runtime/pull/123033", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobileCoreCLR))] diff --git a/src/libraries/System.Composition/tests/AssemblyInfo.cs b/src/libraries/System.Composition/tests/AssemblyInfo.cs new file mode 100644 index 00000000000000..8f6c1b53810c9b --- /dev/null +++ b/src/libraries/System.Composition/tests/AssemblyInfo.cs @@ -0,0 +1,7 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using Xunit; + +[assembly: ActiveIssue("https://github.com/dotnet/runtime/pull/123033", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobileCoreCLR))] diff --git a/src/libraries/System.Data.Common/tests/AssemblyInfo.cs b/src/libraries/System.Data.Common/tests/AssemblyInfo.cs new file mode 100644 index 00000000000000..8f6c1b53810c9b --- /dev/null +++ b/src/libraries/System.Data.Common/tests/AssemblyInfo.cs @@ -0,0 +1,7 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using Xunit; + +[assembly: ActiveIssue("https://github.com/dotnet/runtime/pull/123033", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobileCoreCLR))] diff --git a/src/libraries/System.Diagnostics.DiagnosticSource/tests/TestWithConfigSwitches/AssemblyInfo.cs b/src/libraries/System.Diagnostics.DiagnosticSource/tests/TestWithConfigSwitches/AssemblyInfo.cs new file mode 100644 index 00000000000000..8f6c1b53810c9b --- /dev/null +++ b/src/libraries/System.Diagnostics.DiagnosticSource/tests/TestWithConfigSwitches/AssemblyInfo.cs @@ -0,0 +1,7 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using Xunit; + +[assembly: ActiveIssue("https://github.com/dotnet/runtime/pull/123033", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobileCoreCLR))] diff --git a/src/libraries/System.Diagnostics.FileVersionInfo/tests/System.Diagnostics.FileVersionInfo.Tests/FileVersionInfoTest.cs b/src/libraries/System.Diagnostics.FileVersionInfo/tests/System.Diagnostics.FileVersionInfo.Tests/FileVersionInfoTest.cs index bea5e9ad912fb8..5642318e57d784 100644 --- a/src/libraries/System.Diagnostics.FileVersionInfo/tests/System.Diagnostics.FileVersionInfo.Tests/FileVersionInfoTest.cs +++ b/src/libraries/System.Diagnostics.FileVersionInfo/tests/System.Diagnostics.FileVersionInfo.Tests/FileVersionInfoTest.cs @@ -18,6 +18,7 @@ public partial class FileVersionInfoTest : FileCleanupTestBase private const string TestNotFoundFileName = "notfound.dll"; [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/pull/123033", TestPlatforms.iOS | TestPlatforms.tvOS)] public void FileVersionInfo_CustomManagedAssembly() { // Assembly1.dll diff --git a/src/libraries/System.Diagnostics.Tracing/tests/AssemblyInfo.cs b/src/libraries/System.Diagnostics.Tracing/tests/AssemblyInfo.cs new file mode 100644 index 00000000000000..8f6c1b53810c9b --- /dev/null +++ b/src/libraries/System.Diagnostics.Tracing/tests/AssemblyInfo.cs @@ -0,0 +1,7 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using Xunit; + +[assembly: ActiveIssue("https://github.com/dotnet/runtime/pull/123033", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobileCoreCLR))] diff --git a/src/libraries/System.Linq.Queryable/tests/TrimCompatibilityTests.cs b/src/libraries/System.Linq.Queryable/tests/TrimCompatibilityTests.cs index 89021695eb35d3..d52c62263e41ec 100644 --- a/src/libraries/System.Linq.Queryable/tests/TrimCompatibilityTests.cs +++ b/src/libraries/System.Linq.Queryable/tests/TrimCompatibilityTests.cs @@ -18,6 +18,7 @@ public class TrimCompatibilityTests [Fact] [ActiveIssue("https://github.com/dotnet/runtime/issues/50712", typeof(PlatformDetection), nameof(PlatformDetection.IsBuiltWithAggressiveTrimming), nameof(PlatformDetection.IsBrowser))] [ActiveIssue("https://github.com/dotnet/runtime/issues/50712", typeof(PlatformDetection), nameof(PlatformDetection.IsMonoRuntime), nameof(PlatformDetection.IsBuiltWithAggressiveTrimming), nameof(PlatformDetection.IsAppleMobile))] + [ActiveIssue("https://github.com/dotnet/runtime/pull/123033", TestPlatforms.iOS | TestPlatforms.tvOS)] public static void QueryableMethodsContainCorrectDynamicDependency() { IEnumerable dependentMethods = diff --git a/src/libraries/System.Numerics.Tensors/tests/TensorPrimitives.Generic.cs b/src/libraries/System.Numerics.Tensors/tests/TensorPrimitives.Generic.cs index e1e04b78853257..ea8703528e583f 100644 --- a/src/libraries/System.Numerics.Tensors/tests/TensorPrimitives.Generic.cs +++ b/src/libraries/System.Numerics.Tensors/tests/TensorPrimitives.Generic.cs @@ -571,6 +571,7 @@ public void SpanDestinationFunctions_SpecialValues(SpanDestinationDelegate tenso [Theory] [MemberData(nameof(SpanDestinationFunctionsToTest))] + [ActiveIssue("https://github.com/dotnet/runtime/pull/123033", TestPlatforms.iOS | TestPlatforms.tvOS)] public void SpanDestinationFunctions_ValueRange(SpanDestinationDelegate tensorPrimitivesMethod, Func expectedMethod, T? tolerance = null) { Assert.All(VectorLengthAndIteratedRange(ConvertFromSingle(-100f), ConvertFromSingle(100f), ConvertFromSingle(3f)), arg => diff --git a/src/libraries/System.ObjectModel/tests/ObservableCollection/ObservableCollection_Serialization.cs b/src/libraries/System.ObjectModel/tests/ObservableCollection/ObservableCollection_Serialization.cs index 22179a67a5129a..53d3673fcdc879 100644 --- a/src/libraries/System.ObjectModel/tests/ObservableCollection/ObservableCollection_Serialization.cs +++ b/src/libraries/System.ObjectModel/tests/ObservableCollection/ObservableCollection_Serialization.cs @@ -29,6 +29,7 @@ public void SerializeDeserialize_Roundtrips(ObservableCollection c) [Fact] [ActiveIssue("https://github.com/dotnet/runtime/issues/57588", typeof(PlatformDetection), nameof(PlatformDetection.IsBuiltWithAggressiveTrimming), nameof(PlatformDetection.IsBrowser))] [ActiveIssue("https://github.com/dotnet/runtime/issues/57588", typeof(PlatformDetection), nameof(PlatformDetection.IsMonoRuntime), nameof(PlatformDetection.IsBuiltWithAggressiveTrimming), nameof(PlatformDetection.IsAppleMobile))] + [ActiveIssue("https://github.com/dotnet/runtime/pull/123033", TestPlatforms.iOS | TestPlatforms.tvOS)] public void OnDeserialized_MonitorNotInitialized_ExpectSuccess() { var observableCollection = new ObservableCollection(); diff --git a/src/libraries/System.Private.Xml/tests/XmlSerializer/XmlSerializerTests.cs b/src/libraries/System.Private.Xml/tests/XmlSerializer/XmlSerializerTests.cs index 9df315cac1a6d3..223e3a6ba8cd75 100644 --- a/src/libraries/System.Private.Xml/tests/XmlSerializer/XmlSerializerTests.cs +++ b/src/libraries/System.Private.Xml/tests/XmlSerializer/XmlSerializerTests.cs @@ -2568,6 +2568,7 @@ public static void Xml_TypeWithSpecialCharacterInStringMember() [SkipOnPlatform(TestPlatforms.Browser, "AssemblyDependencyResolver not supported in wasm")] #endif [ActiveIssue("https://github.com/dotnet/runtime/issues/34072", TestRuntimes.Mono)] + [ActiveIssue("https://github.com/dotnet/runtime/pull/123033", TestPlatforms.iOS | TestPlatforms.tvOS)] public static void Xml_TypeInCollectibleALC() { ExecuteAndUnload("SerializableAssembly.dll", "SerializationTypes.SimpleType", out var weakRef); diff --git a/src/libraries/System.Reflection.Metadata/tests/Metadata/Decoding/CustomAttributeDecoderTests.cs b/src/libraries/System.Reflection.Metadata/tests/Metadata/Decoding/CustomAttributeDecoderTests.cs index b697f7fadab38d..de5f06324bb6f7 100644 --- a/src/libraries/System.Reflection.Metadata/tests/Metadata/Decoding/CustomAttributeDecoderTests.cs +++ b/src/libraries/System.Reflection.Metadata/tests/Metadata/Decoding/CustomAttributeDecoderTests.cs @@ -86,6 +86,7 @@ public void TestCustomAttributeDecoder() [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.HasAssemblyFiles))] [ActiveIssue("https://github.com/dotnet/runtime/issues/73593", TestRuntimes.Mono)] + [ActiveIssue("https://github.com/dotnet/runtime/pull/123033", TestPlatforms.iOS | TestPlatforms.tvOS)] public void TestCustomAttributeDecoderUsingReflection() { Type type = typeof(HasAttributes); diff --git a/src/libraries/System.Reflection.Metadata/tests/Metadata/Decoding/SignatureDecoderTests.cs b/src/libraries/System.Reflection.Metadata/tests/Metadata/Decoding/SignatureDecoderTests.cs index bcb6661e6ef2c5..8cd5d3bd27215f 100644 --- a/src/libraries/System.Reflection.Metadata/tests/Metadata/Decoding/SignatureDecoderTests.cs +++ b/src/libraries/System.Reflection.Metadata/tests/Metadata/Decoding/SignatureDecoderTests.cs @@ -131,6 +131,7 @@ public static void VarArgsCaller() // Test as much as we can with simple C# examples inline below. [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.HasAssemblyFiles))] [ActiveIssue("https://github.com/dotnet/runtime/issues/91923", typeof(PlatformDetection), nameof(PlatformDetection.IsMonoRuntime), nameof(PlatformDetection.IsBuiltWithAggressiveTrimming), nameof(PlatformDetection.IsAppleMobile))] + [ActiveIssue("https://github.com/dotnet/runtime/pull/123033", TestPlatforms.iOS | TestPlatforms.tvOS)] public void SimpleSignatureProviderCoverage() { using (FileStream stream = File.OpenRead(AssemblyPathHelper.GetAssemblyLocation(typeof(SignaturesToDecode<>).GetTypeInfo().Assembly))) diff --git a/src/libraries/System.Reflection.MetadataLoadContext/tests/src/Tests/CustomAttributes/DllImportTests.cs b/src/libraries/System.Reflection.MetadataLoadContext/tests/src/Tests/CustomAttributes/DllImportTests.cs index 0c4a50248db28b..44c3cfd37f3a89 100644 --- a/src/libraries/System.Reflection.MetadataLoadContext/tests/src/Tests/CustomAttributes/DllImportTests.cs +++ b/src/libraries/System.Reflection.MetadataLoadContext/tests/src/Tests/CustomAttributes/DllImportTests.cs @@ -48,6 +48,7 @@ private static void AssertEqual(DllImportAttribute d1, DllImportAttribute d2) [Theory] [ActiveIssue("https://github.com/mono/mono/issues/15340", TestRuntimes.Mono)] + [ActiveIssue("https://github.com/dotnet/runtime/pull/123033", TestPlatforms.iOS | TestPlatforms.tvOS)] [MemberData(nameof(MarshalAsTheoryData))] public static void TestMarshalAsPseudoCustomAttribute(string fieldName, MarshalAsAttribute expected) { diff --git a/src/libraries/System.Runtime.Loader/tests/AssemblyInfo.cs b/src/libraries/System.Runtime.Loader/tests/AssemblyInfo.cs new file mode 100644 index 00000000000000..8f6c1b53810c9b --- /dev/null +++ b/src/libraries/System.Runtime.Loader/tests/AssemblyInfo.cs @@ -0,0 +1,7 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using Xunit; + +[assembly: ActiveIssue("https://github.com/dotnet/runtime/pull/123033", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobileCoreCLR))] diff --git a/src/libraries/System.Runtime.Loader/tests/RefEmitLoadContext/AssemblyInfo.cs b/src/libraries/System.Runtime.Loader/tests/RefEmitLoadContext/AssemblyInfo.cs new file mode 100644 index 00000000000000..8f6c1b53810c9b --- /dev/null +++ b/src/libraries/System.Runtime.Loader/tests/RefEmitLoadContext/AssemblyInfo.cs @@ -0,0 +1,7 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using Xunit; + +[assembly: ActiveIssue("https://github.com/dotnet/runtime/pull/123033", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobileCoreCLR))] diff --git a/src/libraries/System.Runtime/tests/System.Dynamic.Runtime.Tests/AssemblyInfo.cs b/src/libraries/System.Runtime/tests/System.Dynamic.Runtime.Tests/AssemblyInfo.cs new file mode 100644 index 00000000000000..8f6c1b53810c9b --- /dev/null +++ b/src/libraries/System.Runtime/tests/System.Dynamic.Runtime.Tests/AssemblyInfo.cs @@ -0,0 +1,7 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using Xunit; + +[assembly: ActiveIssue("https://github.com/dotnet/runtime/pull/123033", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobileCoreCLR))] diff --git a/src/libraries/System.Runtime/tests/System.Globalization.Calendars.Tests/CalendarTestWithConfigSwitch/AssemblyInfo.cs b/src/libraries/System.Runtime/tests/System.Globalization.Calendars.Tests/CalendarTestWithConfigSwitch/AssemblyInfo.cs new file mode 100644 index 00000000000000..8f6c1b53810c9b --- /dev/null +++ b/src/libraries/System.Runtime/tests/System.Globalization.Calendars.Tests/CalendarTestWithConfigSwitch/AssemblyInfo.cs @@ -0,0 +1,7 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using Xunit; + +[assembly: ActiveIssue("https://github.com/dotnet/runtime/pull/123033", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobileCoreCLR))] diff --git a/src/libraries/System.Runtime/tests/System.IO.FileSystem.Tests/DisabledFileLockingTests/DisabledFileLockingSwitchTests.cs b/src/libraries/System.Runtime/tests/System.IO.FileSystem.Tests/DisabledFileLockingTests/DisabledFileLockingSwitchTests.cs index 06495b535242fb..fa9e9ee44995c8 100644 --- a/src/libraries/System.Runtime/tests/System.IO.FileSystem.Tests/DisabledFileLockingTests/DisabledFileLockingSwitchTests.cs +++ b/src/libraries/System.Runtime/tests/System.IO.FileSystem.Tests/DisabledFileLockingTests/DisabledFileLockingSwitchTests.cs @@ -9,6 +9,7 @@ namespace System.IO.Tests public class DisabledFileLockingSwitchTests { [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/pull/123033", TestPlatforms.iOS | TestPlatforms.tvOS)] public static void ConfigSwitchIsHonored() { Assert.Equal(OperatingSystem.IsWindows(), PlatformDetection.IsFileLockingEnabled); diff --git a/src/libraries/System.Runtime/tests/System.Runtime.Extensions.Tests/System/EnvironmentTests.cs b/src/libraries/System.Runtime/tests/System.Runtime.Extensions.Tests/System/EnvironmentTests.cs index b8d49982005c21..4bd6ced4aa6246 100644 --- a/src/libraries/System.Runtime/tests/System.Runtime.Extensions.Tests/System/EnvironmentTests.cs +++ b/src/libraries/System.Runtime/tests/System.Runtime.Extensions.Tests/System/EnvironmentTests.cs @@ -222,6 +222,7 @@ public void UserInteractive_WindowsNano() } [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/pull/123033", TestPlatforms.iOS | TestPlatforms.tvOS)] public void Version_Valid() { Assert.Equal(Version.Parse((string)AppContext.GetData("System.Runtime.Extensions.Tests.EnvironmentTests.ExpectedVersion")), Environment.Version); diff --git a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Attributes.cs b/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Attributes.cs index 3784d52cfcaa0b..6001024b2a7260 100644 --- a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Attributes.cs +++ b/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/Attributes.cs @@ -334,6 +334,7 @@ public static class GetCustomAttribute [Fact] [ActiveIssue("https://github.com/dotnet/linker/issues/2078", typeof(PlatformDetection), nameof(PlatformDetection.IsTrimmedWithILLink)) /* Stripping security attributes removes UnverifiableCodeAttribute */] + [ActiveIssue("https://github.com/dotnet/runtime/pull/123033", TestPlatforms.iOS | TestPlatforms.tvOS)] public static void customAttributeCount() { List customAttributes = typeof(GetCustomAttribute).Module.CustomAttributes.ToList(); diff --git a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/NullableMetadataTests.cs b/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/NullableMetadataTests.cs index 24a1de935ad2f2..2df0a853499bf0 100644 --- a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/NullableMetadataTests.cs +++ b/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/NullableMetadataTests.cs @@ -133,6 +133,7 @@ public static void NullableAttributesOnPublicApiOnly(Type type) [InlineData("mscorlib")] [InlineData("System.Threading.Overlapped")] [ActiveIssue("https://github.com/dotnet/runtime/issues/99592", typeof(PlatformDetection), nameof(PlatformDetection.IsMonoRuntime), nameof(PlatformDetection.IsBuiltWithAggressiveTrimming), nameof(PlatformDetection.IsAppleMobile))] + [ActiveIssue("https://github.com/dotnet/runtime/pull/123033", TestPlatforms.iOS | TestPlatforms.tvOS)] public static void ShimsHaveOnlyTypeForwards(string assemblyName) { Assembly assembly = Assembly.Load(assemblyName); diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index 7f94b863343adc..f12a005ae415f8 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -644,6 +644,24 @@ + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - @@ -642,6 +642,9 @@ + + + + + + + + + + + + Date: Thu, 12 Feb 2026 09:59:00 +0100 Subject: [PATCH 36/45] Add dynamic app context properties --- .../AppleAppBuilder/AppleAppBuilder.csproj | 1 + .../Templates/runtime-coreclr.m | 37 +++++---- src/tasks/AppleAppBuilder/Xcode.cs | 83 ++++++++++++++++++- 3 files changed, 105 insertions(+), 16 deletions(-) diff --git a/src/tasks/AppleAppBuilder/AppleAppBuilder.csproj b/src/tasks/AppleAppBuilder/AppleAppBuilder.csproj index 1a6f333f72d2d6..50c08de42e0b37 100644 --- a/src/tasks/AppleAppBuilder/AppleAppBuilder.csproj +++ b/src/tasks/AppleAppBuilder/AppleAppBuilder.csproj @@ -2,6 +2,7 @@ $(NetCoreAppToolCurrent) + true $(NoWarn),CA1050,CA1850 $(DefaultExcludesInProjectFolder);Templates\*.* diff --git a/src/tasks/AppleAppBuilder/Templates/runtime-coreclr.m b/src/tasks/AppleAppBuilder/Templates/runtime-coreclr.m index 938de5423105c6..10b0e44e5d437e 100644 --- a/src/tasks/AppleAppBuilder/Templates/runtime-coreclr.m +++ b/src/tasks/AppleAppBuilder/Templates/runtime-coreclr.m @@ -196,25 +196,32 @@ bool get_native_code_data(const struct host_runtime_contract_native_code_context char contract_str[19]; // 0x + 16 hex digits + '\0' snprintf(contract_str, 19, "0x%zx", (size_t)(&host_contract)); - // TODO: set TRUSTED_PLATFORM_ASSEMBLIES, APP_PATHS and NATIVE_DLL_SEARCH_DIRECTORIES - const char *appctx_keys [] = { - "RUNTIME_IDENTIFIER", - "APP_CONTEXT_BASE_DIRECTORY", - "TRUSTED_PLATFORM_ASSEMBLIES", - "HOST_RUNTIME_CONTRACT", +#if defined(INVARIANT_GLOBALIZATION) +#define PROPERTY_COUNT %AppContextPropertyCount_InvariantGlobalization% +#else +#define PROPERTY_COUNT %AppContextPropertyCount% +#endif + + // Hardcoded properties + runtime config properties (generated at build time) + const char *appctx_keys[PROPERTY_COUNT]; + appctx_keys[0] = "RUNTIME_IDENTIFIER"; + appctx_keys[1] = "APP_CONTEXT_BASE_DIRECTORY"; + appctx_keys[2] = "TRUSTED_PLATFORM_ASSEMBLIES"; + appctx_keys[3] = "HOST_RUNTIME_CONTRACT"; #if !defined(INVARIANT_GLOBALIZATION) - "ICU_DAT_FILE_PATH" + appctx_keys[4] = "ICU_DAT_FILE_PATH"; #endif - }; - const char *appctx_values [] = { - APPLE_RUNTIME_IDENTIFIER, - bundle, - compute_trusted_platform_assemblies(), - contract_str, +%AppContextKeys% + + const char *appctx_values[PROPERTY_COUNT]; + appctx_values[0] = APPLE_RUNTIME_IDENTIFIER; + appctx_values[1] = bundle; + appctx_values[2] = compute_trusted_platform_assemblies(); + appctx_values[3] = contract_str; #if !defined(INVARIANT_GLOBALIZATION) - icu_dat_path + appctx_values[4] = icu_dat_path; #endif - }; +%AppContextValues% const char* executable = "%EntryPointLibName%"; const char *executablePath = [[[[NSBundle mainBundle] executableURL] path] UTF8String]; diff --git a/src/tasks/AppleAppBuilder/Xcode.cs b/src/tasks/AppleAppBuilder/Xcode.cs index e644aefc6ed498..89d4f19a4102db 100644 --- a/src/tasks/AppleAppBuilder/Xcode.cs +++ b/src/tasks/AppleAppBuilder/Xcode.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; +using System.Reflection.Metadata; using System.Text; using Microsoft.Build.Framework; using Microsoft.Build.Utilities; @@ -621,12 +622,18 @@ public string GenerateCMake( File.WriteAllText(Path.Combine(binDir, "host_runtime_contract.h"), Utils.GetEmbeddedResource("host_runtime_contract.h")); + var (appContextKeys, appContextValues, propertyCount, propertyCountInvariant) = RenderCoreClrRuntimeConfigProperties(workspace); + // NOTE: Library mode is not supported yet File.WriteAllText(Path.Combine(binDir, "runtime.m"), Utils.GetEmbeddedResource("runtime-coreclr.m") .Replace("//%APPLE_RUNTIME_IDENTIFIER%", RuntimeIdentifier) .Replace("%EntryPointLibName%", Path.GetFileName(entryPointLib)) - .Replace("%EnvVariables%", envVariables)); + .Replace("%EnvVariables%", envVariables) + .Replace("%AppContextPropertyCount%", propertyCount.ToString()) + .Replace("%AppContextPropertyCount_InvariantGlobalization%", propertyCountInvariant.ToString()) + .Replace("%AppContextKeys%", appContextKeys) + .Replace("%AppContextValues%", appContextValues)); } } @@ -756,4 +763,78 @@ public static string GetAppPath(string appDirectory, string xcodePrjPath) { return Path.Combine(appDirectory, Path.GetFileNameWithoutExtension(xcodePrjPath) + ".app"); } + + private (string appContextKeys, string appContextValues, int propertyCount, int propertyCountInvariant) RenderCoreClrRuntimeConfigProperties(string workspace) + { + Dictionary configProperties = ParseRuntimeConfigProperties(workspace); + + // Hardcoded properties count: + // - RUNTIME_IDENTIFIER, APP_CONTEXT_BASE_DIRECTORY, TRUSTED_PLATFORM_ASSEMBLIES, HOST_RUNTIME_CONTRACT = 4 + // - ICU_DAT_FILE_PATH (only when !INVARIANT_GLOBALIZATION) = 1 + const int hardcodedPropertiesWithIcu = 5; + const int hardcodedPropertiesWithoutIcu = 4; + + var appContextKeys = new StringBuilder(); + var appContextValues = new StringBuilder(); + + int i = 0; + foreach ((string key, string value) in configProperties) + { + appContextKeys.AppendLine($"#if defined(INVARIANT_GLOBALIZATION)"); + appContextKeys.AppendLine($" appctx_keys[{i + hardcodedPropertiesWithoutIcu}] = \"{key}\";"); + appContextKeys.AppendLine($"#else"); + appContextKeys.AppendLine($" appctx_keys[{i + hardcodedPropertiesWithIcu}] = \"{key}\";"); + appContextKeys.AppendLine($"#endif"); + + appContextValues.AppendLine($"#if defined(INVARIANT_GLOBALIZATION)"); + appContextValues.AppendLine($" appctx_values[{i + hardcodedPropertiesWithoutIcu}] = \"{value}\";"); + appContextValues.AppendLine($"#else"); + appContextValues.AppendLine($" appctx_values[{i + hardcodedPropertiesWithIcu}] = \"{value}\";"); + appContextValues.AppendLine($"#endif"); + i++; + } + + int propertyCount = hardcodedPropertiesWithIcu + configProperties.Count; + int propertyCountInvariant = hardcodedPropertiesWithoutIcu + configProperties.Count; + + return (appContextKeys.ToString().TrimEnd(), appContextValues.ToString().TrimEnd(), propertyCount, propertyCountInvariant); + } + + private Dictionary ParseRuntimeConfigProperties(string workspace) + { + var configProperties = new Dictionary(); + string runtimeConfigPath = Path.Combine(workspace, "runtimeconfig.bin"); + + if (!File.Exists(runtimeConfigPath)) + { + return configProperties; + } + + try + { + byte[] fileBytes = File.ReadAllBytes(runtimeConfigPath); + unsafe + { + fixed (byte* ptr = fileBytes) + { + var blobReader = new BlobReader(ptr, fileBytes.Length); + + int count = blobReader.ReadCompressedInteger(); + + for (int i = 0; i < count; i++) + { + string key = blobReader.ReadSerializedString() ?? string.Empty; + string value = blobReader.ReadSerializedString() ?? string.Empty; + configProperties[key] = value; + } + } + } + } + catch (Exception ex) + { + Logger.LogMessage(MessageImportance.High, $"Error while parsing runtime config at {runtimeConfigPath}: {ex.Message}"); + } + + return configProperties; + } } From dde4685e050f2f8f0d00f0215afddc84924a3f1b Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 13 Feb 2026 11:18:46 +0100 Subject: [PATCH 37/45] Update ActiveIssue references for Apple Mobile platform in various tests --- .../runtime-extra-platforms-maccatalyst.yml | 4 ++-- .../Microsoft.VisualBasic.Core/tests/ErrObjectTests.cs | 2 +- .../tests/BitArray/BitArray_CtorTests.cs | 1 + .../tests/System/Data/XmlDataReaderTest.cs | 2 +- .../tests/StackFrameTests.cs | 2 +- .../tests/TensorPrimitives.Generic.cs | 2 +- .../Readers/CharCheckingReader/CharReaderTests.cs | 1 + .../tests/XmlSerializer/XmlSerializerTests.cs | 1 + .../tests/src/Tests/CustomAttributes/DllImportTests.cs | 2 +- .../tests/RefEmitLoadContext/RefEmitLoadContextTest.cs | 2 +- .../System/DoubleTests.GenericMath.cs | 2 +- .../System.Runtime.Tests/System/ExceptionTests.cs | 4 ++-- .../System/NullableMetadataTests.cs | 2 +- .../System/SingleTests.GenericMath.cs | 2 +- src/libraries/tests.proj | 10 +++++++++- 15 files changed, 25 insertions(+), 14 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml index 8fdb9b54418fc0..d0dfeff5771b07 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml @@ -216,7 +216,7 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - # - maccatalyst_x64 TODO: https://github.com/dotnet/runtime/issues/120055 + # - maccatalyst_x64 TODO: https://github.com/dotnet/runtime/issues/124344 - maccatalyst_arm64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: @@ -259,7 +259,7 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isMacCatalystOnlyBuild: ${{ parameters.isMacCatalystOnlyBuild }} platforms: - # - maccatalyst_x64 TODO: https://github.com/dotnet/runtime/issues/120055 + # - maccatalyst_x64 TODO: https://github.com/dotnet/runtime/issues/124344 - maccatalyst_arm64 variables: # map dependencies variables to local variables diff --git a/src/libraries/Microsoft.VisualBasic.Core/tests/ErrObjectTests.cs b/src/libraries/Microsoft.VisualBasic.Core/tests/ErrObjectTests.cs index 04c561c1ef5d54..384d0b227bc83c 100644 --- a/src/libraries/Microsoft.VisualBasic.Core/tests/ErrObjectTests.cs +++ b/src/libraries/Microsoft.VisualBasic.Core/tests/ErrObjectTests.cs @@ -12,7 +12,7 @@ public class ErrObjectTests [Fact] [ActiveIssue("https://github.com/mono/mono/issues/14854", typeof(PlatformDetection), nameof(PlatformDetection.IsSingleFile))] [ActiveIssue("https://github.com/mono/mono/issues/14854", TestRuntimes.Mono)] - [ActiveIssue("https://github.com/dotnet/runtime/issues/120055", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile))] public void Clear() { ProjectData.ClearProjectError(); diff --git a/src/libraries/System.Collections/tests/BitArray/BitArray_CtorTests.cs b/src/libraries/System.Collections/tests/BitArray/BitArray_CtorTests.cs index 199b44cd04aa86..1239e9c201c92f 100644 --- a/src/libraries/System.Collections/tests/BitArray/BitArray_CtorTests.cs +++ b/src/libraries/System.Collections/tests/BitArray/BitArray_CtorTests.cs @@ -271,6 +271,7 @@ public static void Ctor_Simple_Method_Tests() } [Fact] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile), nameof(PlatformDetection.IsCoreCLR))] public static void Clone_LongLength_Works() { BitArray bitArray = new BitArray(int.MaxValue - 30); diff --git a/src/libraries/System.Data.Common/tests/System/Data/XmlDataReaderTest.cs b/src/libraries/System.Data.Common/tests/System/Data/XmlDataReaderTest.cs index 6de3301b4f018c..4647ec61cd9991 100644 --- a/src/libraries/System.Data.Common/tests/System/Data/XmlDataReaderTest.cs +++ b/src/libraries/System.Data.Common/tests/System/Data/XmlDataReaderTest.cs @@ -36,7 +36,7 @@ public class XmlDataReaderTest { [Fact] [ActiveIssue("https://github.com/dotnet/runtime/issues/51369", typeof(PlatformDetection), nameof(PlatformDetection.IsBuiltWithAggressiveTrimming), nameof(PlatformDetection.IsBrowser))] - [ActiveIssue("https://github.com/dotnet/runtime/issues/51369", typeof(PlatformDetection), nameof(PlatformDetection.IsMonoRuntime), nameof(PlatformDetection.IsBuiltWithAggressiveTrimming), nameof(PlatformDetection.IsAppleMobile))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/51369", typeof(PlatformDetection), nameof(PlatformDetection.IsBuiltWithAggressiveTrimming), nameof(PlatformDetection.IsAppleMobile))] public void XmlLoadTest() { var ds = new DataSet(); diff --git a/src/libraries/System.Diagnostics.StackTrace/tests/StackFrameTests.cs b/src/libraries/System.Diagnostics.StackTrace/tests/StackFrameTests.cs index d77dc8f18676f1..02689dede3a119 100644 --- a/src/libraries/System.Diagnostics.StackTrace/tests/StackFrameTests.cs +++ b/src/libraries/System.Diagnostics.StackTrace/tests/StackFrameTests.cs @@ -37,7 +37,7 @@ public void Ctor_FNeedFileInfo(bool fNeedFileInfo) [Theory] [ActiveIssue("https://github.com/mono/mono/issues/15187", TestRuntimes.Mono)] - [ActiveIssue("https://github.com/dotnet/runtime/issues/120055", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile))] [InlineData(StackFrame.OFFSET_UNKNOWN, true)] [InlineData(0, true)] [InlineData(1, true)] diff --git a/src/libraries/System.Numerics.Tensors/tests/TensorPrimitives.Generic.cs b/src/libraries/System.Numerics.Tensors/tests/TensorPrimitives.Generic.cs index f8abd593801a81..f9c9472d2ad207 100644 --- a/src/libraries/System.Numerics.Tensors/tests/TensorPrimitives.Generic.cs +++ b/src/libraries/System.Numerics.Tensors/tests/TensorPrimitives.Generic.cs @@ -570,7 +570,7 @@ public void SpanDestinationFunctions_SpecialValues(SpanDestinationDelegate tenso } [Theory] - [ActiveIssue("https://github.com/dotnet/runtime/issues/120055", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile), nameof(PlatformDetection.IsCoreCLR))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile))] [MemberData(nameof(SpanDestinationFunctionsToTest))] public void SpanDestinationFunctions_ValueRange(SpanDestinationDelegate tensorPrimitivesMethod, Func expectedMethod, T? tolerance = null) { diff --git a/src/libraries/System.Private.Xml/tests/Readers/CharCheckingReader/CharReaderTests.cs b/src/libraries/System.Private.Xml/tests/Readers/CharCheckingReader/CharReaderTests.cs index 479c514497be50..3d492904ae48e6 100644 --- a/src/libraries/System.Private.Xml/tests/Readers/CharCheckingReader/CharReaderTests.cs +++ b/src/libraries/System.Private.Xml/tests/Readers/CharCheckingReader/CharReaderTests.cs @@ -11,6 +11,7 @@ public partial class CharCheckingReaderTest : CGenericTestModule { [Theory] [XmlTests(nameof(Create))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile))] public void RunTests(XunitTestCase testCase) { testCase.Run(); diff --git a/src/libraries/System.Private.Xml/tests/XmlSerializer/XmlSerializerTests.cs b/src/libraries/System.Private.Xml/tests/XmlSerializer/XmlSerializerTests.cs index d6e545f45a5a76..b785bb464df766 100644 --- a/src/libraries/System.Private.Xml/tests/XmlSerializer/XmlSerializerTests.cs +++ b/src/libraries/System.Private.Xml/tests/XmlSerializer/XmlSerializerTests.cs @@ -2569,6 +2569,7 @@ public static void Xml_TypeWithSpecialCharacterInStringMember() #endif [ActiveIssue("https://github.com/dotnet/runtime/issues/34072", TestRuntimes.Mono)] [ActiveIssue("https://github.com/dotnet/runtime/issues/95928", typeof(PlatformDetection), nameof(PlatformDetection.IsReadyToRunCompiled))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile))] public static void Xml_TypeInCollectibleALC() { ExecuteAndUnload("SerializableAssembly.dll", "SerializationTypes.SimpleType", out var weakRef); diff --git a/src/libraries/System.Reflection.MetadataLoadContext/tests/src/Tests/CustomAttributes/DllImportTests.cs b/src/libraries/System.Reflection.MetadataLoadContext/tests/src/Tests/CustomAttributes/DllImportTests.cs index 06c8498a51e405..5b89bb1b7fcfbd 100644 --- a/src/libraries/System.Reflection.MetadataLoadContext/tests/src/Tests/CustomAttributes/DllImportTests.cs +++ b/src/libraries/System.Reflection.MetadataLoadContext/tests/src/Tests/CustomAttributes/DllImportTests.cs @@ -48,7 +48,7 @@ private static void AssertEqual(DllImportAttribute d1, DllImportAttribute d2) [Theory] [ActiveIssue("https://github.com/mono/mono/issues/15340", TestRuntimes.Mono)] - [ActiveIssue("https://github.com/dotnet/runtime/issues/120055", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile))] [MemberData(nameof(MarshalAsTheoryData))] public static void TestMarshalAsPseudoCustomAttribute(string fieldName, MarshalAsAttribute expected) { diff --git a/src/libraries/System.Runtime.Loader/tests/RefEmitLoadContext/RefEmitLoadContextTest.cs b/src/libraries/System.Runtime.Loader/tests/RefEmitLoadContext/RefEmitLoadContextTest.cs index fdaf92918f1132..29b26dcc1d7215 100644 --- a/src/libraries/System.Runtime.Loader/tests/RefEmitLoadContext/RefEmitLoadContextTest.cs +++ b/src/libraries/System.Runtime.Loader/tests/RefEmitLoadContext/RefEmitLoadContextTest.cs @@ -66,7 +66,7 @@ private static void DeleteDirectory() [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.HasAssemblyFiles))] [ActiveIssue("https://github.com/dotnet/runtime/issues/31804", TestRuntimes.Mono)] - [ActiveIssue("https://github.com/dotnet/runtime/issues/120055", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile))] public static void LoadRefEmitAssembly() { Init(); diff --git a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/DoubleTests.GenericMath.cs b/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/DoubleTests.GenericMath.cs index 58f74f0612ef00..d06f69aecced65 100644 --- a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/DoubleTests.GenericMath.cs +++ b/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/DoubleTests.GenericMath.cs @@ -398,7 +398,7 @@ public static void ConvertToIntegerTest() [Fact] [SkipOnMono("https://github.com/dotnet/runtime/issues/100368")] - [ActiveIssue("https://github.com/dotnet/runtime/issues/120055", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile), nameof(PlatformDetection.IsX64Process), nameof(PlatformDetection.IsCoreCLR))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile), nameof(PlatformDetection.IsX64Process), nameof(PlatformDetection.IsCoreCLR))] [ActiveIssue("https://github.com/dotnet/runtime/issues/123011", typeof(PlatformDetection), nameof(PlatformDetection.IsBrowser), nameof(PlatformDetection.IsCoreCLR))] public static void ConvertToIntegerNativeTest() { diff --git a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/ExceptionTests.cs b/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/ExceptionTests.cs index 7fd603f15c48b9..843813a14997a4 100644 --- a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/ExceptionTests.cs +++ b/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/ExceptionTests.cs @@ -109,7 +109,7 @@ public static void Exception_TargetSite_Rethrow() [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.HasAssemblyFiles))] [ActiveIssue("https://github.com/mono/mono/issues/15140", TestRuntimes.Mono)] - [ActiveIssue("https://github.com/dotnet/runtime/issues/120055", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile), nameof(PlatformDetection.IsCoreCLR))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile), nameof(PlatformDetection.IsCoreCLR))] public static void ThrowStatementDoesNotResetExceptionStackLineSameMethod() { (string, string, int) rethrownExceptionStackFrame = (null, null, 0); @@ -140,7 +140,7 @@ private static (string, string, int) ThrowAndRethrowSameMethod(out (string, stri [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.IsNotArm64Process), nameof(PlatformDetection.HasAssemblyFiles))] // [ActiveIssue(https://github.com/dotnet/runtime/issues/1871)] can't use ActiveIssue for archs [ActiveIssue("https://github.com/mono/mono/issues/15141", TestRuntimes.Mono)] - [ActiveIssue("https://github.com/dotnet/runtime/issues/120055", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile), nameof(PlatformDetection.IsX64Process), nameof(PlatformDetection.IsCoreCLR))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile), nameof(PlatformDetection.IsX64Process), nameof(PlatformDetection.IsCoreCLR))] public static void ThrowStatementDoesNotResetExceptionStackLineOtherMethod() { (string, string, int) rethrownExceptionStackFrame = (null, null, 0); diff --git a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/NullableMetadataTests.cs b/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/NullableMetadataTests.cs index 24a1de935ad2f2..2e560b1aca8c7e 100644 --- a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/NullableMetadataTests.cs +++ b/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/NullableMetadataTests.cs @@ -132,7 +132,7 @@ public static void NullableAttributesOnPublicApiOnly(Type type) [Theory] [InlineData("mscorlib")] [InlineData("System.Threading.Overlapped")] - [ActiveIssue("https://github.com/dotnet/runtime/issues/99592", typeof(PlatformDetection), nameof(PlatformDetection.IsMonoRuntime), nameof(PlatformDetection.IsBuiltWithAggressiveTrimming), nameof(PlatformDetection.IsAppleMobile))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/99592", typeof(PlatformDetection), nameof(PlatformDetection.IsBuiltWithAggressiveTrimming), nameof(PlatformDetection.IsAppleMobile))] public static void ShimsHaveOnlyTypeForwards(string assemblyName) { Assembly assembly = Assembly.Load(assemblyName); diff --git a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/SingleTests.GenericMath.cs b/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/SingleTests.GenericMath.cs index 8f933956060c30..7cfae48cd6f138 100644 --- a/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/SingleTests.GenericMath.cs +++ b/src/libraries/System.Runtime/tests/System.Runtime.Tests/System/SingleTests.GenericMath.cs @@ -398,7 +398,7 @@ public static void ConvertToIntegerTest() [Fact] [SkipOnMono("https://github.com/dotnet/runtime/issues/100368")] - [ActiveIssue("https://github.com/dotnet/runtime/issues/120055", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile), nameof(PlatformDetection.IsX64Process), nameof(PlatformDetection.IsCoreCLR))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile), nameof(PlatformDetection.IsX64Process), nameof(PlatformDetection.IsCoreCLR))] [ActiveIssue("https://github.com/dotnet/runtime/issues/123011", typeof(PlatformDetection), nameof(PlatformDetection.IsBrowser), nameof(PlatformDetection.IsCoreCLR))] public static void ConvertToIntegerNativeTest() { diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index 0339047878eafa..10ba3be4c90fd2 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -651,9 +651,17 @@ - + + + + + + + + + - From d22e26989e75b395037d7f64567ab92224e5a21b Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 13 Feb 2026 16:04:04 +0100 Subject: [PATCH 39/45] Disable failing tests --- .../runtime-extra-platforms-maccatalyst.yml | 7 ++++--- eng/testing/tests.ioslike.targets | 2 +- eng/testing/tests.targets | 1 - .../Microsoft.VisualBasic.Core/tests/ErrObjectTests.cs | 2 +- .../tests/TensorPrimitives.Generic.cs | 2 +- .../tests/Readers/CharCheckingReader/CharReaderTests.cs | 2 +- .../tests/XmlSerializer/XmlSerializerTests.cs | 2 +- .../tests/Metadata/Decoding/CustomAttributeDecoderTests.cs | 2 +- .../tests/src/Tests/CustomAttributes/DllImportTests.cs | 2 +- .../tests/RefEmitLoadContext/RefEmitLoadContextTest.cs | 2 +- src/libraries/tests.proj | 3 ++- src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj | 6 ------ 12 files changed, 14 insertions(+), 19 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml index d0dfeff5771b07..cdbc5da0ab76e6 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml @@ -216,7 +216,7 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - # - maccatalyst_x64 TODO: https://github.com/dotnet/runtime/issues/124344 + - maccatalyst_x64 - maccatalyst_arm64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: @@ -259,7 +259,7 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isMacCatalystOnlyBuild: ${{ parameters.isMacCatalystOnlyBuild }} platforms: - # - maccatalyst_x64 TODO: https://github.com/dotnet/runtime/issues/124344 + - maccatalyst_x64 - maccatalyst_arm64 variables: # map dependencies variables to local variables @@ -272,7 +272,7 @@ jobs: jobParameters: testGroup: innerloop nameSuffix: AllSubsets_CoreCLR_Smoke - buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false + buildArgs: -s clr+clr.runtime+libs+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true $(_runSmokeTestsOnlyArg) /p:DevTeamProvisioning=adhoc /p:RunAOTCompilation=false /p:UseMonoRuntime=false /p:MonoForceInterpreter=false /p:UseNativeAOTRuntime=false /p:BuildTestsOnHelix=true timeoutInMinutes: 240 # extra steps, run tests postBuildSteps: @@ -280,3 +280,4 @@ jobs: parameters: creator: dotnet-bot testRunNamePrefixSuffix: CoreCLR_$(_BuildConfig) + extraHelixArguments: /p:NeedsToBuildAppsOnHelix=true diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index 34bb5eaf998eea..b05136ec20902c 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -18,7 +18,7 @@ <_AOTBuildCommand>$(_AOTBuildCommand) /p:XHARNESS_EXECUTION_DIR="$XHARNESS_EXECUTION_DIR" /p:RunAOTCompilation=$(RunAOTCompilation) /p:UseNativeAOTRuntime=$(UseNativeAOTRuntime) /p:TargetOS=$(TargetOS) /p:TargetArchitecture=$(TargetArchitecture) /p:UseMonoRuntime=$(UseMonoRuntime) /p:MonoForceInterpreter=$(MonoForceInterpreter) /p:MonoEnableLLVM=true /p:DevTeamProvisioning=$(DevTeamProvisioning) /p:UsePortableRuntimePack=$(UsePortableRuntimePack) /p:Configuration=$(Configuration) <_AOTBuildCommand Condition="'$(NativeLib)' != ''">$(_AOTBuildCommand) /p:NativeLib=$(NativeLib) /p:BundlesResources=$(BundlesResources) /p:ForceLibraryModeGenerateAppBundle=$(ForceLibraryModeGenerateAppBundle) - + <_AOTBuildCommand Condition="'$(UseMonoRuntime)' != 'true' and '$(UseNativeAOTRuntime)' != 'true'">$(_AOTBuildCommand) /p:PublishReadyToRun=true /p:PublishReadyToRunComposite=true /p:PublishReadyToRunContainerFormat=macho /p:StripSymbols=true <_AOTBuildCommand>$(_AOTBuildCommand) diff --git a/eng/testing/tests.targets b/eng/testing/tests.targets index b5d7a21fd55071..c3b67492c40d45 100644 --- a/eng/testing/tests.targets +++ b/eng/testing/tests.targets @@ -9,7 +9,6 @@ and '$(TargetOS)' != 'android' and '$(TargetsAppleMobile)' != 'true' and '$(RuntimeFlavor)' != 'Mono' - and '$(TargetsAppleMobile)' != 'true' and '$(UseRuntimeAsync)' != 'false'"> true $(Features);runtime-async=on diff --git a/src/libraries/Microsoft.VisualBasic.Core/tests/ErrObjectTests.cs b/src/libraries/Microsoft.VisualBasic.Core/tests/ErrObjectTests.cs index 384d0b227bc83c..1d11cfa92aedb2 100644 --- a/src/libraries/Microsoft.VisualBasic.Core/tests/ErrObjectTests.cs +++ b/src/libraries/Microsoft.VisualBasic.Core/tests/ErrObjectTests.cs @@ -12,7 +12,7 @@ public class ErrObjectTests [Fact] [ActiveIssue("https://github.com/mono/mono/issues/14854", typeof(PlatformDetection), nameof(PlatformDetection.IsSingleFile))] [ActiveIssue("https://github.com/mono/mono/issues/14854", TestRuntimes.Mono)] - [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile), nameof(PlatformDetection.IsCoreCLR))] public void Clear() { ProjectData.ClearProjectError(); diff --git a/src/libraries/System.Numerics.Tensors/tests/TensorPrimitives.Generic.cs b/src/libraries/System.Numerics.Tensors/tests/TensorPrimitives.Generic.cs index f9c9472d2ad207..b802e29bb46435 100644 --- a/src/libraries/System.Numerics.Tensors/tests/TensorPrimitives.Generic.cs +++ b/src/libraries/System.Numerics.Tensors/tests/TensorPrimitives.Generic.cs @@ -570,7 +570,7 @@ public void SpanDestinationFunctions_SpecialValues(SpanDestinationDelegate tenso } [Theory] - [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile), nameof(PlatformDetection.IsCoreCLR))] [MemberData(nameof(SpanDestinationFunctionsToTest))] public void SpanDestinationFunctions_ValueRange(SpanDestinationDelegate tensorPrimitivesMethod, Func expectedMethod, T? tolerance = null) { diff --git a/src/libraries/System.Private.Xml/tests/Readers/CharCheckingReader/CharReaderTests.cs b/src/libraries/System.Private.Xml/tests/Readers/CharCheckingReader/CharReaderTests.cs index 3d492904ae48e6..ae95f7c15d7569 100644 --- a/src/libraries/System.Private.Xml/tests/Readers/CharCheckingReader/CharReaderTests.cs +++ b/src/libraries/System.Private.Xml/tests/Readers/CharCheckingReader/CharReaderTests.cs @@ -11,7 +11,7 @@ public partial class CharCheckingReaderTest : CGenericTestModule { [Theory] [XmlTests(nameof(Create))] - [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile), nameof(PlatformDetection.IsCoreCLR))] public void RunTests(XunitTestCase testCase) { testCase.Run(); diff --git a/src/libraries/System.Private.Xml/tests/XmlSerializer/XmlSerializerTests.cs b/src/libraries/System.Private.Xml/tests/XmlSerializer/XmlSerializerTests.cs index b785bb464df766..f380861196348f 100644 --- a/src/libraries/System.Private.Xml/tests/XmlSerializer/XmlSerializerTests.cs +++ b/src/libraries/System.Private.Xml/tests/XmlSerializer/XmlSerializerTests.cs @@ -2569,7 +2569,7 @@ public static void Xml_TypeWithSpecialCharacterInStringMember() #endif [ActiveIssue("https://github.com/dotnet/runtime/issues/34072", TestRuntimes.Mono)] [ActiveIssue("https://github.com/dotnet/runtime/issues/95928", typeof(PlatformDetection), nameof(PlatformDetection.IsReadyToRunCompiled))] - [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile), nameof(PlatformDetection.IsCoreCLR))] public static void Xml_TypeInCollectibleALC() { ExecuteAndUnload("SerializableAssembly.dll", "SerializationTypes.SimpleType", out var weakRef); diff --git a/src/libraries/System.Reflection.Metadata/tests/Metadata/Decoding/CustomAttributeDecoderTests.cs b/src/libraries/System.Reflection.Metadata/tests/Metadata/Decoding/CustomAttributeDecoderTests.cs index 59cf762da518dd..0b7055dc65a04e 100644 --- a/src/libraries/System.Reflection.Metadata/tests/Metadata/Decoding/CustomAttributeDecoderTests.cs +++ b/src/libraries/System.Reflection.Metadata/tests/Metadata/Decoding/CustomAttributeDecoderTests.cs @@ -86,7 +86,7 @@ public void TestCustomAttributeDecoder() [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.HasAssemblyFiles))] [ActiveIssue("https://github.com/dotnet/runtime/issues/73593", TestRuntimes.Mono)] - [ActiveIssue("https://github.com/dotnet/runtime/issues/73593", TestPlatforms.iOS | TestPlatforms.tvOS | TestPlatforms.MacCatalyst)] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile), nameof(PlatformDetection.IsCoreCLR))] public void TestCustomAttributeDecoderUsingReflection() { Type type = typeof(HasAttributes); diff --git a/src/libraries/System.Reflection.MetadataLoadContext/tests/src/Tests/CustomAttributes/DllImportTests.cs b/src/libraries/System.Reflection.MetadataLoadContext/tests/src/Tests/CustomAttributes/DllImportTests.cs index 5b89bb1b7fcfbd..b157e3ac5f1552 100644 --- a/src/libraries/System.Reflection.MetadataLoadContext/tests/src/Tests/CustomAttributes/DllImportTests.cs +++ b/src/libraries/System.Reflection.MetadataLoadContext/tests/src/Tests/CustomAttributes/DllImportTests.cs @@ -48,7 +48,7 @@ private static void AssertEqual(DllImportAttribute d1, DllImportAttribute d2) [Theory] [ActiveIssue("https://github.com/mono/mono/issues/15340", TestRuntimes.Mono)] - [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile), nameof(PlatformDetection.IsCoreCLR))] [MemberData(nameof(MarshalAsTheoryData))] public static void TestMarshalAsPseudoCustomAttribute(string fieldName, MarshalAsAttribute expected) { diff --git a/src/libraries/System.Runtime.Loader/tests/RefEmitLoadContext/RefEmitLoadContextTest.cs b/src/libraries/System.Runtime.Loader/tests/RefEmitLoadContext/RefEmitLoadContextTest.cs index 29b26dcc1d7215..3a728a22d33da9 100644 --- a/src/libraries/System.Runtime.Loader/tests/RefEmitLoadContext/RefEmitLoadContextTest.cs +++ b/src/libraries/System.Runtime.Loader/tests/RefEmitLoadContext/RefEmitLoadContextTest.cs @@ -66,7 +66,7 @@ private static void DeleteDirectory() [ConditionalFact(typeof(PlatformDetection), nameof(PlatformDetection.HasAssemblyFiles))] [ActiveIssue("https://github.com/dotnet/runtime/issues/31804", TestRuntimes.Mono)] - [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile))] + [ActiveIssue("https://github.com/dotnet/runtime/issues/124344", typeof(PlatformDetection), nameof(PlatformDetection.IsAppleMobile), nameof(PlatformDetection.IsCoreCLR))] public static void LoadRefEmitAssembly() { Init(); diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index f0ffdb6db3b276..9cd339dc87afdd 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -643,6 +643,7 @@ + @@ -730,7 +731,7 @@ BuildInParallel="false" /> - + diff --git a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj index 26a7ed52370a4b..309d5b97a52cdc 100644 --- a/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj +++ b/src/mono/msbuild/apple/data/ProxyProjectForAOTOnHelix.proj @@ -112,8 +112,6 @@ <_R2RDylibFiles Include="$(_R2ROutputPath)\*.r2r.dylib" /> - - $(TargetOS)-$(TargetArchitecture) - - <_R2RPublishAssembly Include="$(OriginalPublishDir)*.dll" Exclude="$(OriginalPublishDir)*.resources.dll" /> @@ -152,8 +148,6 @@ - - From df012fec9d7305e1650c7aa2dbdfbe3d0b547565 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Fri, 13 Feb 2026 16:10:08 +0100 Subject: [PATCH 40/45] Fix comment --- .../System.Diagnostics.FileVersionInfo.Tests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libraries/System.Diagnostics.FileVersionInfo/tests/System.Diagnostics.FileVersionInfo.Tests/System.Diagnostics.FileVersionInfo.Tests.csproj b/src/libraries/System.Diagnostics.FileVersionInfo/tests/System.Diagnostics.FileVersionInfo.Tests/System.Diagnostics.FileVersionInfo.Tests.csproj index 2c7f7d2d503a60..c73b220453bdf1 100644 --- a/src/libraries/System.Diagnostics.FileVersionInfo/tests/System.Diagnostics.FileVersionInfo.Tests/System.Diagnostics.FileVersionInfo.Tests.csproj +++ b/src/libraries/System.Diagnostics.FileVersionInfo/tests/System.Diagnostics.FileVersionInfo.Tests/System.Diagnostics.FileVersionInfo.Tests.csproj @@ -41,7 +41,7 @@ - From fbf77f58e55c5007751435981829f39e58e1e090 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 16 Feb 2026 11:52:26 +0100 Subject: [PATCH 41/45] Disable failing tests --- .../extra-platforms/runtime-extra-platforms-maccatalyst.yml | 6 ++++-- eng/testing/tests.ioslike.targets | 1 + src/libraries/tests.proj | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml index cdbc5da0ab76e6..783986f13a73e6 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-maccatalyst.yml @@ -216,7 +216,8 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isiOSLikeOnlyBuild: ${{ parameters.isiOSLikeOnlyBuild }} platforms: - - maccatalyst_x64 + # Tracking issue: https://github.com/dotnet/runtime/issues/124344 + # - maccatalyst_x64 - maccatalyst_arm64 variables: - ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }}: @@ -259,7 +260,8 @@ jobs: isExtraPlatformsBuild: ${{ parameters.isExtraPlatformsBuild }} isMacCatalystOnlyBuild: ${{ parameters.isMacCatalystOnlyBuild }} platforms: - - maccatalyst_x64 + # Tracking issue: https://github.com/dotnet/runtime/issues/124344 + # - maccatalyst_x64 - maccatalyst_arm64 variables: # map dependencies variables to local variables diff --git a/eng/testing/tests.ioslike.targets b/eng/testing/tests.ioslike.targets index b05136ec20902c..5db2b02f21b3b0 100644 --- a/eng/testing/tests.ioslike.targets +++ b/eng/testing/tests.ioslike.targets @@ -132,6 +132,7 @@ <_ApplePropertyNames Include="UseConsoleUITemplate" /> <_ApplePropertyNames Include="UseRuntimeComponents" /> <_ApplePropertyNames Include="_NetCoreAppToolCurrent" /> + <_ApplePropertyNames Include="DynamicCodeSupport" /> <_ApplePropertyNames Include="HybridGlobalization" /> diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index 9cd339dc87afdd..69355f81a34b4c 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -655,6 +655,7 @@ + From a52d6634c49ac00589ca894babe5a5cd9d64e280 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 16 Feb 2026 16:28:05 +0100 Subject: [PATCH 42/45] Enable maccatalyst tests and fix IsCoreCLR property --- .../tests/TestUtilities/System/PlatformDetection.cs | 2 +- src/libraries/tests.proj | 10 +--------- src/tests/Common/CoreCLRTestLibrary/Utilities.cs | 2 +- 3 files changed, 3 insertions(+), 11 deletions(-) diff --git a/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.cs b/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.cs index 8c8968d54bf7de..2bc7753978b819 100644 --- a/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.cs +++ b/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.cs @@ -35,7 +35,7 @@ public static partial class PlatformDetection public static bool IsNotMonoInterpreter => !IsMonoInterpreter; public static bool IsMonoAOT => Environment.GetEnvironmentVariable("MONO_AOT_MODE") == "aot"; public static bool IsNotMonoAOT => Environment.GetEnvironmentVariable("MONO_AOT_MODE") != "aot"; - public static bool IsNativeAot => IsNotMonoRuntime && !IsReflectionEmitSupported; + public static bool IsNativeAot => IsNotMonoRuntime && typeof(object).Assembly.GetType("Internal.Runtime.CompilerHelpers.StartupCodeHelpers") is not null; public static bool IsNotNativeAot => !IsNativeAot; public static bool IsCoreCLR => IsNotMonoRuntime && IsNotNativeAot; public static bool IsCoreClrInterpreter => GetIsRunningOnCoreClrInterpreter(); diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index 69355f81a34b4c..f57b44e5088861 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -270,14 +270,6 @@ - - - - - - - - @@ -368,7 +360,7 @@ - + diff --git a/src/tests/Common/CoreCLRTestLibrary/Utilities.cs b/src/tests/Common/CoreCLRTestLibrary/Utilities.cs index f796a7769ed919..d8c51064ef86b0 100644 --- a/src/tests/Common/CoreCLRTestLibrary/Utilities.cs +++ b/src/tests/Common/CoreCLRTestLibrary/Utilities.cs @@ -96,7 +96,7 @@ public static bool IsWindowsIoTCore public static bool IsMonoRuntime => Type.GetType("Mono.RuntimeStructs") != null; public static bool IsNotMonoRuntime => !IsMonoRuntime; - public static bool IsNativeAot => IsNotMonoRuntime && !IsReflectionEmitSupported; + public static bool IsNativeAot => IsNotMonoRuntime && typeof(object).Assembly.GetType("Internal.Runtime.CompilerHelpers.StartupCodeHelpers") is not null; public static bool IsNotNativeAot => !IsNativeAot; public static bool IsCoreClrInterpreter From c8dbdd3136ccd9c2a920d75baab886b0b772bb7a Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Mon, 16 Feb 2026 19:44:18 +0100 Subject: [PATCH 43/45] Disable failing tests --- eng/testing/tests.mobile.targets | 2 +- .../TestUtilities/System/PlatformDetection.cs | 2 +- src/libraries/tests.proj | 15 ++++++++++++--- src/tests/Common/CoreCLRTestLibrary/Utilities.cs | 2 +- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/eng/testing/tests.mobile.targets b/eng/testing/tests.mobile.targets index b5e2692bc45fa9..2fce09f218023d 100644 --- a/eng/testing/tests.mobile.targets +++ b/eng/testing/tests.mobile.targets @@ -38,7 +38,7 @@ - + false <_DefaultValueAttributeSupport Condition="'$(OverrideDefaultValueAndDesignerHostSupport)' == 'true'">true <_DesignerHostSupport Condition="'$(OverrideDefaultValueAndDesignerHostSupport)' == 'true'">true diff --git a/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.cs b/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.cs index 2bc7753978b819..8c8968d54bf7de 100644 --- a/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.cs +++ b/src/libraries/Common/tests/TestUtilities/System/PlatformDetection.cs @@ -35,7 +35,7 @@ public static partial class PlatformDetection public static bool IsNotMonoInterpreter => !IsMonoInterpreter; public static bool IsMonoAOT => Environment.GetEnvironmentVariable("MONO_AOT_MODE") == "aot"; public static bool IsNotMonoAOT => Environment.GetEnvironmentVariable("MONO_AOT_MODE") != "aot"; - public static bool IsNativeAot => IsNotMonoRuntime && typeof(object).Assembly.GetType("Internal.Runtime.CompilerHelpers.StartupCodeHelpers") is not null; + public static bool IsNativeAot => IsNotMonoRuntime && !IsReflectionEmitSupported; public static bool IsNotNativeAot => !IsNativeAot; public static bool IsCoreCLR => IsNotMonoRuntime && IsNotNativeAot; public static bool IsCoreClrInterpreter => GetIsRunningOnCoreClrInterpreter(); diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index f57b44e5088861..f9d2def4709f09 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -641,6 +641,7 @@ + @@ -649,15 +650,23 @@ - - - + + + + + + + + + + + @@ -650,6 +651,7 @@ + From 370a7b1c22cf1326b1fa0943d80ce8492cfb76cf Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Tue, 17 Feb 2026 11:46:23 +0100 Subject: [PATCH 45/45] Add tracking issue --- eng/testing/tests.mobile.targets | 1 + 1 file changed, 1 insertion(+) diff --git a/eng/testing/tests.mobile.targets b/eng/testing/tests.mobile.targets index 2fce09f218023d..9d1123f03863b0 100644 --- a/eng/testing/tests.mobile.targets +++ b/eng/testing/tests.mobile.targets @@ -38,6 +38,7 @@ + false <_DefaultValueAttributeSupport Condition="'$(OverrideDefaultValueAndDesignerHostSupport)' == 'true'">true