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.28 by jsr166, Fri Dec 3 21:54:32 2010 UTC vs.
Revision 1.29 by jsr166, Fri Dec 3 23:55:55 2010 UTC

# Line 583 | Line 583 | public class PhaserTest extends JSR166Te
583      }
584  
585      /**
586 +     * awaitAdvance returns the current phase in child phasers
587 +     */
588 +    public void testAwaitAdvanceTieredPhaser() throws Exception {
589 +        final Phaser parent = new Phaser();
590 +        final List<Phaser> zeroPartyChildren = new ArrayList<Phaser>(3);
591 +        final List<Phaser> onePartyChildren = new ArrayList<Phaser>(3);
592 +        for (int i = 0; i < 3; i++) {
593 +            zeroPartyChildren.add(new Phaser(parent, 0));
594 +            onePartyChildren.add(new Phaser(parent, 1));
595 +        }
596 +        final List<Phaser> phasers = new ArrayList<Phaser>();
597 +        phasers.addAll(zeroPartyChildren);
598 +        phasers.addAll(onePartyChildren);
599 +        phasers.add(parent);
600 +        for (Phaser phaser : phasers) {
601 +            assertEquals(-42, phaser.awaitAdvance(-42));
602 +            assertEquals(-42, phaser.awaitAdvanceInterruptibly(-42));
603 +            assertEquals(-42, phaser.awaitAdvanceInterruptibly(-42, SMALL_DELAY_MS, MILLISECONDS));
604 +        }
605 +
606 +        for (Phaser child : onePartyChildren)
607 +            assertEquals(0, child.arrive());
608 +        for (Phaser phaser : phasers) {
609 +            assertEquals(-42, phaser.awaitAdvance(-42));
610 +            assertEquals(-42, phaser.awaitAdvanceInterruptibly(-42));
611 +            assertEquals(-42, phaser.awaitAdvanceInterruptibly(-42, SMALL_DELAY_MS, MILLISECONDS));
612 +            assertEquals(1, phaser.awaitAdvance(0));
613 +            assertEquals(1, phaser.awaitAdvanceInterruptibly(0));
614 +            assertEquals(1, phaser.awaitAdvanceInterruptibly(0, SMALL_DELAY_MS, MILLISECONDS));
615 +        }
616 +
617 +        for (Phaser child : onePartyChildren)
618 +            assertEquals(1, child.arrive());
619 +        for (Phaser phaser : phasers) {
620 +            assertEquals(-42, phaser.awaitAdvance(-42));
621 +            assertEquals(-42, phaser.awaitAdvanceInterruptibly(-42));
622 +            assertEquals(-42, phaser.awaitAdvanceInterruptibly(-42, SMALL_DELAY_MS, MILLISECONDS));
623 +            assertEquals(2, phaser.awaitAdvance(0));
624 +            assertEquals(2, phaser.awaitAdvanceInterruptibly(0));
625 +            assertEquals(2, phaser.awaitAdvanceInterruptibly(0, SMALL_DELAY_MS, MILLISECONDS));
626 +            assertEquals(2, phaser.awaitAdvance(1));
627 +            assertEquals(2, phaser.awaitAdvanceInterruptibly(1));
628 +            assertEquals(2, phaser.awaitAdvanceInterruptibly(1, SMALL_DELAY_MS, MILLISECONDS));
629 +        }
630 +    }
631 +
632 +    /**
633       * awaitAdvance returns when the phaser is externally terminated
634       */
635      public void testAwaitAdvance6() throws InterruptedException {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines