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.47 by jsr166, Mon Oct 17 15:31:19 2016 UTC vs.
Revision 1.50 by jsr166, Sat Oct 22 05:45:56 2016 UTC

# Line 1001 | Line 1001 | public class ArrayDequeTest extends JSR1
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
# Line 1018 | Line 1019 | public class ArrayDequeTest extends JSR1
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='-Xms28g -Xmx28g' -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() > 24L * (1 << 30)))
1028              return;
1028        int maxSize = Integer.MAX_VALUE - 8;
1029        ArrayDeque<Integer> q;
1029  
1030 <        q = new ArrayDeque<>(maxSize);
1030 >        ArrayDeque q;
1031 >        Integer e = 42;
1032 >        final int maxSize = Integer.MAX_VALUE - 8;
1033  
1034          assertThrows(OutOfMemoryError.class,
1035                       () -> new ArrayDeque<>(Integer.MAX_VALUE));
1036  
1037 <        q = populatedDeque(0);
1038 <        q.addAll(Collections.nCopies(maxSize - 2, (Integer) 42));
1039 <        assertEquals((Integer) 42, q.peekFirst());
1040 <        assertEquals((Integer) 42, q.peekLast());
1041 <        assertEquals(maxSize - 2, q.size());
1042 <        q.addFirst((Integer) 0);
1043 <        q.addLast((Integer) 1);
1044 <        assertEquals((Integer) 0, q.peekFirst());
1045 <        assertEquals((Integer) 1, q.peekLast());
1046 <        assertEquals(maxSize, q.size());
1037 >        {
1038 >            q = new ArrayDeque<>(maxSize);
1039 >            assertEquals(0, q.size());
1040 >            assertTrue(q.isEmpty());
1041 >            q = null;
1042 >        }
1043 >
1044 >        {
1045 >            q = new ArrayDeque();
1046 >            assertTrue(q.addAll(Collections.nCopies(maxSize - 2, e)));
1047 >            assertEquals(e, q.peekFirst());
1048 >            assertEquals(e, q.peekLast());
1049 >            assertEquals(maxSize - 2, q.size());
1050 >            q.addFirst((Integer) 0);
1051 >            q.addLast((Integer) 1);
1052 >            assertEquals((Integer) 0, q.peekFirst());
1053 >            assertEquals((Integer) 1, q.peekLast());
1054 >            assertEquals(maxSize, q.size());
1055 >
1056 >            ArrayDeque qq = q;
1057 >            ArrayDeque smallish = new ArrayDeque(
1058 >                Collections.nCopies(Integer.MAX_VALUE - maxSize + 1, e));
1059 >            assertThrows(
1060 >                IllegalStateException.class,
1061 >                () -> qq.addAll(qq),
1062 >                () -> qq.addAll(smallish),
1063 >                () -> smallish.addAll(qq));
1064 >        }
1065      }
1066  
1067   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines