From c5de878f269338c465a014229fa8da05cd104ace Mon Sep 17 00:00:00 2001 From: Bruce Forstall Date: Fri, 15 May 2020 22:06:45 -0700 Subject: [PATCH] Fix StackTraceTests to work with JIT optimization Disable optimization/inlining on methods that are expected to remain on the stack. --- .../System.Diagnostics.StackTrace/tests/StackTraceTests.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/libraries/System.Diagnostics.StackTrace/tests/StackTraceTests.cs b/src/libraries/System.Diagnostics.StackTrace/tests/StackTraceTests.cs index 900f6dbbb26d71..0a614bbe9e4d5d 100644 --- a/src/libraries/System.Diagnostics.StackTrace/tests/StackTraceTests.cs +++ b/src/libraries/System.Diagnostics.StackTrace/tests/StackTraceTests.cs @@ -313,7 +313,9 @@ public void ToString_NullFrame_ThrowsNullReferenceException() [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] private static StackTrace Generic() => new StackTrace(); + [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] private static StackTrace InvokeIgnoredMethod() => Ignored.Method(); + [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] private static StackTrace InvokeIgnoredMethodWithException() => Ignored.MethodWithException(); [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] @@ -335,6 +337,8 @@ private static Exception InvokeException() private class ClassWithConstructor { public StackTrace StackTrace { get; } + + [MethodImpl(MethodImplOptions.NoInlining)] public ClassWithConstructor() => StackTrace = new StackTrace(); }