Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/test/java/util/Arrays/StreamAndSpliterator.java
38812 views
/*1* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*/2223/**24* @test 803785725* @summary tests for stream and spliterator factory methods26* @run testng StreamAndSpliterator27*/2829import org.testng.annotations.Test;3031import java.util.Arrays;32import java.util.Spliterators;3334import static org.testng.Assert.assertNotNull;3536public class StreamAndSpliterator {37@Test38public void testStreamNPEs() {39assertThrowsNPE(() -> Arrays.stream((int[]) null, 0, 0));40assertThrowsNPE(() -> Arrays.stream((long[]) null, 0, 0));41assertThrowsNPE(() -> Arrays.stream((double[]) null, 0, 0));42assertThrowsNPE(() -> Arrays.stream((String[]) null, 0, 0));43}4445@Test46public void testStreamAIOBEs() {47// origin > fence48assertThrowsAIOOB(() -> Arrays.stream(new int[]{}, 1, 0));49assertThrowsAIOOB(() -> Arrays.stream(new long[]{}, 1, 0));50assertThrowsAIOOB(() -> Arrays.stream(new double[]{}, 1, 0));51assertThrowsAIOOB(() -> Arrays.stream(new String[]{}, 1, 0));5253// bad origin54assertThrowsAIOOB(() -> Arrays.stream(new int[]{}, -1, 0));55assertThrowsAIOOB(() -> Arrays.stream(new long[]{}, -1, 0));56assertThrowsAIOOB(() -> Arrays.stream(new double[]{}, -1, 0));57assertThrowsAIOOB(() -> Arrays.stream(new String[]{}, -1, 0));5859// bad fence60assertThrowsAIOOB(() -> Arrays.stream(new int[]{}, 0, 1));61assertThrowsAIOOB(() -> Arrays.stream(new long[]{}, 0, 1));62assertThrowsAIOOB(() -> Arrays.stream(new double[]{}, 0, 1));63assertThrowsAIOOB(() -> Arrays.stream(new String[]{}, 0, 1));64}656667@Test68public void testSpliteratorNPEs() {69assertThrowsNPE(() -> Arrays.spliterator((int[]) null, 0, 0));70assertThrowsNPE(() -> Arrays.spliterator((long[]) null, 0, 0));71assertThrowsNPE(() -> Arrays.spliterator((double[]) null, 0, 0));72assertThrowsNPE(() -> Arrays.spliterator((String[]) null, 0, 0));73}7475@Test76public void testSpliteratorAIOBEs() {77// origin > fence78assertThrowsAIOOB(() -> Arrays.spliterator(new int[]{}, 1, 0));79assertThrowsAIOOB(() -> Arrays.spliterator(new long[]{}, 1, 0));80assertThrowsAIOOB(() -> Arrays.spliterator(new double[]{}, 1, 0));81assertThrowsAIOOB(() -> Arrays.spliterator(new String[]{}, 1, 0));8283// bad origin84assertThrowsAIOOB(() -> Arrays.spliterator(new int[]{}, -1, 0));85assertThrowsAIOOB(() -> Arrays.spliterator(new long[]{}, -1, 0));86assertThrowsAIOOB(() -> Arrays.spliterator(new double[]{}, -1, 0));87assertThrowsAIOOB(() -> Arrays.spliterator(new String[]{}, -1, 0));8889// bad fence90assertThrowsAIOOB(() -> Arrays.spliterator(new int[]{}, 0, 1));91assertThrowsAIOOB(() -> Arrays.spliterator(new long[]{}, 0, 1));92assertThrowsAIOOB(() -> Arrays.spliterator(new double[]{}, 0, 1));93assertThrowsAIOOB(() -> Arrays.spliterator(new String[]{}, 0, 1));94}959697@Test98public void testSpliteratorNPEsFromSpliterators() {99assertThrowsNPE(() -> Spliterators.spliterator((int[]) null, 0, 0, 0));100assertThrowsNPE(() -> Spliterators.spliterator((long[]) null, 0, 0, 0));101assertThrowsNPE(() -> Spliterators.spliterator((double[]) null, 0, 0, 0));102assertThrowsNPE(() -> Spliterators.spliterator((String[]) null, 0, 0, 0));103}104105@Test106public void testSpliteratorAIOBEsFromSpliterators() {107// origin > fence108assertThrowsAIOOB(() -> Spliterators.spliterator(new int[]{}, 1, 0, 0));109assertThrowsAIOOB(() -> Spliterators.spliterator(new long[]{}, 1, 0, 0));110assertThrowsAIOOB(() -> Spliterators.spliterator(new double[]{}, 1, 0, 0));111assertThrowsAIOOB(() -> Spliterators.spliterator(new String[]{}, 1, 0, 0));112113// bad origin114assertThrowsAIOOB(() -> Spliterators.spliterator(new int[]{}, -1, 0, 0));115assertThrowsAIOOB(() -> Spliterators.spliterator(new long[]{}, -1, 0, 0));116assertThrowsAIOOB(() -> Spliterators.spliterator(new double[]{}, -1, 0, 0));117assertThrowsAIOOB(() -> Spliterators.spliterator(new String[]{}, -1, 0, 0));118119// bad fence120assertThrowsAIOOB(() -> Spliterators.spliterator(new int[]{}, 0, 1, 0));121assertThrowsAIOOB(() -> Spliterators.spliterator(new long[]{}, 0, 1, 0));122assertThrowsAIOOB(() -> Spliterators.spliterator(new double[]{}, 0, 1, 0));123assertThrowsAIOOB(() -> Spliterators.spliterator(new String[]{}, 0, 1, 0));124}125126void assertThrowsNPE(Runnable r) {127NullPointerException caught = null;128try {129r.run();130}131catch (NullPointerException e) {132caught = e;133}134assertNotNull(caught, "NullPointerException not thrown");135}136137void assertThrowsAIOOB(Runnable r) {138ArrayIndexOutOfBoundsException caught = null;139try {140r.run();141}142catch (ArrayIndexOutOfBoundsException e) {143caught = e;144}145assertNotNull(caught, "ArrayIndexOutOfBoundsException not thrown");146}147}148149150