Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-10807 Randomize PointFields in all tests unless explicit reason not to
  3. SOLR-10864

Add static (test only) boolean to PointField indicating 'precisionStep' should be ignored so we can simplify points randomization in our schemas

Attach filesAttach ScreenshotVotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 7.0
    • None
    • None

    Description

      (I'm spinning this idea out of parent jira SOLR-10807 so that it gets it's own jira# w/ it's own summary for increased visibility/comments)

      In the interest of making it easier & more straight forward to get good randomized test coverage of Points fields, I'd like to add the following to the PointField class...

       /**
        * <p>
        * The Test framework can set this global variable to instruct PointField that
        * (on init) it should be tollerant of the <code>precisionStep</code> argument used by TrieFields.
        * This allows for simple randomization of TrieFields and PointFields w/o extensive duplication
        * of <code>&lt;fieldType/&gt;</code> declarations.
        * </p>
        *
        * <p>NOTE: When {@link TrieField} is removed, this boolean must also be removed</p>
        *
        * @lucene.internal
        * @lucene.experimental
        */
       public static boolean TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS = false;
      
       /** 
        * NOTE: This method can be removed completely when
        * {@link #TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS} is removed 
        */
       @Override
       protected void init(IndexSchema schema, Map<String, String> args) {
         super.init(schema, args);
         if (TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS) {
           args.remove("precisionStep");
         }
       }
      

      Then in SolrTestCaseJ4, set PointField.TEST_HACK_IGNORE_USELESS_TRIEFIELD_ARGS on a class by class basis when randomizing Trie/Points (and unset @AfterClass).

      (details to follow in comment)

      Attachments

        1. SOLR-10864.patch
          131 kB
          Chris M. Hostetter
        2. SOLR-10864.patch
          130 kB
          Chris M. Hostetter
        3. SOLR-10864.patch
          131 kB
          Chris M. Hostetter
        4. SOLR-10864.patch
          132 kB
          Chris M. Hostetter
        5. SOLR-10864.patch
          128 kB
          Chris M. Hostetter
        6. SOLR-10864.patch
          85 kB
          Chris M. Hostetter

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            hossman Chris M. Hostetter
            hossman Chris M. Hostetter
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment