Package org.apache.lucene.index
Class BasePostingsFormatTestCase
- java.lang.Object
-
- org.junit.Assert
-
- org.apache.lucene.util.LuceneTestCase
-
- org.apache.lucene.index.BasePostingsFormatTestCase
-
public abstract class BasePostingsFormatTestCase extends LuceneTestCase
Abstract class to do basic tests for a postings format. NOTE: This test focuses on the postings (docs/freqs/positions/payloads/offsets) impl, not the terms dict. The [stretch] goal is for this test to be so thorough in testing a new PostingsFormat that if this test passes, then all Lucene/Solr tests should also pass. Ie, if there is some bug in a given PostingsFormat that this test fails to catch then this test needs to be improved!
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.lucene.util.LuceneTestCase
LuceneTestCase.AwaitsFix, LuceneTestCase.BadApple, LuceneTestCase.Monster, LuceneTestCase.Nightly, LuceneTestCase.Slow, LuceneTestCase.SuppressCodecs, LuceneTestCase.SuppressFileSystems, LuceneTestCase.SuppressFsync, LuceneTestCase.SuppressReproduceLine, LuceneTestCase.SuppressSysoutChecks, LuceneTestCase.SuppressTempFileChecks, LuceneTestCase.ThrowingRunnable, LuceneTestCase.Weekly
-
-
Field Summary
-
Fields inherited from class org.apache.lucene.util.LuceneTestCase
assertsAreEnabled, classRules, DEFAULT_LINE_DOCS_FILE, INFOSTREAM, JENKINS_LARGE_LINE_DOCS_FILE, LEAVE_TEMPORARY, MAYBE_CACHE_POLICY, RANDOM_MULTIPLIER, ruleChain, suiteFailureMarker, SYSPROP_AWAITSFIX, SYSPROP_BADAPPLES, SYSPROP_FAILFAST, SYSPROP_MAXFAILURES, SYSPROP_MONSTER, SYSPROP_NIGHTLY, SYSPROP_SLOW, SYSPROP_WEEKLY, TEST_ASSERTS_ENABLED, TEST_AWAITSFIX, TEST_BADAPPLES, TEST_CODEC, TEST_DIRECTORY, TEST_DOCVALUESFORMAT, TEST_LINE_DOCS_FILE, TEST_MONSTER, TEST_NIGHTLY, TEST_POSTINGSFORMAT, TEST_SLOW, TEST_THROTTLING, TEST_WEEKLY, VERBOSE
-
-
Constructor Summary
Constructors Constructor Description BasePostingsFormatTestCase()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected void
addRandomFields(Document doc)
Add random fields to the provided document.static void
afterClass()
protected <D extends Directory>
DapplyCreatedVersionMajor(D d)
Set the created version of the givenDirectory
and return it.protected void
assertReused(String field, PostingsEnum p1, PostingsEnum p2)
protected static void
checkReuse(TermsEnum termsEnum, int firstFlags, int secondFlags, boolean shouldReuse)
static void
createPostings()
protected Collection<String>
excludedExtensionsFromByteCounts()
Return the list of extensions that should be excluded from byte counts when comparing indices that store the same content.protected abstract Codec
getCodec()
Returns the codec to run tests againstprotected int
getCreatedVersionMajor()
Returns the major version that this codec is compatible with.protected boolean
isPostingsEnumReuseImplemented()
protected DirectoryReader
maybeWrapWithMergingReader(DirectoryReader r)
protected boolean
mergeIsStable()
void
setUp()
For subclasses to override.protected boolean
shouldTestMergeInstance()
Returnsfalse
if only the regular fields reader should be tested, andtrue
if only the merge instance should be tested.void
tearDown()
For subclasses to override.void
testAskForPositionsWhenNotThere()
void
testCheckIntegrityReadsAllBytes()
This test is a best effort at verifying that checkIntegrity doesn't miss any files.void
testDidntWantFreqsButAskedAnyway()
void
testDocsAndFreqs()
void
testDocsAndFreqsAndPositions()
void
testDocsAndFreqsAndPositionsAndOffsets()
void
testDocsAndFreqsAndPositionsAndOffsetsAndPayloads()
void
testDocsAndFreqsAndPositionsAndPayloads()
void
testDocsOnly()
void
testEmptyFieldAndEmptyTerm()
void
testGhosts()
void
testInvertedWrite()
void
testJustEmptyField()
void
testLevel2Ghosts()
void
testMergeStability()
The purpose of this test is to make sure that bulk merge doesn't accumulate useless data over runs.void
testMultiClose()
Calls close multiple times on closeable codec apisvoid
testPostingsEnumAll()
void
testPostingsEnumDocsOnly()
void
testPostingsEnumFreqs()
void
testPostingsEnumOffsets()
void
testPostingsEnumPayloads()
void
testPostingsEnumPositions()
void
testPostingsEnumReuse()
void
testRamBytesUsed()
Test the accuracy of the ramBytesUsed estimations.void
testRandom()
void
testRandomExceptions()
Tests exception handling on write and openInput/createOutput-
Methods inherited from class org.apache.lucene.util.LuceneTestCase
addVirusChecker, assertDeletedDocsEquals, assertDocsAndPositionsEnumEquals, assertDocsEnumEquals, assertDocsSkippingEquals, assertDocValuesEquals, assertDocValuesEquals, assertFieldInfosEquals, assertNormsEquals, assertPointsEquals, assertPositionsSkippingEquals, assertReaderEquals, assertReaderStatisticsEquals, assertStoredFieldEquals, assertStoredFieldsEquals, assertTermsEnumEquals, assertTermsEquals, assertTermsEquals, assertTermsStatisticsEquals, assertTermStatsEquals, assertTermVectorsEquals, asSet, assumeFalse, assumeNoException, assumeTrue, assumeWorkingMMapOnWindows, atLeast, atLeast, callStackContains, callStackContains, callStackContainsAnyOf, closeAfterSuite, closeAfterTest, collate, createTempDir, createTempDir, createTempFile, createTempFile, dumpArray, dumpIterator, expectThrows, expectThrows, expectThrows, expectThrowsAnyOf, expectThrowsAnyOf, getBaseTempDirForTestClass, getDataInputStream, getDataPath, getOnlyLeafReader, getTestClass, getTestName, hasWorkingMMapOnWindows, isTestThread, localeForLanguageTag, maybeChangeLiveIndexWriterConfig, maybeWrapReader, newAlcoholicMergePolicy, newAlcoholicMergePolicy, newDirectory, newDirectory, newDirectory, newDirectory, newDirectory, newField, newField, newFSDirectory, newFSDirectory, newIndexWriterConfig, newIndexWriterConfig, newIndexWriterConfig, newIOContext, newIOContext, newLogMergePolicy, newLogMergePolicy, newLogMergePolicy, newLogMergePolicy, newLogMergePolicy, newMaybeVirusCheckingDirectory, newMaybeVirusCheckingFSDirectory, newMergePolicy, newMergePolicy, newMergePolicy, newMockDirectory, newMockDirectory, newMockDirectory, newMockFSDirectory, newMockFSDirectory, newSearcher, newSearcher, newSearcher, newStringField, newStringField, newStringField, newStringField, newTextField, newTextField, newTieredMergePolicy, newTieredMergePolicy, overrideDefaultQueryCache, overrideTestDefaultQueryCache, random, randomLocale, randomTimeZone, rarely, rarely, replaceMaxFailureRule, resetDefaultQueryCache, restoreCPUCoreCount, restoreIndexWriterMaxDocs, restoreSpins, runWithRestrictedPermissions, setIndexWriterMaxDocs, setupCPUCoreCount, setupSpins, slowFileExists, usually, usually, wrapReader
-
Methods inherited from class org.junit.Assert
assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertThat, assertThat, assertTrue, assertTrue, fail, fail
-
-
-
-
Method Detail
-
createPostings
public static void createPostings() throws IOException
- Throws:
IOException
-
testDocsAndFreqsAndPositions
public void testDocsAndFreqsAndPositions() throws Exception
- Throws:
Exception
-
testDocsAndFreqsAndPositionsAndPayloads
public void testDocsAndFreqsAndPositionsAndPayloads() throws Exception
- Throws:
Exception
-
testDocsAndFreqsAndPositionsAndOffsets
public void testDocsAndFreqsAndPositionsAndOffsets() throws Exception
- Throws:
Exception
-
testDocsAndFreqsAndPositionsAndOffsetsAndPayloads
public void testDocsAndFreqsAndPositionsAndOffsetsAndPayloads() throws Exception
- Throws:
Exception
-
isPostingsEnumReuseImplemented
protected boolean isPostingsEnumReuseImplemented()
-
checkReuse
protected static void checkReuse(TermsEnum termsEnum, int firstFlags, int secondFlags, boolean shouldReuse) throws IOException
- Throws:
IOException
-
testEmptyFieldAndEmptyTerm
public void testEmptyFieldAndEmptyTerm() throws Exception
- Throws:
Exception
-
testDidntWantFreqsButAskedAnyway
public void testDidntWantFreqsButAskedAnyway() throws Exception
- Throws:
Exception
-
testAskForPositionsWhenNotThere
public void testAskForPositionsWhenNotThere() throws Exception
- Throws:
Exception
-
assertReused
protected void assertReused(String field, PostingsEnum p1, PostingsEnum p2)
-
testPostingsEnumPositions
public void testPostingsEnumPositions() throws Exception
- Throws:
Exception
-
addRandomFields
protected void addRandomFields(Document doc)
Add random fields to the provided document.
-
getCodec
protected abstract Codec getCodec()
Returns the codec to run tests against
-
getCreatedVersionMajor
protected int getCreatedVersionMajor()
Returns the major version that this codec is compatible with.
-
applyCreatedVersionMajor
protected final <D extends Directory> D applyCreatedVersionMajor(D d) throws IOException
Set the created version of the givenDirectory
and return it.- Throws:
IOException
-
setUp
public void setUp() throws Exception
Description copied from class:LuceneTestCase
For subclasses to override. Overrides must callsuper.setUp()
.- Overrides:
setUp
in classLuceneTestCase
- Throws:
Exception
-
tearDown
public void tearDown() throws Exception
Description copied from class:LuceneTestCase
For subclasses to override. Overrides must callsuper.tearDown()
.- Overrides:
tearDown
in classLuceneTestCase
- Throws:
Exception
-
excludedExtensionsFromByteCounts
protected Collection<String> excludedExtensionsFromByteCounts()
Return the list of extensions that should be excluded from byte counts when comparing indices that store the same content.
-
testMergeStability
public void testMergeStability() throws Exception
The purpose of this test is to make sure that bulk merge doesn't accumulate useless data over runs.- Throws:
Exception
-
mergeIsStable
protected boolean mergeIsStable()
-
testRamBytesUsed
@Nightly public void testRamBytesUsed() throws IOException
Test the accuracy of the ramBytesUsed estimations.- Throws:
IOException
-
testMultiClose
public void testMultiClose() throws IOException
Calls close multiple times on closeable codec apis- Throws:
IOException
-
testRandomExceptions
public void testRandomExceptions() throws Exception
Tests exception handling on write and openInput/createOutput- Throws:
Exception
-
shouldTestMergeInstance
protected boolean shouldTestMergeInstance()
Returnsfalse
if only the regular fields reader should be tested, andtrue
if only the merge instance should be tested.
-
maybeWrapWithMergingReader
protected final DirectoryReader maybeWrapWithMergingReader(DirectoryReader r) throws IOException
- Throws:
IOException
-
testCheckIntegrityReadsAllBytes
public void testCheckIntegrityReadsAllBytes() throws Exception
This test is a best effort at verifying that checkIntegrity doesn't miss any files. It tests that the combination of opening a reader and calling checkIntegrity on it reads all bytes of all files.- Throws:
Exception
-
-