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

Comparing jsr166/src/test/tck/DelayQueueTest.java (file contents):
Revision 1.6 by dl, Sun Oct 5 23:00:40 2003 UTC vs.
Revision 1.11 by dl, Sun Oct 31 14:55:14 2004 UTC

# Line 1 | Line 1
1   /*
2 < * Written by members of JCP JSR-166 Expert Group and released to the
3 < * public domain. Use, modify, and redistribute this code in any way
4 < * without acknowledgement. Other contributors include Andrew Wright,
5 < * Jeffrey Hayes, Pat Fischer, Mike Judd.
2 > * Written by Doug Lea with assistance from members of JCP JSR-166
3 > * Expert Group and released to the public domain, as explained at
4 > * http://creativecommons.org/licenses/publicdomain
5 > * Other contributors include Andrew Wright, Jeffrey Hayes,
6 > * Pat Fisher, Mike Judd.
7   */
8  
9   import junit.framework.*;
# Line 21 | Line 22 | public class DelayQueueTest extends JSR1
22      private static final int NOCAP = Integer.MAX_VALUE;
23  
24      /**
25 <     * A delayed implmentation for testing.
25 >     * A delayed implementation for testing.
26       * Most  tests use Pseudodelays, where delays are all elapsed
27       * (so, no blocking solely for delays) but are still ordered
28       */
29      static class PDelay implements Delayed {
30          int pseudodelay;
31          PDelay(int i) { pseudodelay = Integer.MIN_VALUE + i; }
32 <        public int compareTo(Object y) {
32 >        public int compareTo(PDelay y) {
33              int i = pseudodelay;
34              int j = ((PDelay)y).pseudodelay;
35              if (i < j) return -1;
# Line 36 | Line 37 | public class DelayQueueTest extends JSR1
37              return 0;
38          }
39  
40 <        public int compareTo(PDelay y) {
40 >        public int compareTo(Delayed y) {
41              int i = pseudodelay;
42              int j = ((PDelay)y).pseudodelay;
43              if (i < j) return -1;
# Line 73 | Line 74 | public class DelayQueueTest extends JSR1
74          NanoDelay(long i) {
75              trigger = System.nanoTime() + i;
76          }
77 <        public int compareTo(Object y) {
77 >        public int compareTo(NanoDelay y) {
78              long i = trigger;
79              long j = ((NanoDelay)y).trigger;
80              if (i < j) return -1;
# Line 81 | Line 82 | public class DelayQueueTest extends JSR1
82              return 0;
83          }
84  
85 <        public int compareTo(NanoDelay y) {
85 >        public int compareTo(Delayed y) {
86              long i = trigger;
87              long j = ((NanoDelay)y).trigger;
88              if (i < j) return -1;
# Line 664 | Line 665 | public class DelayQueueTest extends JSR1
665          assertTrue(q.isEmpty());
666          assertEquals(0, q.size());
667          assertEquals(NOCAP, q.remainingCapacity());
668 <        q.add(new PDelay(1));
668 >        PDelay x = new PDelay(1);
669 >        q.add(x);
670          assertFalse(q.isEmpty());
671 +        assertTrue(q.contains(x));
672          q.clear();
673          assertTrue(q.isEmpty());
674      }
# Line 763 | Line 766 | public class DelayQueueTest extends JSR1
766      }
767  
768      /**
769 <     * toArray with incompatable array type throws CCE
769 >     * toArray with incompatible array type throws CCE
770       */
771      public void testToArray1_BadArg() {
772          try {
# Line 852 | Line 855 | public class DelayQueueTest extends JSR1
855  
856  
857      /**
858 <     * Dekayed actions do not occur until their delay elapses
858 >     * Delayed actions do not occur until their delay elapses
859       */
860      public void testDelay() {
861          DelayQueue q = new DelayQueue();
# Line 909 | Line 912 | public class DelayQueueTest extends JSR1
912       * drainTo(c) empties queue into another collection c
913       */
914      public void testDrainTo() {
915 <        DelayQueue q = populatedQueue(SIZE);
915 >        DelayQueue q = new DelayQueue();
916 >        PDelay[] elems = new PDelay[SIZE];
917 >        for (int i = 0; i < SIZE; ++i) {
918 >            elems[i] = new PDelay(i);
919 >            q.add(elems[i]);
920 >        }
921          ArrayList l = new ArrayList();
922          q.drainTo(l);
923          assertEquals(q.size(), 0);
924 <        assertEquals(l.size(), SIZE);
924 >        for (int i = 0; i < SIZE; ++i)
925 >            assertEquals(l.get(i), elems[i]);
926 >        q.add(elems[0]);
927 >        q.add(elems[1]);
928 >        assertFalse(q.isEmpty());
929 >        assertTrue(q.contains(elems[0]));
930 >        assertTrue(q.contains(elems[1]));
931 >        l.clear();
932 >        q.drainTo(l);
933 >        assertEquals(q.size(), 0);
934 >        assertEquals(l.size(), 2);
935 >        for (int i = 0; i < 2; ++i)
936 >            assertEquals(l.get(i), elems[i]);
937      }
938  
939      /**
# Line 932 | Line 952 | public class DelayQueueTest extends JSR1
952              q.drainTo(l);
953              assertTrue(l.size() >= SIZE);
954              t.join();
955 <            assertTrue(q.size() + l.size() == SIZE+1);
955 >            assertTrue(q.size() + l.size() >= SIZE);
956          } catch(Exception e){
957              unexpectedException();
958          }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines