--- jsr166/src/test/tck/ConcurrentSkipListMapTest.java 2015/02/28 18:30:05 1.35 +++ jsr166/src/test/tck/ConcurrentSkipListMapTest.java 2019/09/29 20:40:48 1.42 @@ -18,14 +18,24 @@ import java.util.Set; import java.util.concurrent.ConcurrentSkipListMap; import junit.framework.Test; -import junit.framework.TestSuite; public class ConcurrentSkipListMapTest extends JSR166TestCase { public static void main(String[] args) { - junit.textui.TestRunner.run(suite()); + main(suite(), args); } public static Test suite() { - return new TestSuite(ConcurrentSkipListMapTest.class); + class Implementation implements MapImplementation { + public Class klazz() { return ConcurrentSkipListMap.class; } + public Map emptyMap() { return new ConcurrentSkipListMap(); } + public boolean isConcurrent() { return true; } + public boolean remappingFunctionCalledAtMostOnce() { return false; }; + public boolean permitsNullKeys() { return false; } + public boolean permitsNullValues() { return false; } + public boolean supportsSetValue() { return false; } + } + return newTestSuite( + ConcurrentSkipListMapTest.class, + MapTest.testSuite(new Implementation())); } /** @@ -801,7 +811,24 @@ public class ConcurrentSkipListMapTest e } /** - * A deserialized map equals original + * A cloned map equals original + */ + public void testClone() { + ConcurrentSkipListMap x = map5(); + ConcurrentSkipListMap y = x.clone(); + + assertNotSame(x, y); + assertEquals(x.size(), y.size()); + assertEquals(x.toString(), y.toString()); + assertEquals(x, y); + assertEquals(y, x); + y.clear(); + assertTrue(y.isEmpty()); + assertFalse(x.equals(y)); + } + + /** + * A deserialized/reserialized map equals original */ public void testSerialization() throws Exception { NavigableMap x = map5(); @@ -812,6 +839,9 @@ public class ConcurrentSkipListMapTest e assertEquals(x.toString(), y.toString()); assertEquals(x, y); assertEquals(y, x); + y.clear(); + assertTrue(y.isEmpty()); + assertFalse(x.equals(y)); } /** @@ -997,7 +1027,7 @@ public class ConcurrentSkipListMapTest e static NavigableMap newMap(Class cl) throws Exception { NavigableMap result = - (NavigableMap) cl.newInstance(); + (NavigableMap) cl.getConstructor().newInstance(); assertEquals(0, result.size()); assertFalse(result.keySet().iterator().hasNext()); return result; @@ -1273,7 +1303,7 @@ public class ConcurrentSkipListMapTest e } static boolean eq(Integer i, int j) { - return i == null ? j == -1 : i == j; + return (i == null) ? j == -1 : i == j; } }