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
    Modifier and Type | Method and Description
    --- | ---
    `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` | `testCheckIntegrityReadsAllBytes()` This test is a best effort at verifying that checkIntegrity doesn't miss any files.
    `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, callStackContains, callStackContains, callStackContainsAnyOf, 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`

    - #### testCheckIntegrityReadsAllBytes

          public void testCheckIntegrityReadsAllBytes()
                                               throws Exception

      This 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`

Copyright © 2000-2020 Apache Software Foundation. All Rights Reserved.