org.apache.lucene.index

## Class BaseSegmentInfoFormatTestCase

- java.lang.Object
- - org.junit.Assert
  - - org.apache.lucene.util.LuceneTestCase
    - - org.apache.lucene.index.BaseSegmentInfoFormatTestCase

    public abstract class BaseSegmentInfoFormatTestCase
    extends LuceneTestCase

Abstract class to do basic tests for si format. NOTE: This test focuses on the si impl, nothing else. The [stretch] goal is for this test to be so thorough in testing a new si format that if this test passes, then all Lucene/Solr tests should also pass. Ie, if there is some bug in a given si Format 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 and Description
`BaseSegmentInfoFormatTestCase()`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods
`protected void` `addRandomFields(Document doc)` Add random fields to the provided document.
`protected <D extends Directory> D` `applyCreatedVersionMajor(D d)` Set the created version of the given `Directory` and return it.
`protected void` `assertEquals(SegmentInfo expected, SegmentInfo actual)`
`protected void` `assertIDEquals(byte[] expected, byte[] actual)` Deprecated. only exists to be overridden by old codecs that didnt support this
`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 against
`protected int` `getCreatedVersionMajor()` Returns the major version that this codec is compatible with.
`protected abstract Version[]` `getVersions()` Returns the versions this SI should test
`protected DirectoryReader` `maybeWrapWithMergingReader(DirectoryReader r)`
`protected boolean` `mergeIsStable()`
`void` `setUp()` For subclasses to override.
`protected boolean` `shouldTestMergeInstance()` Returns `false` if only the regular fields reader should be tested, and `true` if only the merge instance should be tested.
`protected boolean` `supportsIndexSort()`
`protected boolean` `supportsMinVersion()` Whether this format records min versions.
`void` `tearDown()` For subclasses to override.
`void` `testAddsSelfToFiles()` Tests SI writer adds itself to files...
`void` `testAttributes()` Test attributes map
`void` `testDiagnostics()` Test diagnostics map
`void` `testExceptionOnCloseInput()` Test segment infos read that hits exception on close make sure we get our exception back, no file handle leaks, etc.
`void` `testExceptionOnCloseOutput()` Test segment infos write that hits exception on close.
`void` `testExceptionOnCreateOutput()` Test segment infos write that hits exception immediately on open.
`void` `testExceptionOnOpenInput()` Test segment infos read that hits exception immediately on open.
`void` `testFiles()` Test files map
`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 apis
`void` `testRamBytesUsed()` Test the accuracy of the ramBytesUsed estimations.
`void` `testRandom()` Sets some otherwise hard-to-test properties: random segment names, ID values, document count, etc and round-trips
`void` `testRandomExceptions()` Tests exception handling on write and openInput/createOutput
`void` `testSort()` Test sort
`void` `testUniqueID()` Test unique ID
`void` `testVersions()` Test versions

### 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, 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`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### BaseSegmentInfoFormatTestCase

    public BaseSegmentInfoFormatTestCase()

### Method Detail

#### supportsMinVersion

    protected boolean supportsMinVersion()

Whether this format records min versions.

#### testFiles

    public void testFiles()
                   throws Exception

Test files map

Throws:
  `Exception`

#### testAddsSelfToFiles

    public void testAddsSelfToFiles()
                             throws Exception

Tests SI writer adds itself to files...

Throws:
  `Exception`

#### testDiagnostics

    public void testDiagnostics()
                         throws Exception

Test diagnostics map

Throws:
  `Exception`

#### testAttributes

    public void testAttributes()
                        throws Exception

Test attributes map

Throws:
  `Exception`

#### testUniqueID

    public void testUniqueID()
                      throws Exception

Test unique ID

Throws:
  `Exception`

#### testVersions

    public void testVersions()
                      throws Exception

Test versions

Throws:
  `Exception`

#### supportsIndexSort

    protected boolean supportsIndexSort()

#### testSort

    public void testSort()
                  throws IOException

Test sort

Throws:
  `IOException`

#### testExceptionOnCreateOutput

    public void testExceptionOnCreateOutput()
                                     throws Exception

Test segment infos write that hits exception immediately on open. make sure we get our exception back, no file handle leaks, etc.

Throws:
  `Exception`

#### testExceptionOnCloseOutput

    public void testExceptionOnCloseOutput()
                                    throws Exception

Test segment infos write that hits exception on close. make sure we get our exception back, no file handle leaks, etc.

Throws:
  `Exception`

#### testExceptionOnOpenInput

    public void testExceptionOnOpenInput()
                                  throws Exception

Test segment infos read that hits exception immediately on open. make sure we get our exception back, no file handle leaks, etc.

Throws:
  `Exception`

#### testExceptionOnCloseInput

    public void testExceptionOnCloseInput()
                                   throws Exception

Test segment infos read that hits exception on close make sure we get our exception back, no file handle leaks, etc.

Throws:
  `Exception`

#### testRandom

    public void testRandom()
                    throws Exception

Sets some otherwise hard-to-test properties: random segment names, ID values, document count, etc and round-trips

Throws:
  `Exception`

#### assertEquals

    protected final void assertEquals(SegmentInfo expected,
                                      SegmentInfo actual)

#### getVersions

    protected abstract Version[] getVersions()

Returns the versions this SI should test

#### assertIDEquals

    @Deprecated
    protected void assertIDEquals(byte[] expected,
                                              byte[] actual)

Deprecated. only exists to be overridden by old codecs that didnt support this
assert that unique id is equal.

#### addRandomFields

    protected void addRandomFields(Document doc)

Add random fields to the provided document.

#### testRamBytesUsed

    public void testRamBytesUsed()
                          throws IOException

Test the accuracy of the ramBytesUsed estimations.

Throws:
  `IOException`

#### 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 given `Directory` and return it.

Throws:
  `IOException`

#### setUp

    public void setUp()
               throws Exception

Description copied from class: `LuceneTestCase`
For subclasses to override. Overrides must call `super.setUp()`.

Overrides:
  `setUp` in class `LuceneTestCase`
Throws:
  `Exception`

#### tearDown

    public void tearDown()
                  throws Exception

Description copied from class: `LuceneTestCase`
For subclasses to override. Overrides must call `super.tearDown()`.

Overrides:
  `tearDown` in class `LuceneTestCase`
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()

#### 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()

Returns `false` if only the regular fields reader should be tested, and `true` if only the merge instance should be tested.

#### maybeWrapWithMergingReader

    protected final DirectoryReader maybeWrapWithMergingReader(DirectoryReader r)
                                                        throws IOException

Throws:
  `IOException`