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.22 by jsr166, Mon Nov 8 20:02:57 2010 UTC vs.
Revision 1.27 by jsr166, Fri Dec 3 02:09:40 2010 UTC

# Line 38 | Line 38 | public class PhaserTest extends JSR166Te
38      }
39  
40      /** Checks state of terminated phaser. */
41 <    protected void assertTerminated(Phaser phaser, int parties, int unarrived) {
41 >    protected void assertTerminated(Phaser phaser,
42 >                                    int maxPhase, int parties, int unarrived) {
43          assertTrue(phaser.isTerminated());
44 <        assertTrue(phaser.getPhase() < 0);
44 >        int expectedPhase = maxPhase + Integer.MIN_VALUE;
45 >        assertEquals(expectedPhase, phaser.getPhase());
46          assertEquals(parties, phaser.getRegisteredParties());
47 <        assertEquals(unarrived, phaser.getUnarrivedParties());
48 <        assertEquals(parties - unarrived, phaser.getArrivedParties());
47 >        assertEquals(expectedPhase, phaser.register());
48 >        assertEquals(expectedPhase, phaser.arrive());
49 >        assertEquals(expectedPhase, phaser.arriveAndDeregister());
50      }
51  
52 <    protected void assertTerminated(Phaser phaser) {
53 <        assertTerminated(phaser, 0, 0);
52 >    protected void assertTerminated(Phaser phaser, int maxPhase) {
53 >        assertTerminated(phaser, maxPhase, 0, 0);
54      }
55  
56      /**
# Line 257 | Line 260 | public class PhaserTest extends JSR166Te
260              assertState(phaser, 0, 1, 1);
261          }
262          assertEquals(0, phaser.arriveAndDeregister());
263 <        assertTerminated(phaser);
263 >        assertTerminated(phaser, 1);
264      }
265  
266      /**
# Line 288 | Line 291 | public class PhaserTest extends JSR166Te
291      public void testArrive3() {
292          Phaser phaser = new Phaser(1);
293          phaser.forceTermination();
294 <        assertTerminated(phaser, 1, 1);
294 >        assertTerminated(phaser, 0, 1, 1);
295 >        assertEquals(0, phaser.getPhase() + Integer.MIN_VALUE);
296          assertTrue(phaser.arrive() < 0);
297          assertTrue(phaser.register() < 0);
298          assertTrue(phaser.arriveAndDeregister() < 0);
# Line 329 | Line 333 | public class PhaserTest extends JSR166Te
333          Phaser parent = new Phaser();
334          Phaser child = new Phaser(parent);
335          assertState(child, 0, 0, 0);
336 <        assertState(parent, 0, 1, 1);
336 >        assertState(parent, 0, 0, 0);
337          assertEquals(0, child.register());
338          assertState(child, 0, 1, 1);
339          assertState(parent, 0, 1, 1);
340          assertEquals(0, child.arriveAndDeregister());
341 <        assertTerminated(child);
342 <        assertTerminated(parent);
341 >        assertTerminated(child, 1);
342 >        assertTerminated(parent, 1);
343      }
344  
345      /**
# Line 362 | Line 366 | public class PhaserTest extends JSR166Te
366          Phaser root = new Phaser();
367          Phaser parent = new Phaser(root);
368          Phaser child = new Phaser(parent);
369 <        assertState(root, 0, 1, 1);
370 <        assertState(parent, 0, 1, 1);
369 >        assertState(root, 0, 0, 0);
370 >        assertState(parent, 0, 0, 0);
371          assertState(child, 0, 0, 0);
372          assertEquals(0, child.register());
373          assertState(root, 0, 1, 1);
374          assertState(parent, 0, 1, 1);
375          assertState(child, 0, 1, 1);
376          assertEquals(0, child.arriveAndDeregister());
377 <        assertTerminated(child);
378 <        assertTerminated(parent);
379 <        assertTerminated(root);
377 >        assertTerminated(child, 1);
378 >        assertTerminated(parent, 1);
379 >        assertTerminated(root, 1);
380      }
381  
382      /**
# Line 390 | Line 394 | public class PhaserTest extends JSR166Te
394          assertEquals(1, phaser.arriveAndDeregister());
395          assertState(phaser, 1, 1, 1);
396          assertEquals(1, phaser.arriveAndDeregister());
397 <        assertTerminated(phaser);
397 >        assertTerminated(phaser, 2);
398          awaitTermination(t, SHORT_DELAY_MS);
399      }
400  
# Line 594 | Line 598 | public class PhaserTest extends JSR166Te
598                      assertTrue(phaser.awaitAdvance(0) < 0);
599                      assertTrue(phaser.isTerminated());
600                      assertTrue(phaser.getPhase() < 0);
601 +                    assertEquals(0, phaser.getPhase() + Integer.MIN_VALUE);
602                      assertEquals(3, phaser.getRegisteredParties());
603                  }};
604              threads.add(newStartedThread(r));
605          }
606          threadsStarted.await();
607          phaser.forceTermination();
608 +        assertTrue(phaser.isTerminated());
609 +        assertEquals(0, phaser.getPhase() + Integer.MIN_VALUE);
610          for (Thread thread : threads)
611              awaitTermination(thread, SMALL_DELAY_MS);
605        assertTrue(phaser.isTerminated());
606        assertTrue(phaser.getPhase() < 0);
612          assertEquals(3, phaser.getRegisteredParties());
613      }
614  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines