test/jdk/java/util/concurrent/tck/PriorityBlockingQueueTest.java
changeset 50229 6b29ef846c5c
parent 47216 71c04702a3d5
child 50764 5637aca18f1d
equal deleted inserted replaced
50228:45093fb73c6d 50229:6b29ef846c5c
    45 import java.util.concurrent.BlockingQueue;
    45 import java.util.concurrent.BlockingQueue;
    46 import java.util.concurrent.CountDownLatch;
    46 import java.util.concurrent.CountDownLatch;
    47 import java.util.concurrent.Executors;
    47 import java.util.concurrent.Executors;
    48 import java.util.concurrent.ExecutorService;
    48 import java.util.concurrent.ExecutorService;
    49 import java.util.concurrent.PriorityBlockingQueue;
    49 import java.util.concurrent.PriorityBlockingQueue;
       
    50 import java.util.concurrent.ThreadLocalRandom;
    50 
    51 
    51 import junit.framework.Test;
    52 import junit.framework.Test;
    52 
    53 
    53 public class PriorityBlockingQueueTest extends JSR166TestCase {
    54 public class PriorityBlockingQueueTest extends JSR166TestCase {
    54 
    55 
    58         }
    59         }
    59     }
    60     }
    60 
    61 
    61     public static class InitialCapacity extends BlockingQueueTest {
    62     public static class InitialCapacity extends BlockingQueueTest {
    62         protected BlockingQueue emptyCollection() {
    63         protected BlockingQueue emptyCollection() {
    63             return new PriorityBlockingQueue(SIZE);
    64             ThreadLocalRandom rnd = ThreadLocalRandom.current();
       
    65             int initialCapacity = rnd.nextInt(1, SIZE);
       
    66             return new PriorityBlockingQueue(initialCapacity);
    64         }
    67         }
    65     }
    68     }
    66 
    69 
    67     public static void main(String[] args) {
    70     public static void main(String[] args) {
    68         main(suite(), args);
    71         main(suite(), args);
    69     }
    72     }
    70 
    73 
    71     public static Test suite() {
    74     public static Test suite() {
    72         class Implementation implements CollectionImplementation {
    75         class Implementation implements CollectionImplementation {
    73             public Class<?> klazz() { return PriorityBlockingQueue.class; }
    76             public Class<?> klazz() { return PriorityBlockingQueue.class; }
    74             public Collection emptyCollection() { return new PriorityBlockingQueue(); }
    77             public Collection emptyCollection() {
       
    78                 return new PriorityBlockingQueue();
       
    79             }
    75             public Object makeElement(int i) { return i; }
    80             public Object makeElement(int i) { return i; }
    76             public boolean isConcurrent() { return true; }
    81             public boolean isConcurrent() { return true; }
    77             public boolean permitsNulls() { return false; }
    82             public boolean permitsNulls() { return false; }
    78         }
    83         }
    79         return newTestSuite(PriorityBlockingQueueTest.class,
    84         class ComparatorImplementation implements CollectionImplementation {
    80                             new Generic().testSuite(),
    85             public Class<?> klazz() { return PriorityBlockingQueue.class; }
    81                             new InitialCapacity().testSuite(),
    86             public Collection emptyCollection() {
    82                             CollectionTest.testSuite(new Implementation()));
    87                 ThreadLocalRandom rnd = ThreadLocalRandom.current();
       
    88                 int initialCapacity = rnd.nextInt(1, 10);
       
    89                 return new PriorityBlockingQueue(
       
    90                     initialCapacity, new MyReverseComparator());
       
    91             }
       
    92             public Object makeElement(int i) { return i; }
       
    93             public boolean isConcurrent() { return true; }
       
    94             public boolean permitsNulls() { return false; }
       
    95         }
       
    96         return newTestSuite(
       
    97             PriorityBlockingQueueTest.class,
       
    98             new Generic().testSuite(),
       
    99             new InitialCapacity().testSuite(),
       
   100             CollectionTest.testSuite(new Implementation()),
       
   101             CollectionTest.testSuite(new ComparatorImplementation()));
    83     }
   102     }
    84 
   103 
    85     /** Sample Comparator */
   104     /** Sample Comparator */
    86     static class MyReverseComparator implements Comparator {
   105     static class MyReverseComparator implements Comparator, java.io.Serializable {
    87         public int compare(Object x, Object y) {
   106         public int compare(Object x, Object y) {
    88             return ((Comparable)y).compareTo(x);
   107             return ((Comparable)y).compareTo(x);
    89         }
   108         }
    90     }
   109     }
    91 
   110