diff options
author | Brian Carlstrom <bdc@google.com> | 2014-02-20 14:02:48 -0800 |
---|---|---|
committer | Brian Carlstrom <bdc@google.com> | 2014-02-20 15:35:15 -0800 |
commit | 9d94d5f58bdbdcfa5dab7149f96c0d232fb7e306 (patch) | |
tree | aa50027321737de3f7482a164c7afceea451429a /test/030-bad-finalizer | |
parent | 0b2b3dbaa3db62c0af0d2f23f6aa1c539afe7443 (diff) | |
download | art-9d94d5f58bdbdcfa5dab7149f96c0d232fb7e306.zip art-9d94d5f58bdbdcfa5dab7149f96c0d232fb7e306.tar.gz art-9d94d5f58bdbdcfa5dab7149f96c0d232fb7e306.tar.bz2 |
Make 030-bad-finalizer less flaky by removing timing dependent output
Bug: 13108062
Change-Id: If4b0efc70b39690b6cbacc2205853a06e0df8f53
Diffstat (limited to 'test/030-bad-finalizer')
-rw-r--r-- | test/030-bad-finalizer/expected.txt | 5 | ||||
-rw-r--r-- | test/030-bad-finalizer/src/BadFinalizer.java | 46 | ||||
-rw-r--r-- | test/030-bad-finalizer/src/Main.java | 40 |
3 files changed, 35 insertions, 56 deletions
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 class Main { 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); + } + } + } } |