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 2011/05/01 15:53:04 UTC
svn commit: r1098303 - in /lucene/dev/trunk/lucene:
contrib/queries/src/test/org/apache/lucene/search/
contrib/xml-query-parser/src/test/org/apache/lucene/xmlparser/
src/test-framework/org/apache/lucene/search/
src/test-framework/org/apache/lucene/util...
Author: rmuir
Date: Sun May 1 13:53:04 2011
New Revision: 1098303
URL: http://svn.apache.org/viewvc?rev=1098303&view=rev
Log:
LUCENE-3053: improve test coverage for Multi*
Modified:
lucene/dev/trunk/lucene/contrib/queries/src/test/org/apache/lucene/search/TestFieldCacheRewriteMethod.java
lucene/dev/trunk/lucene/contrib/xml-query-parser/src/test/org/apache/lucene/xmlparser/TestParser.java
lucene/dev/trunk/lucene/src/test-framework/org/apache/lucene/search/QueryUtils.java
lucene/dev/trunk/lucene/src/test-framework/org/apache/lucene/util/LuceneTestCase.java
lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestCachingSpanFilter.java
lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java
lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestMatchAllDocsQuery.java
lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestNumericRangeQuery32.java
lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestNumericRangeQuery64.java
lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestRegexpRandom2.java
Modified: lucene/dev/trunk/lucene/contrib/queries/src/test/org/apache/lucene/search/TestFieldCacheRewriteMethod.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/contrib/queries/src/test/org/apache/lucene/search/TestFieldCacheRewriteMethod.java?rev=1098303&r1=1098302&r2=1098303&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/contrib/queries/src/test/org/apache/lucene/search/TestFieldCacheRewriteMethod.java (original)
+++ lucene/dev/trunk/lucene/contrib/queries/src/test/org/apache/lucene/search/TestFieldCacheRewriteMethod.java Sun May 1 13:53:04 2011
@@ -36,8 +36,8 @@ public class TestFieldCacheRewriteMethod
RegexpQuery filter = new RegexpQuery(new Term("field", regexp), RegExp.NONE);
filter.setRewriteMethod(MultiTermQuery.CONSTANT_SCORE_FILTER_REWRITE);
- TopDocs fieldCacheDocs = searcher.search(fieldCache, 25);
- TopDocs filterDocs = searcher.search(filter, 25);
+ TopDocs fieldCacheDocs = searcher1.search(fieldCache, 25);
+ TopDocs filterDocs = searcher2.search(filter, 25);
CheckHits.checkEqual(fieldCache, fieldCacheDocs.scoreDocs, filterDocs.scoreDocs);
}
Modified: lucene/dev/trunk/lucene/contrib/xml-query-parser/src/test/org/apache/lucene/xmlparser/TestParser.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/contrib/xml-query-parser/src/test/org/apache/lucene/xmlparser/TestParser.java?rev=1098303&r1=1098302&r2=1098303&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/contrib/xml-query-parser/src/test/org/apache/lucene/xmlparser/TestParser.java (original)
+++ lucene/dev/trunk/lucene/contrib/xml-query-parser/src/test/org/apache/lucene/xmlparser/TestParser.java Sun May 1 13:53:04 2011
@@ -187,7 +187,8 @@ public class TestParser extends LuceneTe
}
public void testDuplicateFilterQueryXML() throws ParserException, IOException
{
- Assume.assumeTrue(searcher.getIndexReader().getSequentialSubReaders().length == 1);
+ Assume.assumeTrue(searcher.getIndexReader().getSequentialSubReaders() == null ||
+ searcher.getIndexReader().getSequentialSubReaders().length == 1);
Query q=parse("DuplicateFilterQuery.xml");
int h = searcher.search(q, null, 1000).totalHits;
assertEquals("DuplicateFilterQuery should produce 1 result ", 1,h);
Modified: lucene/dev/trunk/lucene/src/test-framework/org/apache/lucene/search/QueryUtils.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test-framework/org/apache/lucene/search/QueryUtils.java?rev=1098303&r1=1098302&r2=1098303&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test-framework/org/apache/lucene/search/QueryUtils.java (original)
+++ lucene/dev/trunk/lucene/src/test-framework/org/apache/lucene/search/QueryUtils.java Sun May 1 13:53:04 2011
@@ -309,7 +309,7 @@ public class QueryUtils {
// confirm that skipping beyond the last doc, on the
// previous reader, hits NO_MORE_DOCS
final IndexReader previousReader = lastReader[0];
- IndexSearcher indexSearcher = LuceneTestCase.newSearcher(previousReader);
+ IndexSearcher indexSearcher = LuceneTestCase.newSearcher(previousReader, false);
Weight w = q.weight(indexSearcher);
Scorer scorer = w.scorer((AtomicReaderContext)previousReader.getTopReaderContext(), ScorerContext.def());
if (scorer != null) {
Modified: lucene/dev/trunk/lucene/src/test-framework/org/apache/lucene/util/LuceneTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test-framework/org/apache/lucene/util/LuceneTestCase.java?rev=1098303&r1=1098302&r2=1098303&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test-framework/org/apache/lucene/util/LuceneTestCase.java (original)
+++ lucene/dev/trunk/lucene/src/test-framework/org/apache/lucene/util/LuceneTestCase.java Sun May 1 13:53:04 2011
@@ -1091,8 +1091,21 @@ public abstract class LuceneTestCase ext
/** create a new searcher over the reader.
* This searcher might randomly use threads. */
public static IndexSearcher newSearcher(IndexReader r) throws IOException {
+ return newSearcher(r, true);
+ }
+
+ /** create a new searcher over the reader.
+ * This searcher might randomly use threads.
+ * if <code>maybeWrap</code> is true, this searcher might wrap the reader
+ * with one that returns null for getSequentialSubReaders.
+ */
+ public static IndexSearcher newSearcher(IndexReader r, boolean maybeWrap) throws IOException {
if (random.nextBoolean()) {
- return new IndexSearcher(r);
+ if (maybeWrap && random.nextBoolean()) {
+ return new IndexSearcher(new SlowMultiReaderWrapper(r));
+ } else {
+ return new IndexSearcher(r);
+ }
} else {
int threads = 0;
final ExecutorService ex = (random.nextBoolean()) ? null
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestCachingSpanFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestCachingSpanFilter.java?rev=1098303&r1=1098302&r2=1098303&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestCachingSpanFilter.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestCachingSpanFilter.java Sun May 1 13:53:04 2011
@@ -49,7 +49,8 @@ public class TestCachingSpanFilter exten
// but we use .reopen on this reader below and expect to
// (must) get an NRT reader:
IndexReader reader = IndexReader.open(writer.w, true);
- IndexSearcher searcher = newSearcher(reader);
+ // same reason we don't wrap?
+ IndexSearcher searcher = newSearcher(reader, false);
// add a doc, refresh the reader, and check that its there
Document doc = new Document();
@@ -58,7 +59,7 @@ public class TestCachingSpanFilter exten
reader = refreshReader(reader);
searcher.close();
- searcher = newSearcher(reader);
+ searcher = newSearcher(reader, false);
TopDocs docs = searcher.search(new MatchAllDocsQuery(), 1);
assertEquals("Should find a hit...", 1, docs.totalHits);
@@ -81,7 +82,7 @@ public class TestCachingSpanFilter exten
reader = refreshReader(reader);
searcher.close();
- searcher = newSearcher(reader);
+ searcher = newSearcher(reader, false);
docs = searcher.search(new MatchAllDocsQuery(), filter, 1);
assertEquals("[query + filter] Should *not* find a hit...", 0, docs.totalHits);
@@ -96,7 +97,7 @@ public class TestCachingSpanFilter exten
writer.addDocument(doc);
reader = refreshReader(reader);
searcher.close();
- searcher = newSearcher(reader);
+ searcher = newSearcher(reader, false);
docs = searcher.search(new MatchAllDocsQuery(), filter, 1);
assertEquals("[query + filter] Should find a hit...", 1, docs.totalHits);
@@ -115,7 +116,7 @@ public class TestCachingSpanFilter exten
reader = refreshReader(reader);
assertTrue(reader != oldReader);
searcher.close();
- searcher = newSearcher(reader);
+ searcher = newSearcher(reader, false);
int missCount = filter.missCount;
docs = searcher.search(constantScore, 1);
assertEquals("[just filter] Should find a hit...", 1, docs.totalHits);
@@ -126,7 +127,7 @@ public class TestCachingSpanFilter exten
reader = refreshReader(reader);
searcher.close();
- searcher = newSearcher(reader);
+ searcher = newSearcher(reader, false);
docs = searcher.search(new MatchAllDocsQuery(), filter, 1);
assertEquals("[query + filter] Should *not* find a hit...", 0, docs.totalHits);
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java?rev=1098303&r1=1098302&r2=1098303&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestCachingWrapperFilter.java Sun May 1 13:53:04 2011
@@ -171,7 +171,8 @@ public class TestCachingWrapperFilter ex
// but we use .reopen on this reader below and expect to
// (must) get an NRT reader:
IndexReader reader = IndexReader.open(writer.w, true);
- IndexSearcher searcher = newSearcher(reader);
+ // same reason we don't wrap?
+ IndexSearcher searcher = newSearcher(reader, false);
// add a doc, refresh the reader, and check that its there
Document doc = new Document();
@@ -180,7 +181,7 @@ public class TestCachingWrapperFilter ex
reader = refreshReader(reader);
searcher.close();
- searcher = newSearcher(reader);
+ searcher = newSearcher(reader, false);
TopDocs docs = searcher.search(new MatchAllDocsQuery(), 1);
assertEquals("Should find a hit...", 1, docs.totalHits);
@@ -202,7 +203,7 @@ public class TestCachingWrapperFilter ex
reader = refreshReader(reader);
searcher.close();
- searcher = newSearcher(reader);
+ searcher = newSearcher(reader, false);
docs = searcher.search(new MatchAllDocsQuery(), filter, 1);
assertEquals("[query + filter] Should *not* find a hit...", 0, docs.totalHits);
@@ -218,7 +219,7 @@ public class TestCachingWrapperFilter ex
reader = refreshReader(reader);
searcher.close();
- searcher = newSearcher(reader);
+ searcher = newSearcher(reader, false);
docs = searcher.search(new MatchAllDocsQuery(), filter, 1);
@@ -238,7 +239,7 @@ public class TestCachingWrapperFilter ex
reader = refreshReader(reader);
assertTrue(reader != oldReader);
searcher.close();
- searcher = newSearcher(reader);
+ searcher = newSearcher(reader, false);
int missCount = filter.missCount;
docs = searcher.search(constantScore, 1);
assertEquals("[just filter] Should find a hit...", 1, docs.totalHits);
@@ -249,7 +250,7 @@ public class TestCachingWrapperFilter ex
reader = refreshReader(reader);
searcher.close();
- searcher = newSearcher(reader);
+ searcher = newSearcher(reader, false);
missCount = filter.missCount;
docs = searcher.search(new MatchAllDocsQuery(), filter, 1);
@@ -265,7 +266,7 @@ public class TestCachingWrapperFilter ex
writer.addDocument(doc);
reader = refreshReader(reader);
searcher.close();
- searcher = newSearcher(reader);
+ searcher = newSearcher(reader, false);
docs = searcher.search(new MatchAllDocsQuery(), filter, 1);
assertEquals("[query + filter] Should find a hit...", 1, docs.totalHits);
@@ -278,7 +279,7 @@ public class TestCachingWrapperFilter ex
reader = refreshReader(reader);
searcher.close();
- searcher = newSearcher(reader);
+ searcher = newSearcher(reader, false);
docs = searcher.search(new MatchAllDocsQuery(), filter, 1);
assertEquals("[query + filter] Should *not* find a hit...", 0, docs.totalHits);
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestMatchAllDocsQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestMatchAllDocsQuery.java?rev=1098303&r1=1098302&r2=1098303&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestMatchAllDocsQuery.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestMatchAllDocsQuery.java Sun May 1 13:53:04 2011
@@ -54,9 +54,9 @@ public class TestMatchAllDocsQuery exten
hits = is.search(new MatchAllDocsQuery(), null, 1000).scoreDocs;
assertEquals(3, hits.length);
- assertEquals("one", ir.document(hits[0].doc).get("key"));
- assertEquals("two", ir.document(hits[1].doc).get("key"));
- assertEquals("three four", ir.document(hits[2].doc).get("key"));
+ assertEquals("one", is.doc(hits[0].doc).get("key"));
+ assertEquals("two", is.doc(hits[1].doc).get("key"));
+ assertEquals("three four", is.doc(hits[2].doc).get("key"));
// assert with norms scoring turned on
@@ -64,19 +64,19 @@ public class TestMatchAllDocsQuery exten
hits = is.search(normsQuery, null, 1000).scoreDocs;
assertEquals(3, hits.length);
- assertEquals("three four", ir.document(hits[0].doc).get("key"));
- assertEquals("two", ir.document(hits[1].doc).get("key"));
- assertEquals("one", ir.document(hits[2].doc).get("key"));
+ assertEquals("three four", is.doc(hits[0].doc).get("key"));
+ assertEquals("two", is.doc(hits[1].doc).get("key"));
+ assertEquals("one", is.doc(hits[2].doc).get("key"));
// change norm & retest
- ir.setNorm(0, "key", is.getSimilarityProvider().get("key").encodeNormValue(400f));
+ is.getIndexReader().setNorm(0, "key", is.getSimilarityProvider().get("key").encodeNormValue(400f));
normsQuery = new MatchAllDocsQuery("key");
hits = is.search(normsQuery, null, 1000).scoreDocs;
assertEquals(3, hits.length);
- assertEquals("one", ir.document(hits[0].doc).get("key"));
- assertEquals("three four", ir.document(hits[1].doc).get("key"));
- assertEquals("two", ir.document(hits[2].doc).get("key"));
+ assertEquals("one", is.doc(hits[0].doc).get("key"));
+ assertEquals("three four", is.doc(hits[1].doc).get("key"));
+ assertEquals("two", is.doc(hits[2].doc).get("key"));
// some artificial queries to trigger the use of skipTo():
@@ -93,7 +93,7 @@ public class TestMatchAllDocsQuery exten
assertEquals(1, hits.length);
// delete a document:
- ir.deleteDocument(0);
+ is.getIndexReader().deleteDocument(0);
hits = is.search(new MatchAllDocsQuery(), null, 1000).scoreDocs;
assertEquals(2, hits.length);
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestNumericRangeQuery32.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestNumericRangeQuery32.java?rev=1098303&r1=1098302&r2=1098303&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestNumericRangeQuery32.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestNumericRangeQuery32.java Sun May 1 13:53:04 2011
@@ -154,7 +154,9 @@ public class TestNumericRangeQuery32 ext
assertEquals("First doc"+type, 2*distance+startOffset, Integer.parseInt(doc.get(field)) );
doc=searcher.doc(sd[sd.length-1].doc);
assertEquals("Last doc"+type, (1+count)*distance+startOffset, Integer.parseInt(doc.get(field)) );
- if (i>0 && searcher.getIndexReader().getSequentialSubReaders().length == 1) {
+ if (i>0 &&
+ (searcher.getIndexReader().getSequentialSubReaders() == null ||
+ searcher.getIndexReader().getSequentialSubReaders().length == 1)) {
assertEquals("Distinct term number is equal for all query types", lastTerms, terms);
}
lastTerms = terms;
@@ -378,7 +380,9 @@ public class TestNumericRangeQuery32 ext
termCountT += tq.getTotalNumberOfTerms();
termCountC += cq.getTotalNumberOfTerms();
}
- if (precisionStep == Integer.MAX_VALUE && searcher.getIndexReader().getSequentialSubReaders().length == 1) {
+ if (precisionStep == Integer.MAX_VALUE &&
+ (searcher.getIndexReader().getSequentialSubReaders() == null ||
+ searcher.getIndexReader().getSequentialSubReaders().length == 1)) {
assertEquals("Total number of terms should be equal for unlimited precStep", termCountT, termCountC);
} else if (VERBOSE) {
System.out.println("Average number of terms during random search on '" + field + "':");
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestNumericRangeQuery64.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestNumericRangeQuery64.java?rev=1098303&r1=1098302&r2=1098303&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestNumericRangeQuery64.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/search/TestNumericRangeQuery64.java Sun May 1 13:53:04 2011
@@ -154,7 +154,9 @@ public class TestNumericRangeQuery64 ext
assertEquals("First doc"+type, 2*distance+startOffset, Long.parseLong(doc.get(field)) );
doc=searcher.doc(sd[sd.length-1].doc);
assertEquals("Last doc"+type, (1+count)*distance+startOffset, Long.parseLong(doc.get(field)) );
- if (i>0 && searcher.getIndexReader().getSequentialSubReaders().length == 1) {
+ if (i>0 &&
+ (searcher.getIndexReader().getSequentialSubReaders() == null ||
+ searcher.getIndexReader().getSequentialSubReaders().length == 1)) {
assertEquals("Distinct term number is equal for all query types", lastTerms, terms);
}
lastTerms = terms;
@@ -395,7 +397,9 @@ public class TestNumericRangeQuery64 ext
termCountT += tq.getTotalNumberOfTerms();
termCountC += cq.getTotalNumberOfTerms();
}
- if (precisionStep == Integer.MAX_VALUE && searcher.getIndexReader().getSequentialSubReaders().length == 1) {
+ if (precisionStep == Integer.MAX_VALUE &&
+ (searcher.getIndexReader().getSequentialSubReaders() == null ||
+ searcher.getIndexReader().getSequentialSubReaders().length == 1)) {
assertEquals("Total number of terms should be equal for unlimited precStep", termCountT, termCountC);
} else if (VERBOSE) {
System.out.println("Average number of terms during random search on '" + field + "':");
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=1098303&r1=1098302&r2=1098303&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 Sun May 1 13:53:04 2011
@@ -49,7 +49,8 @@ import org.apache.lucene.util.automaton.
* Generates random regexps, and validates against a simple impl.
*/
public class TestRegexpRandom2 extends LuceneTestCase {
- protected IndexSearcher searcher;
+ protected IndexSearcher searcher1;
+ protected IndexSearcher searcher2;
private IndexReader reader;
private Directory dir;
@@ -82,14 +83,16 @@ public class TestRegexpRandom2 extends L
}
reader = writer.getReader();
- searcher = newSearcher(reader);
+ searcher1 = newSearcher(reader);
+ searcher2 = newSearcher(reader);
writer.close();
}
@Override
public void tearDown() throws Exception {
reader.close();
- searcher.close();
+ searcher1.close();
+ searcher2.close();
dir.close();
super.tearDown();
}
@@ -157,12 +160,12 @@ public class TestRegexpRandom2 extends L
// automatically comparable.
// TODO: does this check even matter anymore?!
- Terms terms = MultiFields.getTerms(searcher.getIndexReader(), "field");
+ Terms terms = MultiFields.getTerms(searcher1.getIndexReader(), "field");
if (!(smart.getTermsEnum(terms) instanceof AutomatonTermsEnum))
return;
- TopDocs smartDocs = searcher.search(smart, 25);
- TopDocs dumbDocs = searcher.search(dumb, 25);
+ TopDocs smartDocs = searcher1.search(smart, 25);
+ TopDocs dumbDocs = searcher2.search(dumb, 25);
CheckHits.checkEqual(smart, smartDocs.scoreDocs, dumbDocs.scoreDocs);
}