You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2010/07/26 22:02:49 UTC

svn commit: r979422 - in /lucene/dev/trunk/lucene/src/test/org/apache/lucene: search/TestRegexpRandom2.java util/automaton/AutomatonTestUtil.java

Author: rmuir
Date: Mon Jul 26 20:02:49 2010
New Revision: 979422

URL: http://svn.apache.org/viewvc?rev=979422&view=rev
Log:
don't generate invalid random regexps: the toString method of RegExp doesnt escape

Modified:
    lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestRegexpRandom2.java
    lucene/dev/trunk/lucene/src/test/org/apache/lucene/util/automaton/AutomatonTestUtil.java

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestRegexpRandom2.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestRegexpRandom2.java?rev=979422&r1=979421&r2=979422&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestRegexpRandom2.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestRegexpRandom2.java Mon Jul 26 20:02:49 2010
@@ -86,9 +86,9 @@ public class TestRegexpRandom2 extends L
   private class DumbRegexpQuery extends MultiTermQuery {
     private final Automaton automaton;
     
-    DumbRegexpQuery(Term term) {
+    DumbRegexpQuery(Term term, int flags) {
       super(term.field());
-      RegExp re = new RegExp(term.text());
+      RegExp re = new RegExp(term.text(), flags);
       automaton = re.toAutomaton();
     }
     
@@ -130,8 +130,8 @@ public class TestRegexpRandom2 extends L
    * simple regexpquery implementation.
    */
   private void assertSame(String regexp) throws IOException {   
-    RegexpQuery smart = new RegexpQuery(new Term("field", regexp));
-    DumbRegexpQuery dumb = new DumbRegexpQuery(new Term("field", regexp));
+    RegexpQuery smart = new RegexpQuery(new Term("field", regexp), RegExp.NONE);
+    DumbRegexpQuery dumb = new DumbRegexpQuery(new Term("field", regexp), RegExp.NONE);
     
     // we can't compare the two if automaton rewrites to a simpler enum.
     // for example: "a\uda07\udcc7?.*?" gets rewritten to a simpler query:

Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/util/automaton/AutomatonTestUtil.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/util/automaton/AutomatonTestUtil.java?rev=979422&r1=979421&r2=979422&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/util/automaton/AutomatonTestUtil.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/util/automaton/AutomatonTestUtil.java Mon Jul 26 20:02:49 2010
@@ -40,7 +40,9 @@ public class AutomatonTestUtil {
       if (!UnicodeUtil.validUTF16String(regexp))
         continue;
       try {
-        return new RegExp(regexp, RegExp.NONE);
+        // NOTE: we parse-tostring-parse again, because we are
+        // really abusing RegExp.toString() here (its just for debugging)
+        return new RegExp(new RegExp(regexp, RegExp.NONE).toString(), RegExp.NONE);
       } catch (Exception e) {}
     }
   }