Package org.apache.lucene.tests.index
Class BaseMergePolicyTestCase
java.lang.Object
org.junit.Assert
org.apache.lucene.tests.util.LuceneTestCase
org.apache.lucene.tests.index.BaseMergePolicyTestCase
Base test case for
MergePolicy.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classStatistics about bytes written to storage.static final classSimple mock merge context for testsNested classes/interfaces inherited from class org.apache.lucene.tests.util.LuceneTestCase
LuceneTestCase.AwaitsFix, LuceneTestCase.Concurrency, 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_FAILFAST, SYSPROP_MAXFAILURES, SYSPROP_MONSTER, SYSPROP_NIGHTLY, SYSPROP_WEEKLY, TEST_ASSERTS_ENABLED, TEST_AWAITSFIX, TEST_CODEC, TEST_DIRECTORY, TEST_DOCVALUESFORMAT, TEST_LINE_DOCS_FILE, TEST_MONSTER, TEST_NIGHTLY, TEST_POSTINGSFORMAT, TEST_THROTTLING, TEST_WEEKLY, VERBOSE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected static SegmentInfosapplyDeletes(SegmentInfos infos, int numDeletes) ApplynumDeletesuniformly across all segments ofinfos.protected static SegmentInfosapplyMerge(SegmentInfos infos, MergePolicy.OneMerge merge, String mergedSegmentName, BaseMergePolicyTestCase.IOStats stats) Apply a merge to aSegmentInfosinstance, accumulating the number of written bytes intostats.protected abstract voidassertMerge(MergePolicy policy, MergePolicy.MergeSpecification merge) Assert that the given merge matches expectations of the merge policy.protected abstract voidassertSegmentInfos(MergePolicy policy, SegmentInfos infos) Assert that the given segment infos match expectations of the merge policy, assuming segments that have only been either flushed or merged with this merge policy.protected voiddoTestSimulateAppendOnly(MergePolicy mergePolicy, int totalDocs, int maxDocsPerFlush) Simulate an append-only use-case, ie.protected voiddoTestSimulateUpdates(MergePolicy mergePolicy, int totalDocs, int maxDocsPerFlush) Simulate an update use-case where documents are uniformly updated across segments.protected static SegmentCommitInfomakeSegmentCommitInfo(String name, int maxDoc, int numDeletedDocs, double sizeMB, String source) Make a newSegmentCommitInfowith the givenmaxDoc,numDeletedDocsandsizeInBytes, which are usually the numbers that merge policies care about.protected abstract MergePolicyCreate a newMergePolicyinstance.voidvoidvoidvoidSimulate an append-only use-case, ie.voidSimulate an update use-case where documents are uniformly updated across segments.Methods inherited from class org.apache.lucene.tests.util.LuceneTestCase
addVirusChecker, assertDeletedDocsEquals, assertDocsAndPositionsEnumEquals, assertDocsEnumEquals, assertDocsSkippingEquals, assertDocValuesEquals, assertDocValuesEquals, assertDoubleUlpEquals, assertFieldInfosEquals, assertFloatUlpEquals, assertNormsEquals, assertPointsEquals, assertPositionsSkippingEquals, assertReaderEquals, assertReaderStatisticsEquals, assertStoredFieldEquals, assertStoredFieldsEquals, assertTermsEnumEquals, assertTermsEquals, assertTermsEquals, assertTermsStatisticsEquals, assertTermStatsEquals, assertTermVectorsEquals, asSet, assumeFalse, assumeNoException, assumeTrue, 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, 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, newSearcher, newSnapshotIndexWriterConfig, newStringField, newStringField, newStringField, newStringField, newTextField, newTextField, newTieredMergePolicy, newTieredMergePolicy, overrideDefaultQueryCache, overrideTestDefaultQueryCache, random, randomLocale, randomTimeZone, randomVectorFormat, rarely, rarely, replaceMaxFailureRule, resetDefaultQueryCache, restoreCPUCoreCount, restoreIndexWriterMaxDocs, runWithRestrictedPermissions, setIndexWriterMaxDocs, setUp, setupCPUCoreCount, setUpExecutorService, shutdownExecutorService, slowFileExists, tearDown, usually, usually, wrapReaderMethods 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
-
Constructor Details
-
BaseMergePolicyTestCase
public BaseMergePolicyTestCase()
-
-
Method Details
-
mergePolicy
Create a newMergePolicyinstance. -
assertSegmentInfos
protected abstract void assertSegmentInfos(MergePolicy policy, SegmentInfos infos) throws IOException Assert that the given segment infos match expectations of the merge policy, assuming segments that have only been either flushed or merged with this merge policy.- Throws:
IOException
-
assertMerge
protected abstract void assertMerge(MergePolicy policy, MergePolicy.MergeSpecification merge) throws IOException Assert that the given merge matches expectations of the merge policy.- Throws:
IOException
-
testForceMergeNotNeeded
- Throws:
IOException
-
testFindForcedDeletesMerges
- Throws:
IOException
-
makeSegmentCommitInfo
protected static SegmentCommitInfo makeSegmentCommitInfo(String name, int maxDoc, int numDeletedDocs, double sizeMB, String source) Make a newSegmentCommitInfowith the givenmaxDoc,numDeletedDocsandsizeInBytes, which are usually the numbers that merge policies care about. -
applyMerge
protected static SegmentInfos applyMerge(SegmentInfos infos, MergePolicy.OneMerge merge, String mergedSegmentName, BaseMergePolicyTestCase.IOStats stats) throws IOException Apply a merge to aSegmentInfosinstance, accumulating the number of written bytes intostats.- Throws:
IOException
-
applyDeletes
ApplynumDeletesuniformly across all segments ofinfos. -
testSimulateAppendOnly
Simulate an append-only use-case, ie. there are no deletes.- Throws:
IOException
-
doTestSimulateAppendOnly
protected void doTestSimulateAppendOnly(MergePolicy mergePolicy, int totalDocs, int maxDocsPerFlush) throws IOException Simulate an append-only use-case, ie. there are no deletes.totalDocsexist in the index in the end, and flushes contribute at mostmaxDocsPerFlushdocuments.- Throws:
IOException
-
testSimulateUpdates
Simulate an update use-case where documents are uniformly updated across segments.- Throws:
IOException
-
doTestSimulateUpdates
protected void doTestSimulateUpdates(MergePolicy mergePolicy, int totalDocs, int maxDocsPerFlush) throws IOException Simulate an update use-case where documents are uniformly updated across segments.totalDocsexist in the index in the end, and flushes contribute at mostmaxDocsPerFlushdocuments.- Throws:
IOException
-
testNoPathologicalMerges
- Throws:
IOException
-