Uwe Schindler created LUCENE-10352:
--------------------------------------
Summary: Convert TestAllAnalyzersHaveFactories and
TestRandomChains to a global integration test and discover classes to check
from module system
Key: LUCENE-10352
URL: https://issues.apache.org/jira/browse/LUCENE-10352
Project: Lucene - Core
Issue Type: New Feature
Components: modules/analysis
Reporter: Uwe Schindler
Assignee: Uwe Schindler
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 StrickMockResourceLoaders: 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.
You can watch progress here:
[https://github.com/uschindler/lucene/compare/jira/LUCENE-10348...uschindler:draft/random-chains]
(it currently is a branch against LUCENE-10348 because it was not yet merged,
but it depends on that one)
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]