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

Comparing jsr166/src/test/tck/SemaphoreTest.java (file contents):
Revision 1.11 by dl, Sun Jan 4 00:57:21 2004 UTC vs.
Revision 1.14 by dl, Sat Jan 10 01:41:59 2004 UTC

# Line 70 | Line 70 | public class SemaphoreTest extends JSR16
70          assertFalse(s0.isFair());
71          Semaphore s1 = new Semaphore(-1, false);
72          assertEquals(-1, s1.availablePermits());
73 +        assertFalse(s1.isFair());
74          Semaphore s2 = new Semaphore(-1, false);
75          assertEquals(-1, s2.availablePermits());
76 +        assertFalse(s2.isFair());
77 +    }
78 +
79 +    /**
80 +     * Constructor without fairness argument behaves as nonfair
81 +     */
82 +    public void testConstructor2() {
83 +        Semaphore s0 = new Semaphore(0);
84 +        assertEquals(0, s0.availablePermits());
85 +        assertFalse(s0.isFair());
86 +        Semaphore s1 = new Semaphore(-1);
87 +        assertEquals(-1, s1.availablePermits());
88 +        assertFalse(s1.isFair());
89 +        Semaphore s2 = new Semaphore(-1);
90 +        assertEquals(-1, s2.availablePermits());
91 +        assertFalse(s2.isFair());
92      }
93  
94      /**
# Line 638 | Line 655 | public class SemaphoreTest extends JSR16
655          }
656      }
657  
658 +    /**
659 +     * release(n) in one thread enables acquire(n) in another thread
660 +     */
661 +    public void testAcquireReleaseNInDifferentThreads_fair2() {
662 +        final Semaphore s = new Semaphore(0, true);
663 +        Thread t = new Thread(new Runnable() {
664 +                public void run() {
665 +                    try {
666 +                        s.acquire(2);
667 +                        s.acquire(2);
668 +                        s.release(4);
669 +                    } catch(InterruptedException ie){
670 +                        threadUnexpectedException();
671 +                    }
672 +                }
673 +            });
674 +        try {
675 +            t.start();
676 +            Thread.sleep(SHORT_DELAY_MS);
677 +            s.release(6);
678 +            s.acquire(2);
679 +            s.acquire(2);
680 +            s.release(2);
681 +            t.join();
682 +        } catch( InterruptedException e){
683 +            unexpectedException();
684 +        }
685 +    }
686 +
687 +
688 +
689  
690  
691      /**
# Line 851 | Line 899 | public class SemaphoreTest extends JSR16
899          }
900      }
901  
902 +    /**
903 +     * toString indicates current number of permits
904 +     */
905 +    public void testToString() {
906 +        Semaphore s = new Semaphore(0);
907 +        String us = s.toString();
908 +        assertTrue(us.indexOf("Permits = 0") >= 0);
909 +        s.release();
910 +        String s1 = s.toString();
911 +        assertTrue(s1.indexOf("Permits = 1") >= 0);
912 +        s.release();
913 +        String s2 = s.toString();
914 +        assertTrue(s2.indexOf("Permits = 2") >= 0);
915 +    }
916  
917   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines