Class BaseFieldInfoFormatTestCase


  • public abstract class BaseFieldInfoFormatTestCase
    extends LuceneTestCase
    Abstract class to do basic tests for fis format. NOTE: This test focuses on the fis impl, nothing else. The [stretch] goal is for this test to be so thorough in testing a new fis format that if this test passes, then all Lucene/Solr tests should also pass. Ie, if there is some bug in a given fis Format that this test fails to catch then this test needs to be improved!
    • Constructor Detail

      • BaseFieldInfoFormatTestCase

        public BaseFieldInfoFormatTestCase()
    • Method Detail

      • testOneField

        public void testOneField()
                          throws Exception
        Test field infos read/write with a single field
        Throws:
        Exception
      • testImmutableAttributes

        public void testImmutableAttributes()
                                     throws Exception
        Test field infos attributes coming back are not mutable
        Throws:
        Exception
      • testExceptionOnCreateOutput

        public void testExceptionOnCreateOutput()
                                         throws Exception
        Test field 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 field 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 field 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 field 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
        Test field infos read/write with random fields, with different values.
        Throws:
        Exception
      • addAttributes

        protected void addAttributes​(FieldInfo fi)
        Hook to add any codec attributes to fieldinfo instances added in this test.
      • assertEquals

        protected void assertEquals​(FieldInfos expected,
                                    FieldInfos actual)
        equality for entirety of fieldinfos
      • assertEquals

        protected void assertEquals​(FieldInfo expected,
                                    FieldInfo actual)
        equality for two individual fieldinfo objects
      • 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