--- jsr166/src/test/tck/ThreadTest.java 2003/12/27 19:26:44 1.8 +++ jsr166/src/test/tck/ThreadTest.java 2016/02/27 20:13:53 1.19 @@ -1,20 +1,21 @@ /* * Written by Doug Lea with assistance from members of JCP JSR-166 * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/licenses/publicdomain - * Other contributors include Andrew Wright, Jeffrey Hayes, - * Pat Fisher, Mike Judd. + * http://creativecommons.org/publicdomain/zero/1.0/ + * Other contributors include Andrew Wright, Jeffrey Hayes, + * Pat Fisher, Mike Judd. */ -import junit.framework.*; +import junit.framework.Test; +import junit.framework.TestSuite; public class ThreadTest extends JSR166TestCase { public static void main(String[] args) { - junit.textui.TestRunner.run(suite()); + main(suite(), args); } - + public static Test suite() { - return new TestSuite(ThreadTest.class); + return new TestSuite(ThreadTest.class); } static class MyHandler implements Thread.UncaughtExceptionHandler { @@ -22,10 +23,10 @@ public class ThreadTest extends JSR166Te e.printStackTrace(); } } - + /** * getUncaughtExceptionHandler returns ThreadGroup unless set, - * otherwise returning vlaue of last setUncaughtExceptionHandler. + * otherwise returning value of last setUncaughtExceptionHandler. */ public void testGetAndSetUncaughtExceptionHandler() { // these must be done all at once to avoid state @@ -33,36 +34,40 @@ public class ThreadTest extends JSR166Te Thread current = Thread.currentThread(); ThreadGroup tg = current.getThreadGroup(); MyHandler eh = new MyHandler(); - assertEquals(tg, current.getUncaughtExceptionHandler()); + assertSame(tg, current.getUncaughtExceptionHandler()); current.setUncaughtExceptionHandler(eh); - assertEquals(eh, current.getUncaughtExceptionHandler()); - current.setUncaughtExceptionHandler(null); - assertEquals(tg, current.getUncaughtExceptionHandler()); + try { + assertSame(eh, current.getUncaughtExceptionHandler()); + } finally { + current.setUncaughtExceptionHandler(null); + } + assertSame(tg, current.getUncaughtExceptionHandler()); } /** * getDefaultUncaughtExceptionHandler returns value of last - * setDefaultUncaughtExceptionHandler. + * setDefaultUncaughtExceptionHandler. */ public void testGetAndSetDefaultUncaughtExceptionHandler() { assertEquals(null, Thread.getDefaultUncaughtExceptionHandler()); - // failure due to securityException is OK. + // failure due to SecurityException is OK. // Would be nice to explicitly test both ways, but cannot yet. + Thread.UncaughtExceptionHandler defaultHandler + = Thread.getDefaultUncaughtExceptionHandler(); + MyHandler eh = new MyHandler(); try { - Thread current = Thread.currentThread(); - ThreadGroup tg = current.getThreadGroup(); - MyHandler eh = new MyHandler(); Thread.setDefaultUncaughtExceptionHandler(eh); - assertEquals(eh, Thread.getDefaultUncaughtExceptionHandler()); - Thread.setDefaultUncaughtExceptionHandler(null); - } - catch(SecurityException ok) { + try { + assertSame(eh, Thread.getDefaultUncaughtExceptionHandler()); + } finally { + Thread.setDefaultUncaughtExceptionHandler(defaultHandler); + } + } catch (SecurityException ok) { + assertNotNull(System.getSecurityManager()); } - assertEquals(null, Thread.getDefaultUncaughtExceptionHandler()); + assertSame(defaultHandler, Thread.getDefaultUncaughtExceptionHandler()); } - // How to test actually using UEH within junit? } -