test/java/util/regex/RegExTest.java
Print this page
*** 31,41 ****
* 4630911 4672616 4711773 4727935 4750573 4792284 4803197 4757029 4808962
* 4872664 4803179 4892980 4900747 4945394 4938995 4979006 4994840 4997476
* 5013885 5003322 4988891 5098443 5110268 6173522 4829857 5027748 6376940
* 6358731 6178785 6284152 6231989 6497148 6486934 6233084 6504326 6635133
* 6350801 6676425 6878475 6919132 6931676 6948903 6990617 7014645 7039066
! * 7067045 7014640 7189363 8007395
*/
import java.util.regex.*;
import java.util.Random;
import java.io.*;
--- 31,41 ----
* 4630911 4672616 4711773 4727935 4750573 4792284 4803197 4757029 4808962
* 4872664 4803179 4892980 4900747 4945394 4938995 4979006 4994840 4997476
* 5013885 5003322 4988891 5098443 5110268 6173522 4829857 5027748 6376940
* 6358731 6178785 6284152 6231989 6497148 6486934 6233084 6504326 6635133
* 6350801 6676425 6878475 6919132 6931676 6948903 6990617 7014645 7039066
! * 7067045 7014640 7189363 8007395 8013252 8013254
*/
import java.util.regex.*;
import java.util.Random;
import java.io.*;
*** 3388,3398 ****
}
private static void check(Pattern p, String s, String g, String expected) {
Matcher m = p.matcher(s);
m.find();
! if (!m.group(g).equals(expected))
failCount++;
}
private static void checkReplaceFirst(String p, String s, String r, String expected)
{
--- 3388,3400 ----
}
private static void check(Pattern p, String s, String g, String expected) {
Matcher m = p.matcher(s);
m.find();
! if (!m.group(g).equals(expected) ||
! s.charAt(m.start(g)) != expected.charAt(0) ||
! s.charAt(m.end(g) - 1) != expected.charAt(expected.length() - 1))
failCount++;
}
private static void checkReplaceFirst(String p, String s, String r, String expected)
{
*** 3418,3440 ****
return;
}
failCount++;
}
! private static void checkExpectedFail(Matcher m, String g) {
m.find();
try {
m.group(g);
! } catch (IllegalArgumentException iae) {
//iae.printStackTrace();
! return;
! } catch (NullPointerException npe) {
return;
}
failCount++;
}
private static void namedGroupCaptureTest() throws Exception {
check(Pattern.compile("x+(?<gname>y+)z+"),
"xxxyyyzzz",
"gname",
--- 3420,3465 ----
return;
}
failCount++;
}
! private static void checkExpectedIAE(Matcher m, String g) {
m.find();
try {
m.group(g);
! } catch (IllegalArgumentException x) {
//iae.printStackTrace();
! try {
! m.start(g);
! } catch (IllegalArgumentException xx) {
! try {
! m.start(g);
! } catch (IllegalArgumentException xxx) {
return;
}
+ }
+ }
failCount++;
}
+ private static void checkExpectedNPE(Matcher m) {
+ m.find();
+ try {
+ m.group(null);
+ } catch (NullPointerException x) {
+ try {
+ m.start(null);
+ } catch (NullPointerException xx) {
+ try {
+ m.end(null);
+ } catch (NullPointerException xxx) {
+ return;
+ }
+ }
+ }
+ failCount++;
+ }
private static void namedGroupCaptureTest() throws Exception {
check(Pattern.compile("x+(?<gname>y+)z+"),
"xxxyyyzzz",
"gname",
*** 3557,3570 ****
checkExpectedFail("(?<groupnamehasnoascii.in>abc)(def)");
checkExpectedFail("(?<groupnamehasnoascii_in>abc)(def)");
checkExpectedFail("(?<6groupnamestartswithdigit>abc)(def)");
checkExpectedFail("(?<gname>abc)(def)\\k<gnameX>");
checkExpectedFail("(?<gname>abc)(?<gname>def)\\k<gnameX>");
! checkExpectedFail(Pattern.compile("(?<gname>abc)(def)").matcher("abcdef"),
"gnameX");
! checkExpectedFail(Pattern.compile("(?<gname>abc)(def)").matcher("abcdef"),
! null);
report("NamedGroupCapture");
}
// This is for bug 6969132
private static void nonBmpClassComplementTest() throws Exception {
--- 3582,3594 ----
checkExpectedFail("(?<groupnamehasnoascii.in>abc)(def)");
checkExpectedFail("(?<groupnamehasnoascii_in>abc)(def)");
checkExpectedFail("(?<6groupnamestartswithdigit>abc)(def)");
checkExpectedFail("(?<gname>abc)(def)\\k<gnameX>");
checkExpectedFail("(?<gname>abc)(?<gname>def)\\k<gnameX>");
! checkExpectedIAE(Pattern.compile("(?<gname>abc)(def)").matcher("abcdef"),
"gnameX");
! checkExpectedNPE(Pattern.compile("(?<gname>abc)(def)").matcher("abcdef"));
report("NamedGroupCapture");
}
// This is for bug 6969132
private static void nonBmpClassComplementTest() throws Exception {
*** 3757,3766 ****
--- 3781,3791 ----
Matcher ideogP = Pattern.compile("\\p{IsIdeographic}").matcher("");
Matcher cntrlP = Pattern.compile("\\p{IsControl}").matcher("");
Matcher spaceP = Pattern.compile("\\p{IsWhiteSpace}").matcher("");
Matcher definedP = Pattern.compile("\\p{IsAssigned}").matcher("");
Matcher nonCCPP = Pattern.compile("\\p{IsNoncharacterCodePoint}").matcher("");
+ Matcher joinCrtl = Pattern.compile("\\p{IsJoinControl}").matcher("");
// javaMethod
Matcher lowerJ = Pattern.compile("\\p{javaLowerCase}").matcher("");
Matcher upperJ = Pattern.compile("\\p{javaUpperCase}").matcher("");
Matcher alphaJ = Pattern.compile("\\p{javaAlphabetic}").matcher("");
*** 3827,3837 ****
Character.isTitleCase(cp) != titleP.reset(str).matches() ||
Character.isLetter(cp) != letterP.reset(str).matches()||
Character.isIdeographic(cp) != ideogP.reset(str).matches() ||
Character.isIdeographic(cp) != ideogJ.reset(str).matches() ||
(Character.UNASSIGNED == type) == definedP.reset(str).matches() ||
! POSIX_Unicode.isNoncharacterCodePoint(cp) != nonCCPP.reset(str).matches())
failCount++;
}
// bounds/word align
twoFindIndexes(" \u0180sherman\u0400 ", bound, 1, 10);
--- 3852,3863 ----
Character.isTitleCase(cp) != titleP.reset(str).matches() ||
Character.isLetter(cp) != letterP.reset(str).matches()||
Character.isIdeographic(cp) != ideogP.reset(str).matches() ||
Character.isIdeographic(cp) != ideogJ.reset(str).matches() ||
(Character.UNASSIGNED == type) == definedP.reset(str).matches() ||
! POSIX_Unicode.isNoncharacterCodePoint(cp) != nonCCPP.reset(str).matches() ||
! POSIX_Unicode.isJoinControl(cp) != joinCrtl.reset(str).matches())
failCount++;
}
// bounds/word align
twoFindIndexes(" \u0180sherman\u0400 ", bound, 1, 10);