Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-10352

Convert TestAllAnalyzersHaveFactories and TestRandomChains to a global integration test and discover classes to check from module system

Details

    • New

    Description

      Currently TestAllAnalyzersHaveFactories and TestRandomChains only work on the analysis-commons module, but e.g. we do not do a random chain with kuromoji and ICU. Also both tests rely on some hacky classpath-inspection and the tests fail if ran on a JAR file.

      This issue tracks progress I am currently doing to refactor this:

      • Move those 2 classes to a new gradle subproject :lucene:analysis:integration.tests and add a module-info referring to all other analysis packages
      • Rewrite the class discovery to use ModuleReader
      • Run TestAllAnalyzersHaveFactories per module (using one module reader), so it discovers all classes and ensures that factory and stream are in same module (there are some core vs. analysis.common discrepancies)
      • RunTestRandomChains on the whole module graph. The classes are discovered from all module readers in the graph (filtering on module name starting with "org.apache.lucene.analysis."
      • Also compare that the SPI factories returned by discovery match those we have in the module graphs

      While doing this I disovered some bad things:

      • TestRandomChains depends on test-only resources. We may need to replicate those (it is about 5 files that are fed into the ctors)
      • We have 5 different StringMockResourceLoaders: Originally it was only in analysis common, now its everywhere. I will move this class to test-framework. This is unrelated but can be done here. The background of this was that analysis factories and resource loaders were not part of lucene core, so the resourceloader interface couldn't be in test-framework.

      Attachments

        Issue Links

          Activity

            People

              uschindler Uwe Schindler
              uschindler Uwe Schindler
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 7h 10m
                  7h 10m