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
-
public abstract class BaseMergePolicyTestCase extends LuceneTestCase
Base test case forMergePolicy
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
BaseMergePolicyTestCase.IOStats
Statistics about bytes written to storage.static class
BaseMergePolicyTestCase.MockMergeContext
Simple mock merge context for tests-
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 BaseMergePolicyTestCase()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected static SegmentInfos
applyDeletes(SegmentInfos infos, int numDeletes)
ApplynumDeletes
uniformly across all segments ofinfos
.protected static SegmentInfos
applyMerge(SegmentInfos infos, MergePolicy.OneMerge merge, String mergedSegmentName, BaseMergePolicyTestCase.IOStats stats)
Apply a merge to aSegmentInfos
instance, accumulating the number of written bytes intostats
.protected abstract void
assertMerge(MergePolicy policy, MergePolicy.MergeSpecification merge)
Assert that the given merge matches expectations of the merge policy.protected abstract void
assertSegmentInfos(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 void
doTestSimulateAppendOnly(MergePolicy mergePolicy, int totalDocs, int maxDocsPerFlush)
Simulate an append-only use-case, ie.protected void
doTestSimulateUpdates(MergePolicy mergePolicy, int totalDocs, int maxDocsPerFlush)
Simulate an update use-case where documents are uniformly updated across segments.protected static SegmentCommitInfo
makeSegmentCommitInfo(String name, int maxDoc, int numDeletedDocs, double sizeMB, String source)
Make a newSegmentCommitInfo
with the givenmaxDoc
,numDeletedDocs
andsizeInBytes
, which are usually the numbers that merge policies care about.protected abstract MergePolicy
mergePolicy()
Create a newMergePolicy
instance.void
testFindForcedDeletesMerges()
void
testForceMergeNotNeeded()
void
testNoPathologicalMerges()
void
testSimulateAppendOnly()
Simulate an append-only use-case, ie.void
testSimulateUpdates()
Simulate 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, 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, 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, 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
-
mergePolicy
protected abstract MergePolicy mergePolicy()
Create a newMergePolicy
instance.
-
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
public void testForceMergeNotNeeded() throws IOException
- Throws:
IOException
-
testFindForcedDeletesMerges
public void testFindForcedDeletesMerges() throws IOException
- Throws:
IOException
-
makeSegmentCommitInfo
protected static SegmentCommitInfo makeSegmentCommitInfo(String name, int maxDoc, int numDeletedDocs, double sizeMB, String source)
Make a newSegmentCommitInfo
with the givenmaxDoc
,numDeletedDocs
andsizeInBytes
, 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 aSegmentInfos
instance, accumulating the number of written bytes intostats
.- Throws:
IOException
-
applyDeletes
protected static SegmentInfos applyDeletes(SegmentInfos infos, int numDeletes)
ApplynumDeletes
uniformly across all segments ofinfos
.
-
testSimulateAppendOnly
public void testSimulateAppendOnly() throws IOException
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.totalDocs
exist in the index in the end, and flushes contribute at mostmaxDocsPerFlush
documents.- Throws:
IOException
-
testSimulateUpdates
public void testSimulateUpdates() throws IOException
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.totalDocs
exist in the index in the end, and flushes contribute at mostmaxDocsPerFlush
documents.- Throws:
IOException
-
testNoPathologicalMerges
public void testNoPathologicalMerges() throws IOException
- Throws:
IOException
-
-