8024341: j.u.regex.Pattern.splitAsStream() doesn't correspond to split() method if using an example from the spec
Reviewed-by: alanb
diff --git a/test/java/util/regex/PatternTest.java b/test/java/util/regex/PatternStreamTest.java
similarity index 82%
rename from test/java/util/regex/PatternTest.java
rename to test/java/util/regex/PatternStreamTest.java
index aab1731..374b623 100644
--- a/test/java/util/regex/PatternTest.java
+++ b/test/java/util/regex/PatternStreamTest.java
@@ -23,10 +23,11 @@
/**
* @test
+ * @bug 8016846 8024341
* @summary Unit tests for wrapping classes should delegate to default methods
* @library ../stream/bootlib
* @build java.util.stream.OpTestCase
- * @run testng/othervm PatternTest
+ * @run testng/othervm PatternStreamTest
*/
import org.testng.annotations.DataProvider;
@@ -42,7 +43,7 @@
import java.util.stream.TestData;
@Test
-public class PatternTest extends OpTestCase {
+public class PatternStreamTest extends OpTestCase {
@DataProvider(name = "Stream<String>")
public static Object[][] makeStreamTestData() {
@@ -132,6 +133,38 @@
expected.add("different");
expected.add("separators");
+
+ description = "Repeated separators within and at end";
+ input = "boo:and:foo";
+ pattern = Pattern.compile("o");
+ expected = new ArrayList<>();
+ expected.add("b");
+ expected.add("");
+ expected.add(":and:f");
+
+
+ description = "Many repeated separators within and at end";
+ input = "booooo:and:fooooo";
+ pattern = Pattern.compile("o");
+ expected = new ArrayList<>();
+ expected.add("b");
+ expected.add("");
+ expected.add("");
+ expected.add("");
+ expected.add("");
+ expected.add(":and:f");
+
+ description = "Many repeated separators before last match";
+ input = "fooooo:";
+ pattern = Pattern.compile("o");
+ expected = new ArrayList<>();
+ expected.add("f");
+ expected.add("");
+ expected.add("");
+ expected.add("");
+ expected.add("");
+ expected.add(":");
+
data.add(new Object[] {description, input, pattern, expected});
return data.toArray(new Object[0][]);
}