summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/036-finalizer/expected.txt2
-rw-r--r--test/036-finalizer/src/Main.java16
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 {