--- jsr166/src/test/tck/CopyOnWriteArrayListTest.java 2015/05/26 19:22:09 1.37 +++ jsr166/src/test/tck/CopyOnWriteArrayListTest.java 2017/08/04 03:30:21 1.45 @@ -9,7 +9,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.Collections; import java.util.Iterator; import java.util.LinkedList; import java.util.List; @@ -18,7 +17,6 @@ import java.util.NoSuchElementException; import java.util.concurrent.CopyOnWriteArrayList; import junit.framework.Test; -import junit.framework.TestSuite; public class CopyOnWriteArrayListTest extends JSR166TestCase { @@ -27,11 +25,26 @@ public class CopyOnWriteArrayListTest ex } public static Test suite() { - return new TestSuite(CopyOnWriteArrayListTest.class); + class Implementation implements CollectionImplementation { + public Class klazz() { return CopyOnWriteArrayList.class; } + public List emptyCollection() { return new CopyOnWriteArrayList(); } + public Object makeElement(int i) { return i; } + public boolean isConcurrent() { return true; } + public boolean permitsNulls() { return true; } + } + class SubListImplementation extends Implementation { + public List emptyCollection() { + return super.emptyCollection().subList(0, 0); + } + } + return newTestSuite( + CopyOnWriteArrayListTest.class, + CollectionTest.testSuite(new Implementation()), + CollectionTest.testSuite(new SubListImplementation())); } static CopyOnWriteArrayList populatedArray(int n) { - CopyOnWriteArrayList a = new CopyOnWriteArrayList(); + CopyOnWriteArrayList a = new CopyOnWriteArrayList<>(); assertTrue(a.isEmpty()); for (int i = 0; i < n; i++) a.add(i); @@ -41,7 +54,7 @@ public class CopyOnWriteArrayListTest ex } static CopyOnWriteArrayList populatedArray(Integer[] elements) { - CopyOnWriteArrayList a = new CopyOnWriteArrayList(); + CopyOnWriteArrayList a = new CopyOnWriteArrayList<>(); assertTrue(a.isEmpty()); for (int i = 0; i < elements.length; i++) a.add(elements[i]); @@ -264,7 +277,7 @@ public class CopyOnWriteArrayListTest ex Integer[] elements = new Integer[SIZE]; for (int i = 0; i < SIZE; i++) elements[i] = i; - Collections.shuffle(Arrays.asList(elements)); + shuffle(elements); Collection full = populatedArray(elements); Iterator it = full.iterator(); @@ -432,7 +445,7 @@ public class CopyOnWriteArrayListTest ex Integer[] elements = new Integer[SIZE]; for (int i = 0; i < SIZE; i++) elements[i] = i; - Collections.shuffle(Arrays.asList(elements)); + shuffle(elements); Collection full = populatedArray(elements); assertTrue(Arrays.equals(elements, full.toArray())); @@ -460,7 +473,7 @@ public class CopyOnWriteArrayListTest ex Integer[] elements = new Integer[SIZE]; for (int i = 0; i < SIZE; i++) elements[i] = i; - Collections.shuffle(Arrays.asList(elements)); + shuffle(elements); Collection full = populatedArray(elements); Arrays.fill(a, 42); @@ -734,7 +747,7 @@ public class CopyOnWriteArrayListTest ex } /** - * a deserialized serialized list is equal + * a deserialized/reserialized list equals original */ public void testSerialization() throws Exception { List x = populatedArray(SIZE);