You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sh...@apache.org on 2017/04/26 06:53:15 UTC
lucene-solr:feature/autoscaling: SOLR-10376: Fix OverseerTest
failures by mocking ZkController used for setting up triggers
Repository: lucene-solr
Updated Branches:
refs/heads/feature/autoscaling f58f3b231 -> 7f2871c3b
SOLR-10376: Fix OverseerTest failures by mocking ZkController used for setting up triggers
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/7f2871c3
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/7f2871c3
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/7f2871c3
Branch: refs/heads/feature/autoscaling
Commit: 7f2871c3bc1cf21f2347173e0ba8ac12040f9650
Parents: f58f3b2
Author: Shalin Shekhar Mangar <sh...@apache.org>
Authored: Wed Apr 26 12:23:02 2017 +0530
Committer: Shalin Shekhar Mangar <sh...@apache.org>
Committed: Wed Apr 26 12:23:02 2017 +0530
----------------------------------------------------------------------
.../org/apache/solr/cloud/OverseerTest.java | 26 +++++++++++++++++---
1 file changed, 23 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7f2871c3/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java b/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
index b0721a2..f499069 100644
--- a/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
@@ -50,6 +50,7 @@ import org.apache.solr.common.params.CollectionParams;
import org.apache.solr.common.util.ExecutorUtil;
import org.apache.solr.common.util.Utils;
import org.apache.solr.core.CloudConfig;
+import org.apache.solr.core.CoreContainer;
import org.apache.solr.handler.component.HttpShardHandlerFactory;
import org.apache.solr.update.UpdateShardHandler;
import org.apache.solr.update.UpdateShardHandlerConfig;
@@ -64,11 +65,14 @@ import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
+import org.mockito.Mockito;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.xml.sax.SAXException;
import static org.apache.solr.cloud.AbstractDistribZkTestBase.verifyReplicaStatus;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
@Slow
public class OverseerTest extends SolrTestCaseJ4 {
@@ -715,7 +719,8 @@ public class OverseerTest extends SolrTestCaseJ4 {
updateShardHandlers.add(updateShardHandler);
HttpShardHandlerFactory httpShardHandlerFactory = new HttpShardHandlerFactory();
httpShardHandlerFactorys.add(httpShardHandlerFactory);
- Overseer overseer = new Overseer(httpShardHandlerFactory.getShardHandler(), updateShardHandler, "/admin/cores", reader, null,
+ MockZkController mockZkController = createMockZkController(zkClient, reader);
+ Overseer overseer = new Overseer(httpShardHandlerFactory.getShardHandler(), updateShardHandler, "/admin/cores", reader, mockZkController,
new CloudConfig.CloudConfigBuilder("127.0.0.1", 8983, "").build());
overseers.add(overseer);
ElectionContext ec = new OverseerElectionContext(zkClient, overseer,
@@ -1299,7 +1304,10 @@ public class OverseerTest extends SolrTestCaseJ4 {
updateShardHandlers.add(updateShardHandler);
HttpShardHandlerFactory httpShardHandlerFactory = new HttpShardHandlerFactory();
httpShardHandlerFactorys.add(httpShardHandlerFactory);
- Overseer overseer = new Overseer(httpShardHandlerFactory.getShardHandler(), updateShardHandler, "/admin/cores", reader, null,
+
+ MockZkController zkController = createMockZkController(zkClient, reader);
+
+ Overseer overseer = new Overseer(httpShardHandlerFactory.getShardHandler(), updateShardHandler, "/admin/cores", reader, zkController,
new CloudConfig.CloudConfigBuilder("127.0.0.1", 8983, "").build());
overseers.add(overseer);
ElectionContext ec = new OverseerElectionContext(zkClient, overseer,
@@ -1308,7 +1316,19 @@ public class OverseerTest extends SolrTestCaseJ4 {
overseerElector.joinElection(ec, false);
return zkClient;
}
-
+
+ private MockZkController createMockZkController(SolrZkClient zkClient, ZkStateReader reader) {
+ CoreContainer mockAlwaysUpCoreContainer = mock(CoreContainer.class,
+ Mockito.withSettings().defaultAnswer(Mockito.CALLS_REAL_METHODS));
+ when(mockAlwaysUpCoreContainer.isShutDown()).thenReturn(Boolean.FALSE); // Allow retry on session expiry
+ MockZkController zkController = mock(MockZkController.class,
+ Mockito.withSettings().defaultAnswer(Mockito.CALLS_REAL_METHODS));
+ when(zkController.getCoreContainer()).thenReturn(mockAlwaysUpCoreContainer);
+ when(zkController.getZkClient()).thenReturn(zkClient);
+ when(zkController.getZkStateReader()).thenReturn(reader);
+ return zkController;
+ }
+
@Test
public void testRemovalOfLastReplica() throws Exception {