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

Comparing jsr166/src/test/tck/ArrayDequeTest.java (file contents):
Revision 1.45 by jsr166, Mon Oct 17 01:57:00 2016 UTC vs.
Revision 1.49 by jsr166, Fri Oct 21 03:24:00 2016 UTC

# Line 14 | Line 14 | import java.util.Iterator;
14   import java.util.NoSuchElementException;
15   import java.util.Queue;
16   import java.util.Random;
17 + import java.util.Spliterator;
18   import java.util.concurrent.ThreadLocalRandom;
19  
20   import junit.framework.Test;
# Line 989 | Line 990 | public class ArrayDequeTest extends JSR1
990      }
991  
992      /**
993 +     * Spliterator characteristics are as advertised
994 +     */
995 +    public void testSpliterator_characteristics() {
996 +        ArrayDeque q = new ArrayDeque();
997 +        Spliterator s = q.spliterator();
998 +        int characteristics = s.characteristics();
999 +        int required = Spliterator.NONNULL
1000 +            | Spliterator.ORDERED
1001 +            | Spliterator.SIZED
1002 +            | Spliterator.SUBSIZED;
1003 +        assertEquals(required, characteristics & required);
1004 +        assertTrue(s.hasCharacteristics(required));
1005 +        assertEquals(0, characteristics
1006 +                     & (Spliterator.CONCURRENT
1007 +                        | Spliterator.DISTINCT
1008 +                        | Spliterator.IMMUTABLE
1009 +                        | Spliterator.SORTED));
1010 +    }
1011 +
1012 +    /**
1013 +     * Spliterator.getComparator always throws IllegalStateException
1014 +     */
1015 +    public void testSpliterator_getComparator() {
1016 +        assertThrows(IllegalStateException.class,
1017 +                     () -> new ArrayDeque().spliterator().getComparator());
1018 +    }
1019 +
1020 +    /**
1021       * Handle capacities near Integer.MAX_VALUE.
1022 <     * ant -Dvmoptions=-Xmx24g -Djsr166.expensiveTests=true -Djsr166.tckTestClass=ArrayDequeTest -Djsr166.methodFilter=testHuge tck
1022 >     * ant -Dvmoptions='-Xms22g -Xmx22g' -Djsr166.testImplementationDetails=true -Djsr166.expensiveTests=true -Djsr166.tckTestClass=ArrayDequeTest -Djsr166.methodFilter=testHuge tck
1023       */
1024      public void testHuge() {
1025          if (! (testImplementationDetails
1026                 && expensiveTests
1027 <               && Runtime.getRuntime().freeMemory() > 21_000_000_000L))
1027 >               && Runtime.getRuntime().maxMemory() > 21_000_000_000L))
1028              return;
1000        int maxSize = Integer.MAX_VALUE - 8;
1001        ArrayDeque<Integer> q;
1029  
1030 <        q = new ArrayDeque<>(maxSize);
1030 >        ArrayDeque q;
1031 >        final int maxSize = Integer.MAX_VALUE - 8;
1032  
1033          assertThrows(OutOfMemoryError.class,
1034                       () -> new ArrayDeque<>(Integer.MAX_VALUE));
1035  
1036 <        q = populatedDeque(0);
1037 <        q.addAll(Collections.nCopies(maxSize - 2, (Integer) 42));
1038 <        assertEquals((Integer) 42, q.peekFirst());
1039 <        assertEquals((Integer) 42, q.peekLast());
1040 <        assertEquals(maxSize - 2, q.size());
1041 <        q.addFirst((Integer) 0);
1042 <        q.addLast((Integer) 1);
1043 <        assertEquals((Integer) 0, q.peekFirst());
1044 <        assertEquals((Integer) 1, q.peekLast());
1045 <        assertEquals(maxSize, q.size());
1036 >        {
1037 >            q = new ArrayDeque<>(maxSize);
1038 >            q = null;
1039 >        }
1040 >
1041 >        {
1042 >            q = new ArrayDeque();
1043 >            assertTrue(q.addAll(Collections.nCopies(maxSize - 2, (Integer) 42)));
1044 >            assertEquals((Integer) 42, q.peekFirst());
1045 >            assertEquals((Integer) 42, q.peekLast());
1046 >            assertEquals(maxSize - 2, q.size());
1047 >            q.addFirst((Integer) 0);
1048 >            q.addLast((Integer) 1);
1049 >            assertEquals((Integer) 0, q.peekFirst());
1050 >            assertEquals((Integer) 1, q.peekLast());
1051 >            assertEquals(maxSize, q.size());
1052 >            q = null;
1053 >        }
1054      }
1055  
1056   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines