Class 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!
    • Constructor Detail

      • BaseSegmentInfoFormatTestCase

        public BaseSegmentInfoFormatTestCase()
    • Method Detail

      • supportsMinVersion

        protected boolean supportsMinVersion()
        Whether this format records min versions.
      • 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()
      • 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
      • getVersions

        protected abstract Version[] getVersions()
        Returns the versions this SI should test
      • addRandomFields

        protected void addRandomFields​(Document doc)
        Add random fields to the provided document.
      • 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
      • 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.
      • 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