You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@harmony.apache.org by Alexei Fedotov <al...@gmail.com> on 2006/11/18 02:14:43 UTC

[drlvm][regression] org.apache.harmony.tests.java.util.regex.PatternTest fails Was: svn commit: r475869 - in /incubator/harmony/enhanced/classlib/trunk/modules/regex/src: main/java/java/util/regex/Lexer.java test/java/org/apache/harmony/tests/java/ut

All,
It looks like we've got a regression, see
http://harmonytest.org/testapp.do?method=showresult&id=2293852.

org.apache.harmony.tests.java.util.regex.PatternTest@testMatches:
java.util.regex.PatternSyntaxException: Illegal inline construct near index: 3
x(?c)y^
at java.util.regex.Lexer.readFlags(Lexer.java:1097)
at java.util.regex.Lexer.movePointer(Lexer.java:749)
at java.util.regex.Lexer.<init>(Lexer.java:228)
at java.util.regex.Pattern.compileImpl(Pattern.java:279)
at java.util.regex.Pattern.compile(Pattern.java:264)
at java.util.regex.Pattern.compile(Pattern.java)
at java.util.regex.Pattern.matches(Pattern.java)
at org.apache.harmony.tests.java.util.regex.PatternTest.testMatches(PatternTest.java:431)
at java.lang.reflect.VMReflection.invokeMethod(Native Method)


Thanks!


On 11/16/06, pyang@apache.org <py...@apache.org> wrote:
> Author: pyang
> Date: Thu Nov 16 10:57:47 2006
> New Revision: 475869
>
> URL: http://svn.apache.org/viewvc?view=rev&rev=475869
> Log:
> Apply patch for HARMONY-2127 ([classlib][regex] harmony does not compile embedded flag (?c))
>
> Modified:
>    incubator/harmony/enhanced/classlib/trunk/modules/regex/src/main/java/java/util/regex/Lexer.java
>    incubator/harmony/enhanced/classlib/trunk/modules/regex/src/test/java/org/apache/harmony/tests/java/util/regex/PatternTest.java
>
> Modified: incubator/harmony/enhanced/classlib/trunk/modules/regex/src/main/java/java/util/regex/Lexer.java
> URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/regex/src/main/java/java/util/regex/Lexer.java?view=diff&rev=475869&r1=475868&r2=475869
> ==============================================================================
> --- incubator/harmony/enhanced/classlib/trunk/modules/regex/src/main/java/java/util/regex/Lexer.java (original)
> +++ incubator/harmony/enhanced/classlib/trunk/modules/regex/src/main/java/java/util/regex/Lexer.java Thu Nov 16 10:57:47 2006
> @@ -1093,8 +1093,7 @@
>                 return res | (1 << 8);
>
>             default:
> -                throw new PatternSyntaxException(Messages.getString("regex.1A"), //$NON-NLS-1$
> -                                               this.toString(), index);
> +                // ignore invalid flags (HARMONY-2127)
>             }
>             nextIndex();
>         }
>
> Modified: incubator/harmony/enhanced/classlib/trunk/modules/regex/src/test/java/org/apache/harmony/tests/java/util/regex/PatternTest.java
> URL: http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/regex/src/test/java/org/apache/harmony/tests/java/util/regex/PatternTest.java?view=diff&rev=475869&r1=475868&r2=475869
> ==============================================================================
> --- incubator/harmony/enhanced/classlib/trunk/modules/regex/src/test/java/org/apache/harmony/tests/java/util/regex/PatternTest.java (original)
> +++ incubator/harmony/enhanced/classlib/trunk/modules/regex/src/test/java/org/apache/harmony/tests/java/util/regex/PatternTest.java Thu Nov 16 10:57:47 2006
> @@ -31,7 +31,10 @@
>                        "(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ)*",
>                        "(a|b)*(a|b)*A(a|b)*lice.*",
>                        "(a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z)(a|b|c|d|e|f|g|h|"
> -                                       + "i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z)*(1|2|3|4|5|6|7|8|9|0)*|while|for|struct|if|do"
> +                                       + "i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z)*(1|2|3|4|5|6|7|8|9|0)*|while|for|struct|if|do",
> +             "x(?c)y",
> +             "x(?cc)y",
> +             "x(?:c)y"
>
>        };
>
> @@ -322,38 +325,49 @@
>                 */
>                String pattern = "b)a";
>                try {
> -                       Pattern pat = Pattern.compile(pattern);
> +                       Pattern.compile(pattern);
> +            fail("Expected a PatternSyntacException when compiling pattern: " + pattern);
>                } catch (PatternSyntaxException e) {
> -                       System.out.println(e);
> +                       // pass
>                }
>                pattern = "bcde)a";
>                try {
> -                       Pattern pat = Pattern.compile(pattern);
> +                       Pattern.compile(pattern);
> +            fail("Expected a PatternSyntacException when compiling pattern: " + pattern);
>                } catch (PatternSyntaxException e) {
> -                       System.out.println(e);
> +                       // pass
>                }
>                pattern = "bbg())a";
>                try {
>                        Pattern pat = Pattern.compile(pattern);
> +            fail("Expected a PatternSyntacException when compiling pattern: " + pattern);
>                } catch (PatternSyntaxException e) {
> -                       System.out.println(e);
> +                       // pass
>                }
>
>                pattern = "cdb(?i))a";
>                try {
>                        Pattern pat = Pattern.compile(pattern);
> -               } catch (Exception e) {
> -                       System.out.println(e);
> +            fail("Expected a PatternSyntacException when compiling pattern: " + pattern);
> +               } catch (PatternSyntaxException e) {
> +                       // pass
>                }
> +
> +        /*
> +         * This pattern should compile - HARMONY-2127
> +         */
> +        pattern = "x(?c)y";
> +        Pattern.compile(pattern);
> +
>
>                /*
>                 * this pattern doesn't match any string, but should be compiled anyway
>                 */
>                pattern = "(b\\1)a";
> -               Pattern pat = Pattern.compile(pattern);
> +               Pattern.compile(pattern);
>
>        }
> -
> +
>        /*
>         * Class under test for Pattern compile(String)
>         */
> @@ -403,7 +417,10 @@
>                                                                + "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" },
>                                { "ababbaAabababblice", "ababbaAliceababab", "ababbAabliceaaa",
>                                                "abbbAbbbliceaaa", "Alice" },
> -                               { "a123", "bnxnvgds156", "for", "while", "if", "struct" }
> +                               { "a123", "bnxnvgds156", "for", "while", "if", "struct" },
> +                { "xy" },
> +                { "xy" },
> +                { "xcy" }
>
>                };
>
> @@ -414,7 +431,7 @@
>                                                posSeq[i][j]));
>                        }
>                }
> -       }
> +       }
>
>        public void testTimeZoneIssue() {
>                Pattern p = Pattern.compile("GMT(\\+|\\-)(\\d+)(:(\\d+))?");
>
>
>


-- 
Thank you,
Alexei

Re: [drlvm][regression] org.apache.harmony.tests.java.util.regex.PatternTest fails Was: svn commit: r475869 - in /incubator/harmony/enhanced/classlib/trunk/modules/regex/src: main/java/java/util/regex/Lexer.java test/java/org/apache/harmony/tests/java/ut

Posted by Tim Ellison <t....@gmail.com>.
Excuse the obvious question:  Are you sure you are running on the latest
impl of regex?  That is a new regression test for that issue committed
with the fix.  All tests pass for me (WinXP/IA32).

Regards,
Tim

Alexei Fedotov wrote:
> All,
> It looks like we've got a regression, see
> http://harmonytest.org/testapp.do?method=showresult&id=2293852.
> 
> org.apache.harmony.tests.java.util.regex.PatternTest@testMatches:
> java.util.regex.PatternSyntaxException: Illegal inline construct near
> index: 3
> x(?c)y^
> at java.util.regex.Lexer.readFlags(Lexer.java:1097)
> at java.util.regex.Lexer.movePointer(Lexer.java:749)
> at java.util.regex.Lexer.<init>(Lexer.java:228)
> at java.util.regex.Pattern.compileImpl(Pattern.java:279)
> at java.util.regex.Pattern.compile(Pattern.java:264)
> at java.util.regex.Pattern.compile(Pattern.java)
> at java.util.regex.Pattern.matches(Pattern.java)
> at
> org.apache.harmony.tests.java.util.regex.PatternTest.testMatches(PatternTest.java:431)
> 
> at java.lang.reflect.VMReflection.invokeMethod(Native Method)
> 
> 
> Thanks!
> 
> 
> On 11/16/06, pyang@apache.org <py...@apache.org> wrote:
>> Author: pyang
>> Date: Thu Nov 16 10:57:47 2006
>> New Revision: 475869
>>
>> URL: http://svn.apache.org/viewvc?view=rev&rev=475869
>> Log:
>> Apply patch for HARMONY-2127 ([classlib][regex] harmony does not
>> compile embedded flag (?c))
>>
>> Modified:
>>   
>> incubator/harmony/enhanced/classlib/trunk/modules/regex/src/main/java/java/util/regex/Lexer.java
>>
>>   
>> incubator/harmony/enhanced/classlib/trunk/modules/regex/src/test/java/org/apache/harmony/tests/java/util/regex/PatternTest.java
>>
>>
>> Modified:
>> incubator/harmony/enhanced/classlib/trunk/modules/regex/src/main/java/java/util/regex/Lexer.java
>>
>> URL:
>> http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/regex/src/main/java/java/util/regex/Lexer.java?view=diff&rev=475869&r1=475868&r2=475869
>>
>> ==============================================================================
>>
>> ---
>> incubator/harmony/enhanced/classlib/trunk/modules/regex/src/main/java/java/util/regex/Lexer.java
>> (original)
>> +++
>> incubator/harmony/enhanced/classlib/trunk/modules/regex/src/main/java/java/util/regex/Lexer.java
>> Thu Nov 16 10:57:47 2006
>> @@ -1093,8 +1093,7 @@
>>                 return res | (1 << 8);
>>
>>             default:
>> -                throw new
>> PatternSyntaxException(Messages.getString("regex.1A"), //$NON-NLS-1$
>> -                                               this.toString(), index);
>> +                // ignore invalid flags (HARMONY-2127)
>>             }
>>             nextIndex();
>>         }
>>
>> Modified:
>> incubator/harmony/enhanced/classlib/trunk/modules/regex/src/test/java/org/apache/harmony/tests/java/util/regex/PatternTest.java
>>
>> URL:
>> http://svn.apache.org/viewvc/incubator/harmony/enhanced/classlib/trunk/modules/regex/src/test/java/org/apache/harmony/tests/java/util/regex/PatternTest.java?view=diff&rev=475869&r1=475868&r2=475869
>>
>> ==============================================================================
>>
>> ---
>> incubator/harmony/enhanced/classlib/trunk/modules/regex/src/test/java/org/apache/harmony/tests/java/util/regex/PatternTest.java
>> (original)
>> +++
>> incubator/harmony/enhanced/classlib/trunk/modules/regex/src/test/java/org/apache/harmony/tests/java/util/regex/PatternTest.java
>> Thu Nov 16 10:57:47 2006
>> @@ -31,7 +31,10 @@
>>                       
>> "(abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ)*",
>>                        "(a|b)*(a|b)*A(a|b)*lice.*",
>>                       
>> "(a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z)(a|b|c|d|e|f|g|h|"
>> -                                       +
>> "i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z)*(1|2|3|4|5|6|7|8|9|0)*|while|for|struct|if|do"
>>
>> +                                       +
>> "i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z)*(1|2|3|4|5|6|7|8|9|0)*|while|for|struct|if|do",
>>
>> +             "x(?c)y",
>> +             "x(?cc)y",
>> +             "x(?:c)y"
>>
>>        };
>>
>> @@ -322,38 +325,49 @@
>>                 */
>>                String pattern = "b)a";
>>                try {
>> -                       Pattern pat = Pattern.compile(pattern);
>> +                       Pattern.compile(pattern);
>> +            fail("Expected a PatternSyntacException when compiling
>> pattern: " + pattern);
>>                } catch (PatternSyntaxException e) {
>> -                       System.out.println(e);
>> +                       // pass
>>                }
>>                pattern = "bcde)a";
>>                try {
>> -                       Pattern pat = Pattern.compile(pattern);
>> +                       Pattern.compile(pattern);
>> +            fail("Expected a PatternSyntacException when compiling
>> pattern: " + pattern);
>>                } catch (PatternSyntaxException e) {
>> -                       System.out.println(e);
>> +                       // pass
>>                }
>>                pattern = "bbg())a";
>>                try {
>>                        Pattern pat = Pattern.compile(pattern);
>> +            fail("Expected a PatternSyntacException when compiling
>> pattern: " + pattern);
>>                } catch (PatternSyntaxException e) {
>> -                       System.out.println(e);
>> +                       // pass
>>                }
>>
>>                pattern = "cdb(?i))a";
>>                try {
>>                        Pattern pat = Pattern.compile(pattern);
>> -               } catch (Exception e) {
>> -                       System.out.println(e);
>> +            fail("Expected a PatternSyntacException when compiling
>> pattern: " + pattern);
>> +               } catch (PatternSyntaxException e) {
>> +                       // pass
>>                }
>> +
>> +        /*
>> +         * This pattern should compile - HARMONY-2127
>> +         */
>> +        pattern = "x(?c)y";
>> +        Pattern.compile(pattern);
>> +
>>
>>                /*
>>                 * this pattern doesn't match any string, but should be
>> compiled anyway
>>                 */
>>                pattern = "(b\\1)a";
>> -               Pattern pat = Pattern.compile(pattern);
>> +               Pattern.compile(pattern);
>>
>>        }
>> -
>> +
>>        /*
>>         * Class under test for Pattern compile(String)
>>         */
>> @@ -403,7 +417,10 @@
>>                                                                +
>> "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" },
>>                                { "ababbaAabababblice",
>> "ababbaAliceababab", "ababbAabliceaaa",
>>                                                "abbbAbbbliceaaa",
>> "Alice" },
>> -                               { "a123", "bnxnvgds156", "for",
>> "while", "if", "struct" }
>> +                               { "a123", "bnxnvgds156", "for",
>> "while", "if", "struct" },
>> +                { "xy" },
>> +                { "xy" },
>> +                { "xcy" }
>>
>>                };
>>
>> @@ -414,7 +431,7 @@
>>                                                posSeq[i][j]));
>>                        }
>>                }
>> -       }
>> +       }
>>
>>        public void testTimeZoneIssue() {
>>                Pattern p =
>> Pattern.compile("GMT(\\+|\\-)(\\d+)(:(\\d+))?");
>>
>>
>>
> 
> 

-- 

Tim Ellison (t.p.ellison@gmail.com)
IBM Java technology centre, UK.