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

Comparing jsr166/src/test/tck/PhaserTest.java (file contents):
Revision 1.34 by jsr166, Mon Jun 27 04:07:51 2011 UTC vs.
Revision 1.40 by jsr166, Sat Apr 25 04:55:31 2015 UTC

# Line 5 | Line 5
5   * Other contributors include John Vint
6   */
7  
8 < import junit.framework.*;
8 > import static java.util.concurrent.TimeUnit.MILLISECONDS;
9 >
10   import java.util.ArrayList;
11   import java.util.List;
11 import java.util.concurrent.Phaser;
12   import java.util.concurrent.CountDownLatch;
13 + import java.util.concurrent.Phaser;
14   import java.util.concurrent.TimeoutException;
14 import static java.util.concurrent.TimeUnit.MILLISECONDS;
15 import static java.util.concurrent.TimeUnit.NANOSECONDS;
16 import java.util.concurrent.atomic.AtomicBoolean;
15   import java.util.concurrent.atomic.AtomicInteger;
16  
17 + import junit.framework.Test;
18 + import junit.framework.TestSuite;
19 +
20   public class PhaserTest extends JSR166TestCase {
21  
22      public static void main(String[] args) {
23 <        junit.textui.TestRunner.run(suite());
23 >        main(suite(), args);
24      }
25  
26      public static Test suite() {
# Line 191 | Line 192 | public class PhaserTest extends JSR166Te
192      /**
193       * register on a subphaser that is currently empty succeeds, even
194       * in the presence of another non-empty subphaser
194     * XXXX broken (hangs) as of 2011-06-26
195       */
196 <    public void XXXXtestRegisterEmptySubPhaser() {
196 >    public void testRegisterEmptySubPhaser() {
197          Phaser root = new Phaser();
198          Phaser child1 = new Phaser(root, 1);
199          Phaser child2 = new Phaser(root, 0);
200          assertEquals(0, child2.register());
201 +        assertState(root, 0, 2, 2);
202 +        assertState(child1, 0, 1, 1);
203 +        assertState(child2, 0, 1, 1);
204          assertEquals(0, child2.arriveAndDeregister());
205 +        assertState(root, 0, 1, 1);
206 +        assertState(child1, 0, 1, 1);
207 +        assertState(child2, 0, 0, 0);
208          assertEquals(0, child2.register());
209          assertEquals(0, child2.arriveAndDeregister());
210 +        assertState(root, 0, 1, 1);
211 +        assertState(child1, 0, 1, 1);
212          assertState(child2, 0, 0, 0);
213 +        assertEquals(0, child1.arriveAndDeregister());
214 +        assertTerminated(root, 1);
215 +        assertTerminated(child1, 1);
216 +        assertTerminated(child2, 1);
217      }
218  
219      /**
# Line 617 | Line 629 | public class PhaserTest extends JSR166Te
629                          count.incrementAndGet();
630                          assertEquals(2*k+1, phaser.arrive());
631                          assertEquals(2*k+2, phaser.awaitAdvance(2*k+1));
632 <                        assertEquals(count.get(), 4*(k+1));
632 >                        assertEquals(4*(k+1), count.get());
633                      }}}));
634  
635          for (Thread thread : threads)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines