mirror of https://github.com/apache/lucene.git
LUCENE-3175: @nightly OnJRECrash, and optimize some slower tests
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1140848 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
5327a55ff7
commit
2745612a4c
|
@ -106,6 +106,7 @@ public class CheckHits {
|
||||||
Assert.assertEquals("Wrap Reader " + i + ": " +
|
Assert.assertEquals("Wrap Reader " + i + ": " +
|
||||||
query.toString(defaultFieldName),
|
query.toString(defaultFieldName),
|
||||||
correct, actual);
|
correct, actual);
|
||||||
|
FieldCache.DEFAULT.purge(s.getIndexReader()); // our wrapping can create insanity otherwise
|
||||||
s.close();
|
s.close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -114,10 +114,13 @@ public class QueryUtils {
|
||||||
if (wrap) {
|
if (wrap) {
|
||||||
IndexSearcher wrapped;
|
IndexSearcher wrapped;
|
||||||
check(random, q1, wrapped = wrapUnderlyingReader(random, s, -1), false);
|
check(random, q1, wrapped = wrapUnderlyingReader(random, s, -1), false);
|
||||||
|
FieldCache.DEFAULT.purge(wrapped.getIndexReader()); // // our wrapping can create insanity otherwise
|
||||||
wrapped.close();
|
wrapped.close();
|
||||||
check(random, q1, wrapped = wrapUnderlyingReader(random, s, 0), false);
|
check(random, q1, wrapped = wrapUnderlyingReader(random, s, 0), false);
|
||||||
|
FieldCache.DEFAULT.purge(wrapped.getIndexReader()); // // our wrapping can create insanity otherwise
|
||||||
wrapped.close();
|
wrapped.close();
|
||||||
check(random, q1, wrapped = wrapUnderlyingReader(random, s, +1), false);
|
check(random, q1, wrapped = wrapUnderlyingReader(random, s, +1), false);
|
||||||
|
FieldCache.DEFAULT.purge(wrapped.getIndexReader()); // // our wrapping can create insanity otherwise
|
||||||
wrapped.close();
|
wrapped.close();
|
||||||
}
|
}
|
||||||
checkExplanations(q1,s);
|
checkExplanations(q1,s);
|
||||||
|
@ -148,23 +151,35 @@ public class QueryUtils {
|
||||||
// we can't put deleted docs before the nested reader, because
|
// we can't put deleted docs before the nested reader, because
|
||||||
// it will throw off the docIds
|
// it will throw off the docIds
|
||||||
IndexReader[] readers = new IndexReader[] {
|
IndexReader[] readers = new IndexReader[] {
|
||||||
edge < 0 ? r : IndexReader.open(makeEmptyIndex(random, 0), true),
|
edge < 0 ? r : emptyReaders[0],
|
||||||
IndexReader.open(makeEmptyIndex(random, 0), true),
|
emptyReaders[0],
|
||||||
new MultiReader(IndexReader.open(makeEmptyIndex(random, edge < 0 ? 4 : 0), true),
|
new MultiReader(edge < 0 ? emptyReaders[4] : emptyReaders[0],
|
||||||
IndexReader.open(makeEmptyIndex(random, 0), true),
|
emptyReaders[0],
|
||||||
0 == edge ? r : IndexReader.open(makeEmptyIndex(random, 0), true)),
|
0 == edge ? r : emptyReaders[0]),
|
||||||
IndexReader.open(makeEmptyIndex(random, 0 < edge ? 0 : 7), true),
|
0 < edge ? emptyReaders[0] : emptyReaders[7],
|
||||||
IndexReader.open(makeEmptyIndex(random, 0), true),
|
emptyReaders[0],
|
||||||
new MultiReader(IndexReader.open(makeEmptyIndex(random, 0 < edge ? 0 : 5), true),
|
new MultiReader(0 < edge ? emptyReaders[0] : emptyReaders[5],
|
||||||
IndexReader.open(makeEmptyIndex(random, 0), true),
|
emptyReaders[0],
|
||||||
0 < edge ? r : IndexReader.open(makeEmptyIndex(random, 0), true))
|
0 < edge ? r : emptyReaders[0])
|
||||||
};
|
};
|
||||||
IndexSearcher out = LuceneTestCase.newSearcher(new MultiReader(readers));
|
IndexSearcher out = LuceneTestCase.newSearcher(new MultiReader(readers), false);
|
||||||
out.setSimilarityProvider(s.getSimilarityProvider());
|
out.setSimilarityProvider(s.getSimilarityProvider());
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Directory makeEmptyIndex(Random random, final int numDeletedDocs)
|
static final IndexReader[] emptyReaders = new IndexReader[8];
|
||||||
|
static {
|
||||||
|
try {
|
||||||
|
emptyReaders[0] = makeEmptyIndex(new Random(0), 0);
|
||||||
|
emptyReaders[4] = makeEmptyIndex(new Random(0), 4);
|
||||||
|
emptyReaders[5] = makeEmptyIndex(new Random(0), 5);
|
||||||
|
emptyReaders[7] = makeEmptyIndex(new Random(0), 7);
|
||||||
|
} catch (IOException ex) {
|
||||||
|
throw new RuntimeException(ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static IndexReader makeEmptyIndex(Random random, final int numDeletedDocs)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
Directory d = new MockDirectoryWrapper(random, new RAMDirectory());
|
Directory d = new MockDirectoryWrapper(random, new RAMDirectory());
|
||||||
IndexWriter w = new IndexWriter(d, new IndexWriterConfig(
|
IndexWriter w = new IndexWriter(d, new IndexWriterConfig(
|
||||||
|
@ -188,8 +203,7 @@ public class QueryUtils {
|
||||||
IndexReader r = IndexReader.open(d, true);
|
IndexReader r = IndexReader.open(d, true);
|
||||||
Assert.assertEquals("reader has wrong number of deleted docs",
|
Assert.assertEquals("reader has wrong number of deleted docs",
|
||||||
numDeletedDocs, r.numDeletedDocs());
|
numDeletedDocs, r.numDeletedDocs());
|
||||||
r.close();
|
return r;
|
||||||
return d;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** alternate scorer skipTo(),skipTo(),next(),next(),skipTo(),skipTo(), etc
|
/** alternate scorer skipTo(),skipTo(),next(),next(),skipTo(),skipTo(), etc
|
||||||
|
|
|
@ -47,7 +47,7 @@ public class TestIndexWriterOnJRECrash extends TestNRTThreads {
|
||||||
tempDir.mkdir();
|
tempDir.mkdir();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override @Nightly
|
||||||
public void testNRTThreads() throws Exception {
|
public void testNRTThreads() throws Exception {
|
||||||
String vendor = Constants.JAVA_VENDOR;
|
String vendor = Constants.JAVA_VENDOR;
|
||||||
assumeTrue(vendor + " JRE not supported.",
|
assumeTrue(vendor + " JRE not supported.",
|
||||||
|
|
|
@ -39,7 +39,7 @@ public class TestComplexExplanations extends TestExplanations {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tearDown() throws Exception {
|
public void tearDown() throws Exception {
|
||||||
searcher.close();
|
searcher.setSimilarityProvider(IndexSearcher.getDefaultSimilarityProvider());
|
||||||
super.tearDown();
|
super.tearDown();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,8 @@ import org.apache.lucene.search.spans.SpanQuery;
|
||||||
import org.apache.lucene.search.spans.SpanTermQuery;
|
import org.apache.lucene.search.spans.SpanTermQuery;
|
||||||
import org.apache.lucene.store.Directory;
|
import org.apache.lucene.store.Directory;
|
||||||
import org.apache.lucene.util.LuceneTestCase;
|
import org.apache.lucene.util.LuceneTestCase;
|
||||||
|
import org.junit.AfterClass;
|
||||||
|
import org.junit.BeforeClass;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests primitive queries (ie: that rewrite to themselves) to
|
* Tests primitive queries (ie: that rewrite to themselves) to
|
||||||
|
@ -47,9 +49,9 @@ import org.apache.lucene.util.LuceneTestCase;
|
||||||
* @see "Subclasses for actual tests"
|
* @see "Subclasses for actual tests"
|
||||||
*/
|
*/
|
||||||
public class TestExplanations extends LuceneTestCase {
|
public class TestExplanations extends LuceneTestCase {
|
||||||
protected IndexSearcher searcher;
|
protected static IndexSearcher searcher;
|
||||||
protected IndexReader reader;
|
protected static IndexReader reader;
|
||||||
protected Directory directory;
|
protected static Directory directory;
|
||||||
|
|
||||||
public static final String KEY = "KEY";
|
public static final String KEY = "KEY";
|
||||||
// boost on this field is the same as the iterator for the doc
|
// boost on this field is the same as the iterator for the doc
|
||||||
|
@ -59,17 +61,18 @@ public class TestExplanations extends LuceneTestCase {
|
||||||
public static final QueryParser qp =
|
public static final QueryParser qp =
|
||||||
new QueryParser(TEST_VERSION_CURRENT, FIELD, new MockAnalyzer(random));
|
new QueryParser(TEST_VERSION_CURRENT, FIELD, new MockAnalyzer(random));
|
||||||
|
|
||||||
@Override
|
@AfterClass
|
||||||
public void tearDown() throws Exception {
|
public static void afterClassTestExplanations() throws Exception {
|
||||||
searcher.close();
|
searcher.close();
|
||||||
|
searcher = null;
|
||||||
reader.close();
|
reader.close();
|
||||||
|
reader = null;
|
||||||
directory.close();
|
directory.close();
|
||||||
super.tearDown();
|
directory = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@BeforeClass
|
||||||
public void setUp() throws Exception {
|
public static void beforeClassTestExplanations() throws Exception {
|
||||||
super.setUp();
|
|
||||||
directory = newDirectory();
|
directory = newDirectory();
|
||||||
RandomIndexWriter writer= new RandomIndexWriter(random, directory, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setMergePolicy(newLogMergePolicy()));
|
RandomIndexWriter writer= new RandomIndexWriter(random, directory, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random)).setMergePolicy(newLogMergePolicy()));
|
||||||
for (int i = 0; i < docFields.length; i++) {
|
for (int i = 0; i < docFields.length; i++) {
|
||||||
|
@ -86,7 +89,7 @@ public class TestExplanations extends LuceneTestCase {
|
||||||
searcher = newSearcher(reader);
|
searcher = newSearcher(reader);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected String[] docFields = {
|
protected static final String[] docFields = {
|
||||||
"w1 w2 w3 w4 w5",
|
"w1 w2 w3 w4 w5",
|
||||||
"w1 w3 w2 w3 zz",
|
"w1 w3 w2 w3 zz",
|
||||||
"w1 xx w2 yy w3",
|
"w1 xx w2 yy w3",
|
||||||
|
|
|
@ -44,7 +44,7 @@ public class TestNumericRangeQuery32 extends LuceneTestCase {
|
||||||
// shift the starting of the values to the left, to also have negative values:
|
// shift the starting of the values to the left, to also have negative values:
|
||||||
private static final int startOffset = - 1 << 15;
|
private static final int startOffset = - 1 << 15;
|
||||||
// number of docs to generate for testing
|
// number of docs to generate for testing
|
||||||
private static final int noDocs = atLeast(5000);
|
private static final int noDocs = atLeast(4096);
|
||||||
|
|
||||||
private static Directory directory = null;
|
private static Directory directory = null;
|
||||||
private static IndexReader reader = null;
|
private static IndexReader reader = null;
|
||||||
|
@ -62,7 +62,7 @@ public class TestNumericRangeQuery32 extends LuceneTestCase {
|
||||||
field8 = new NumericField("field8", 8, Field.Store.YES, true),
|
field8 = new NumericField("field8", 8, Field.Store.YES, true),
|
||||||
field4 = new NumericField("field4", 4, Field.Store.YES, true),
|
field4 = new NumericField("field4", 4, Field.Store.YES, true),
|
||||||
field2 = new NumericField("field2", 2, Field.Store.YES, true),
|
field2 = new NumericField("field2", 2, Field.Store.YES, true),
|
||||||
fieldNoTrie = new NumericField("field"+Integer.MAX_VALUE, Integer.MAX_VALUE, Field.Store.YES, true),
|
fieldNoTrie = new NumericField("field"+Integer.MAX_VALUE, Integer.MAX_VALUE, rarely() ? Field.Store.YES : Field.Store.NO, true),
|
||||||
ascfield8 = new NumericField("ascfield8", 8, Field.Store.NO, true),
|
ascfield8 = new NumericField("ascfield8", 8, Field.Store.NO, true),
|
||||||
ascfield4 = new NumericField("ascfield4", 4, Field.Store.NO, true),
|
ascfield4 = new NumericField("ascfield4", 4, Field.Store.NO, true),
|
||||||
ascfield2 = new NumericField("ascfield2", 2, Field.Store.NO, true);
|
ascfield2 = new NumericField("ascfield2", 2, Field.Store.NO, true);
|
||||||
|
|
|
@ -41,7 +41,7 @@ public class TestNumericRangeQuery64 extends LuceneTestCase {
|
||||||
// shift the starting of the values to the left, to also have negative values:
|
// shift the starting of the values to the left, to also have negative values:
|
||||||
private static final long startOffset = - 1L << 31;
|
private static final long startOffset = - 1L << 31;
|
||||||
// number of docs to generate for testing
|
// number of docs to generate for testing
|
||||||
private static final int noDocs = atLeast(5000);
|
private static final int noDocs = atLeast(4096);
|
||||||
|
|
||||||
private static Directory directory = null;
|
private static Directory directory = null;
|
||||||
private static IndexReader reader = null;
|
private static IndexReader reader = null;
|
||||||
|
@ -60,7 +60,7 @@ public class TestNumericRangeQuery64 extends LuceneTestCase {
|
||||||
field6 = new NumericField("field6", 6, Field.Store.YES, true),
|
field6 = new NumericField("field6", 6, Field.Store.YES, true),
|
||||||
field4 = new NumericField("field4", 4, Field.Store.YES, true),
|
field4 = new NumericField("field4", 4, Field.Store.YES, true),
|
||||||
field2 = new NumericField("field2", 2, Field.Store.YES, true),
|
field2 = new NumericField("field2", 2, Field.Store.YES, true),
|
||||||
fieldNoTrie = new NumericField("field"+Integer.MAX_VALUE, Integer.MAX_VALUE, Field.Store.YES, true),
|
fieldNoTrie = new NumericField("field"+Integer.MAX_VALUE, Integer.MAX_VALUE, rarely() ? Field.Store.YES : Field.Store.NO, true),
|
||||||
ascfield8 = new NumericField("ascfield8", 8, Field.Store.NO, true),
|
ascfield8 = new NumericField("ascfield8", 8, Field.Store.NO, true),
|
||||||
ascfield6 = new NumericField("ascfield6", 6, Field.Store.NO, true),
|
ascfield6 = new NumericField("ascfield6", 6, Field.Store.NO, true),
|
||||||
ascfield4 = new NumericField("ascfield4", 4, Field.Store.NO, true),
|
ascfield4 = new NumericField("ascfield4", 4, Field.Store.NO, true),
|
||||||
|
|
|
@ -45,6 +45,8 @@ import org.apache.lucene.index.Term;
|
||||||
import org.apache.lucene.store.Directory;
|
import org.apache.lucene.store.Directory;
|
||||||
import org.apache.lucene.document.Document;
|
import org.apache.lucene.document.Document;
|
||||||
import org.apache.lucene.document.Field;
|
import org.apache.lucene.document.Field;
|
||||||
|
import org.junit.AfterClass;
|
||||||
|
import org.junit.BeforeClass;
|
||||||
|
|
||||||
import java.io.Reader;
|
import java.io.Reader;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
@ -55,15 +57,15 @@ import java.io.IOException;
|
||||||
*
|
*
|
||||||
**/
|
**/
|
||||||
public class TestPayloadTermQuery extends LuceneTestCase {
|
public class TestPayloadTermQuery extends LuceneTestCase {
|
||||||
private IndexSearcher searcher;
|
private static IndexSearcher searcher;
|
||||||
private IndexReader reader;
|
private static IndexReader reader;
|
||||||
private SimilarityProvider similarityProvider = new BoostingSimilarityProvider();
|
private static SimilarityProvider similarityProvider = new BoostingSimilarityProvider();
|
||||||
private byte[] payloadField = new byte[]{1};
|
private static final byte[] payloadField = new byte[]{1};
|
||||||
private byte[] payloadMultiField1 = new byte[]{2};
|
private static final byte[] payloadMultiField1 = new byte[]{2};
|
||||||
private byte[] payloadMultiField2 = new byte[]{4};
|
private static final byte[] payloadMultiField2 = new byte[]{4};
|
||||||
protected Directory directory;
|
protected static Directory directory;
|
||||||
|
|
||||||
private class PayloadAnalyzer extends Analyzer {
|
private static class PayloadAnalyzer extends Analyzer {
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -74,7 +76,7 @@ public class TestPayloadTermQuery extends LuceneTestCase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class PayloadFilter extends TokenFilter {
|
private static class PayloadFilter extends TokenFilter {
|
||||||
String fieldName;
|
String fieldName;
|
||||||
int numSeen = 0;
|
int numSeen = 0;
|
||||||
|
|
||||||
|
@ -107,9 +109,8 @@ public class TestPayloadTermQuery extends LuceneTestCase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@BeforeClass
|
||||||
public void setUp() throws Exception {
|
public static void beforeClass() throws Exception {
|
||||||
super.setUp();
|
|
||||||
directory = newDirectory();
|
directory = newDirectory();
|
||||||
RandomIndexWriter writer = new RandomIndexWriter(random, directory,
|
RandomIndexWriter writer = new RandomIndexWriter(random, directory,
|
||||||
newIndexWriterConfig(TEST_VERSION_CURRENT, new PayloadAnalyzer())
|
newIndexWriterConfig(TEST_VERSION_CURRENT, new PayloadAnalyzer())
|
||||||
|
@ -131,12 +132,14 @@ public class TestPayloadTermQuery extends LuceneTestCase {
|
||||||
searcher.setSimilarityProvider(similarityProvider);
|
searcher.setSimilarityProvider(similarityProvider);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@AfterClass
|
||||||
public void tearDown() throws Exception {
|
public static void afterClass() throws Exception {
|
||||||
searcher.close();
|
searcher.close();
|
||||||
|
searcher = null;
|
||||||
reader.close();
|
reader.close();
|
||||||
|
reader = null;
|
||||||
directory.close();
|
directory.close();
|
||||||
super.tearDown();
|
directory = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void test() throws IOException {
|
public void test() throws IOException {
|
||||||
|
|
Loading…
Reference in New Issue