David Smiley created SOLR-18150:
-----------------------------------
Summary: Introduce SolrBackend abstraction for tests & benchmarks
Key: SOLR-18150
URL: https://issues.apache.org/jira/browse/SOLR-18150
Project: Solr
Issue Type: Test
Components: test-framework
Reporter: David Smiley
Assignee: David Smiley
I propose a basic abstraction for tests & benchmarks to interface with some
kind of running Solr: EmbeddedSolrServer, JettySolrRunner,
MiniSolrCloudCluster, a remote (SolrJ Http) Solr, and perhaps a variant of that
coupled to a Docker container. Unlike SolrClientTestRule, it shouldn't be tied
to JUnit. Having seen many tests, and solr/benchmark, the principle things
needed are:
* create a "collection" (or "core" if not in SolrCloud, but using the same
API). Must specify the configSet and a map of any name-value properties that
will be used for substitution when reading the configs. The neutrality on
collection vs core is a key aspect of the whole abstraction.
* indicate if a collection exists already -- esp. for benchmarks to reuse a
collection
* create/upload a configSet given a path to one. Obviously done before
creating a collection. Reminder: configSets can be used in both Solr modes
* indicate if a configSet exists already -- esp. for benchmarks to reuse a
configSet
* reload a collection
* provide a SolrClient for doing the work of the benchmark/test scoped to a
collection. Needs a means of customization (e.g. http1)
* provide a SolrClient for doing administrative tasks -- tasks *not* in scope
of the benchmark/test but nonetheless needed to set things up
* and more can be added of course
The SolrBenchmark wouldn't generally be used directly by a benchmark/test, but
it'd be one layer away. Thus I propose SolrClientTestRule delegate/use a
SolrBenchmark, and similarly SolrBenchState would likewise. Both those things
can tend to some unique benchmark/test matters. By being a new abstraction
that isn't tied to JUnit, it should be easy to add support for new/different
test frameworks.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]