ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/test/tck/CancellableTaskTest.java
Revision: 1.4
Committed: Sat Sep 20 18:20:07 2003 UTC (20 years, 8 months ago) by dl
Branch: MAIN
Changes since 1.3: +39 -3 lines
Log Message:
Documentation scaffolding

File Contents

# User Rev Content
1 dl 1.1 /*
2     * Written by members of JCP JSR-166 Expert Group and released to the
3     * public domain. Use, modify, and redistribute this code in any way
4     * without acknowledgement. Other contributors include Andrew Wright,
5     * Jeffrey Hayes, Pat Fischer, Mike Judd.
6     */
7    
8     import junit.framework.*;
9     import java.util.*;
10     import java.util.concurrent.*;
11    
12 dl 1.3 public class CancellableTaskTest extends JSR166TestCase {
13 dl 1.1 public static void main(String[] args) {
14     junit.textui.TestRunner.run (suite());
15     }
16     public static Test suite() {
17     return new TestSuite(CancellableTaskTest.class);
18     }
19    
20 dl 1.3 /**
21     * Subclass to expose protected methods
22     */
23     static class MyCancellableTask extends CancellableTask {
24     public MyCancellableTask() {}
25     public MyCancellableTask(Runnable r) { super(r); }
26     public boolean reset() { return super.reset(); }
27     public Runnable getRunnable() { return super.getRunnable(); }
28     public void setRunnable(Runnable r) { super.setRunnable(r); }
29     public void setCancelled() { super.setCancelled(); }
30     public void setDone() { super.setDone(); }
31     }
32 dl 1.2
33 dl 1.4 /**
34     *
35     */
36 dl 1.2 public void testConstructor(){
37     try {
38     CancellableTask task = new CancellableTask(null);
39 dl 1.4 shouldThrow();
40 dl 1.2 }
41     catch(NullPointerException success) {
42     }
43     }
44 dl 1.1
45 dl 1.4 /**
46     *
47     */
48 dl 1.1 public void testIsDone(){
49 dl 1.3 CancellableTask task = new CancellableTask(new NoOpRunnable());
50 dl 1.1 task.run();
51     assertTrue(task.isDone());
52     assertFalse(task.isCancelled());
53     }
54    
55 dl 1.4 /**
56     *
57     */
58 dl 1.3 public void testReset(){
59     MyCancellableTask task = new MyCancellableTask(new NoOpRunnable());
60     task.run();
61     assertTrue(task.isDone());
62     assertTrue(task.reset());
63     }
64    
65 dl 1.4 /**
66     *
67     */
68 dl 1.1 public void testCancelBeforeRun() {
69 dl 1.3 CancellableTask task = new CancellableTask(new NoOpRunnable());
70     assertTrue(task.cancel(false));
71     task.run();
72     assertTrue(task.isDone());
73     assertTrue(task.isCancelled());
74     }
75    
76 dl 1.4 /**
77     *
78     */
79 dl 1.3 public void testResetAfterCancel() {
80     MyCancellableTask task = new MyCancellableTask(new NoOpRunnable());
81     assertTrue(task.cancel(false));
82     task.run();
83     assertTrue(task.isDone());
84     assertTrue(task.isCancelled());
85     assertFalse(task.reset());
86     }
87    
88 dl 1.4 /**
89     *
90     */
91 dl 1.3 public void testSetRunnable() {
92     MyCancellableTask task = new MyCancellableTask();
93     assertNull(task.getRunnable());
94     Runnable r = new NoOpRunnable();
95     task.setRunnable(r);
96     assertEquals(r, task.getRunnable());
97 dl 1.1 assertTrue(task.cancel(false));
98     task.run();
99     assertTrue(task.isDone());
100     assertTrue(task.isCancelled());
101 dl 1.3 assertFalse(task.reset());
102     }
103    
104 dl 1.4 /**
105     *
106     */
107 dl 1.3 public void testSetDone() {
108     MyCancellableTask task = new MyCancellableTask(new NoOpRunnable());
109     task.setDone();
110     assertTrue(task.isDone());
111     assertFalse(task.isCancelled());
112     }
113    
114 dl 1.4 /**
115     *
116     */
117 dl 1.3 public void testSetCancelled() {
118     MyCancellableTask task = new MyCancellableTask(new NoOpRunnable());
119     assertTrue(task.cancel(false));
120     task.setCancelled();
121     assertTrue(task.isDone());
122     assertTrue(task.isCancelled());
123 dl 1.1 }
124    
125 dl 1.4 /**
126     *
127     */
128 dl 1.1 public void testCancelBeforeRun2() {
129 dl 1.3 CancellableTask task = new CancellableTask(new NoOpRunnable());
130 dl 1.1 assertTrue(task.cancel(true));
131     task.run();
132     assertTrue(task.isDone());
133     assertTrue(task.isCancelled());
134     }
135    
136 dl 1.4 /**
137     *
138     */
139 dl 1.1 public void testCancelAfterRun() {
140 dl 1.3 CancellableTask task = new CancellableTask(new NoOpRunnable());
141 dl 1.1 task.run();
142     assertFalse(task.cancel(false));
143     assertTrue(task.isDone());
144     assertFalse(task.isCancelled());
145     }
146    
147 dl 1.4 /**
148     *
149     */
150 dl 1.1 public void testCancelInterrupt(){
151 dl 1.3 CancellableTask task = new CancellableTask(new SmallInterruptedRunnable());
152 dl 1.1 Thread t = new Thread(task);
153    
154     try{
155 dl 1.3 t.start();
156 dl 1.1 Thread.sleep(SHORT_DELAY_MS);
157     assertTrue(task.cancel(true));
158     t.join();
159     assertTrue(task.isDone());
160     assertTrue(task.isCancelled());
161     } catch(InterruptedException e){
162 dl 1.4 unexpectedException();
163 dl 1.1 }
164     }
165    
166    
167 dl 1.4 /**
168     *
169     */
170 dl 1.1 public void testCancelNoInterrupt(){
171 dl 1.3 CancellableTask task = new CancellableTask(new SmallRunnable());
172 dl 1.1 Thread t = new Thread(task);
173     try{
174 dl 1.3 t.start();
175 dl 1.1 Thread.sleep(SHORT_DELAY_MS);
176     assertTrue(task.cancel(false));
177     t.join();
178     assertTrue(task.isDone());
179     assertTrue(task.isCancelled());
180     } catch(InterruptedException e){
181 dl 1.4 unexpectedException();
182 dl 1.1 }
183     }
184    
185    
186     }