Package org.apache.lucene.tests.index
Class BasePostingsFormatTestCase
- java.lang.Object
-
- org.junit.Assert
-
- org.apache.lucene.tests.util.LuceneTestCase
-
- org.apache.lucene.tests.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.tests.util.LuceneTestCase
LuceneTestCase.AwaitsFix, LuceneTestCase.BadApple, LuceneTestCase.Monster, LuceneTestCase.Nightly, LuceneTestCase.SuppressCodecs, LuceneTestCase.SuppressFileSystems, LuceneTestCase.SuppressFsync, LuceneTestCase.SuppressReproduceLine, LuceneTestCase.SuppressSysoutChecks, LuceneTestCase.SuppressTempFileChecks, LuceneTestCase.ThrowingConsumer<T>, LuceneTestCase.ThrowingRunnable, LuceneTestCase.Weekly
-
-
Field Summary
-
Fields inherited from class org.apache.lucene.tests.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_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_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 voidaddRandomFields(Document doc)Add random fields to the provided document.static voidafterClass()protected <D extends Directory>
DapplyCreatedVersionMajor(D d)Set the created version of the givenDirectoryand return it.protected voidassertReused(String field, PostingsEnum p1, PostingsEnum p2)protected static voidcheckReuse(TermsEnum termsEnum, int firstFlags, int secondFlags, boolean shouldReuse)static voidcreatePostings()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 CodecgetCodec()Returns the codec to run tests againstprotected intgetCreatedVersionMajor()Returns the major version that this codec is compatible with.protected booleanisPostingsEnumReuseImplemented()protected DirectoryReadermaybeWrapWithMergingReader(DirectoryReader r)protected booleanmergeIsStable()voidsetUp()For subclasses to override.protected booleanshouldTestMergeInstance()Returnsfalseif only the regular fields reader should be tested, andtrueif only the merge instance should be tested.voidtearDown()For subclasses to override.voidtestAskForPositionsWhenNotThere()voidtestCheckIntegrityReadsAllBytes()This test is a best effort at verifying that checkIntegrity doesn't miss any files.voidtestDidntWantFreqsButAskedAnyway()voidtestDocsAndFreqs()voidtestDocsAndFreqsAndPositions()voidtestDocsAndFreqsAndPositionsAndOffsets()voidtestDocsAndFreqsAndPositionsAndOffsetsAndPayloads()voidtestDocsAndFreqsAndPositionsAndPayloads()voidtestDocsOnly()voidtestEmptyFieldAndEmptyTerm()voidtestGhosts()voidtestInvertedWrite()voidtestJustEmptyField()voidtestLevel2Ghosts()voidtestMergeStability()The purpose of this test is to make sure that bulk merge doesn't accumulate useless data over runs.voidtestMultiClose()Calls close multiple times on closeable codec apisvoidtestPostingsEnumAll()voidtestPostingsEnumDocsOnly()voidtestPostingsEnumFreqs()voidtestPostingsEnumOffsets()voidtestPostingsEnumPayloads()voidtestPostingsEnumPositions()voidtestPostingsEnumReuse()voidtestRandom()voidtestRandomExceptions()Tests exception handling on write and openInput/createOutput-
Methods inherited from class org.apache.lucene.tests.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, ensureSaneIWCOnNightly, expectThrows, expectThrows, expectThrows, expectThrowsAnyOf, expectThrowsAnyOf, getDataInputStream, getDataPath, getJvmForkArguments, getOnlyLeafReader, getTestClass, getTestName, hasWorkingMMapOnWindows, isTestThread, localeForLanguageTag, maybeChangeLiveIndexWriterConfig, maybeWrapReader, newAlcoholicMergePolicy, newAlcoholicMergePolicy, newBytesRef, newBytesRef, newBytesRef, newBytesRef, newBytesRef, newBytesRef, 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, newSearcher, newStringField, newStringField, newStringField, newStringField, newTextField, newTextField, newTieredMergePolicy, newTieredMergePolicy, overrideDefaultQueryCache, overrideTestDefaultQueryCache, random, randomLocale, randomTimeZone, rarely, rarely, replaceMaxFailureRule, resetDefaultQueryCache, restoreCPUCoreCount, restoreIndexWriterMaxDocs, runWithRestrictedPermissions, setIndexWriterMaxDocs, setupCPUCoreCount, 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, assertThrows, assertThrows, 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 givenDirectoryand return it.- Throws:
IOException
-
setUp
public void setUp() throws ExceptionDescription copied from class:LuceneTestCaseFor subclasses to override. Overrides must callsuper.setUp().- Overrides:
setUpin classLuceneTestCase- Throws:
Exception
-
tearDown
public void tearDown() throws ExceptionDescription copied from class:LuceneTestCaseFor subclasses to override. Overrides must callsuper.tearDown().- Overrides:
tearDownin 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 ExceptionThe purpose of this test is to make sure that bulk merge doesn't accumulate useless data over runs.- Throws:
Exception
-
mergeIsStable
protected boolean mergeIsStable()
-
testMultiClose
public void testMultiClose() throws IOExceptionCalls close multiple times on closeable codec apis- Throws:
IOException
-
testRandomExceptions
public void testRandomExceptions() throws ExceptionTests exception handling on write and openInput/createOutput- Throws:
Exception
-
shouldTestMergeInstance
protected boolean shouldTestMergeInstance()
Returnsfalseif only the regular fields reader should be tested, andtrueif only the merge instance should be tested.
-
maybeWrapWithMergingReader
protected final DirectoryReader maybeWrapWithMergingReader(DirectoryReader r) throws IOException
- Throws:
IOException
-
testCheckIntegrityReadsAllBytes
public void testCheckIntegrityReadsAllBytes() throws ExceptionThis 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
-
-