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

Comparing jsr166/src/test/tck/ExchangerTest.java (file contents):
Revision 1.11 by jsr166, Sat Nov 21 02:33:20 2009 UTC vs.
Revision 1.16 by dl, Fri May 6 11:22:07 2011 UTC

# Line 1 | Line 1
1   /*
2   * Written by Doug Lea with assistance from members of JCP JSR-166
3   * Expert Group and released to the public domain, as explained at
4 < * http://creativecommons.org/licenses/publicdomain
4 > * http://creativecommons.org/publicdomain/zero/1.0/
5   * Other contributors include Andrew Wright, Jeffrey Hayes,
6   * Pat Fisher, Mike Judd.
7   */
# Line 14 | Line 14 | import static java.util.concurrent.TimeU
14   public class ExchangerTest extends JSR166TestCase {
15  
16      public static void main(String[] args) {
17 <        junit.textui.TestRunner.run (suite());
17 >        junit.textui.TestRunner.run(suite());
18      }
19      public static Test suite() {
20          return new TestSuite(ExchangerTest.class);
# Line 27 | Line 27 | public class ExchangerTest extends JSR16
27          final Exchanger e = new Exchanger();
28          Thread t1 = new Thread(new CheckedRunnable() {
29              public void realRun() throws InterruptedException {
30 <                Object v = e.exchange(one);
31 <                threadAssertEquals(v, two);
32 <                Object w = e.exchange(v);
33 <                threadAssertEquals(w, one);
30 >                assertSame(one, e.exchange(two));
31 >                assertSame(two, e.exchange(one));
32              }});
33          Thread t2 = new Thread(new CheckedRunnable() {
34              public void realRun() throws InterruptedException {
35 <                Object v = e.exchange(two);
36 <                threadAssertEquals(v, one);
39 <                Object w = e.exchange(v);
40 <                threadAssertEquals(w, two);
35 >                assertSame(two, e.exchange(one));
36 >                assertSame(one, e.exchange(two));
37              }});
38  
39          t1.start();
# Line 53 | Line 49 | public class ExchangerTest extends JSR16
49          final Exchanger e = new Exchanger();
50          Thread t1 = new Thread(new CheckedRunnable() {
51              public void realRun() throws Exception {
52 <                Object v = e.exchange(one, SHORT_DELAY_MS, MILLISECONDS);
53 <                threadAssertEquals(v, two);
58 <                Object w = e.exchange(v, SHORT_DELAY_MS, MILLISECONDS);
59 <                threadAssertEquals(w, one);
52 >                assertSame(one, e.exchange(two, SHORT_DELAY_MS, MILLISECONDS));
53 >                assertSame(two, e.exchange(one, SHORT_DELAY_MS, MILLISECONDS));
54              }});
55          Thread t2 = new Thread(new CheckedRunnable() {
56              public void realRun() throws Exception {
57 <                Object v = e.exchange(two, SHORT_DELAY_MS, MILLISECONDS);
58 <                threadAssertEquals(v, one);
65 <                Object w = e.exchange(v, SHORT_DELAY_MS, MILLISECONDS);
66 <                threadAssertEquals(w, two);
57 >                assertSame(two, e.exchange(one, SHORT_DELAY_MS, MILLISECONDS));
58 >                assertSame(one, e.exchange(two, SHORT_DELAY_MS, MILLISECONDS));
59              }});
60  
61          t1.start();
# Line 83 | Line 75 | public class ExchangerTest extends JSR16
75              }});
76  
77          t.start();
78 <        Thread.sleep(SHORT_DELAY_MS);
78 >        delay(SHORT_DELAY_MS);
79          t.interrupt();
80          t.join();
81      }
# Line 95 | Line 87 | public class ExchangerTest extends JSR16
87          final Exchanger e = new Exchanger();
88          Thread t = new Thread(new CheckedInterruptedRunnable() {
89              public void realRun() throws Exception {
90 <                e.exchange(null, MEDIUM_DELAY_MS, MILLISECONDS);
90 >                e.exchange(null, SMALL_DELAY_MS, MILLISECONDS);
91              }});
92  
93          t.start();
94 +        delay(SHORT_DELAY_MS);
95          t.interrupt();
96          t.join();
97      }
# Line 108 | Line 101 | public class ExchangerTest extends JSR16
101       */
102      public void testExchange_TimeOutException() throws InterruptedException {
103          final Exchanger e = new Exchanger();
104 <        Thread t = new Thread(new CheckedRunnable() {
104 >        Thread t = new ThreadShouldThrow(TimeoutException.class) {
105              public void realRun() throws Exception {
106 <                try {
107 <                    e.exchange(null, SHORT_DELAY_MS, MILLISECONDS);
115 <                    threadShouldThrow();
116 <                } catch (TimeoutException success) {}
117 <            }});
106 >                e.exchange(null, SHORT_DELAY_MS, MILLISECONDS);
107 >            }};
108  
109          t.start();
110          t.join();
# Line 127 | Line 117 | public class ExchangerTest extends JSR16
117          final Exchanger e = new Exchanger();
118          Thread t1 = new Thread(new CheckedInterruptedRunnable() {
119              public void realRun() throws InterruptedException {
120 <                Object v = e.exchange(one);
121 <                threadAssertEquals(v, two);
132 <                Object w = e.exchange(v);
120 >                assertSame(two, e.exchange(one));
121 >                e.exchange(two);
122              }});
123          Thread t2 = new Thread(new CheckedRunnable() {
124              public void realRun() throws InterruptedException {
125 <                Object v = e.exchange(two);
126 <                threadAssertEquals(v, one);
127 <                Thread.sleep(SMALL_DELAY_MS);
139 <                Object w = e.exchange(v);
140 <                threadAssertEquals(w, three);
125 >                assertSame(one, e.exchange(two));
126 >                delay(SMALL_DELAY_MS);
127 >                assertSame(three, e.exchange(one));
128              }});
129          Thread t3 = new Thread(new CheckedRunnable() {
130              public void realRun() throws InterruptedException {
131 <                Thread.sleep(SMALL_DELAY_MS);
132 <                Object w = e.exchange(three);
146 <                threadAssertEquals(w, one);
131 >                delay(SMALL_DELAY_MS);
132 >                assertSame(one, e.exchange(three));
133              }});
134  
135          t1.start();
136          t2.start();
137          t3.start();
138 <        Thread.sleep(SHORT_DELAY_MS);
138 >        delay(SHORT_DELAY_MS);
139          t1.interrupt();
140          t1.join();
141          t2.join();

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines