Class BasePostingsFormatTestCase


  • public abstract class BasePostingsFormatTestCase
    extends LuceneTestCase
    Abstract class to do basic tests for a postings format. NOTE: This test focuses on the postings (docs/freqs/positions/payloads/offsets) impl, not the terms dict. The [stretch] goal is for this test to be so thorough in testing a new PostingsFormat that if this test passes, then all Lucene/Solr tests should also pass. Ie, if there is some bug in a given PostingsFormat that this test fails to catch then this test needs to be improved!
    • Constructor Detail

      • BasePostingsFormatTestCase

        public BasePostingsFormatTestCase()
    • Method Detail

      • testDocsAndFreqsAndPositions

        public void testDocsAndFreqsAndPositions()
                                          throws Exception
        Throws:
        Exception
      • testDocsAndFreqsAndPositionsAndPayloads

        public void testDocsAndFreqsAndPositionsAndPayloads()
                                                     throws Exception
        Throws:
        Exception
      • testDocsAndFreqsAndPositionsAndOffsets

        public void testDocsAndFreqsAndPositionsAndOffsets()
                                                    throws Exception
        Throws:
        Exception
      • testDocsAndFreqsAndPositionsAndOffsetsAndPayloads

        public void testDocsAndFreqsAndPositionsAndOffsetsAndPayloads()
                                                               throws Exception
        Throws:
        Exception
      • isPostingsEnumReuseImplemented

        protected boolean isPostingsEnumReuseImplemented()
      • testPostingsEnumReuse

        public void testPostingsEnumReuse()
                                   throws Exception
        Throws:
        Exception
      • checkReuse

        protected static void checkReuse​(TermsEnum termsEnum,
                                         int firstFlags,
                                         int secondFlags,
                                         boolean shouldReuse)
                                  throws IOException
        Throws:
        IOException
      • testJustEmptyField

        public void testJustEmptyField()
                                throws Exception
        Throws:
        Exception
      • testEmptyFieldAndEmptyTerm

        public void testEmptyFieldAndEmptyTerm()
                                        throws Exception
        Throws:
        Exception
      • testDidntWantFreqsButAskedAnyway

        public void testDidntWantFreqsButAskedAnyway()
                                              throws Exception
        Throws:
        Exception
      • testAskForPositionsWhenNotThere

        public void testAskForPositionsWhenNotThere()
                                             throws Exception
        Throws:
        Exception
      • testPostingsEnumDocsOnly

        public void testPostingsEnumDocsOnly()
                                      throws Exception
        Throws:
        Exception
      • testPostingsEnumFreqs

        public void testPostingsEnumFreqs()
                                   throws Exception
        Throws:
        Exception
      • testPostingsEnumPositions

        public void testPostingsEnumPositions()
                                       throws Exception
        Throws:
        Exception
      • testPostingsEnumOffsets

        public void testPostingsEnumOffsets()
                                     throws Exception
        Throws:
        Exception
      • testPostingsEnumPayloads

        public void testPostingsEnumPayloads()
                                      throws Exception
        Throws:
        Exception
      • testPostingsEnumAll

        public void testPostingsEnumAll()
                                 throws Exception
        Throws:
        Exception
      • 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