Make 030-bad-finalizer less flaky by removing timing dependent output
Bug: 13108062
Change-Id: If4b0efc70b39690b6cbacc2205853a06e0df8f53
diff --git a/test/030-bad-finalizer/expected.txt b/test/030-bad-finalizer/expected.txt
index 88b1896..ee9cfff 100644
--- a/test/030-bad-finalizer/expected.txt
+++ b/test/030-bad-finalizer/expected.txt
@@ -1,7 +1,4 @@
-Constructed object.
-Nulled. Requestion gc.
+About to null reference and request GC.
Finalizer started and spinning...
Finalizer done spinning.
Finalizer sleeping forever now.
-Requesting another GC.
-Requesting another GC.
diff --git a/test/030-bad-finalizer/src/BadFinalizer.java b/test/030-bad-finalizer/src/BadFinalizer.java
deleted file mode 100644
index 6911a02..0000000
--- a/test/030-bad-finalizer/src/BadFinalizer.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/**
- * Class with a bad finalizer.
- */
-public class BadFinalizer {
- public static void snooze(int ms) {
- try {
- Thread.sleep(ms);
- } catch (InterruptedException ie) {
- System.out.println("Snooze: " + ie.getMessage());
- }
- }
-
- protected void finalize() {
- System.out.println("Finalizer started and spinning...");
- int j = 0;
-
- /* spin for a bit */
- long start, end;
- start = System.nanoTime();
- for (int i = 0; i < 1000000; i++)
- j++;
- end = System.nanoTime();
- System.out.println("Finalizer done spinning.");
-
- System.out.println("Finalizer sleeping forever now.");
- while (true) {
- snooze(10000);
- }
- }
-}
diff --git a/test/030-bad-finalizer/src/Main.java b/test/030-bad-finalizer/src/Main.java
index 330e344..942ee25 100644
--- a/test/030-bad-finalizer/src/Main.java
+++ b/test/030-bad-finalizer/src/Main.java
@@ -21,19 +21,47 @@
public static void main(String[] args) {
BadFinalizer bf = new BadFinalizer();
- System.out.println("Constructed object.");
+ System.out.println("About to null reference and request GC.");
bf = null;
-
- System.out.println("Nulled. Requestion gc.");
Runtime.getRuntime().gc();
for (int i = 0; i < 8; i++) {
- BadFinalizer.snooze(4000);
- System.out.println("Requesting another GC.");
+ snooze(4000);
Runtime.getRuntime().gc();
}
- System.out.println("Done waiting.");
+ System.out.println("UNREACHABLE");
System.exit(0);
}
+
+ public static void snooze(int ms) {
+ try {
+ Thread.sleep(ms);
+ } catch (InterruptedException ie) {
+ }
+ }
+
+ /**
+ * Class with a bad finalizer.
+ */
+ public static class BadFinalizer {
+ protected void finalize() {
+ System.out.println("Finalizer started and spinning...");
+ int j = 0;
+
+ /* spin for a bit */
+ long start, end;
+ start = System.nanoTime();
+ for (int i = 0; i < 1000000; i++) {
+ j++;
+ }
+ end = System.nanoTime();
+ System.out.println("Finalizer done spinning.");
+
+ System.out.println("Finalizer sleeping forever now.");
+ while (true) {
+ snooze(10000);
+ }
+ }
+ }
}