[interp] disable some tests that fail on CI only
[mono.git] / mono / tests / finalizer-exception.cs
index f11a1dcdeffd2ce3eb23d16d088a431977b999aa..71f4b4cc20933647e7fcc1df7d36407ec6261ae7 100644 (file)
@@ -2,10 +2,13 @@ using System;
 using System.Threading;
 
 public class FinalizerException {
+
        ~FinalizerException () {
                throw new Exception ();
        }
 
+       static IntPtr aptr;
+
        /*
         * We allocate the exception object deep down the stack so
         * that it doesn't get pinned.
@@ -13,8 +16,10 @@ public class FinalizerException {
        public static unsafe void MakeException (int depth) {
                // Avoid tail calls
                int* values = stackalloc int [20];
+               aptr = new IntPtr (values);
                if (depth <= 0) {
-                       new FinalizerException ();
+                       for (int i = 0; i < 10; i++)
+                               new FinalizerException ();
                        return;
                }
                MakeException (depth - 1);
@@ -26,7 +31,9 @@ public class FinalizerException {
                        Environment.Exit (0);
                };
 
-               MakeException (1024);
+               var t = new Thread (delegate () { MakeException (1024); });
+               t.Start ();
+               t.Join ();
 
                GC.Collect ();
                GC.WaitForPendingFinalizers ();