diff options
author | jeffhao <jeffhao@google.com> | 2011-09-29 17:41:15 -0700 |
---|---|---|
committer | jeffhao <jeffhao@google.com> | 2011-09-29 17:41:15 -0700 |
commit | 5d1ac920fdaef5d4ec8f66bb734488cd9660b024 (patch) | |
tree | dd372f306ab70f4c86759869b1f74eca62ff6f2b /test/033-class-init-deadlock | |
parent | c31664f3d82e6cd68275a529a8a73f067a52e8be (diff) | |
download | art-5d1ac920fdaef5d4ec8f66bb734488cd9660b024.zip art-5d1ac920fdaef5d4ec8f66bb734488cd9660b024.tar.gz art-5d1ac920fdaef5d4ec8f66bb734488cd9660b024.tar.bz2 |
Adding old unit tests to test suite.
These tests are copied straight over. They'll still run, but they're
using the old system.
Change-Id: If494519e52ddf858a9febfc55bdae830468cb3c8
Diffstat (limited to 'test/033-class-init-deadlock')
-rw-r--r-- | test/033-class-init-deadlock/expected.txt | 7 | ||||
-rw-r--r-- | test/033-class-init-deadlock/info.txt | 6 | ||||
-rw-r--r-- | test/033-class-init-deadlock/src/Main.java | 51 |
3 files changed, 64 insertions, 0 deletions
diff --git a/test/033-class-init-deadlock/expected.txt b/test/033-class-init-deadlock/expected.txt new file mode 100644 index 0000000..387a426 --- /dev/null +++ b/test/033-class-init-deadlock/expected.txt @@ -0,0 +1,7 @@ +Deadlock test starting. +A initializing... +B initializing... +Deadlock test interupting threads. +Deadlock test main thread bailing. +A initialized: false +B initialized: false diff --git a/test/033-class-init-deadlock/info.txt b/test/033-class-init-deadlock/info.txt new file mode 100644 index 0000000..08127da --- /dev/null +++ b/test/033-class-init-deadlock/info.txt @@ -0,0 +1,6 @@ +This is a miscellaneous test that was imported into the new-at-the-time +runtime test framework. The test is intended to exercise basic features, +and as such cannot be build on top of junit, since failure of such basic +features might disrupt junit. + +TODO: Real description goes here. diff --git a/test/033-class-init-deadlock/src/Main.java b/test/033-class-init-deadlock/src/Main.java new file mode 100644 index 0000000..27c4922 --- /dev/null +++ b/test/033-class-init-deadlock/src/Main.java @@ -0,0 +1,51 @@ +// Copyright 2006 The Android Open Source Project + +/** + * This causes most VMs to lock up. + * + * Interrupting threads in class initialization should NOT work. + */ +public class Main { + public static boolean aInitialized = false; + public static boolean bInitialized = false; + + static public void main(String[] args) { + Thread thread1, thread2; + + System.out.println("Deadlock test starting."); + thread1 = new Thread() { public void run() { new A(); } }; + thread2 = new Thread() { public void run() { new B(); } }; + thread1.start(); + thread2.start(); + + try { Thread.sleep(6000); } catch (InterruptedException ie) { } + + System.out.println("Deadlock test interupting threads."); + thread1.interrupt(); + thread2.interrupt(); + System.out.println("Deadlock test main thread bailing."); + System.out.println("A initialized: " + aInitialized); + System.out.println("B initialized: " + bInitialized); + System.exit(0); + } +} + +class A { + static { + System.out.println("A initializing..."); + try { Thread.sleep(3000); } catch (InterruptedException ie) { } + new B(); + System.out.println("A initialized"); + Main.aInitialized = true; + } +} + +class B { + static { + System.out.println("B initializing..."); + try { Thread.sleep(3000); } catch (InterruptedException ie) { } + new A(); + System.out.println("B initialized"); + Main.bInitialized = true; + } +} |