mirror of https://github.com/apache/lucene.git
SOLR-11606: Disable tests automatically if Mockito does not work with Java runtime (Java 10)
This commit is contained in:
parent
d501ecd2d1
commit
3ab1a07662
37
build.xml
37
build.xml
|
@ -186,20 +186,26 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
def checkLicenseHeaderPrecedes = { f, description, contentPattern, commentPattern, text, ratDocument ->
|
def checkLicenseHeaderPrecedes = { f, description, contentPattern, commentPattern, text, ratDocument ->
|
||||||
def contentMatcher = contentPattern.matcher(text);
|
def contentMatcher = contentPattern.matcher(text);
|
||||||
if (contentMatcher.find()) {
|
if (contentMatcher.find()) {
|
||||||
def contentStartPos = contentMatcher.start();
|
def contentStartPos = contentMatcher.start();
|
||||||
def commentMatcher = commentPattern.matcher(text);
|
def commentMatcher = commentPattern.matcher(text);
|
||||||
while (commentMatcher.find()) {
|
while (commentMatcher.find()) {
|
||||||
if (isLicense(commentMatcher, ratDocument)) {
|
if (isLicense(commentMatcher, ratDocument)) {
|
||||||
if (commentMatcher.start() < contentStartPos) {
|
if (commentMatcher.start() < contentStartPos) {
|
||||||
break; // This file is all good, so break loop: license header precedes 'description' definition
|
break; // This file is all good, so break loop: license header precedes 'description' definition
|
||||||
} else {
|
} else {
|
||||||
reportViolation(f, description+' declaration precedes license header');
|
reportViolation(f, description+' declaration precedes license header');
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
def checkMockitoAssume = { f, text ->
|
||||||
|
if (text.contains("mockito") && !text.contains("assumeWorkingMockito()")) {
|
||||||
|
reportViolation(f, 'File uses Mockito but has no assumeWorkingMockito() call');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
def checkForUnescapedSymbolSubstitutions = { f, text ->
|
def checkForUnescapedSymbolSubstitutions = { f, text ->
|
||||||
|
@ -265,18 +271,21 @@
|
||||||
ratDocument.getMetaData().value(MetaData.RAT_URL_LICENSE_FAMILY_NAME)));
|
ratDocument.getMetaData().value(MetaData.RAT_URL_LICENSE_FAMILY_NAME)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (f.toString().endsWith('.java')) {
|
if (f.name.endsWith('.java')) {
|
||||||
if (text.contains('org.slf4j.LoggerFactory')) {
|
if (text.contains('org.slf4j.LoggerFactory')) {
|
||||||
if (!validLoggerPattern.matcher(text).find()) {
|
if (!validLoggerPattern.matcher(text).find()) {
|
||||||
reportViolation(f, 'invalid logging pattern [not private static final, uses static class name]');
|
reportViolation(f, 'invalid logging pattern [not private static final, uses static class name]');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
checkLicenseHeaderPrecedes(f, 'package', packagePattern, javaCommentPattern, text, ratDocument);
|
checkLicenseHeaderPrecedes(f, 'package', packagePattern, javaCommentPattern, text, ratDocument);
|
||||||
|
if (f.name.contains("Test")) {
|
||||||
|
checkMockitoAssume(f, text);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (f.toString().endsWith('.xml') || f.toString().endsWith('.xml.template')) {
|
if (f.name.endsWith('.xml') || f.name.endsWith('.xml.template')) {
|
||||||
checkLicenseHeaderPrecedes(f, '<tag>', xmlTagPattern, xmlCommentPattern, text, ratDocument);
|
checkLicenseHeaderPrecedes(f, '<tag>', xmlTagPattern, xmlCommentPattern, text, ratDocument);
|
||||||
}
|
}
|
||||||
if (f.toString().endsWith('.adoc')) {
|
if (f.name.endsWith('.adoc')) {
|
||||||
checkForUnescapedSymbolSubstitutions(f, text);
|
checkForUnescapedSymbolSubstitutions(f, text);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -139,6 +139,9 @@ Other Changes
|
||||||
|
|
||||||
* SOLR-11603: Remove unused (public) LTRScoringModel.hasParams() method. (Christine Poerschke)
|
* SOLR-11603: Remove unused (public) LTRScoringModel.hasParams() method. (Christine Poerschke)
|
||||||
|
|
||||||
|
* SOLR-11606: Disable tests automatically if Mockito does not work with Java runtime (Java 10).
|
||||||
|
(Uwe Schindler)
|
||||||
|
|
||||||
================== 7.1.0 ==================
|
================== 7.1.0 ==================
|
||||||
|
|
||||||
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
|
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
|
||||||
|
|
|
@ -40,6 +40,7 @@ import org.apache.solr.handler.dataimport.JdbcDataSource.ResultSetIterator;
|
||||||
import static org.mockito.Mockito.*;
|
import static org.mockito.Mockito.*;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.BeforeClass;
|
||||||
import org.junit.Ignore;
|
import org.junit.Ignore;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
@ -68,6 +69,11 @@ public class TestJdbcDataSource extends AbstractDataImportHandlerTestCase {
|
||||||
|
|
||||||
String sysProp = System.getProperty("java.naming.factory.initial");
|
String sysProp = System.getProperty("java.naming.factory.initial");
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public static void beforeClass() {
|
||||||
|
assumeWorkingMockito();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
|
|
|
@ -53,6 +53,7 @@ public class TestReversedWildcardFilterFactory extends SolrTestCaseJ4 {
|
||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
public static void beforeClass() throws Exception {
|
public static void beforeClass() throws Exception {
|
||||||
|
assumeWorkingMockito();
|
||||||
initCore("solrconfig.xml","schema-reversed.xml");
|
initCore("solrconfig.xml","schema-reversed.xml");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -62,6 +62,8 @@ public class AssignTest extends SolrTestCaseJ4 {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testAssignNode() throws Exception {
|
public void testAssignNode() throws Exception {
|
||||||
|
assumeWorkingMockito();
|
||||||
|
|
||||||
SolrZkClient zkClient = mock(SolrZkClient.class);
|
SolrZkClient zkClient = mock(SolrZkClient.class);
|
||||||
Map<String, byte[]> zkClientData = new HashMap<>();
|
Map<String, byte[]> zkClientData = new HashMap<>();
|
||||||
when(zkClient.setData(anyString(), any(), anyInt(), anyBoolean())).then(invocation -> {
|
when(zkClient.setData(anyString(), any(), anyInt(), anyBoolean())).then(invocation -> {
|
||||||
|
|
|
@ -122,6 +122,8 @@ public class OverseerCollectionConfigSetProcessorTest extends SolrTestCaseJ4 {
|
||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
public static void setUpOnce() throws Exception {
|
public static void setUpOnce() throws Exception {
|
||||||
|
assumeWorkingMockito();
|
||||||
|
|
||||||
workQueueMock = mock(OverseerTaskQueue.class);
|
workQueueMock = mock(OverseerTaskQueue.class);
|
||||||
runningMapMock = mock(DistributedMap.class);
|
runningMapMock = mock(DistributedMap.class);
|
||||||
completedMapMock = mock(DistributedMap.class);
|
completedMapMock = mock(DistributedMap.class);
|
||||||
|
|
|
@ -238,6 +238,7 @@ public class OverseerTest extends SolrTestCaseJ4 {
|
||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
public static void beforeClass() throws Exception {
|
public static void beforeClass() throws Exception {
|
||||||
|
assumeWorkingMockito();
|
||||||
initCore();
|
initCore();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,10 +27,17 @@ import org.apache.solr.common.cloud.ImplicitDocRouter;
|
||||||
import org.apache.solr.common.cloud.Slice;
|
import org.apache.solr.common.cloud.Slice;
|
||||||
import org.apache.solr.common.cloud.ZkNodeProps;
|
import org.apache.solr.common.cloud.ZkNodeProps;
|
||||||
import org.apache.solr.common.util.Utils;
|
import org.apache.solr.common.util.Utils;
|
||||||
|
import org.junit.BeforeClass;
|
||||||
|
|
||||||
import static org.mockito.Mockito.*;
|
import static org.mockito.Mockito.*;
|
||||||
|
|
||||||
public class TestClusterStateMutator extends SolrTestCaseJ4 {
|
public class TestClusterStateMutator extends SolrTestCaseJ4 {
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public static void beforeClass() {
|
||||||
|
assumeWorkingMockito();
|
||||||
|
}
|
||||||
|
|
||||||
public void testCreateCollection() throws Exception {
|
public void testCreateCollection() throws Exception {
|
||||||
ClusterState clusterState = new ClusterState(-1, Collections.<String>emptySet(), Collections.<String, DocCollection>emptyMap());
|
ClusterState clusterState = new ClusterState(-1, Collections.<String>emptySet(), Collections.<String, DocCollection>emptyMap());
|
||||||
DistribStateManager mockStateManager = mock(DistribStateManager.class);
|
DistribStateManager mockStateManager = mock(DistribStateManager.class);
|
||||||
|
|
|
@ -23,6 +23,7 @@ import java.util.Map;
|
||||||
|
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
import org.apache.lucene.util.LuceneTestCase;
|
import org.apache.lucene.util.LuceneTestCase;
|
||||||
|
import org.apache.solr.SolrTestCaseJ4;
|
||||||
import org.apache.solr.common.SolrException;
|
import org.apache.solr.common.SolrException;
|
||||||
import org.apache.solr.common.cloud.ZkStateReader;
|
import org.apache.solr.common.cloud.ZkStateReader;
|
||||||
import org.apache.solr.common.cloud.rule.ImplicitSnitch;
|
import org.apache.solr.common.cloud.rule.ImplicitSnitch;
|
||||||
|
@ -134,6 +135,8 @@ public class ImplicitSnitchTest extends LuceneTestCase {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGetTags_withAllHostNameRequestedTags_returns_all_Tags() throws Exception {
|
public void testGetTags_withAllHostNameRequestedTags_returns_all_Tags() throws Exception {
|
||||||
|
SolrTestCaseJ4.assumeWorkingMockito();
|
||||||
|
|
||||||
String node = "serv01.dc01.london.uk.apache.org:8983_solr";
|
String node = "serv01.dc01.london.uk.apache.org:8983_solr";
|
||||||
|
|
||||||
SnitchContext context = new ServerSnitchContext(null, node, new HashMap<>(),null);
|
SnitchContext context = new ServerSnitchContext(null, node, new HashMap<>(),null);
|
||||||
|
@ -153,6 +156,8 @@ public class ImplicitSnitchTest extends LuceneTestCase {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGetTags_withHostNameRequestedTag_ip3_returns_1_tag() throws Exception {
|
public void testGetTags_withHostNameRequestedTag_ip3_returns_1_tag() throws Exception {
|
||||||
|
SolrTestCaseJ4.assumeWorkingMockito();
|
||||||
|
|
||||||
String node = "serv01.dc01.london.uk.apache.org:8983_solr";
|
String node = "serv01.dc01.london.uk.apache.org:8983_solr";
|
||||||
|
|
||||||
SnitchContext context = new ServerSnitchContext(null, node, new HashMap<>(),null);
|
SnitchContext context = new ServerSnitchContext(null, node, new HashMap<>(),null);
|
||||||
|
|
|
@ -25,8 +25,10 @@ import java.nio.charset.Charset;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
|
import org.apache.solr.SolrTestCaseJ4;
|
||||||
import org.apache.solr.common.SolrException;
|
import org.apache.solr.common.SolrException;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
import org.junit.BeforeClass;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import static org.mockito.Mockito.*;
|
import static org.mockito.Mockito.*;
|
||||||
|
@ -53,6 +55,11 @@ public class BlobRepositoryMockingTest {
|
||||||
ByteBuffer blobData = ByteBuffer.wrap(BLOBSTR.getBytes(UTF8));
|
ByteBuffer blobData = ByteBuffer.wrap(BLOBSTR.getBytes(UTF8));
|
||||||
boolean blobFetched = false;
|
boolean blobFetched = false;
|
||||||
String blobKey = "";
|
String blobKey = "";
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public static void beforeClass() {
|
||||||
|
SolrTestCaseJ4.assumeWorkingMockito();
|
||||||
|
}
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws IllegalAccessException, NoSuchFieldException {
|
public void setUp() throws IllegalAccessException, NoSuchFieldException {
|
||||||
|
|
|
@ -101,6 +101,8 @@ public class CoreSorterTest extends SolrTestCaseJ4 {
|
||||||
}
|
}
|
||||||
|
|
||||||
private CoreContainer getMockContainer() {
|
private CoreContainer getMockContainer() {
|
||||||
|
assumeWorkingMockito();
|
||||||
|
|
||||||
CoreContainer mockCC = mock(CoreContainer.class);
|
CoreContainer mockCC = mock(CoreContainer.class);
|
||||||
ZkController mockZKC = mock(ZkController.class);
|
ZkController mockZKC = mock(ZkController.class);
|
||||||
ClusterState mockClusterState = mock(ClusterState.class);
|
ClusterState mockClusterState = mock(ClusterState.class);
|
||||||
|
|
|
@ -70,6 +70,8 @@ public class TestCoreAdminApis extends SolrTestCaseJ4 {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static CoreContainer getCoreContainerMock(final Map<String, Object[]> in,Map<String,Object> out ) {
|
public static CoreContainer getCoreContainerMock(final Map<String, Object[]> in,Map<String,Object> out ) {
|
||||||
|
assumeWorkingMockito();
|
||||||
|
|
||||||
CoreContainer mockCC = mock(CoreContainer.class);
|
CoreContainer mockCC = mock(CoreContainer.class);
|
||||||
when(mockCC.create(any(String.class), any(Path.class) , any(Map.class), anyBoolean())).thenAnswer(invocationOnMock -> {
|
when(mockCC.create(any(String.class), any(Path.class) , any(Map.class), anyBoolean())).thenAnswer(invocationOnMock -> {
|
||||||
in.put("create", invocationOnMock.getArguments());
|
in.put("create", invocationOnMock.getArguments());
|
||||||
|
|
|
@ -45,6 +45,8 @@ import static org.mockito.Mockito.*;
|
||||||
public class SolrGangliaReporterTest extends SolrTestCaseJ4 {
|
public class SolrGangliaReporterTest extends SolrTestCaseJ4 {
|
||||||
@Test
|
@Test
|
||||||
public void testReporter() throws Exception {
|
public void testReporter() throws Exception {
|
||||||
|
assumeWorkingMockito();
|
||||||
|
|
||||||
Path home = Paths.get(TEST_HOME());
|
Path home = Paths.get(TEST_HOME());
|
||||||
// define these properties, they are used in solrconfig.xml
|
// define these properties, they are used in solrconfig.xml
|
||||||
System.setProperty("solr.test.sys.prop1", "propone");
|
System.setProperty("solr.test.sys.prop1", "propone");
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
|
|
||||||
package org.apache.solr.schema;
|
package org.apache.solr.schema;
|
||||||
|
|
||||||
|
import org.apache.solr.SolrTestCaseJ4;
|
||||||
import org.apache.solr.schema.ZkIndexSchemaReader.SchemaWatcher;
|
import org.apache.solr.schema.ZkIndexSchemaReader.SchemaWatcher;
|
||||||
import org.apache.zookeeper.WatchedEvent;
|
import org.apache.zookeeper.WatchedEvent;
|
||||||
import org.apache.zookeeper.Watcher.Event.EventType;
|
import org.apache.zookeeper.Watcher.Event.EventType;
|
||||||
|
@ -35,6 +36,8 @@ public class SchemaWatcherTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
|
SolrTestCaseJ4.assumeWorkingMockito();
|
||||||
|
|
||||||
mockSchemaReader = mock(ZkIndexSchemaReader.class);
|
mockSchemaReader = mock(ZkIndexSchemaReader.class);
|
||||||
schemaWatcher = new SchemaWatcher(mockSchemaReader);
|
schemaWatcher = new SchemaWatcher(mockSchemaReader);
|
||||||
}
|
}
|
||||||
|
|
|
@ -135,6 +135,7 @@ public class TestManagedSchemaThreadSafety extends SolrTestCaseJ4 {
|
||||||
}
|
}
|
||||||
|
|
||||||
private ZkController createZkController(SolrZkClient client) throws KeeperException, InterruptedException {
|
private ZkController createZkController(SolrZkClient client) throws KeeperException, InterruptedException {
|
||||||
|
assumeWorkingMockito();
|
||||||
|
|
||||||
CoreContainer mockAlwaysUpCoreContainer = mock(CoreContainer.class,
|
CoreContainer mockAlwaysUpCoreContainer = mock(CoreContainer.class,
|
||||||
Mockito.withSettings().defaultAnswer(Mockito.CALLS_REAL_METHODS));
|
Mockito.withSettings().defaultAnswer(Mockito.CALLS_REAL_METHODS));
|
||||||
|
|
|
@ -70,6 +70,8 @@ public class TestPKIAuthenticationPlugin extends SolrTestCaseJ4 {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void test() throws Exception {
|
public void test() throws Exception {
|
||||||
|
assumeWorkingMockito();
|
||||||
|
|
||||||
AtomicReference<Principal> principal = new AtomicReference<>();
|
AtomicReference<Principal> principal = new AtomicReference<>();
|
||||||
String nodeName = "node_x_233";
|
String nodeName = "node_x_233";
|
||||||
|
|
||||||
|
|
|
@ -62,6 +62,7 @@ public class SolrRequestParserTest extends SolrTestCaseJ4 {
|
||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
public static void beforeClass() throws Exception {
|
public static void beforeClass() throws Exception {
|
||||||
|
assumeWorkingMockito();
|
||||||
initCore("solrconfig.xml", "schema.xml");
|
initCore("solrconfig.xml", "schema.xml");
|
||||||
parser = new SolrRequestParsers( h.getCore().getSolrConfig() );
|
parser = new SolrRequestParsers( h.getCore().getSolrConfig() );
|
||||||
}
|
}
|
||||||
|
|
|
@ -104,6 +104,8 @@ public class ClassificationUpdateProcessorFactoryTest extends SolrTestCaseJ4 {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void init_unsupportedFilterQuery_shouldThrowExceptionWithDetailedMessage() {
|
public void init_unsupportedFilterQuery_shouldThrowExceptionWithDetailedMessage() {
|
||||||
|
assumeWorkingMockito();
|
||||||
|
|
||||||
UpdateRequestProcessor mockProcessor = mock(UpdateRequestProcessor.class);
|
UpdateRequestProcessor mockProcessor = mock(UpdateRequestProcessor.class);
|
||||||
SolrQueryRequest mockRequest = mock(SolrQueryRequest.class);
|
SolrQueryRequest mockRequest = mock(SolrQueryRequest.class);
|
||||||
SolrQueryResponse mockResponse = mock(SolrQueryResponse.class);
|
SolrQueryResponse mockResponse = mock(SolrQueryResponse.class);
|
||||||
|
|
|
@ -61,6 +61,7 @@ public class ClassificationUpdateProcessorTest extends SolrTestCaseJ4 {
|
||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
public static void beforeClass() throws Exception {
|
public static void beforeClass() throws Exception {
|
||||||
|
assumeWorkingMockito();
|
||||||
System.setProperty("enable.update.log", "false");
|
System.setProperty("enable.update.log", "false");
|
||||||
initCore("solrconfig-classification.xml", "schema-classification.xml");
|
initCore("solrconfig-classification.xml", "schema-classification.xml");
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,7 @@ import java.io.IOException;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
import org.apache.lucene.util.BytesRef;
|
import org.apache.lucene.util.BytesRef;
|
||||||
|
import org.apache.solr.SolrTestCaseJ4;
|
||||||
import org.apache.solr.common.SolrException;
|
import org.apache.solr.common.SolrException;
|
||||||
import org.apache.solr.common.SolrInputDocument;
|
import org.apache.solr.common.SolrInputDocument;
|
||||||
import org.apache.solr.common.util.NamedList;
|
import org.apache.solr.common.util.NamedList;
|
||||||
|
@ -34,6 +35,7 @@ import org.apache.solr.request.SolrQueryRequest;
|
||||||
import org.apache.solr.response.SolrQueryResponse;
|
import org.apache.solr.response.SolrQueryResponse;
|
||||||
import org.apache.solr.update.AddUpdateCommand;
|
import org.apache.solr.update.AddUpdateCommand;
|
||||||
import org.apache.solr.update.processor.SkipExistingDocumentsProcessorFactory.SkipExistingDocumentsUpdateProcessor;
|
import org.apache.solr.update.processor.SkipExistingDocumentsProcessorFactory.SkipExistingDocumentsUpdateProcessor;
|
||||||
|
import org.junit.BeforeClass;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.mockito.Mockito;
|
import org.mockito.Mockito;
|
||||||
|
|
||||||
|
@ -41,6 +43,11 @@ public class SkipExistingDocumentsProcessorFactoryTest {
|
||||||
|
|
||||||
private BytesRef docId = new BytesRef();
|
private BytesRef docId = new BytesRef();
|
||||||
private SolrQueryRequest defaultRequest = new LocalSolrQueryRequest(null, new NamedList());
|
private SolrQueryRequest defaultRequest = new LocalSolrQueryRequest(null, new NamedList());
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public static void beforeClass() {
|
||||||
|
SolrTestCaseJ4.assumeWorkingMockito();
|
||||||
|
}
|
||||||
|
|
||||||
// Tests for logic in the factory
|
// Tests for logic in the factory
|
||||||
|
|
||||||
|
|
|
@ -36,11 +36,18 @@ import org.apache.solr.client.solrj.request.UpdateRequest;
|
||||||
import org.apache.solr.common.cloud.ClusterState;
|
import org.apache.solr.common.cloud.ClusterState;
|
||||||
import org.apache.solr.common.cloud.DocCollection;
|
import org.apache.solr.common.cloud.DocCollection;
|
||||||
import org.apache.solr.common.util.NamedList;
|
import org.apache.solr.common.util.NamedList;
|
||||||
|
import org.junit.BeforeClass;
|
||||||
|
|
||||||
import static org.mockito.Mockito.*;
|
import static org.mockito.Mockito.*;
|
||||||
|
|
||||||
import static java.nio.charset.StandardCharsets.UTF_8;
|
import static java.nio.charset.StandardCharsets.UTF_8;
|
||||||
|
|
||||||
public class CloudSolrClientCacheTest extends SolrTestCaseJ4 {
|
public class CloudSolrClientCacheTest extends SolrTestCaseJ4 {
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public static void beforeClass() {
|
||||||
|
assumeWorkingMockito();
|
||||||
|
}
|
||||||
|
|
||||||
public void testCaching() throws Exception {
|
public void testCaching() throws Exception {
|
||||||
String collName = "gettingstarted";
|
String collName = "gettingstarted";
|
||||||
|
|
|
@ -31,6 +31,7 @@ import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.lang.annotation.Target;
|
import java.lang.annotation.Target;
|
||||||
import java.lang.invoke.MethodHandles;
|
import java.lang.invoke.MethodHandles;
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.net.MalformedURLException;
|
import java.net.MalformedURLException;
|
||||||
import java.net.ServerSocket;
|
import java.net.ServerSocket;
|
||||||
|
@ -60,9 +61,11 @@ import java.util.Map.Entry;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import com.carrotsearch.randomizedtesting.RandomizedContext;
|
import com.carrotsearch.randomizedtesting.RandomizedContext;
|
||||||
|
import com.carrotsearch.randomizedtesting.RandomizedTest;
|
||||||
import com.carrotsearch.randomizedtesting.TraceFormatting;
|
import com.carrotsearch.randomizedtesting.TraceFormatting;
|
||||||
import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
|
import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
|
||||||
import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
|
import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
|
||||||
|
|
||||||
import org.apache.commons.io.FileUtils;
|
import org.apache.commons.io.FileUtils;
|
||||||
import org.apache.http.client.HttpClient;
|
import org.apache.http.client.HttpClient;
|
||||||
import org.apache.lucene.analysis.MockAnalyzer;
|
import org.apache.lucene.analysis.MockAnalyzer;
|
||||||
|
@ -328,6 +331,19 @@ public abstract class SolrTestCaseJ4 extends LuceneTestCase {
|
||||||
StartupLoggingUtils.changeLogLevel(initialRootLogLevel);
|
StartupLoggingUtils.changeLogLevel(initialRootLogLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Assumes that Mockito/Bytebuddy is available and can be used to mock classes (e.g., fails if Java version is too new). */
|
||||||
|
public static void assumeWorkingMockito() {
|
||||||
|
// we use reflection here, because we do not have ByteBuddy/Mockito in all modules and the test framework!
|
||||||
|
try {
|
||||||
|
Class.forName("net.bytebuddy.ClassFileVersion").getMethod("ofThisVm").invoke(null);
|
||||||
|
} catch (InvocationTargetException e) {
|
||||||
|
RandomizedTest.assumeNoException("SOLR-11606: ByteBuddy used by Mockito is not working with this JVM version.",
|
||||||
|
e.getTargetException());
|
||||||
|
} catch (ReflectiveOperationException e) {
|
||||||
|
fail("ByteBuddy and Mockito are not available on classpath: " + e.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return null if ok else error message
|
* @return null if ok else error message
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue