You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by us...@apache.org on 2017/11/04 18:40:14 UTC
lucene-solr:branch_7x: SOLR-11606: Disable tests automatically if
Mockito does not work with Java runtime (Java 10)
Repository: lucene-solr
Updated Branches:
refs/heads/branch_7x 192204c29 -> c4a113ab9
SOLR-11606: Disable tests automatically if Mockito does not work with Java runtime (Java 10)
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/c4a113ab
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/c4a113ab
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/c4a113ab
Branch: refs/heads/branch_7x
Commit: c4a113ab9e3041deace6a5c85f5aa228a91151b5
Parents: 192204c
Author: Uwe Schindler <us...@apache.org>
Authored: Sat Nov 4 19:37:28 2017 +0100
Committer: Uwe Schindler <us...@apache.org>
Committed: Sat Nov 4 19:38:56 2017 +0100
----------------------------------------------------------------------
build.xml | 37 ++++++++++++--------
solr/CHANGES.txt | 3 ++
.../handler/dataimport/TestJdbcDataSource.java | 6 ++++
.../TestReversedWildcardFilterFactory.java | 1 +
.../test/org/apache/solr/cloud/AssignTest.java | 2 ++
...verseerCollectionConfigSetProcessorTest.java | 2 ++
.../org/apache/solr/cloud/OverseerTest.java | 1 +
.../cloud/overseer/TestClusterStateMutator.java | 7 ++++
.../solr/cloud/rule/ImplicitSnitchTest.java | 5 +++
.../solr/core/BlobRepositoryMockingTest.java | 7 ++++
.../org/apache/solr/core/CoreSorterTest.java | 2 ++
.../solr/handler/admin/TestCoreAdminApis.java | 2 ++
.../reporters/SolrGangliaReporterTest.java | 2 ++
.../apache/solr/schema/SchemaWatcherTest.java | 3 ++
.../schema/TestManagedSchemaThreadSafety.java | 1 +
.../security/TestPKIAuthenticationPlugin.java | 2 ++
.../solr/servlet/SolrRequestParserTest.java | 1 +
...lassificationUpdateProcessorFactoryTest.java | 2 ++
.../ClassificationUpdateProcessorTest.java | 1 +
...ipExistingDocumentsProcessorFactoryTest.java | 7 ++++
.../solrj/impl/CloudSolrClientCacheTest.java | 7 ++++
.../java/org/apache/solr/SolrTestCaseJ4.java | 16 +++++++++
22 files changed, 103 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c4a113ab/build.xml
----------------------------------------------------------------------
diff --git a/build.xml b/build.xml
index 5335957..9db8312 100755
--- a/build.xml
+++ b/build.xml
@@ -186,20 +186,26 @@
}
def checkLicenseHeaderPrecedes = { f, description, contentPattern, commentPattern, text, ratDocument ->
- def contentMatcher = contentPattern.matcher(text);
- if (contentMatcher.find()) {
- def contentStartPos = contentMatcher.start();
- def commentMatcher = commentPattern.matcher(text);
- while (commentMatcher.find()) {
- if (isLicense(commentMatcher, ratDocument)) {
- if (commentMatcher.start() < contentStartPos) {
- break; // This file is all good, so break loop: license header precedes 'description' definition
- } else {
- reportViolation(f, description+' declaration precedes license header');
- }
+ def contentMatcher = contentPattern.matcher(text);
+ if (contentMatcher.find()) {
+ def contentStartPos = contentMatcher.start();
+ def commentMatcher = commentPattern.matcher(text);
+ while (commentMatcher.find()) {
+ if (isLicense(commentMatcher, ratDocument)) {
+ if (commentMatcher.start() < contentStartPos) {
+ break; // This file is all good, so break loop: license header precedes 'description' definition
+ } else {
+ 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 ->
@@ -265,18 +271,21 @@
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 (!validLoggerPattern.matcher(text).find()) {
reportViolation(f, 'invalid logging pattern [not private static final, uses static class name]');
}
}
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);
}
- if (f.toString().endsWith('.adoc')) {
+ if (f.name.endsWith('.adoc')) {
checkForUnescapedSymbolSubstitutions(f, text);
}
};
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c4a113ab/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 73ec285..4af2f4c 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -117,6 +117,9 @@ Other Changes
* 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 ==================
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c4a113ab/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestJdbcDataSource.java
----------------------------------------------------------------------
diff --git a/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestJdbcDataSource.java b/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestJdbcDataSource.java
index e9908f9..e44e7f9 100644
--- a/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestJdbcDataSource.java
+++ b/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestJdbcDataSource.java
@@ -40,6 +40,7 @@ import org.apache.solr.handler.dataimport.JdbcDataSource.ResultSetIterator;
import static org.mockito.Mockito.*;
import org.junit.After;
import org.junit.Before;
+import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
@@ -68,6 +69,11 @@ public class TestJdbcDataSource extends AbstractDataImportHandlerTestCase {
String sysProp = System.getProperty("java.naming.factory.initial");
+ @BeforeClass
+ public static void beforeClass() {
+ assumeWorkingMockito();
+ }
+
@Override
@Before
public void setUp() throws Exception {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c4a113ab/solr/core/src/test/org/apache/solr/analysis/TestReversedWildcardFilterFactory.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/analysis/TestReversedWildcardFilterFactory.java b/solr/core/src/test/org/apache/solr/analysis/TestReversedWildcardFilterFactory.java
index f7a49ac..447b830 100644
--- a/solr/core/src/test/org/apache/solr/analysis/TestReversedWildcardFilterFactory.java
+++ b/solr/core/src/test/org/apache/solr/analysis/TestReversedWildcardFilterFactory.java
@@ -53,6 +53,7 @@ public class TestReversedWildcardFilterFactory extends SolrTestCaseJ4 {
@BeforeClass
public static void beforeClass() throws Exception {
+ assumeWorkingMockito();
initCore("solrconfig.xml","schema-reversed.xml");
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c4a113ab/solr/core/src/test/org/apache/solr/cloud/AssignTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/AssignTest.java b/solr/core/src/test/org/apache/solr/cloud/AssignTest.java
index d0273cb..21c001c 100644
--- a/solr/core/src/test/org/apache/solr/cloud/AssignTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/AssignTest.java
@@ -62,6 +62,8 @@ public class AssignTest extends SolrTestCaseJ4 {
@Test
public void testAssignNode() throws Exception {
+ assumeWorkingMockito();
+
SolrZkClient zkClient = mock(SolrZkClient.class);
Map<String, byte[]> zkClientData = new HashMap<>();
when(zkClient.setData(anyString(), any(), anyInt(), anyBoolean())).then(invocation -> {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c4a113ab/solr/core/src/test/org/apache/solr/cloud/OverseerCollectionConfigSetProcessorTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/OverseerCollectionConfigSetProcessorTest.java b/solr/core/src/test/org/apache/solr/cloud/OverseerCollectionConfigSetProcessorTest.java
index 7abd8d3..b6e7415 100644
--- a/solr/core/src/test/org/apache/solr/cloud/OverseerCollectionConfigSetProcessorTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/OverseerCollectionConfigSetProcessorTest.java
@@ -122,6 +122,8 @@ public class OverseerCollectionConfigSetProcessorTest extends SolrTestCaseJ4 {
@BeforeClass
public static void setUpOnce() throws Exception {
+ assumeWorkingMockito();
+
workQueueMock = mock(OverseerTaskQueue.class);
runningMapMock = mock(DistributedMap.class);
completedMapMock = mock(DistributedMap.class);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c4a113ab/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 527a28b..7259d38 100644
--- a/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
@@ -238,6 +238,7 @@ public class OverseerTest extends SolrTestCaseJ4 {
@BeforeClass
public static void beforeClass() throws Exception {
+ assumeWorkingMockito();
initCore();
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c4a113ab/solr/core/src/test/org/apache/solr/cloud/overseer/TestClusterStateMutator.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/overseer/TestClusterStateMutator.java b/solr/core/src/test/org/apache/solr/cloud/overseer/TestClusterStateMutator.java
index 311e14d..672c787 100644
--- a/solr/core/src/test/org/apache/solr/cloud/overseer/TestClusterStateMutator.java
+++ b/solr/core/src/test/org/apache/solr/cloud/overseer/TestClusterStateMutator.java
@@ -27,10 +27,17 @@ import org.apache.solr.common.cloud.ImplicitDocRouter;
import org.apache.solr.common.cloud.Slice;
import org.apache.solr.common.cloud.ZkNodeProps;
import org.apache.solr.common.util.Utils;
+import org.junit.BeforeClass;
import static org.mockito.Mockito.*;
public class TestClusterStateMutator extends SolrTestCaseJ4 {
+
+ @BeforeClass
+ public static void beforeClass() {
+ assumeWorkingMockito();
+ }
+
public void testCreateCollection() throws Exception {
ClusterState clusterState = new ClusterState(-1, Collections.<String>emptySet(), Collections.<String, DocCollection>emptyMap());
DistribStateManager mockStateManager = mock(DistribStateManager.class);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c4a113ab/solr/core/src/test/org/apache/solr/cloud/rule/ImplicitSnitchTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/cloud/rule/ImplicitSnitchTest.java b/solr/core/src/test/org/apache/solr/cloud/rule/ImplicitSnitchTest.java
index 709555f..a57f40a 100644
--- a/solr/core/src/test/org/apache/solr/cloud/rule/ImplicitSnitchTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/rule/ImplicitSnitchTest.java
@@ -23,6 +23,7 @@ import java.util.Map;
import com.google.common.collect.Sets;
import org.apache.lucene.util.LuceneTestCase;
+import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.cloud.ZkStateReader;
import org.apache.solr.common.cloud.rule.ImplicitSnitch;
@@ -134,6 +135,8 @@ public class ImplicitSnitchTest extends LuceneTestCase {
@Test
public void testGetTags_withAllHostNameRequestedTags_returns_all_Tags() throws Exception {
+ SolrTestCaseJ4.assumeWorkingMockito();
+
String node = "serv01.dc01.london.uk.apache.org:8983_solr";
SnitchContext context = new ServerSnitchContext(null, node, new HashMap<>(),null);
@@ -153,6 +156,8 @@ public class ImplicitSnitchTest extends LuceneTestCase {
@Test
public void testGetTags_withHostNameRequestedTag_ip3_returns_1_tag() throws Exception {
+ SolrTestCaseJ4.assumeWorkingMockito();
+
String node = "serv01.dc01.london.uk.apache.org:8983_solr";
SnitchContext context = new ServerSnitchContext(null, node, new HashMap<>(),null);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c4a113ab/solr/core/src/test/org/apache/solr/core/BlobRepositoryMockingTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/core/BlobRepositoryMockingTest.java b/solr/core/src/test/org/apache/solr/core/BlobRepositoryMockingTest.java
index b6f0d09..7b4dc06 100644
--- a/solr/core/src/test/org/apache/solr/core/BlobRepositoryMockingTest.java
+++ b/solr/core/src/test/org/apache/solr/core/BlobRepositoryMockingTest.java
@@ -25,8 +25,10 @@ import java.nio.charset.Charset;
import java.util.concurrent.ConcurrentHashMap;
import org.apache.commons.io.IOUtils;
+import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.SolrException;
import org.junit.Before;
+import org.junit.BeforeClass;
import org.junit.Test;
import static org.mockito.Mockito.*;
@@ -53,6 +55,11 @@ public class BlobRepositoryMockingTest {
ByteBuffer blobData = ByteBuffer.wrap(BLOBSTR.getBytes(UTF8));
boolean blobFetched = false;
String blobKey = "";
+
+ @BeforeClass
+ public static void beforeClass() {
+ SolrTestCaseJ4.assumeWorkingMockito();
+ }
@Before
public void setUp() throws IllegalAccessException, NoSuchFieldException {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c4a113ab/solr/core/src/test/org/apache/solr/core/CoreSorterTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/core/CoreSorterTest.java b/solr/core/src/test/org/apache/solr/core/CoreSorterTest.java
index eedc652..bb8bb67 100644
--- a/solr/core/src/test/org/apache/solr/core/CoreSorterTest.java
+++ b/solr/core/src/test/org/apache/solr/core/CoreSorterTest.java
@@ -101,6 +101,8 @@ public class CoreSorterTest extends SolrTestCaseJ4 {
}
private CoreContainer getMockContainer() {
+ assumeWorkingMockito();
+
CoreContainer mockCC = mock(CoreContainer.class);
ZkController mockZKC = mock(ZkController.class);
ClusterState mockClusterState = mock(ClusterState.class);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c4a113ab/solr/core/src/test/org/apache/solr/handler/admin/TestCoreAdminApis.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/TestCoreAdminApis.java b/solr/core/src/test/org/apache/solr/handler/admin/TestCoreAdminApis.java
index 9477563..dcaa64a 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/TestCoreAdminApis.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/TestCoreAdminApis.java
@@ -70,6 +70,8 @@ public class TestCoreAdminApis extends SolrTestCaseJ4 {
}
public static CoreContainer getCoreContainerMock(final Map<String, Object[]> in,Map<String,Object> out ) {
+ assumeWorkingMockito();
+
CoreContainer mockCC = mock(CoreContainer.class);
when(mockCC.create(any(String.class), any(Path.class) , any(Map.class), anyBoolean())).thenAnswer(invocationOnMock -> {
in.put("create", invocationOnMock.getArguments());
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c4a113ab/solr/core/src/test/org/apache/solr/metrics/reporters/SolrGangliaReporterTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/metrics/reporters/SolrGangliaReporterTest.java b/solr/core/src/test/org/apache/solr/metrics/reporters/SolrGangliaReporterTest.java
index eca414c..23230cd 100644
--- a/solr/core/src/test/org/apache/solr/metrics/reporters/SolrGangliaReporterTest.java
+++ b/solr/core/src/test/org/apache/solr/metrics/reporters/SolrGangliaReporterTest.java
@@ -45,6 +45,8 @@ import static org.mockito.Mockito.*;
public class SolrGangliaReporterTest extends SolrTestCaseJ4 {
@Test
public void testReporter() throws Exception {
+ assumeWorkingMockito();
+
Path home = Paths.get(TEST_HOME());
// define these properties, they are used in solrconfig.xml
System.setProperty("solr.test.sys.prop1", "propone");
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c4a113ab/solr/core/src/test/org/apache/solr/schema/SchemaWatcherTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/schema/SchemaWatcherTest.java b/solr/core/src/test/org/apache/solr/schema/SchemaWatcherTest.java
index 4d46aad..729ec53 100644
--- a/solr/core/src/test/org/apache/solr/schema/SchemaWatcherTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/SchemaWatcherTest.java
@@ -17,6 +17,7 @@
package org.apache.solr.schema;
+import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.schema.ZkIndexSchemaReader.SchemaWatcher;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher.Event.EventType;
@@ -35,6 +36,8 @@ public class SchemaWatcherTest {
@Before
public void setUp() throws Exception {
+ SolrTestCaseJ4.assumeWorkingMockito();
+
mockSchemaReader = mock(ZkIndexSchemaReader.class);
schemaWatcher = new SchemaWatcher(mockSchemaReader);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c4a113ab/solr/core/src/test/org/apache/solr/schema/TestManagedSchemaThreadSafety.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/schema/TestManagedSchemaThreadSafety.java b/solr/core/src/test/org/apache/solr/schema/TestManagedSchemaThreadSafety.java
index a00129a..46f58a1 100644
--- a/solr/core/src/test/org/apache/solr/schema/TestManagedSchemaThreadSafety.java
+++ b/solr/core/src/test/org/apache/solr/schema/TestManagedSchemaThreadSafety.java
@@ -135,6 +135,7 @@ public class TestManagedSchemaThreadSafety extends SolrTestCaseJ4 {
}
private ZkController createZkController(SolrZkClient client) throws KeeperException, InterruptedException {
+ assumeWorkingMockito();
CoreContainer mockAlwaysUpCoreContainer = mock(CoreContainer.class,
Mockito.withSettings().defaultAnswer(Mockito.CALLS_REAL_METHODS));
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c4a113ab/solr/core/src/test/org/apache/solr/security/TestPKIAuthenticationPlugin.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/security/TestPKIAuthenticationPlugin.java b/solr/core/src/test/org/apache/solr/security/TestPKIAuthenticationPlugin.java
index 2595277..a7dadcd 100644
--- a/solr/core/src/test/org/apache/solr/security/TestPKIAuthenticationPlugin.java
+++ b/solr/core/src/test/org/apache/solr/security/TestPKIAuthenticationPlugin.java
@@ -70,6 +70,8 @@ public class TestPKIAuthenticationPlugin extends SolrTestCaseJ4 {
}
public void test() throws Exception {
+ assumeWorkingMockito();
+
AtomicReference<Principal> principal = new AtomicReference<>();
String nodeName = "node_x_233";
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c4a113ab/solr/core/src/test/org/apache/solr/servlet/SolrRequestParserTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/servlet/SolrRequestParserTest.java b/solr/core/src/test/org/apache/solr/servlet/SolrRequestParserTest.java
index c830303..917b1b4 100644
--- a/solr/core/src/test/org/apache/solr/servlet/SolrRequestParserTest.java
+++ b/solr/core/src/test/org/apache/solr/servlet/SolrRequestParserTest.java
@@ -62,6 +62,7 @@ public class SolrRequestParserTest extends SolrTestCaseJ4 {
@BeforeClass
public static void beforeClass() throws Exception {
+ assumeWorkingMockito();
initCore("solrconfig.xml", "schema.xml");
parser = new SolrRequestParsers( h.getCore().getSolrConfig() );
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c4a113ab/solr/core/src/test/org/apache/solr/update/processor/ClassificationUpdateProcessorFactoryTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/update/processor/ClassificationUpdateProcessorFactoryTest.java b/solr/core/src/test/org/apache/solr/update/processor/ClassificationUpdateProcessorFactoryTest.java
index fe22918..ad39b6f 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/ClassificationUpdateProcessorFactoryTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/ClassificationUpdateProcessorFactoryTest.java
@@ -104,6 +104,8 @@ public class ClassificationUpdateProcessorFactoryTest extends SolrTestCaseJ4 {
@Test
public void init_unsupportedFilterQuery_shouldThrowExceptionWithDetailedMessage() {
+ assumeWorkingMockito();
+
UpdateRequestProcessor mockProcessor = mock(UpdateRequestProcessor.class);
SolrQueryRequest mockRequest = mock(SolrQueryRequest.class);
SolrQueryResponse mockResponse = mock(SolrQueryResponse.class);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c4a113ab/solr/core/src/test/org/apache/solr/update/processor/ClassificationUpdateProcessorTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/update/processor/ClassificationUpdateProcessorTest.java b/solr/core/src/test/org/apache/solr/update/processor/ClassificationUpdateProcessorTest.java
index df2e7aa..2a9055a 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/ClassificationUpdateProcessorTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/ClassificationUpdateProcessorTest.java
@@ -61,6 +61,7 @@ public class ClassificationUpdateProcessorTest extends SolrTestCaseJ4 {
@BeforeClass
public static void beforeClass() throws Exception {
+ assumeWorkingMockito();
System.setProperty("enable.update.log", "false");
initCore("solrconfig-classification.xml", "schema-classification.xml");
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c4a113ab/solr/core/src/test/org/apache/solr/update/processor/SkipExistingDocumentsProcessorFactoryTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/update/processor/SkipExistingDocumentsProcessorFactoryTest.java b/solr/core/src/test/org/apache/solr/update/processor/SkipExistingDocumentsProcessorFactoryTest.java
index 7e17f71..63069df 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/SkipExistingDocumentsProcessorFactoryTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/SkipExistingDocumentsProcessorFactoryTest.java
@@ -26,6 +26,7 @@ import java.io.IOException;
import com.google.common.collect.ImmutableMap;
import org.apache.lucene.util.BytesRef;
+import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrInputDocument;
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.update.AddUpdateCommand;
import org.apache.solr.update.processor.SkipExistingDocumentsProcessorFactory.SkipExistingDocumentsUpdateProcessor;
+import org.junit.BeforeClass;
import org.junit.Test;
import org.mockito.Mockito;
@@ -41,6 +43,11 @@ public class SkipExistingDocumentsProcessorFactoryTest {
private BytesRef docId = new BytesRef();
private SolrQueryRequest defaultRequest = new LocalSolrQueryRequest(null, new NamedList());
+
+ @BeforeClass
+ public static void beforeClass() {
+ SolrTestCaseJ4.assumeWorkingMockito();
+ }
// Tests for logic in the factory
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c4a113ab/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientCacheTest.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientCacheTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientCacheTest.java
index cfcfcd6..e666e495 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientCacheTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/impl/CloudSolrClientCacheTest.java
@@ -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.DocCollection;
import org.apache.solr.common.util.NamedList;
+import org.junit.BeforeClass;
+
import static org.mockito.Mockito.*;
import static java.nio.charset.StandardCharsets.UTF_8;
public class CloudSolrClientCacheTest extends SolrTestCaseJ4 {
+
+ @BeforeClass
+ public static void beforeClass() {
+ assumeWorkingMockito();
+ }
public void testCaching() throws Exception {
String collName = "gettingstarted";
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/c4a113ab/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
----------------------------------------------------------------------
diff --git a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
index 9d9a9dc..3b1c469 100644
--- a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
+++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
@@ -31,6 +31,7 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.lang.invoke.MethodHandles;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.ServerSocket;
@@ -60,9 +61,11 @@ import java.util.Map.Entry;
import java.util.concurrent.TimeUnit;
import com.carrotsearch.randomizedtesting.RandomizedContext;
+import com.carrotsearch.randomizedtesting.RandomizedTest;
import com.carrotsearch.randomizedtesting.TraceFormatting;
import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
+
import org.apache.commons.io.FileUtils;
import org.apache.http.client.HttpClient;
import org.apache.lucene.analysis.MockAnalyzer;
@@ -328,6 +331,19 @@ public abstract class SolrTestCaseJ4 extends LuceneTestCase {
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
*/