diff options
| author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 19:28:47 -0800 |
|---|---|---|
| committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 19:28:47 -0800 |
| commit | f6c387128427e121477c1b32ad35cdcaa5101ba3 (patch) | |
| tree | 2aa25fa8c8c3a9caeecf98fd8ac4cd9b12717997 /tests/054-uncaught | |
| parent | f72d5de56a522ac3be03873bdde26f23a5eeeb3c (diff) | |
| download | android_dalvik-f6c387128427e121477c1b32ad35cdcaa5101ba3.tar.gz android_dalvik-f6c387128427e121477c1b32ad35cdcaa5101ba3.tar.bz2 android_dalvik-f6c387128427e121477c1b32ad35cdcaa5101ba3.zip | |
auto import from //depot/cupcake/@135843
Diffstat (limited to 'tests/054-uncaught')
| -rw-r--r-- | tests/054-uncaught/expected.txt | 21 | ||||
| -rw-r--r-- | tests/054-uncaught/info.txt | 6 | ||||
| -rw-r--r-- | tests/054-uncaught/src/Main.java | 63 | ||||
| -rw-r--r-- | tests/054-uncaught/src/ThreadDeathHandler.java | 20 |
4 files changed, 110 insertions, 0 deletions
diff --git a/tests/054-uncaught/expected.txt b/tests/054-uncaught/expected.txt new file mode 100644 index 000000000..e7473be8a --- /dev/null +++ b/tests/054-uncaught/expected.txt @@ -0,0 +1,21 @@ +Test 1 +Uncaught exception DEFAULT! +java.lang.NullPointerException: Hi diddly-ho, neighborino. + at Main.catchTheUncaught(Main.java:49) + at Main$Helper.run(Main.java:60) +Test 2 +Uncaught exception THREAD! +java.lang.NullPointerException: Hi diddly-ho, neighborino. + at Main.catchTheUncaught(Main.java:49) + at Main$Helper.run(Main.java:60) +Test 3 +Uncaught exception THREAD! +java.lang.NullPointerException: Hi diddly-ho, neighborino. + at Main.catchTheUncaught(Main.java:49) + at Main$Helper.run(Main.java:60) +Test 1 +Uncaught exception DEFAULT! +java.lang.NullPointerException: Hi diddly-ho, neighborino. + at Main.catchTheUncaught(Main.java:49) + at Main.main(Main.java:12) + at dalvik.system.NativeStart.main(Native Method) diff --git a/tests/054-uncaught/info.txt b/tests/054-uncaught/info.txt new file mode 100644 index 000000000..08127da23 --- /dev/null +++ b/tests/054-uncaught/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/tests/054-uncaught/src/Main.java b/tests/054-uncaught/src/Main.java new file mode 100644 index 000000000..68e9b42bf --- /dev/null +++ b/tests/054-uncaught/src/Main.java @@ -0,0 +1,63 @@ +// Copyright 2006 The Android Open Source Project + +/** + * Test the uncaught exception handler. + */ +public class Main { + public static void main(String[] args) { + testThread(1); + testThread(2); + testThread(3); + + catchTheUncaught(1); + } + + private static void testThread(int which) { + Thread t = new Helper(which); + t.start(); + + try { + t.join(); + } catch (InterruptedException ex) { + ex.printStackTrace(); + } + } + + static void catchTheUncaught(int which) { + ThreadDeathHandler defHandler = new ThreadDeathHandler("DEFAULT"); + ThreadDeathHandler threadHandler = new ThreadDeathHandler("THREAD"); + + System.out.println("Test " + which); + switch (which) { + case 1: { + Thread.setDefaultUncaughtExceptionHandler(defHandler); + break; + } + case 2: { + Thread.currentThread().setUncaughtExceptionHandler( + threadHandler); + break; + } + case 3: { + Thread.setDefaultUncaughtExceptionHandler(defHandler); + Thread.currentThread().setUncaughtExceptionHandler( + threadHandler); + break; + } + } + + throw new NullPointerException("Hi diddly-ho, neighborino."); + } + + private static class Helper extends Thread { + private int which; + + public Helper(int which) { + this.which = which; + } + + public void run() { + catchTheUncaught(which); + } + } +} diff --git a/tests/054-uncaught/src/ThreadDeathHandler.java b/tests/054-uncaught/src/ThreadDeathHandler.java new file mode 100644 index 000000000..3f42f4d71 --- /dev/null +++ b/tests/054-uncaught/src/ThreadDeathHandler.java @@ -0,0 +1,20 @@ +// Copyright 2007 The Android Open Source Project + +import java.lang.Thread.UncaughtExceptionHandler; + +/** + * Report death-by-uncaught-exception. + */ +public class ThreadDeathHandler implements Thread.UncaughtExceptionHandler { + private String mMyMessage; + + public ThreadDeathHandler(String msg) { + mMyMessage = msg; + } + + public void uncaughtException(Thread t, Throwable e) { + System.err.println("Uncaught exception " + mMyMessage + "!"); + e.printStackTrace(); + } +} + |
