From 71177d95d142a1341af9d7b5e8b4548889a42c70 Mon Sep 17 00:00:00 2001 From: Milos Kotlar Date: Thu, 28 Mar 2024 19:49:27 +0100 Subject: [PATCH] [infra] Enable linux-x64 Mono fullAOT mini job on extra platforms (#96332) This PR enables the linux-x64 full AOT mini job on extra platforms, utilizing the CBL-Mariner docker image. The parameters as_name and as_options, along with ld_name and ld_options are added to allow parameterization of the toolchain configuration. --- .../build-runtime-tests-and-send-to-helix.yml | 55 +++++++----- .../runtime-extra-platforms-other.yml | 32 +++++++ src/mono/mono/metadata/marshal.c | 13 ++- src/mono/mono/mini/aot-compiler.c | 35 ++++++-- .../CoreCLRTestLibrary/PlatformDetection.cs | 2 + src/tests/Common/helixpublishwitharcade.proj | 4 +- src/tests/Common/testenvironment.proj | 2 +- .../DllImportSearchPathsTest.cs | 2 +- src/tests/Interop/Interop.csproj | 2 + .../NativeLibrary/API/NativeLibraryTests.cs | 2 +- .../AnsiBSTR/AnsiBStrTest.csproj | 2 + .../StringMarshalling/BSTR/BSTRTest.csproj | 2 + .../LPTSTR/LPTSTRTest.csproj | 2 + .../VBByRefStr/VBByRefStrTest.csproj | 2 + .../X86/X86Base.X64/Program.X86Base.X64.cs | 2 +- .../X86/X86Base/Program.X86Base.cs | 2 +- .../BoxPatternMatchAndSideEffects.csproj | 2 + .../JIT/Methodical/Methodical_others.csproj | 4 + .../JitBlue/GitHub_26491/GitHub_26491.ilproj | 4 + src/tests/JIT/Regression/Regression_3.csproj | 4 + src/tests/build.proj | 13 ++- src/tests/issues.targets | 84 +++++++++++++++++-- .../readytorun_coreroot_determinism.csproj | 4 + src/tests/readytorun/readytorun.csproj | 4 + 24 files changed, 236 insertions(+), 44 deletions(-) diff --git a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml index 4769f35a9c827..127ddbcfeb028 100644 --- a/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml +++ b/eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml @@ -38,39 +38,48 @@ steps: archType: ${{ parameters.archType }} buildConfig: ${{ parameters.buildConfig }} testBuildArgs: ${{ parameters.testBuildArgs }} - - # Build a Mono LLVM AOT cross-compiler for non-amd64 targets (in this case, just arm64) - - ${{ if and(eq(parameters.runtimeFlavor, 'mono'), or(eq(parameters.runtimeVariant, 'llvmaot'), eq(parameters.runtimeVariant, 'llvmfullaot'))) }}: + # Build a Mono AOT cross-compiler for non-amd64 targets (in this case, just arm64) + - ${{ if and(eq(parameters.runtimeFlavor, 'mono'), in(parameters.runtimeVariant, 'llvmaot', 'llvmfullaot', 'minifullaot')) }}: - ${{ if eq(parameters.archType, 'arm64') }}: - - script: ./build.sh - -subset mono - -c ${{ parameters.buildConfig }} - -arch ${{ parameters.archType }} - /p:BuildMonoAotCrossCompiler=true - /p:BuildMonoAotCrossCompilerOnly=true - /p:MonoLibClang="/usr/local/lib/libclang.so.16" - /p:MonoAOTEnableLLVM=true - /p:CrossBuild=true - displayName: "Build Mono LLVM AOT cross compiler" + - ${{ if eq(parameters.runtimeVariant, 'minifullaot') }}: + - script: ./build.sh + -subset mono + -c ${{ parameters.buildConfig }} + -arch ${{ parameters.archType }} + /p:BuildMonoAotCrossCompiler=true + /p:BuildMonoAotCrossCompilerOnly=true + /p:CrossBuild=true + displayName: "Build Mono Mini AOT cross compiler" + - ${{ else }}: + - script: ./build.sh + -subset mono + -c ${{ parameters.buildConfig }} + -arch ${{ parameters.archType }} + /p:BuildMonoAotCrossCompiler=true + /p:BuildMonoAotCrossCompilerOnly=true + /p:MonoLibClang="/usr/local/lib/libclang.so.16" + /p:MonoAOTEnableLLVM=true + /p:CrossBuild=true + displayName: "Build Mono LLVM AOT cross compiler" - ${{ if eq(parameters.archType, 'x64') }}: - ${{ if eq(parameters.runtimeVariant, 'llvmaot') }}: - - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)MonoAot mono_aot ${{ parameters.buildConfig }} ${{ parameters.archType }} - displayName: "LLVM AOT compile CoreCLR tests" + - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)MonoAot mono_aot ${{ parameters.buildConfig }} ${{ parameters.archType }} /p:RuntimeVariant=${{ parameters.runtimeVariant }} + displayName: "AOT compile CoreCLR tests" target: ${{ coalesce(parameters.llvmAotStepContainer, parameters.container) }} - - ${{ if eq(parameters.runtimeVariant, 'llvmfullaot') }}: - - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)MonoAot mono_fullaot ${{ parameters.buildConfig }} ${{ parameters.archType }} - displayName: "LLVM AOT compile CoreCLR tests" + - ${{ if in(parameters.runtimeVariant, 'llvmfullaot', 'minifullaot') }}: + - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)MonoAot mono_fullaot ${{ parameters.buildConfig }} ${{ parameters.archType }} /p:RuntimeVariant=${{ parameters.runtimeVariant }} + displayName: "AOT compile CoreCLR tests" target: ${{ coalesce(parameters.llvmAotStepContainer, parameters.container) }} - ${{ if eq(parameters.archType, 'arm64') }}: - ${{ if eq(parameters.runtimeVariant, 'llvmaot') }}: - - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)MonoAot mono_aot ${{ parameters.buildConfig }} ${{ parameters.archType }} cross /p:RuntimeVariant=llvmfullaot -maxcpucount:2 - displayName: "LLVM AOT cross-compile CoreCLR tests" + - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)MonoAot mono_aot ${{ parameters.buildConfig }} ${{ parameters.archType }} cross /p:RuntimeVariant=${{ parameters.runtimeVariant }} -maxcpucount:2 + displayName: "AOT cross-compile CoreCLR tests" env: __MonoToolPrefix: aarch64-linux-gnu- - - ${{ if eq(parameters.runtimeVariant, 'llvmfullaot') }}: - - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)MonoAot mono_fullaot ${{ parameters.buildConfig }} ${{ parameters.archType }} cross /p:RuntimeVariant=llvmfullaot -maxcpucount:2 - displayName: "LLVM AOT cross-compile CoreCLR tests" + - ${{ if in(parameters.runtimeVariant, 'llvmfullaot', 'minifullaot') }}: + - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) $(logRootNameArg)MonoAot mono_fullaot ${{ parameters.buildConfig }} ${{ parameters.archType }} cross /p:RuntimeVariant=${{ parameters.runtimeVariant }} -maxcpucount:2 + displayName: "AOT cross-compile CoreCLR tests" env: __MonoToolPrefix: aarch64-linux-gnu- diff --git a/eng/pipelines/extra-platforms/runtime-extra-platforms-other.yml b/eng/pipelines/extra-platforms/runtime-extra-platforms-other.yml index 6728a4ebb4100..c1a3e2cd1f496 100644 --- a/eng/pipelines/extra-platforms/runtime-extra-platforms-other.yml +++ b/eng/pipelines/extra-platforms/runtime-extra-platforms-other.yml @@ -149,6 +149,38 @@ jobs: # extraVariablesTemplates: # - template: /eng/pipelines/common/templates/runtimes/test-variables.yml +# +# Mono CoreCLR runtime test executions using live libraries and mini Full AOT +# Only when Mono is changed +# +- template: /eng/pipelines/common/platform-matrix.yml + parameters: + jobTemplate: /eng/pipelines/common/global-build-job.yml + helixQueuesTemplate: /eng/pipelines/coreclr/templates/helix-queues-setup.yml + buildConfig: Release + runtimeFlavor: mono + platforms: + - linux_x64 + variables: + - name: timeoutPerTestInMinutes + value: 60 + - name: timeoutPerTestCollectionInMinutes + value: 180 + jobParameters: + testGroup: innerloop + nameSuffix: AllSubsets_Mono_MiniFullAot_RuntimeTests + runtimeVariant: minifullaot + buildArgs: -s mono+libs+clr.hosts -c Release + timeoutInMinutes: 300 + postBuildSteps: + - template: /eng/pipelines/common/templates/runtimes/build-runtime-tests-and-send-to-helix.yml + parameters: + creator: dotnet-bot + llvmAotStepContainer: linux_x64 + testRunNamePrefixSuffix: Mono_Release + extraVariablesTemplates: + - template: /eng/pipelines/common/templates/runtimes/test-variables.yml + # # Mono CoreCLR runtime Test executions using live libraries in interpreter mode # Only when Mono is changed diff --git a/src/mono/mono/metadata/marshal.c b/src/mono/mono/metadata/marshal.c index a86ed532c1571..09fddd573c0fd 100644 --- a/src/mono/mono/metadata/marshal.c +++ b/src/mono/mono/metadata/marshal.c @@ -5834,8 +5834,19 @@ mono_marshal_load_type_info (MonoClass* klass) if (m_class_is_inlinearray (klass)) { // Limit the max size of array instance to 1MiB const int struct_max_size = 1024 * 1024; + guint32 initial_size = size; size *= m_class_inlinearray_value (klass); - g_assert ((size > 0) && (size <= struct_max_size)); + if(size == 0 || size > struct_max_size) { + if (mono_get_runtime_callbacks ()->mono_class_set_deferred_type_load_failure_callback) { + if (mono_get_runtime_callbacks ()->mono_class_set_deferred_type_load_failure_callback (klass, "Inline array struct size out of bounds, abnormally large.")) + break; + else + size = initial_size; // failure occured during AOT compilation, continue execution + } else { + mono_class_set_type_load_failure (klass, "Inline array struct size out of bounds, abnormally large."); + break; + } + } } switch (layout) { diff --git a/src/mono/mono/mini/aot-compiler.c b/src/mono/mono/mini/aot-compiler.c index c4e318b4f5688..bda04415e2d68 100644 --- a/src/mono/mono/mini/aot-compiler.c +++ b/src/mono/mono/mini/aot-compiler.c @@ -242,8 +242,11 @@ typedef struct MonoAotOptions { gboolean child; char *tool_prefix; char *as_prefix; + char *as_name; + char *as_options; char *ld_flags; char *ld_name; + char *ld_options; char *mtriple; char *llvm_path; char *temp_path; @@ -8940,10 +8943,16 @@ mono_aot_parse_options (const char *aot_options, MonoAotOptions *opts) opts->tool_prefix = g_strdup (arg + strlen ("tool-prefix=")); } else if (str_begins_with (arg, "as-prefix=")) { opts->as_prefix = g_strdup (arg + strlen ("as-prefix=")); + } else if (str_begins_with (arg, "as-name=")) { + opts->as_name = g_strdup (arg + strlen ("as-name=")); + } else if (str_begins_with (arg, "as-options=")) { + opts->as_options = g_strdup (arg + strlen ("as-options=")); } else if (str_begins_with (arg, "ld-flags=")) { opts->ld_flags = g_strdup (arg + strlen ("ld-flags=")); } else if (str_begins_with (arg, "ld-name=")) { opts->ld_name = g_strdup (arg + strlen ("ld-name=")); + } else if (str_begins_with (arg, "ld-options=")) { + opts->ld_options = g_strdup (arg + strlen ("ld-options=")); } else if (str_begins_with (arg, "soft-debug")) { opts->soft_debug = TRUE; // Intentionally undocumented x2-- deprecated @@ -13222,8 +13231,16 @@ compile_asm (MonoAotCompile *acfg) #ifdef TARGET_OSX g_string_append (acfg->as_args, "-c -x assembler "); #endif + const char *as_binary_name = acfg->aot_opts.as_name; + if (as_binary_name == NULL) { + as_binary_name = AS_NAME; + } + const char *as_options = acfg->aot_opts.as_options; + if (as_options == NULL) { + as_options = AS_OPTIONS; + } - command = g_strdup_printf ("\"%s%s\" %s %s -o %s %s", as_prefix, AS_NAME, AS_OPTIONS, + command = g_strdup_printf ("\"%s%s\" %s %s -o %s %s", as_prefix, as_binary_name, as_options, acfg->as_args ? acfg->as_args->str : "", wrap_path (objfile), wrap_path (acfg->asm_fname)); aot_printf (acfg, "Executing the native assembler: %s\n", command); @@ -13234,7 +13251,7 @@ compile_asm (MonoAotCompile *acfg) } if (acfg->llvm && !acfg->llvm_owriter) { - command = g_strdup_printf ("\"%s%s\" %s %s -o %s %s", as_prefix, AS_NAME, AS_OPTIONS, + command = g_strdup_printf ("\"%s%s\" %s %s -o %s %s", as_prefix, as_binary_name, as_options, acfg->as_args ? acfg->as_args->str : "", wrap_path (acfg->llvm_ofile), wrap_path (acfg->llvm_sfile)); aot_printf (acfg, "Executing the native assembler: %s\n", command); @@ -13283,16 +13300,21 @@ compile_asm (MonoAotCompile *acfg) str = g_string_new (""); const char *ld_binary_name = acfg->aot_opts.ld_name; + + const char *ld_options = acfg->aot_opts.ld_options; + if (ld_options == NULL) { + ld_options = LD_OPTIONS; + } #if defined(LD_NAME) if (ld_binary_name == NULL) { ld_binary_name = LD_NAME; } if (acfg->aot_opts.tool_prefix) - g_string_append_printf (str, "\"%s%s\" %s", tool_prefix, ld_binary_name, LD_OPTIONS); + g_string_append_printf (str, "\"%s%s\" %s", tool_prefix, ld_binary_name, ld_options); else if (acfg->aot_opts.llvm_only) g_string_append_printf (str, "%s", acfg->aot_opts.clangxx); else - g_string_append_printf (str, "\"%s%s\" %s", tool_prefix, ld_binary_name, LD_OPTIONS); + g_string_append_printf (str, "\"%s%s\" %s", tool_prefix, ld_binary_name, ld_options); #else if (ld_binary_name == NULL) { ld_binary_name = "ld"; @@ -13301,7 +13323,7 @@ compile_asm (MonoAotCompile *acfg) // Default (linux) if (acfg->aot_opts.tool_prefix) /* Cross compiling */ - g_string_append_printf (str, "\"%s%s\" %s", tool_prefix, ld_binary_name, LD_OPTIONS); + g_string_append_printf (str, "\"%s%s\" %s", tool_prefix, ld_binary_name, ld_options); else if (acfg->aot_opts.llvm_only) g_string_append_printf (str, "%s", acfg->aot_opts.clangxx); else @@ -14232,8 +14254,11 @@ aot_opts_free (MonoAotOptions *aot_opts) g_free (aot_opts->dedup_include); g_free (aot_opts->tool_prefix); g_free (aot_opts->as_prefix); + g_free (aot_opts->as_name); + g_free (aot_opts->as_options); g_free (aot_opts->ld_flags); g_free (aot_opts->ld_name); + g_free (aot_opts->ld_options); g_free (aot_opts->mtriple); g_free (aot_opts->llvm_path); g_free (aot_opts->temp_path); diff --git a/src/tests/Common/CoreCLRTestLibrary/PlatformDetection.cs b/src/tests/Common/CoreCLRTestLibrary/PlatformDetection.cs index 56581dc9ea772..d03327e5fdded 100644 --- a/src/tests/Common/CoreCLRTestLibrary/PlatformDetection.cs +++ b/src/tests/Common/CoreCLRTestLibrary/PlatformDetection.cs @@ -50,6 +50,8 @@ public static bool IsNonZeroLowerBoundArraySupported public static bool IsMonoLLVMAOT => _variant == "llvmaot"; public static bool IsMonoLLVMFULLAOT => _variant == "llvmfullaot"; + public static bool IsMonoMINIFULLAOT => _variant == "minifullaot"; + public static bool IsMonoFULLAOT => IsMonoLLVMFULLAOT || IsMonoMINIFULLAOT; public static bool IsMonoInterpreter => _variant == "monointerpreter"; // These platforms have not had their infrastructure updated to support native test assets. diff --git a/src/tests/Common/helixpublishwitharcade.proj b/src/tests/Common/helixpublishwitharcade.proj index 557e5e55beea9..b5d5153343897 100644 --- a/src/tests/Common/helixpublishwitharcade.proj +++ b/src/tests/Common/helixpublishwitharcade.proj @@ -413,8 +413,8 @@ - - + + - <_TestEnvFileLine Condition="'$(RuntimeVariant)' == 'llvmfullaot'" Include="export MONO_ENV_OPTIONS=--full-aot" /> + <_TestEnvFileLine Condition="'$(RuntimeVariant)' == 'llvmfullaot' or '$(RuntimeVariant)' == 'minifullaot'" Include="export MONO_ENV_OPTIONS=--full-aot" /> <_TestEnvFileLine Condition="'$(RuntimeVariant)' != ''" Include="export DOTNET_RUNTIME_VARIANT=$(RuntimeVariant)" /> diff --git a/src/tests/Interop/DllImportSearchPaths/DllImportSearchPathsTest.cs b/src/tests/Interop/DllImportSearchPaths/DllImportSearchPathsTest.cs index b86a77cbc521e..00c7b375a7ed7 100644 --- a/src/tests/Interop/DllImportSearchPaths/DllImportSearchPathsTest.cs +++ b/src/tests/Interop/DllImportSearchPaths/DllImportSearchPathsTest.cs @@ -21,7 +21,7 @@ public static void AssemblyDirectory_NotFound() public static bool CanLoadAssemblyInSubdirectory => !TestLibrary.Utilities.IsNativeAot && - !TestLibrary.PlatformDetection.IsMonoLLVMFULLAOT && + !TestLibrary.PlatformDetection.IsMonoFULLAOT && !OperatingSystem.IsAndroid() && !OperatingSystem.IsIOS() && !OperatingSystem.IsTvOS() && diff --git a/src/tests/Interop/Interop.csproj b/src/tests/Interop/Interop.csproj index 6fc22f7bf4f27..ccbdc2f5e1e7f 100644 --- a/src/tests/Interop/Interop.csproj +++ b/src/tests/Interop/Interop.csproj @@ -2,6 +2,8 @@ true Debug;Release;Checked + + true diff --git a/src/tests/Interop/NativeLibrary/API/NativeLibraryTests.cs b/src/tests/Interop/NativeLibrary/API/NativeLibraryTests.cs index 2c43feaa3be97..09a3d6c41b900 100644 --- a/src/tests/Interop/NativeLibrary/API/NativeLibraryTests.cs +++ b/src/tests/Interop/NativeLibrary/API/NativeLibraryTests.cs @@ -182,7 +182,7 @@ public void LoadLibrary_AssemblyDirectory() string subdirectory = Path.Combine(testBinDir, "subdirectory"); - if (!TestLibrary.Utilities.IsNativeAot && !TestLibrary.PlatformDetection.IsMonoLLVMFULLAOT) + if (!TestLibrary.Utilities.IsNativeAot && !TestLibrary.PlatformDetection.IsMonoFULLAOT) { // Library should be found in the assembly directory Assembly assemblyInSubdirectory = Assembly.LoadFile(Path.Combine(subdirectory, $"{assembly.GetName().Name}{suffix}.dll")); diff --git a/src/tests/Interop/StringMarshalling/AnsiBSTR/AnsiBStrTest.csproj b/src/tests/Interop/StringMarshalling/AnsiBSTR/AnsiBStrTest.csproj index f476d5f41f21f..ae4b7c519db82 100644 --- a/src/tests/Interop/StringMarshalling/AnsiBSTR/AnsiBStrTest.csproj +++ b/src/tests/Interop/StringMarshalling/AnsiBSTR/AnsiBStrTest.csproj @@ -2,6 +2,8 @@ true $(DefineConstants);ANSIBSTR + + true diff --git a/src/tests/Interop/StringMarshalling/BSTR/BSTRTest.csproj b/src/tests/Interop/StringMarshalling/BSTR/BSTRTest.csproj index 7aab41716ae90..539f34ced8c87 100644 --- a/src/tests/Interop/StringMarshalling/BSTR/BSTRTest.csproj +++ b/src/tests/Interop/StringMarshalling/BSTR/BSTRTest.csproj @@ -2,6 +2,8 @@ true $(DefineConstants);BSTR + + true diff --git a/src/tests/Interop/StringMarshalling/LPTSTR/LPTSTRTest.csproj b/src/tests/Interop/StringMarshalling/LPTSTR/LPTSTRTest.csproj index 52006bf63c1d1..e436167e972f0 100644 --- a/src/tests/Interop/StringMarshalling/LPTSTR/LPTSTRTest.csproj +++ b/src/tests/Interop/StringMarshalling/LPTSTR/LPTSTRTest.csproj @@ -2,6 +2,8 @@ true $(DefineConstants);LPTSTR + + true diff --git a/src/tests/Interop/StringMarshalling/VBByRefStr/VBByRefStrTest.csproj b/src/tests/Interop/StringMarshalling/VBByRefStr/VBByRefStrTest.csproj index 621a9f162f3bf..9154f936b7425 100644 --- a/src/tests/Interop/StringMarshalling/VBByRefStr/VBByRefStrTest.csproj +++ b/src/tests/Interop/StringMarshalling/VBByRefStr/VBByRefStrTest.csproj @@ -1,6 +1,8 @@ true + + true diff --git a/src/tests/JIT/HardwareIntrinsics/X86/X86Base.X64/Program.X86Base.X64.cs b/src/tests/JIT/HardwareIntrinsics/X86/X86Base.X64/Program.X86Base.X64.cs index 40dc13b975f47..98901cf3dfe89 100644 --- a/src/tests/JIT/HardwareIntrinsics/X86/X86Base.X64/Program.X86Base.X64.cs +++ b/src/tests/JIT/HardwareIntrinsics/X86/X86Base.X64/Program.X86Base.X64.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; [assembly:Xunit.ActiveIssue("https://github.com/dotnet/runtime/issues/75767", typeof(TestLibrary.PlatformDetection), nameof(TestLibrary.PlatformDetection.IsMonoLLVMAOT))] -[assembly:Xunit.ActiveIssue("https://github.com/dotnet/runtime/issues/75767", typeof(TestLibrary.PlatformDetection), nameof(TestLibrary.PlatformDetection.IsMonoLLVMFULLAOT))] +[assembly:Xunit.ActiveIssue("https://github.com/dotnet/runtime/issues/75767", typeof(TestLibrary.PlatformDetection), nameof(TestLibrary.PlatformDetection.IsMonoFULLAOT))] namespace JIT.HardwareIntrinsics.X86._X86Base.X64 { public static partial class Program diff --git a/src/tests/JIT/HardwareIntrinsics/X86/X86Base/Program.X86Base.cs b/src/tests/JIT/HardwareIntrinsics/X86/X86Base/Program.X86Base.cs index 364a8aee4b047..b0001aeeb3e96 100644 --- a/src/tests/JIT/HardwareIntrinsics/X86/X86Base/Program.X86Base.cs +++ b/src/tests/JIT/HardwareIntrinsics/X86/X86Base/Program.X86Base.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; [assembly:Xunit.ActiveIssue("https://github.com/dotnet/runtime/issues/75767", typeof(TestLibrary.PlatformDetection), nameof(TestLibrary.PlatformDetection.IsMonoLLVMAOT))] -[assembly:Xunit.ActiveIssue("https://github.com/dotnet/runtime/issues/75767", typeof(TestLibrary.PlatformDetection), nameof(TestLibrary.PlatformDetection.IsMonoLLVMFULLAOT))] +[assembly:Xunit.ActiveIssue("https://github.com/dotnet/runtime/issues/75767", typeof(TestLibrary.PlatformDetection), nameof(TestLibrary.PlatformDetection.IsMonoFULLAOT))] namespace JIT.HardwareIntrinsics.X86._X86Base { public static partial class Program diff --git a/src/tests/JIT/Methodical/Boxing/boxunbox/BoxPatternMatchAndSideEffects.csproj b/src/tests/JIT/Methodical/Boxing/boxunbox/BoxPatternMatchAndSideEffects.csproj index 17ce8036e6a82..e1e12460ae03b 100644 --- a/src/tests/JIT/Methodical/Boxing/boxunbox/BoxPatternMatchAndSideEffects.csproj +++ b/src/tests/JIT/Methodical/Boxing/boxunbox/BoxPatternMatchAndSideEffects.csproj @@ -1,6 +1,8 @@ PdbOnly + + true diff --git a/src/tests/JIT/Methodical/Methodical_others.csproj b/src/tests/JIT/Methodical/Methodical_others.csproj index 4021ca8992282..998101aaa4553 100644 --- a/src/tests/JIT/Methodical/Methodical_others.csproj +++ b/src/tests/JIT/Methodical/Methodical_others.csproj @@ -1,4 +1,8 @@ + + + true + diff --git a/src/tests/JIT/Regression/JitBlue/GitHub_26491/GitHub_26491.ilproj b/src/tests/JIT/Regression/JitBlue/GitHub_26491/GitHub_26491.ilproj index 5ddfd280bde66..439e29a31673e 100644 --- a/src/tests/JIT/Regression/JitBlue/GitHub_26491/GitHub_26491.ilproj +++ b/src/tests/JIT/Regression/JitBlue/GitHub_26491/GitHub_26491.ilproj @@ -1,4 +1,8 @@ + + + true + diff --git a/src/tests/JIT/Regression/Regression_3.csproj b/src/tests/JIT/Regression/Regression_3.csproj index 4eafe2b2450fb..0006ba5709b72 100644 --- a/src/tests/JIT/Regression/Regression_3.csproj +++ b/src/tests/JIT/Regression/Regression_3.csproj @@ -1,4 +1,8 @@ + + + true + diff --git a/src/tests/build.proj b/src/tests/build.proj index d41ed76b98276..e7886f37d7703 100644 --- a/src/tests/build.proj +++ b/src/tests/build.proj @@ -144,15 +144,22 @@ - + - - + + + + + + + + + diff --git a/src/tests/issues.targets b/src/tests/issues.targets index 69cf84f6fdd46..8515eecf4d8e9 100644 --- a/src/tests/issues.targets +++ b/src/tests/issues.targets @@ -2276,7 +2276,7 @@ - + expected failure: overlapped structs fail at AOT compile time, not runtime @@ -2439,7 +2439,7 @@ - + https://github.com/dotnet/runtime/issues/48914 @@ -2511,9 +2511,6 @@ - - - https://github.com/dotnet/runtime/issues/82859 @@ -3740,6 +3737,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + diff --git a/src/tests/readytorun/readytorun.csproj b/src/tests/readytorun/readytorun.csproj index d815ac504e637..585b0be3fcdfe 100644 --- a/src/tests/readytorun/readytorun.csproj +++ b/src/tests/readytorun/readytorun.csproj @@ -1,4 +1,8 @@ + + + true +