Package org.apache.lucene.tests.index
Class BaseCompoundFormatTestCase
- java.lang.Object
- 
- org.junit.Assert
- 
- org.apache.lucene.tests.util.LuceneTestCase
- 
- org.apache.lucene.tests.index.BaseCompoundFormatTestCase
 
 
 
- 
 public abstract class BaseCompoundFormatTestCase extends LuceneTestCase Abstract class to do basic tests for a compound format. NOTE: This test focuses on the compound impl, nothing else. The [stretch] goal is for this test to be so thorough in testing a new CompoundFormat that if this test passes, then all Lucene/Solr tests should also pass. Ie, if there is some bug in a given CompoundFormat 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.LuceneTestCaseLuceneTestCase.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.LuceneTestCaseassertsAreEnabled, 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 SummaryConstructors Constructor Description BaseCompoundFormatTestCase()
 - 
Method SummaryAll 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.protected <D extends Directory>
 DapplyCreatedVersionMajor(D d)Set the created version of the givenDirectoryand return it.protected static voidassertEqualArrays(String msg, byte[] expected, byte[] test, int start, int len)protected static voidassertSameSeekBehavior(String msg, IndexInput expected, IndexInput actual)protected static voidassertSameStreams(String msg, IndexInput expected, IndexInput test)protected static voidassertSameStreams(String msg, IndexInput expected, IndexInput actual, long seekTo)protected static DirectorycreateLargeCFS(Directory dir)Setup a large compound file with a number of components, each of which is a sequential file (so that we can easily tell that we are reading in the right byte).protected static voidcreateRandomFile(Directory dir, String name, int size, byte[] segId)Creates a file of the specified size with random data.protected static voidcreateSequenceFile(Directory dir, String name, byte start, int size, byte[] segID, String segSuffix)Creates a file of the specified size with sequential data.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 DirectoryReadermaybeWrapWithMergingReader(DirectoryReader r)protected booleanmergeIsStable()protected static SegmentInfonewSegmentInfo(Directory dir, String name)Returns a new fake segmentvoidsetUp()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.voidtestCheckIntegrity()voidtestCheckIntegrityReadsAllBytes()This test is a best effort at verifying that checkIntegrity doesn't miss any files.voidtestClonedStreamsClosing()voidtestCorruptFilesAreCaught()voidtestCreateOutputDisabled()voidtestDeleteFileDisabled()voidtestDoubleClose()voidtestEmpty()voidtestFileNotFound()voidtestLargeCFS()voidtestListAll()voidtestMakeLockDisabled()voidtestManySubFiles()voidtestMergeStability()The purpose of this test is to make sure that bulk merge doesn't accumulate useless data over runs.voidtestMissingCodecHeadersAreCaught()voidtestMultiClose()Calls close multiple times on closeable codec apisvoidtestPassIOContext()voidtestRandomAccess()This test opens two files from a compound stream and verifies that their file positions are independent of each other.voidtestRandomAccessClones()This test opens two files from a compound stream and verifies that their file positions are independent of each other.voidtestRandomExceptions()Tests exception handling on write and openInput/createOutputvoidtestRandomFiles()This test creates a compound file based on a large number of files of various length.voidtestReadPastEOF()voidtestRenameFileDisabled()voidtestResourceNameInsideCompoundFile()voidtestSingleFile()This test creates compound file based on a single file.voidtestSyncDisabled()voidtestTwoFiles()This test creates compound file based on two files.- 
Methods inherited from class org.apache.lucene.tests.util.LuceneTestCaseaddVirusChecker, 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, rarely, rarely, replaceMaxFailureRule, resetDefaultQueryCache, restoreCPUCoreCount, restoreIndexWriterMaxDocs, runWithRestrictedPermissions, setIndexWriterMaxDocs, setupCPUCoreCount, setUpExecutorService, shutdownExecutorService, slowFileExists, usually, usually, wrapReader
 - 
Methods inherited from class org.junit.AssertassertArrayEquals, 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- 
testEmptypublic void testEmpty() throws IOException- Throws:
- IOException
 
 - 
testSingleFilepublic void testSingleFile() throws IOExceptionThis test creates compound file based on a single file. Files of different sizes are tested: 0, 1, 10, 100 bytes.- Throws:
- IOException
 
 - 
testTwoFilespublic void testTwoFiles() throws IOExceptionThis test creates compound file based on two files.- Throws:
- IOException
 
 - 
testDoubleClosepublic void testDoubleClose() throws IOException- Throws:
- IOException
 
 - 
testPassIOContextpublic void testPassIOContext() throws IOException- Throws:
- IOException
 
 - 
testLargeCFSpublic void testLargeCFS() throws IOException- Throws:
- IOException
 
 - 
testCreateOutputDisabledpublic void testCreateOutputDisabled() throws IOException- Throws:
- IOException
 
 - 
testDeleteFileDisabledpublic void testDeleteFileDisabled() throws IOException- Throws:
- IOException
 
 - 
testRenameFileDisabledpublic void testRenameFileDisabled() throws IOException- Throws:
- IOException
 
 - 
testSyncDisabledpublic void testSyncDisabled() throws IOException- Throws:
- IOException
 
 - 
testMakeLockDisabledpublic void testMakeLockDisabled() throws IOException- Throws:
- IOException
 
 - 
testRandomFilespublic void testRandomFiles() throws IOExceptionThis test creates a compound file based on a large number of files of various length. The file content is generated randomly. The sizes range from 0 to 1Mb. Some of the sizes are selected to test the buffering logic in the file reading code. For this the chunk variable is set to the length of the buffer used internally by the compound file logic.- Throws:
- IOException
 
 - 
testManySubFilespublic void testManySubFiles() throws IOException- Throws:
- IOException
 
 - 
testClonedStreamsClosingpublic void testClonedStreamsClosing() throws IOException- Throws:
- IOException
 
 - 
testRandomAccesspublic void testRandomAccess() throws IOExceptionThis test opens two files from a compound stream and verifies that their file positions are independent of each other.- Throws:
- IOException
 
 - 
testRandomAccessClonespublic void testRandomAccessClones() throws IOExceptionThis test opens two files from a compound stream and verifies that their file positions are independent of each other.- Throws:
- IOException
 
 - 
testFileNotFoundpublic void testFileNotFound() throws IOException- Throws:
- IOException
 
 - 
testReadPastEOFpublic void testReadPastEOF() throws IOException- Throws:
- IOException
 
 - 
newSegmentInfoprotected static SegmentInfo newSegmentInfo(Directory dir, String name) Returns a new fake segment
 - 
createRandomFileprotected static void createRandomFile(Directory dir, String name, int size, byte[] segId) throws IOException Creates a file of the specified size with random data.- Throws:
- IOException
 
 - 
createSequenceFileprotected static void createSequenceFile(Directory dir, String name, byte start, int size, byte[] segID, String segSuffix) throws IOException Creates a file of the specified size with sequential data. The first byte is written as the start byte provided. All subsequent bytes are computed as start + offset where offset is the number of the byte.- Throws:
- IOException
 
 - 
assertSameStreamsprotected static void assertSameStreams(String msg, IndexInput expected, IndexInput test) throws IOException - Throws:
- IOException
 
 - 
assertSameStreamsprotected static void assertSameStreams(String msg, IndexInput expected, IndexInput actual, long seekTo) throws IOException - Throws:
- IOException
 
 - 
assertSameSeekBehaviorprotected static void assertSameSeekBehavior(String msg, IndexInput expected, IndexInput actual) throws IOException - Throws:
- IOException
 
 - 
assertEqualArraysprotected static void assertEqualArrays(String msg, byte[] expected, byte[] test, int start, int len) 
 - 
createLargeCFSprotected static Directory createLargeCFS(Directory dir) throws IOException Setup a large compound file with a number of components, each of which is a sequential file (so that we can easily tell that we are reading in the right byte). The methods sets up 20 files - _123.0 to _123.19, the size of each file is 1000 bytes.- Throws:
- IOException
 
 - 
addRandomFieldsprotected void addRandomFields(Document doc) Add random fields to the provided document.
 - 
testMergeStabilitypublic void testMergeStability() throws ExceptionThe purpose of this test is to make sure that bulk merge doesn't accumulate useless data over runs.- Throws:
- Exception
 
 - 
testResourceNameInsideCompoundFilepublic void testResourceNameInsideCompoundFile() throws Exception- Throws:
- Exception
 
 - 
testMissingCodecHeadersAreCaughtpublic void testMissingCodecHeadersAreCaught() throws Exception- Throws:
- Exception
 
 - 
testCorruptFilesAreCaughtpublic void testCorruptFilesAreCaught() throws Exception- Throws:
- Exception
 
 - 
testCheckIntegritypublic void testCheckIntegrity() throws IOException- Throws:
- IOException
 
 - 
getCodecprotected abstract Codec getCodec() Returns the codec to run tests against
 - 
getCreatedVersionMajorprotected int getCreatedVersionMajor() Returns the major version that this codec is compatible with.
 - 
applyCreatedVersionMajorprotected final <D extends Directory> D applyCreatedVersionMajor(D d) throws IOException Set the created version of the givenDirectoryand return it.- Throws:
- IOException
 
 - 
setUppublic void setUp() throws ExceptionDescription copied from class:LuceneTestCaseFor subclasses to override. Overrides must callsuper.setUp().- Overrides:
- setUpin class- LuceneTestCase
- Throws:
- Exception
 
 - 
tearDownpublic void tearDown() throws ExceptionDescription copied from class:LuceneTestCaseFor subclasses to override. Overrides must callsuper.tearDown().- Overrides:
- tearDownin class- LuceneTestCase
- Throws:
- Exception
 
 - 
excludedExtensionsFromByteCountsprotected Collection<String> excludedExtensionsFromByteCounts() Return the list of extensions that should be excluded from byte counts when comparing indices that store the same content.
 - 
mergeIsStableprotected boolean mergeIsStable() 
 - 
testMultiClosepublic void testMultiClose() throws IOExceptionCalls close multiple times on closeable codec apis- Throws:
- IOException
 
 - 
testRandomExceptionspublic void testRandomExceptions() throws ExceptionTests exception handling on write and openInput/createOutput- Throws:
- Exception
 
 - 
shouldTestMergeInstanceprotected boolean shouldTestMergeInstance() Returnsfalseif only the regular fields reader should be tested, andtrueif only the merge instance should be tested.
 - 
maybeWrapWithMergingReaderprotected final DirectoryReader maybeWrapWithMergingReader(DirectoryReader r) throws IOException - Throws:
- IOException
 
 - 
testCheckIntegrityReadsAllBytespublic 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
 
 
- 
 
-