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

Comparing jsr166/src/test/tck/ArrayBlockingQueueTest.java (file contents):
Revision 1.82 by jsr166, Sat May 13 21:43:50 2017 UTC vs.
Revision 1.90 by jsr166, Sun May 14 04:14:09 2017 UTC

# Line 340 | Line 340 | public class ArrayBlockingQueueTest exte
340              }});
341  
342          await(pleaseInterrupt);
343 <        assertThreadStaysAlive(t);
343 >        assertThreadBlocks(t, Thread.State.WAITING);
344          t.interrupt();
345          awaitTermination(t);
346          assertEquals(SIZE, q.size());
# Line 362 | Line 362 | public class ArrayBlockingQueueTest exte
362                  pleaseTake.countDown();
363                  q.put(86);
364  
365 +                Thread.currentThread().interrupt();
366 +                try {
367 +                    q.put(99);
368 +                    shouldThrow();
369 +                } catch (InterruptedException success) {}
370 +                assertFalse(Thread.interrupted());
371 +
372                  pleaseInterrupt.countDown();
373                  try {
374                      q.put(99);
# Line 375 | Line 382 | public class ArrayBlockingQueueTest exte
382          assertEquals(0, q.take());
383  
384          await(pleaseInterrupt);
385 <        assertThreadStaysAlive(t);
385 >        assertThreadBlocks(t, Thread.State.WAITING);
386          t.interrupt();
387          awaitTermination(t);
388          assertEquals(0, q.remainingCapacity());
# Line 384 | Line 391 | public class ArrayBlockingQueueTest exte
391      /**
392       * timed offer times out if full and elements not taken
393       */
394 <    public void testTimedOffer() throws InterruptedException {
394 >    public void testTimedOffer() {
395          final ArrayBlockingQueue q = new ArrayBlockingQueue(2);
396          final CountDownLatch pleaseInterrupt = new CountDownLatch(1);
397          Thread t = newStartedThread(new CheckedRunnable() {
# Line 394 | Line 401 | public class ArrayBlockingQueueTest exte
401                  long startTime = System.nanoTime();
402                  assertFalse(q.offer(new Object(), timeoutMillis(), MILLISECONDS));
403                  assertTrue(millisElapsedSince(startTime) >= timeoutMillis());
404 +
405 +                Thread.currentThread().interrupt();
406 +                try {
407 +                    q.offer(new Object(), 2 * LONG_DELAY_MS, MILLISECONDS);
408 +                    shouldThrow();
409 +                } catch (InterruptedException success) {}
410 +                assertFalse(Thread.interrupted());
411 +
412                  pleaseInterrupt.countDown();
413                  try {
414                      q.offer(new Object(), 2 * LONG_DELAY_MS, MILLISECONDS);
415                      shouldThrow();
416                  } catch (InterruptedException success) {}
417 +                assertFalse(Thread.interrupted());
418              }});
419  
420          await(pleaseInterrupt);
421 <        assertThreadStaysAlive(t);
421 >        assertThreadBlocks(t, Thread.State.TIMED_WAITING);
422          t.interrupt();
423          awaitTermination(t);
424      }
# Line 493 | Line 509 | public class ArrayBlockingQueueTest exte
509       */
510      public void testInterruptedTimedPoll() throws InterruptedException {
511          final BlockingQueue<Integer> q = populatedQueue(SIZE);
512 <        final CountDownLatch aboutToWait = new CountDownLatch(1);
512 >        final CountDownLatch pleaseInterrupt = new CountDownLatch(1);
513          Thread t = newStartedThread(new CheckedRunnable() {
514              public void realRun() throws InterruptedException {
515                  long startTime = System.nanoTime();
516 <                for (int i = 0; i < SIZE; ++i) {
516 >                for (int i = 0; i < SIZE; i++)
517                      assertEquals(i, (int) q.poll(LONG_DELAY_MS, MILLISECONDS));
518 <                }
519 <                aboutToWait.countDown();
518 >
519 >                Thread.currentThread().interrupt();
520 >                try {
521 >                    q.poll(LONG_DELAY_MS, MILLISECONDS);
522 >                    shouldThrow();
523 >                } catch (InterruptedException success) {}
524 >                assertFalse(Thread.interrupted());
525 >
526 >                pleaseInterrupt.countDown();
527                  try {
528                      q.poll(LONG_DELAY_MS, MILLISECONDS);
529                      shouldThrow();
530 <                } catch (InterruptedException success) {
531 <                    assertTrue(millisElapsedSince(startTime) < LONG_DELAY_MS);
532 <                }
530 >                } catch (InterruptedException success) {}
531 >                assertFalse(Thread.interrupted());
532 >
533 >                assertTrue(millisElapsedSince(startTime) < LONG_DELAY_MS);
534              }});
535  
536 <        await(aboutToWait);
537 <        waitForThreadToEnterWaitState(t);
536 >        await(pleaseInterrupt);
537 >        assertThreadBlocks(t, Thread.State.TIMED_WAITING);
538          t.interrupt();
539          awaitTermination(t);
540          checkEmpty(q);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines