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

Comparing jsr166/src/test/tck/BlockingQueueTest.java (file contents):
Revision 1.1 by jsr166, Wed Oct 6 07:49:22 2010 UTC vs.
Revision 1.2 by jsr166, Thu Oct 28 17:57:26 2010 UTC

# Line 71 | Line 71 | public abstract class BlockingQueueTest
71          awaitTermination(t, MEDIUM_DELAY_MS);
72      }
73  
74 +    /**
75 +     * take blocks interruptibly when empty
76 +     */
77 +    public void testTakeFromEmptyBlocksInterruptibly()
78 +            throws InterruptedException {
79 +        final BlockingQueue q = emptyCollection();
80 +        final CountDownLatch threadStarted = new CountDownLatch(1);
81 +        Thread t = newStartedThread(new CheckedRunnable() {
82 +            public void realRun() {
83 +                long t0 = System.nanoTime();
84 +                threadStarted.countDown();
85 +                try {
86 +                    q.take();
87 +                    shouldThrow();
88 +                } catch (InterruptedException success) {}
89 +                assertTrue(millisElapsedSince(t0) >= SHORT_DELAY_MS);
90 +            }});
91 +        threadStarted.await();
92 +        Thread.sleep(SHORT_DELAY_MS);
93 +        assertTrue(t.isAlive());
94 +        t.interrupt();
95 +        awaitTermination(t, MEDIUM_DELAY_MS);
96 +        assertFalse(t.isAlive());
97 +    }
98 +
99      /** For debugging. */
100      public void XXXXtestFails() {
101          fail(emptyCollection().getClass().toString());

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines