diff --git a/eng/pipelines/common/templates/runtimes/run-test-job.yml b/eng/pipelines/common/templates/runtimes/run-test-job.yml index 932cef5f035e07..d860238915a468 100644 --- a/eng/pipelines/common/templates/runtimes/run-test-job.yml +++ b/eng/pipelines/common/templates/runtimes/run-test-job.yml @@ -332,7 +332,17 @@ jobs: msbuildParallelism: '/maxcpucount:55' ${{ if in(parameters.testGroup, 'innerloop', 'outerloop') }}: - ${{ if eq(parameters.runtimeFlavor, 'mono') }}: + ${{ if eq(parameters.runInterpreter, 'true') }}: + scenarios: + - interpmode3_no_tiered_compilation + - interpmode3 + - interpmode2_no_tiered_compilation + - interpmode2 + - normal + - no_tiered_compilation + - interpmode1_no_tiered_compilation + - interpmode1 + ${{ elseif eq(parameters.runtimeFlavor, 'mono') }}: # tiered compilation isn't done on mono yet scenarios: - normal diff --git a/src/coreclr/interpreter/eeinterp.cpp b/src/coreclr/interpreter/eeinterp.cpp index 1762477c0fc2fc..e90dbfac21187d 100644 --- a/src/coreclr/interpreter/eeinterp.cpp +++ b/src/coreclr/interpreter/eeinterp.cpp @@ -70,12 +70,12 @@ CorJitResult CILInterp::compileMethod(ICorJitInfo* compHnd, break; } - // 2: use interpreter for everything except intrinsics. All intrinsics fallback to JIT. Implies DOTNET_ReadyToRun=0. + // 2: use interpreter for everything except intrinsics. All intrinsics fallback to JIT. Implies DOTNET_ReadyToRun=0, DOTNET_MaxVectorTBitWidth=128, DOTNET_PreferredVectorBitWidth=128. case 2: doInterpret = !(compHnd->getMethodAttribs(methodInfo->ftn) & CORINFO_FLG_INTRINSIC); break; - // 3: use interpreter for everything, the full interpreter-only mode, no fallbacks to R2R or JIT whatsoever. Implies DOTNET_ReadyToRun=0, DOTNET_EnableHWIntrinsic=0 + // 3: use interpreter for everything, the full interpreter-only mode, no fallbacks to R2R or JIT whatsoever. Implies DOTNET_ReadyToRun=0, DOTNET_EnableHWIntrinsic=0, DOTNET_MaxVectorTBitWidth=128, DOTNET_PreferredVectorBitWidth=128 case 3: doInterpret = true; break; diff --git a/src/coreclr/vm/codeman.cpp b/src/coreclr/vm/codeman.cpp index 3fe0aaf192bb89..8ca7bbcf091712 100644 --- a/src/coreclr/vm/codeman.cpp +++ b/src/coreclr/vm/codeman.cpp @@ -1195,6 +1195,15 @@ void EEJitManager::SetCpuInfo() // Get the maximum bitwidth of Vector, rounding down to the nearest multiple of 128-bits uint32_t maxVectorTBitWidth = (CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_MaxVectorTBitWidth) / 128) * 128; + bool allowHWIntrinsic = true; + +#if defined(FEATURE_INTERPRETER) + if (maxVectorTBitWidth != 128 && CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_InterpMode) >= 2) + { + // Disable larger Vector sizes when interpreter is enabled + maxVectorTBitWidth = 128; + } +#endif #if defined(TARGET_X86) || defined(TARGET_AMD64) CPUCompileFlags.Set(InstructionSet_VectorT128); @@ -1213,7 +1222,7 @@ void EEJitManager::SetCpuInfo() // x86-64-v2 - if (CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_EnableHWIntrinsic)) + if (allowHWIntrinsic && g_pConfig->EnableHWIntrinsic()) { CPUCompileFlags.Set(InstructionSet_X86Base); } @@ -1324,7 +1333,7 @@ void EEJitManager::SetCpuInfo() #elif defined(TARGET_ARM64) CPUCompileFlags.Set(InstructionSet_VectorT128); - if (CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_EnableHWIntrinsic)) + if (allowHWIntrinsic && g_pConfig->EnableHWIntrinsic()) { CPUCompileFlags.Set(InstructionSet_ArmBase); CPUCompileFlags.Set(InstructionSet_AdvSimd); @@ -1408,7 +1417,7 @@ void EEJitManager::SetCpuInfo() g_arm64_atomics_present = true; } #elif defined(TARGET_RISCV64) - if (CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_EnableHWIntrinsic)) + if (allowHWIntrinsic && g_pConfig->EnableHWIntrinsic()) { CPUCompileFlags.Set(InstructionSet_RiscV64Base); } @@ -1509,6 +1518,14 @@ void EEJitManager::SetCpuInfo() uint32_t preferredVectorBitWidth = (CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_PreferredVectorBitWidth) / 128) * 128; +#ifdef FEATURE_INTERPRETER + if (CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_InterpMode) >= 2) + { + // Disable larger Vector sizes when interpreter is enabled, and not compiling S.P.Corelib + preferredVectorBitWidth = 128; + } +#endif + if ((preferredVectorBitWidth == 0) && throttleVector512) { preferredVectorBitWidth = 256; diff --git a/src/coreclr/vm/eeconfig.cpp b/src/coreclr/vm/eeconfig.cpp index 3747a07d3295f9..bbcf6bd5829331 100644 --- a/src/coreclr/vm/eeconfig.cpp +++ b/src/coreclr/vm/eeconfig.cpp @@ -454,8 +454,45 @@ HRESULT EEConfig::sync() pReadyToRunExcludeList = NULL; +#ifdef FEATURE_INTERPRETER +#ifdef FEATURE_JIT + LPWSTR interpreterConfig; + IfFailThrow(CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_Interpreter, &interpreterConfig)); + if (interpreterConfig == NULL) + { + if ((CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_InterpMode) != 0)) + { + enableInterpreter = true; + } + } + else + { + enableInterpreter = true; + } +#else + enableInterpreter = true; +#endif // FEATURE_JIT +#endif // FEATURE_INTERPRETER + + enableHWIntrinsic = CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_EnableHWIntrinsic); +#ifdef FEATURE_INTERPRETER + if (CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_InterpMode) >= 3) + { + // R2R mode 3 disables all hw intrinsics + enableHWIntrinsic = 0; + } +#endif // FEATURE_INTERPRETER + #if defined(FEATURE_READYTORUN) fReadyToRun = CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_ReadyToRun); +#if defined(FEATURE_INTERPRETER) + if (fReadyToRun && CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_InterpMode) >= 2) + { + // ReadyToRun and Interpreter modes 2 and 3 are mutually exclusive. + // If both are set, Interpreter wins. + fReadyToRun = false; + } +#endif // defined(FEATURE_INTERPRETER) if (fReadyToRun) { diff --git a/src/coreclr/vm/eeconfig.h b/src/coreclr/vm/eeconfig.h index 9c008ae7647cc2..9f22e5034cbd4c 100644 --- a/src/coreclr/vm/eeconfig.h +++ b/src/coreclr/vm/eeconfig.h @@ -441,6 +441,11 @@ class EEConfig bool RuntimeAsync() const { LIMITED_METHOD_CONTRACT; return runtimeAsync; } +#ifdef FEATURE_INTERPRETER + bool EnableInterpreter() const { LIMITED_METHOD_CONTRACT; return enableInterpreter; } +#endif + bool EnableHWIntrinsic() const { LIMITED_METHOD_CONTRACT; return enableHWIntrinsic; } + private: //---------------------------------------------------------------- bool fInited; // have we synced to the registry at least once? @@ -612,6 +617,12 @@ class EEConfig bool fReadyToRun; #endif + bool enableHWIntrinsic; + +#ifdef FEATURE_INTERPRETER + bool enableInterpreter; +#endif + #if defined(FEATURE_ON_STACK_REPLACEMENT) DWORD dwOSR_HitLimit; DWORD dwOSR_CounterBump; diff --git a/src/coreclr/vm/jithost.cpp b/src/coreclr/vm/jithost.cpp index 44b10f66c103e5..3975ae23efff4b 100644 --- a/src/coreclr/vm/jithost.cpp +++ b/src/coreclr/vm/jithost.cpp @@ -26,6 +26,11 @@ int JitHost::getIntConfigValue(const char* name, int defaultValue) { WRAPPER_NO_CONTRACT; + if (!strcmp(name, "EnableHWIntrinsic")) + { + return g_pConfig->EnableHWIntrinsic() ? 1 : 0; + } + StackSString str; SString(SString::Utf8Literal, name).ConvertToUnicode(str); diff --git a/src/coreclr/vm/jitinterface.cpp b/src/coreclr/vm/jitinterface.cpp index ce70de8e40b8af..c931b759ec50d4 100644 --- a/src/coreclr/vm/jitinterface.cpp +++ b/src/coreclr/vm/jitinterface.cpp @@ -13423,15 +13423,9 @@ PCODE UnsafeJitFunction(PrepareCodeConfig* config, #ifdef FEATURE_INTERPRETER InterpreterJitManager* interpreterMgr = ExecutionManager::GetInterpreterJitManager(); - if (!interpreterMgr->IsInterpreterLoaded()) + if (!interpreterMgr->IsInterpreterLoaded() && g_pConfig->EnableInterpreter()) { - LPWSTR interpreterConfig; - IfFailThrow(CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_Interpreter, &interpreterConfig)); if ( -#ifdef FEATURE_JIT - // If both JIT and interpret are available, load the interpreter for testing purposes only if the config switch is set - (interpreterConfig != NULL) && -#endif !interpreterMgr->LoadInterpreter()) { EEPOLICY_HANDLE_FATAL_ERROR_WITH_MESSAGE(COR_E_EXECUTIONENGINE, W("Failed to load interpreter")); diff --git a/src/tests/Common/CLRTest.Execute.Bash.targets b/src/tests/Common/CLRTest.Execute.Bash.targets index c819c72e4af625..14fb506d33ba7c 100644 --- a/src/tests/Common/CLRTest.Execute.Bash.targets +++ b/src/tests/Common/CLRTest.Execute.Bash.targets @@ -84,6 +84,11 @@ fi + DOTNET_InterpMode; DOTNET_TieredCompilation; DOTNET_DbgEnableMiniDump; DOTNET_EnableCrashReport; @@ -95,6 +96,12 @@ while other scenarios use the default values of DOTNET_* variables defined in ItemDefinitionGroup above --> + + + + + + diff --git a/src/tests/Interop/PInvoke/IEnumerator/IEnumeratorTest.cs b/src/tests/Interop/PInvoke/IEnumerator/IEnumeratorTest.cs index 9ca1f50ee5e8ac..ae5fbfbad2d82c 100644 --- a/src/tests/Interop/PInvoke/IEnumerator/IEnumeratorTest.cs +++ b/src/tests/Interop/PInvoke/IEnumerator/IEnumeratorTest.cs @@ -46,6 +46,7 @@ public static extern void VerifyIntegerEnumeration( public static class IEnumeratorTests { [Fact] + [SkipOnCoreClrAttribute("Assert thunkData with interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static void TestNativeToManaged() { AssertExtensions.CollectionEqual(Enumerable.Range(1, 10), EnumeratorAsEnumerable(IEnumeratorNative.GetIntegerEnumerator(1, 10))); @@ -53,6 +54,7 @@ public static void TestNativeToManaged() } [Fact] + [SkipOnCoreClrAttribute("Assert thunkData with interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static void TestManagedToNative() { IEnumeratorNative.VerifyIntegerEnumerator(Enumerable.Range(1, 10).GetEnumerator(), 1, 10); diff --git a/src/tests/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByRef/PassingByRefTest.cs b/src/tests/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByRef/PassingByRefTest.cs index 174efb9d14a130..b328c552b1fe0e 100644 --- a/src/tests/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByRef/PassingByRefTest.cs +++ b/src/tests/Interop/PInvoke/SizeParamIndex/ReversePInvoke/PassingByRef/PassingByRefTest.cs @@ -212,6 +212,7 @@ public static void RunTestByRef() [ActiveIssue("https://github.com/dotnet/runtime/issues/34196", TestRuntimes.Mono)] [ActiveIssue("https://github.com/dotnet/runtimelab/issues/167", typeof(TestLibrary.Utilities), nameof(TestLibrary.Utilities.IsNativeAot))] [ActiveIssue("https://github.com/dotnet/runtime/issues/91388", typeof(TestLibrary.PlatformDetection), nameof(TestLibrary.PlatformDetection.PlatformDoesNotSupportNativeTestAssets))] + [SkipOnCoreClrAttribute("Exception propagation through reverse pinvoke is not supported with interpreter, https://github.com/dotnet/runtime/issues/118965", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { try{ diff --git a/src/tests/JIT/Directed/Convert/out_of_range_fp_to_int_conversions.cs b/src/tests/JIT/Directed/Convert/out_of_range_fp_to_int_conversions.cs index d78daddcd838a3..d6452b9cc698f2 100644 --- a/src/tests/JIT/Directed/Convert/out_of_range_fp_to_int_conversions.cs +++ b/src/tests/JIT/Directed/Convert/out_of_range_fp_to_int_conversions.cs @@ -319,6 +319,7 @@ static void TestBitValue(uint value, double? dblValNullable = null, FPtoIntegerC } [Fact] + [SkipOnCoreClr("This test runs forever with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Program.ManagedConversionRule = FPtoIntegerConversionType.CONVERT_SATURATING; diff --git a/src/tests/JIT/Directed/Convert/out_of_range_fp_to_int_conversions.csproj b/src/tests/JIT/Directed/Convert/out_of_range_fp_to_int_conversions.csproj index 15e584299a6a7a..89a332f7afa4f9 100644 --- a/src/tests/JIT/Directed/Convert/out_of_range_fp_to_int_conversions.csproj +++ b/src/tests/JIT/Directed/Convert/out_of_range_fp_to_int_conversions.csproj @@ -12,5 +12,6 @@ + \ No newline at end of file diff --git a/src/tests/JIT/Methodical/tailcall/reference_i.il b/src/tests/JIT/Methodical/tailcall/reference_i.il index 925336437c10f2..aca51821c938ca 100644 --- a/src/tests/JIT/Methodical/tailcall/reference_i.il +++ b/src/tests/JIT/Methodical/tailcall/reference_i.il @@ -8,6 +8,7 @@ .ver 4:0:0:0 } .assembly extern xunit.core {} +.assembly extern Microsoft.DotNet.XUnitExtensions { .publickeytoken = (31 BF 38 56 AD 36 4E 35 ) } .assembly ASSEMBLY_NAME { } .method public static class System.String rems(int32& n, @@ -76,6 +77,10 @@ .custom instance void [xunit.core]Xunit.FactAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [Microsoft.DotNet.XUnitExtensions]Xunit.SkipOnCoreClrAttribute::.ctor(string, valuetype [Microsoft.DotNet.XUnitExtensions]Xunit.RuntimeTestModes) = { + string('AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904') + int32(0x400) // InterpreterActive + } .entrypoint // Code size 66 (0x42) .maxstack 2 diff --git a/src/tests/JIT/Performance/CodeQuality/SIMD/ConsoleMandel/ConsoleMandel.cs b/src/tests/JIT/Performance/CodeQuality/SIMD/ConsoleMandel/ConsoleMandel.cs index de03962d7d9c5a..a45a259e98932f 100644 --- a/src/tests/JIT/Performance/CodeQuality/SIMD/ConsoleMandel/ConsoleMandel.cs +++ b/src/tests/JIT/Performance/CodeQuality/SIMD/ConsoleMandel/ConsoleMandel.cs @@ -65,6 +65,7 @@ private static void PrintUsage() } [Fact] + [SkipOnCoreClrAttribute("The test runs forever when interpreted, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Bench(0, -1); diff --git a/src/tests/JIT/Regression/CLR-x86-JIT/v2.1/b609988/Desktop/b609988_Desktop.il b/src/tests/JIT/Regression/CLR-x86-JIT/v2.1/b609988/Desktop/b609988_Desktop.il index 0604acbad89308..5043cb4ecc1b00 100644 --- a/src/tests/JIT/Regression/CLR-x86-JIT/v2.1/b609988/Desktop/b609988_Desktop.il +++ b/src/tests/JIT/Regression/CLR-x86-JIT/v2.1/b609988/Desktop/b609988_Desktop.il @@ -25,6 +25,7 @@ .ver 0:0:0:0 } .assembly extern xunit.core {} +.assembly extern Microsoft.DotNet.XUnitExtensions { .publickeytoken = (31 BF 38 56 AD 36 4E 35 ) } .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 @@ -1228,6 +1229,10 @@ .custom instance void [xunit.core]Xunit.FactAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [Microsoft.DotNet.XUnitExtensions]Xunit.SkipOnCoreClrAttribute::.ctor(string, valuetype [Microsoft.DotNet.XUnitExtensions]Xunit.RuntimeTestModes) = { + string('AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904') + int32(0x400) // InterpreterActive + } .entrypoint .maxstack 1 IL_0000: call void Program::Test1() diff --git a/src/tests/JIT/Regression/CLR-x86-JIT/v2.1/b609988/b609988.il b/src/tests/JIT/Regression/CLR-x86-JIT/v2.1/b609988/b609988.il index dfd1a8a9c3ff7b..f9e45c499ec21b 100644 --- a/src/tests/JIT/Regression/CLR-x86-JIT/v2.1/b609988/b609988.il +++ b/src/tests/JIT/Regression/CLR-x86-JIT/v2.1/b609988/b609988.il @@ -24,6 +24,7 @@ .ver 0:0:0:0 } .assembly extern xunit.core {} +.assembly extern Microsoft.DotNet.XUnitExtensions { .publickeytoken = (31 BF 38 56 AD 36 4E 35 ) } .imagebase 0x00400000 .file alignment 0x00000200 .stackreserve 0x00100000 @@ -1227,6 +1228,10 @@ .custom instance void [xunit.core]Xunit.FactAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [Microsoft.DotNet.XUnitExtensions]Xunit.SkipOnCoreClrAttribute::.ctor(string, valuetype [Microsoft.DotNet.XUnitExtensions]Xunit.RuntimeTestModes) = { + string('AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904') + int32(0x400) // InterpreterActive + } .entrypoint .maxstack 1 IL_0000: call void Program::Test1() diff --git a/src/tests/JIT/Regression/JitBlue/GitHub_19438/GitHub_19438.cs b/src/tests/JIT/Regression/JitBlue/GitHub_19438/GitHub_19438.cs index 5d292b4fcc37a9..2d873be6820c02 100644 --- a/src/tests/JIT/Regression/JitBlue/GitHub_19438/GitHub_19438.cs +++ b/src/tests/JIT/Regression/JitBlue/GitHub_19438/GitHub_19438.cs @@ -65,6 +65,7 @@ public override string ToString() } [Fact] + [SkipOnCoreClrAttribute("Test runs forever when interpreted, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static void TestEntryPoint() { const int iterationCount = 10; diff --git a/src/tests/JIT/SIMD/Sums.cs b/src/tests/JIT/SIMD/Sums.cs index 5039edaaa6ce83..72f9f48880697d 100644 --- a/src/tests/JIT/SIMD/Sums.cs +++ b/src/tests/JIT/SIMD/Sums.cs @@ -40,6 +40,7 @@ static float sum(Point[] arr) } [Fact] + [SkipOnCoreClrAttribute("Test runs forever when interpreted, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static void TestEntryPoint() { System.Diagnostics.Stopwatch clock = new System.Diagnostics.Stopwatch(); diff --git a/src/tests/JIT/jit64/opt/rngchk/RngchkStress3.cs b/src/tests/JIT/jit64/opt/rngchk/RngchkStress3.cs index 2742c2766d6a15..6fea4200e5d94c 100644 --- a/src/tests/JIT/jit64/opt/rngchk/RngchkStress3.cs +++ b/src/tests/JIT/jit64/opt/rngchk/RngchkStress3.cs @@ -13,6 +13,7 @@ namespace SimpleArray_01 public class Class1 { [Fact] + [SkipOnCoreClrAttribute("Test runs forever when interpreted, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { int retVal = 100; diff --git a/src/tests/JIT/jit64/opt/rngchk/RngchkStress3.csproj b/src/tests/JIT/jit64/opt/rngchk/RngchkStress3.csproj index d6cb1a10ff9d35..815301046d32a6 100644 --- a/src/tests/JIT/jit64/opt/rngchk/RngchkStress3.csproj +++ b/src/tests/JIT/jit64/opt/rngchk/RngchkStress3.csproj @@ -9,4 +9,7 @@ + + + diff --git a/src/tests/Regressions/coreclr/GitHub_111242/Test111242.csproj b/src/tests/Regressions/coreclr/GitHub_111242/Test111242.csproj index 299b0de5e14c89..2de2b8cea99362 100644 --- a/src/tests/Regressions/coreclr/GitHub_111242/Test111242.csproj +++ b/src/tests/Regressions/coreclr/GitHub_111242/Test111242.csproj @@ -7,6 +7,8 @@ true true + + true PdbOnly diff --git a/src/tests/baseservices/exceptions/exceptioninterop/ExceptionInterop.cs b/src/tests/baseservices/exceptions/exceptioninterop/ExceptionInterop.cs index c3b9009336a58a..a13dd7ab517f0a 100644 --- a/src/tests/baseservices/exceptions/exceptioninterop/ExceptionInterop.cs +++ b/src/tests/baseservices/exceptions/exceptioninterop/ExceptionInterop.cs @@ -24,6 +24,7 @@ public unsafe static class ExceptionInterop [Fact] [PlatformSpecific(TestPlatforms.Windows)] [SkipOnMono("Exception interop not supported on Mono.")] + [SkipOnCoreClr("Exception interop not supported with the interpreter, https://github.com/dotnet/runtime/issues/118965", RuntimeTestModes.InterpreterActive)] public static void ThrowNativeExceptionAndCatchInFrame() { bool caughtException = false; @@ -44,6 +45,7 @@ public static void ThrowNativeExceptionAndCatchInFrame() [Fact] [PlatformSpecific(TestPlatforms.Windows)] [SkipOnMono("Exception interop not supported on Mono.")] + [SkipOnCoreClr("Exception interop not supported with the interpreter, https://github.com/dotnet/runtime/issues/118965", RuntimeTestModes.InterpreterActive)] public static void ThrowManagedExceptionThroughNativeAndCatchInFrame() { bool caughtException = false; @@ -70,6 +72,7 @@ static void ThrowManagedException() [Fact] [PlatformSpecific(TestPlatforms.Windows)] [SkipOnMono("Exception interop not supported on Mono.")] + [SkipOnCoreClr("Exception interop not supported with the interpreter, https://github.com/dotnet/runtime/issues/118965", RuntimeTestModes.InterpreterActive)] public static void ThrowNativeExceptionAndCatchInFrameWithFilter() { bool caughtException = false; @@ -98,6 +101,7 @@ bool Filter() [Fact] [PlatformSpecific(TestPlatforms.Windows)] [SkipOnMono("Exception interop not supported on Mono.")] + [SkipOnCoreClr("Exception interop not supported with the interpreter, https://github.com/dotnet/runtime/issues/118965", RuntimeTestModes.InterpreterActive)] public static void ThrowNativeExceptionAndCatchInFrameWithFinally() { bool caughtException = false; @@ -126,6 +130,7 @@ public static void ThrowNativeExceptionAndCatchInFrameWithFinally() [Fact] [PlatformSpecific(TestPlatforms.Windows)] [SkipOnMono("Exception interop not supported on Mono.")] + [SkipOnCoreClr("Exception interop not supported with the interpreter, https://github.com/dotnet/runtime/issues/118965", RuntimeTestModes.InterpreterActive)] public static void ThrowNativeExceptionInFrameWithFinallyCatchInOuterFrame() { bool caughtException = false; @@ -182,6 +187,7 @@ static void ThrowAndCatchException() [Fact] [PlatformSpecific(TestPlatforms.Windows)] [SkipOnMono("Exception interop not supported on Mono.")] + [SkipOnCoreClr("Exception interop not supported with the interpreter, https://github.com/dotnet/runtime/issues/118965", RuntimeTestModes.InterpreterActive)] public static void PropagateAndRethrowCppException() { try @@ -200,6 +206,7 @@ public static void PropagateAndRethrowCppException() [Fact] [PlatformSpecific(TestPlatforms.Windows)] [SkipOnMono("Exception interop not supported on Mono.")] + [SkipOnCoreClr("Exception interop not supported with the interpreter, https://github.com/dotnet/runtime/issues/118965", RuntimeTestModes.InterpreterActive)] public static void PropagateAndCatchCppException() { bool reportedUnhandledException = false; diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread01.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread01.cs index d0885c63b6cbd7..7da1b564a6af5c 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread01.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread01.cs @@ -55,6 +55,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Gen.ThreadPoolTest(); diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread02.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread02.cs index 2773fb455e2236..fc215867d4a95f 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread02.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread02.cs @@ -55,6 +55,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Gen.ThreadPoolTest(); diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread03.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread03.cs index 6864b527b11295..13e486c0412d41 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread03.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread03.cs @@ -57,6 +57,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Gen.ThreadPoolTest(); diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread04.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread04.cs index ea669ad05a51e2..2f50df6f9faf6c 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread04.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread04.cs @@ -57,6 +57,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Gen.ThreadPoolTest(); diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread05.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread05.cs index f6ecc934dc1637..027a409ad70548 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread05.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread05.cs @@ -57,6 +57,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Gen.ThreadPoolTest(); diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread06.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread06.cs index 71936de8e5e625..41ab5c26686dbe 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread06.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread06.cs @@ -57,6 +57,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Gen.ThreadPoolTest(); diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread07.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread07.cs index 0ace693307a50a..4368f3cd6b3bfb 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread07.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread07.cs @@ -55,6 +55,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Gen.ThreadPoolTest(); diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread08.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread08.cs index 76cd0910a265c7..f80617a2b125f0 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread08.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread08.cs @@ -57,6 +57,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Gen.ThreadPoolTest(); diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread09.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread09.cs index 5e414e16a71a42..f0708d69fdb1d4 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread09.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread09.cs @@ -57,6 +57,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Gen.ThreadPoolTest(); diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread10.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread10.cs index 6924798b9677f9..c5f56cfa248d04 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread10.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread10.cs @@ -65,6 +65,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Gen.ThreadPoolTest(); diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread11.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread11.cs index 96b0a04f2a0708..df9058be0aa6c1 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread11.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread11.cs @@ -65,6 +65,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Gen.ThreadPoolTest(); diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread12.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread12.cs index e9a3d7d65bb612..dbaaf27e6d0552 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread12.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread12.cs @@ -65,6 +65,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Gen.ThreadPoolTest(); diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread13.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread13.cs index d0d9c80d3e8ac4..008f5e1c67c040 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread13.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread13.cs @@ -212,6 +212,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread14.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread14.cs index 7ed7d375621bdf..585ce6422e330a 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread14.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread14.cs @@ -212,6 +212,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread15.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread15.cs index c2f26ac416be3d..f0d0fa8dd3a8f2 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread15.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread15.cs @@ -212,6 +212,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread16.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread16.cs index 0ea0d254c414e1..a5b8af3d1b54d6 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread16.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread16.cs @@ -62,6 +62,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Gen.ThreadPoolTest(); diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread17.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread17.cs index 78be9436220d42..f186a1ab28dbdd 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread17.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread17.cs @@ -62,6 +62,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Gen.ThreadPoolTest(); diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread18.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread18.cs index 19d66063c7d993..941b3b0b8e6782 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread18.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread18.cs @@ -62,6 +62,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Gen.ThreadPoolTest(); diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread19.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread19.cs index a7f9c16069fdb1..cb69a364104aa1 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread19.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread19.cs @@ -66,6 +66,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Gen.ThreadPoolTest(); diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread20.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread20.cs index e4c7d2d0a13ddf..dc44c8156a8a2d 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread20.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread20.cs @@ -66,6 +66,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Gen.ThreadPoolTest(); diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread21.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread21.cs index e5d5bfdb8c9d37..e0a698ba896cee 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread21.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread21.cs @@ -66,6 +66,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Gen.ThreadPoolTest(); diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread22.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread22.cs index 57be95352f74c7..11a8f807083197 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread22.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread22.cs @@ -222,6 +222,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread23.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread23.cs index f2b26a0f7d06b3..b22be883f1ce3d 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread23.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread23.cs @@ -220,6 +220,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread24.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread24.cs index 1bd7d9f6380997..85d81cd2905d17 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread24.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread24.cs @@ -218,6 +218,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread25.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread25.cs index 53e9aef61ab6ce..3c51e3488775e1 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread25.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread25.cs @@ -55,6 +55,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Gen.ThreadPoolTest(); diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread26.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread26.cs index b383e63a3bacfc..e5831c2c9f11f4 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread26.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread26.cs @@ -57,6 +57,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Gen.ThreadPoolTest(); diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread27.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread27.cs index 5d716ebf176aae..d2438495168a10 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread27.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread27.cs @@ -57,6 +57,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Gen.ThreadPoolTest(); diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread28.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread28.cs index 3850bec802ad5d..9849ba42975145 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread28.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread28.cs @@ -57,6 +57,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Gen.ThreadPoolTest(); diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread29.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread29.cs index c60e3b509d5b8f..a26280d7d461b6 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread29.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread29.cs @@ -55,6 +55,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Gen.ThreadPoolTest(); diff --git a/src/tests/baseservices/threading/generics/WaitCallback/thread30.cs b/src/tests/baseservices/threading/generics/WaitCallback/thread30.cs index a3663bdb7cb6c4..eb60d2db3fac89 100644 --- a/src/tests/baseservices/threading/generics/WaitCallback/thread30.cs +++ b/src/tests/baseservices/threading/generics/WaitCallback/thread30.cs @@ -55,6 +55,7 @@ public static void Eval(bool exp) } [Fact] + [SkipOnCoreClrAttribute("Fails intermittently with AV when running with the interpreter, https://github.com/dotnet/runtime/issues/120904", RuntimeTestModes.InterpreterActive)] public static int TestEntryPoint() { Gen.ThreadPoolTest();