Randomize which MockPlugins are used for IT

This commit is contained in:
Simon Willnauer 2016-01-13 23:00:59 +01:00
parent 4b47c38922
commit 4526f117a2
3 changed files with 25 additions and 21 deletions

View File

@ -1799,14 +1799,30 @@ public abstract class ESIntegTestCase extends ESTestCase {
InternalTestCluster.DEFAULT_ENABLE_HTTP_PIPELINING, nodePrefix, mockPlugins);
}
/** Return the mock plugins the cluster should use. These may be randomly omitted based on the cluster seed. */
/** Return the mock plugins the cluster should use */
protected Collection<Class<? extends Plugin>> getMockPlugins() {
return pluginList(MockTransportService.TestPlugin.class,
MockFSIndexStore.TestPlugin.class,
NodeMocksPlugin.class,
MockEngineFactoryPlugin.class,
MockSearchService.TestPlugin.class,
AssertingLocalTransport.TestPlugin.class);
final ArrayList<Class<? extends Plugin>> mocks = new ArrayList<>();
if (randomBoolean()) { // sometimes run without those completely
if (randomBoolean()) {
mocks.add(MockTransportService.TestPlugin.class);
}
if (randomBoolean()) {
mocks.add(MockFSIndexStore.TestPlugin.class);
}
if (randomBoolean()) {
mocks.add(NodeMocksPlugin.class);
}
if (randomBoolean()) {
mocks.add(MockEngineFactoryPlugin.class);
}
if (randomBoolean()) {
mocks.add(MockSearchService.TestPlugin.class);
}
if (randomBoolean()) {
mocks.add(AssertingLocalTransport.TestPlugin.class);
}
}
return Collections.unmodifiableList(mocks);
}
/**

View File

@ -367,7 +367,7 @@ public final class InternalTestCluster extends TestCluster {
return builder.build();
}
private Collection<Class<? extends Plugin>> getPlugins(long seed) {
private Collection<Class<? extends Plugin>> getPlugins() {
Set<Class<? extends Plugin>> plugins = new HashSet<>(nodeConfigurationSource.nodePlugins());
plugins.addAll(mockPlugins);
if (isLocalTransportConfigured() == false) {
@ -589,7 +589,7 @@ public final class InternalTestCluster extends TestCluster {
assert Thread.holdsLock(this);
ensureOpen();
settings = getSettings(nodeId, seed, settings);
Collection<Class<? extends Plugin>> plugins = getPlugins(seed);
Collection<Class<? extends Plugin>> plugins = getPlugins();
String name = buildNodeName(nodeId);
assert !nodes.containsKey(name);
Settings finalSettings = settingsBuilder()

View File

@ -51,18 +51,6 @@ public abstract class NodeConfigurationSource {
*/
public abstract Settings nodeSettings(int nodeOrdinal);
/** Plugins that will be randomly added to the node */
public Collection<Class<? extends Plugin>> mockPlugins() {
List<Class<? extends Plugin>> plugins = new ArrayList<>();
plugins.add(MockTransportService.TestPlugin.class);
plugins.add(MockFSIndexStore.TestPlugin.class);
plugins.add(NodeMocksPlugin.class);
plugins.add(MockEngineFactoryPlugin.class);
plugins.add(MockSearchService.TestPlugin.class);
plugins.add(AssertingLocalTransport.TestPlugin.class);
return plugins;
}
/** Returns plugins that should be loaded on the node */
public Collection<Class<? extends Plugin>> nodePlugins() {
return Collections.emptyList();