diff options
-rw-r--r-- | test/036-finalizer/expected.txt | 2 | ||||
-rw-r--r-- | test/036-finalizer/src/Main.java | 16 |
2 files changed, 12 insertions, 6 deletions
diff --git a/test/036-finalizer/expected.txt b/test/036-finalizer/expected.txt index 36fa5f8e79..c5d03ba85a 100644 --- a/test/036-finalizer/expected.txt +++ b/test/036-finalizer/expected.txt @@ -11,4 +11,4 @@ gc + finalize sleep reborn: [FinalizerTest message=nothing, finalized=false] wimp: null -Finalized 1024 / 1024 +After sleep finalized 1024 / 1024 diff --git a/test/036-finalizer/src/Main.java b/test/036-finalizer/src/Main.java index 734830f7de..ff6186b240 100644 --- a/test/036-finalizer/src/Main.java +++ b/test/036-finalizer/src/Main.java @@ -25,6 +25,8 @@ import java.util.List; * immediately or very soon. */ public class Main { + private final static boolean isDalvik = System.getProperty("java.vm.name").equals("Dalvik"); + private static void snooze(int ms) { try { Thread.sleep(ms); @@ -146,18 +148,22 @@ public class Main { allocFinalizableObjects(FinalizeCounter.maxCount); Runtime.getRuntime().gc(); System.runFinalization(); - System.out.println("Finalized " + FinalizeCounter.getCount() + " / " + FinalizeCounter.maxCount); if (FinalizeCounter.getCount() != FinalizeCounter.maxCount) { - // Print out all the finalized elements. - FinalizeCounter.printNonFinalized(); + if (isDalvik) { + // runFinalization is "expend effort", only ART makes a strong effort all finalizers ran. + System.out.println("Finalized " + FinalizeCounter.getCount() + " / " + FinalizeCounter.maxCount); + // Print out all the finalized elements. + FinalizeCounter.printNonFinalized(); + } // Try to sleep for a couple seconds to see if the objects became finalized after. try { java.lang.Thread.sleep(2000); } catch (InterruptedException e) { + throw new AssertionError(e); } - System.out.println("After sleep finalized " + FinalizeCounter.getCount() + " / " + FinalizeCounter.maxCount); - FinalizeCounter.printNonFinalized(); } + System.out.println("After sleep finalized " + FinalizeCounter.getCount() + " / " + FinalizeCounter.maxCount); + FinalizeCounter.printNonFinalized(); } public static class FinalizerTest { |