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.38 by jsr166, Sun May 14 00:38:16 2017 UTC vs.
Revision 1.43 by jsr166, Tue Jan 23 20:44:11 2018 UTC

# Line 11 | Line 11 | import static java.util.concurrent.TimeU
11   import java.util.Collection;
12   import java.util.concurrent.CountDownLatch;
13   import java.util.concurrent.Semaphore;
14 + import java.util.concurrent.ThreadLocalRandom;
15  
15 import junit.framework.AssertionFailedError;
16   import junit.framework.Test;
17   import junit.framework.TestSuite;
18  
# Line 73 | Line 73 | public class SemaphoreTest extends JSR16
73          long startTime = System.nanoTime();
74          while (!s.hasQueuedThread(t)) {
75              if (millisElapsedSince(startTime) > LONG_DELAY_MS)
76 <                throw new AssertionFailedError("timed out");
76 >                throw new AssertionError("timed out");
77              Thread.yield();
78          }
79          assertTrue(s.hasQueuedThreads());
# Line 87 | Line 87 | public class SemaphoreTest extends JSR16
87          long startTime = System.nanoTime();
88          while (!s.hasQueuedThreads()) {
89              if (millisElapsedSince(startTime) > LONG_DELAY_MS)
90 <                throw new AssertionFailedError("timed out");
90 >                throw new AssertionError("timed out");
91              Thread.yield();
92          }
93      }
# Line 193 | Line 193 | public class SemaphoreTest extends JSR16
193      /**
194       * timed tryAcquire times out
195       */
196 <    public void testTryAcquire_timeout()      { testTryAcquire_timeout(false); }
197 <    public void testTryAcquire_timeout_fair() { testTryAcquire_timeout(true); }
198 <    public void testTryAcquire_timeout(boolean fair) {
199 <        Semaphore s = new Semaphore(0, fair);
200 <        long startTime = System.nanoTime();
196 >    public void testTryAcquire_timeout() {
197 >        final boolean fair = ThreadLocalRandom.current().nextBoolean();
198 >        final Semaphore s = new Semaphore(0, fair);
199 >        final long startTime = System.nanoTime();
200          try { assertFalse(s.tryAcquire(timeoutMillis(), MILLISECONDS)); }
201          catch (InterruptedException e) { threadUnexpectedException(e); }
202          assertTrue(millisElapsedSince(startTime) >= timeoutMillis());
# Line 206 | Line 205 | public class SemaphoreTest extends JSR16
205      /**
206       * timed tryAcquire(N) times out
207       */
208 <    public void testTryAcquireN_timeout()      { testTryAcquireN_timeout(false); }
209 <    public void testTryAcquireN_timeout_fair() { testTryAcquireN_timeout(true); }
210 <    public void testTryAcquireN_timeout(boolean fair) {
211 <        Semaphore s = new Semaphore(2, fair);
213 <        long startTime = System.nanoTime();
208 >    public void testTryAcquireN_timeout() {
209 >        final boolean fair = ThreadLocalRandom.current().nextBoolean();
210 >        final Semaphore s = new Semaphore(2, fair);
211 >        final long startTime = System.nanoTime();
212          try { assertFalse(s.tryAcquire(3, timeoutMillis(), MILLISECONDS)); }
213          catch (InterruptedException e) { threadUnexpectedException(e); }
214          assertTrue(millisElapsedSince(startTime) >= timeoutMillis());
# Line 272 | Line 270 | public class SemaphoreTest extends JSR16
270              assertThreadBlocks(t, acquirer.parkedState());
271              t.interrupt();
272          }
273 <        
273 >
274          awaitTermination(t);
275      }
276  
# Line 609 | Line 607 | public class SemaphoreTest extends JSR16
607          Thread t2 = newStartedThread(new CheckedRunnable() {
608              public void realRun() throws InterruptedException {
609                  // Will fail, even though 1 permit is available
610 <                assertFalse(s.tryAcquire(0L, MILLISECONDS));
611 <                assertFalse(s.tryAcquire(1, 0L, MILLISECONDS));
610 >                assertFalse(
611 >                    s.tryAcquire(randomExpiredTimeout(), randomTimeUnit()));
612 >                assertFalse(
613 >                    s.tryAcquire(1, randomExpiredTimeout(), randomTimeUnit()));
614  
615                  // untimed tryAcquire will barge and succeed
616                  assertTrue(s.tryAcquire());

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines