[cvs] / jsr166 / src / test / tck / ArrayDeque8Test.java Repository:
ViewVC logotype

Diff of /jsr166/src/test/tck/ArrayDeque8Test.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1, Tue Oct 25 01:32:55 2016 UTC revision 1.3, Sat Mar 11 17:33:32 2017 UTC
# Line 10  Line 10 
10  import java.util.Spliterator;  import java.util.Spliterator;
11    
12  import junit.framework.Test;  import junit.framework.Test;
 import junit.framework.TestSuite;  
13    
14  public class ArrayDeque8Test extends JSR166TestCase {  public class ArrayDeque8Test extends JSR166TestCase {
15      public static void main(String[] args) {      public static void main(String[] args) {
# Line 51  Line 50 
50    
51      /**      /**
52       * Handle capacities near Integer.MAX_VALUE.       * Handle capacities near Integer.MAX_VALUE.
53       * ant -Dvmoptions='-Xms28g -Xmx28g' -Djsr166.testImplementationDetails=true -Djsr166.expensiveTests=true -Djsr166.tckTestClass=ArrayDequeTest -Djsr166.methodFilter=testHuge tck       * ant -Dvmoptions='-Xms28g -Xmx28g' -Djsr166.expensiveTests=true -Djsr166.tckTestClass=ArrayDeque8Test -Djsr166.methodFilter=testHugeCapacity tck
54       */       */
55      public void testHuge() {      public void testHugeCapacity() {
56          if (! (testImplementationDetails          if (! (testImplementationDetails
57                 && expensiveTests                 && expensiveTests
58                 && Runtime.getRuntime().maxMemory() > 24L * (1 << 30)))                 && Runtime.getRuntime().maxMemory() > 24L * (1 << 30)))
59              return;              return;
60    
61          ArrayDeque q;          final Integer e = 42;
62          Integer e = 42;          final int maxArraySize = Integer.MAX_VALUE - 8;
         final int maxSize = Integer.MAX_VALUE - 8;  
63    
64          assertThrows(OutOfMemoryError.class,          assertThrows(OutOfMemoryError.class,
65                       () -> new ArrayDeque<>(Integer.MAX_VALUE));                       () -> new ArrayDeque(Integer.MAX_VALUE));
66    
67          {          {
68              q = new ArrayDeque<>(maxSize);              ArrayDeque q = new ArrayDeque(maxArraySize - 1);
69              assertEquals(0, q.size());              assertEquals(0, q.size());
70              assertTrue(q.isEmpty());              assertTrue(q.isEmpty());
71              q = null;              q = null;
72          }          }
73    
74          {          {
75              q = new ArrayDeque();              ArrayDeque q = new ArrayDeque();
76              assertTrue(q.addAll(Collections.nCopies(maxSize - 2, e)));              assertTrue(q.addAll(Collections.nCopies(maxArraySize - 3, e)));
77              assertEquals(e, q.peekFirst());              assertEquals(e, q.peekFirst());
78              assertEquals(e, q.peekLast());              assertEquals(e, q.peekLast());
79              assertEquals(maxSize - 2, q.size());              assertEquals(maxArraySize - 3, q.size());
80              q.addFirst((Integer) 0);              q.addFirst((Integer) 0);
81              q.addLast((Integer) 1);              q.addLast((Integer) 1);
82              assertEquals((Integer) 0, q.peekFirst());              assertEquals((Integer) 0, q.peekFirst());
83              assertEquals((Integer) 1, q.peekLast());              assertEquals((Integer) 1, q.peekLast());
84              assertEquals(maxSize, q.size());              assertEquals(maxArraySize - 1, q.size());
85    
86              ArrayDeque qq = q;              ArrayDeque qq = q;
87              ArrayDeque smallish = new ArrayDeque(              ArrayDeque smallish = new ArrayDeque(
88                  Collections.nCopies(Integer.MAX_VALUE - maxSize + 1, e));                  Collections.nCopies(Integer.MAX_VALUE - q.size() + 1, e));
89              assertThrows(              assertThrows(
90                  IllegalStateException.class,                  IllegalStateException.class,
91                  () -> qq.addAll(qq),                  () -> qq.addAll(qq),

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.3

Doug Lea
ViewVC Help
Powered by ViewVC 1.0.8