test/java/util/Collection/MOAT.java

Print this page

        

*** 24,33 **** --- 24,34 ---- /* * @test * @bug 6207984 6272521 6192552 6269713 6197726 6260652 5073546 4137464 * 4155650 4216399 4294891 6282555 6318622 6355327 6383475 6420753 * 6431845 4802633 6570566 6570575 6570631 6570924 6691185 6691215 + * 4802647 * @summary Run many tests on many Collection and Map implementations * @author Martin Buchholz * @run main MOAT * @run main/othervm -XX:+AggressiveOpts MOAT */
*** 56,65 **** --- 57,68 ---- import static java.util.Collections.*; public class MOAT { public static void realMain(String[] args) { + testCollection(new NewAbstractCollection<Integer>()); + testCollection(new NewAbstractSet<Integer>()); testCollection(new LinkedHashSet<Integer>()); testCollection(new HashSet<Integer>()); testCollection(new Vector<Integer>()); testCollection(new Vector<Integer>().subList(0,0)); testCollection(new ArrayDeque<Integer>());
*** 751,768 **** --- 754,787 ---- //---------------------------------------------------------------- // The "all" operations should throw NPE when passed null //---------------------------------------------------------------- { + clear(c); + try { + c.removeAll(null); + fail("Expected NullPointerException"); + } + catch (NullPointerException e) { pass(); } + catch (Throwable t) { unexpected(t); } + oneElement(c); try { c.removeAll(null); fail("Expected NullPointerException"); } catch (NullPointerException e) { pass(); } catch (Throwable t) { unexpected(t); } + clear(c); + try { + c.retainAll(null); + fail("Expected NullPointerException"); + } + catch (NullPointerException e) { pass(); } + catch (Throwable t) { unexpected(t); } + oneElement(c); try { c.retainAll(null); fail("Expected NullPointerException"); }
*** 1203,1208 **** --- 1222,1245 ---- return new ObjectInputStream(is).readObject();} @SuppressWarnings("unchecked") static <T> T serialClone(T obj) { try { return (T) readObject(serializedForm(obj)); } catch (Exception e) { throw new Error(e); }} + private static class NewAbstractCollection<E> extends AbstractCollection<E> { + ArrayList<E> list = new ArrayList<>(); + public boolean remove(Object obj) { + return list.remove(obj); + } + public boolean add(E e) { + return list.add(e); + } + public Iterator<E> iterator() { + return list.iterator(); + } + public int size() { + return list.size(); + } + } + private static class NewAbstractSet<E> extends NewAbstractCollection<E> { + } + }