ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/tck/ThreadTest.java
(Generate patch)

Comparing jsr166/src/test/tck/ThreadTest.java (file contents):
Revision 1.1 by dl, Sun Aug 31 19:24:56 2003 UTC vs.
Revision 1.6 by dl, Sun Oct 5 23:00:40 2003 UTC

# Line 6 | Line 6
6   */
7  
8   import junit.framework.*;
9 import java.util.concurrent.Semaphore;
9  
10 < /**
12 < * Test java.lang.Thread
13 < *
14 < */
15 <
16 < public class ThreadTest extends TestCase {
10 > public class ThreadTest extends JSR166TestCase {
11      public static void main(String[] args) {
12          junit.textui.TestRunner.run(suite());  
13      }
# Line 28 | Line 22 | public class ThreadTest extends TestCase
22          }
23      }
24      
25 +    /**
26 +     * getUncaughtExceptionHandler returns ThreadGroup unless set,
27 +     * otherwise returning vlaue of last setUncaughtExceptionHandler.
28 +     */
29      public void testGetAndSetUncaughtExceptionHandler() {
30          // these must be done all at once to avoid state
31          // dependencies across tests
32          Thread current = Thread.currentThread();
33          ThreadGroup tg = current.getThreadGroup();
36        assertNull(Thread.getDefaultUncaughtExceptionHandler());
37        assertEquals(tg, current.getUncaughtExceptionHandler());
34          MyHandler eh = new MyHandler();
39        Thread.setDefaultUncaughtExceptionHandler(eh);
40        assertEquals(eh, current.getUncaughtExceptionHandler());
41        assertEquals(eh, Thread.getDefaultUncaughtExceptionHandler());
42        Thread.setDefaultUncaughtExceptionHandler(null);
43        assertNull(Thread.getDefaultUncaughtExceptionHandler());
35          assertEquals(tg, current.getUncaughtExceptionHandler());
36          current.setUncaughtExceptionHandler(eh);
37          assertEquals(eh, current.getUncaughtExceptionHandler());
38          current.setUncaughtExceptionHandler(null);
39          assertEquals(tg, current.getUncaughtExceptionHandler());
40      }
41 +
42 +    /**
43 +     * getDefaultUncaughtExceptionHandler returns value of last
44 +     * setDefaultUncaughtExceptionHandler.
45 +     */
46 +    public void testGetAndSetDefaultUncaughtExceptionHandler() {
47 +        assertEquals(null, Thread.getDefaultUncaughtExceptionHandler());
48 +        // failure due to securityException is OK.
49 +        // Would be nice to explicitly test both ways, but cannot yet.
50 +        try {
51 +            Thread current = Thread.currentThread();
52 +            ThreadGroup tg = current.getThreadGroup();
53 +            MyHandler eh = new MyHandler();
54 +            Thread.setDefaultUncaughtExceptionHandler(eh);
55 +            assertEquals(eh, Thread.getDefaultUncaughtExceptionHandler());
56 +            Thread.setDefaultUncaughtExceptionHandler(null);
57 +        }
58 +        catch(SecurityException ok) {
59 +        }
60 +        assertEquals(null, Thread.getDefaultUncaughtExceptionHandler());
61 +    }
62 +
63 +    /**
64 +     * getUncaughtExceptionHandler returns value of last
65 +     * setDefaultUncaughtExceptionHandler if non-null
66 +     */
67 +    public void testGetAfterSetDefaultUncaughtExceptionHandler() {
68 +        assertEquals(null, Thread.getDefaultUncaughtExceptionHandler());
69 +        // failure due to securityException is OK.
70 +        // Would be nice to explicitly test both ways, but cannot yet.
71 +        try {
72 +            Thread current = Thread.currentThread();
73 +            ThreadGroup tg = current.getThreadGroup();
74 +            MyHandler eh = new MyHandler();
75 +            assertEquals(tg, current.getUncaughtExceptionHandler());
76 +            Thread.setDefaultUncaughtExceptionHandler(eh);
77 +            assertEquals(eh, current.getUncaughtExceptionHandler());
78 +            Thread.setDefaultUncaughtExceptionHandler(null);
79 +            assertEquals(tg, current.getUncaughtExceptionHandler());
80 +        }
81 +        catch(SecurityException ok) {
82 +        }
83 +        assertEquals(null, Thread.getDefaultUncaughtExceptionHandler());
84 +    }
85      
86      // How to test actually using UEH within junit?
87  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines