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

Comparing jsr166/src/test/tck/LinkedBlockingDequeTest.java (file contents):
Revision 1.13 by jsr166, Sat Nov 21 19:11:53 2009 UTC vs.
Revision 1.15 by jsr166, Sat Nov 21 21:12:55 2009 UTC

# Line 169 | Line 169 | public class LinkedBlockingDequeTest ext
169              q.getFirst();
170              shouldThrow();
171          } catch (NoSuchElementException success) {}
172 +        assertNull(q.peekFirst());
173      }
174  
175      /**
# Line 199 | Line 200 | public class LinkedBlockingDequeTest ext
200              q.removeFirst();
201              shouldThrow();
202          } catch (NoSuchElementException success) {}
203 +        assertNull(q.peekFirst());
204 +    }
205 +
206 +    /**
207 +     *  removeLast removes last element, or throws NSEE if empty
208 +     */
209 +    public void testRemoveLast() {
210 +        LinkedBlockingDeque q = populatedDeque(SIZE);
211 +        for (int i = SIZE - 1; i >= 0; --i) {
212 +            assertEquals(i, ((Integer)q.removeLast()).intValue());
213 +        }
214 +        try {
215 +            q.removeLast();
216 +            shouldThrow();
217 +        } catch (NoSuchElementException success) {}
218 +        assertNull(q.peekLast());
219      }
220  
221      /**
# Line 746 | Line 763 | public class LinkedBlockingDequeTest ext
763       */
764      public void testTimedPollWithOffer() throws InterruptedException {
765          final LinkedBlockingDeque q = new LinkedBlockingDeque(2);
766 <        Thread t = new ThreadShouldThrow(InterruptedException.class) {
766 >        Thread t = new Thread(new CheckedRunnable() {
767              public void realRun() throws InterruptedException {
768 <                threadAssertNull(q.poll(SHORT_DELAY_MS, MILLISECONDS));
769 <                q.poll(LONG_DELAY_MS, MILLISECONDS);
770 <                q.poll(LONG_DELAY_MS, MILLISECONDS);
771 <            }};
768 >                assertNull(q.poll(SHORT_DELAY_MS, MILLISECONDS));
769 >                assertSame(zero, q.poll(LONG_DELAY_MS, MILLISECONDS));
770 >                try {
771 >                    q.poll(LONG_DELAY_MS, MILLISECONDS);
772 >                    shouldThrow();
773 >                } catch (InterruptedException success) {}
774 >            }});
775  
776          t.start();
777          Thread.sleep(SMALL_DELAY_MS);
# Line 957 | Line 977 | public class LinkedBlockingDequeTest ext
977       */
978      public void testTimedPollFirstWithOfferFirst() throws InterruptedException {
979          final LinkedBlockingDeque q = new LinkedBlockingDeque(2);
980 <        Thread t = new ThreadShouldThrow(InterruptedException.class) {
980 >        Thread t = new Thread(new CheckedRunnable() {
981              public void realRun() throws InterruptedException {
982 <                threadAssertNull(q.pollFirst(SHORT_DELAY_MS, MILLISECONDS));
983 <                q.pollFirst(LONG_DELAY_MS, MILLISECONDS);
984 <                q.pollFirst(LONG_DELAY_MS, MILLISECONDS);
985 <            }};
982 >                assertNull(q.pollFirst(SHORT_DELAY_MS, MILLISECONDS));
983 >                assertSame(zero, q.pollFirst(LONG_DELAY_MS, MILLISECONDS));
984 >                try {
985 >                    q.pollFirst(LONG_DELAY_MS, MILLISECONDS);
986 >                    shouldThrow();
987 >                } catch (InterruptedException success) {}
988 >            }});
989  
990          t.start();
991          Thread.sleep(SMALL_DELAY_MS);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines