You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2012/03/23 16:32:44 UTC
svn commit: r1304441 - in /lucene/dev/trunk/solr: ./
core/src/test/org/apache/solr/handler/component/
solrj/src/test-files/solrj/solr/shared/conf/
solrj/src/test/org/apache/solr/client/solrj/embedded/
Author: rmuir
Date: Fri Mar 23 15:32:44 2012
New Revision: 1304441
URL: http://svn.apache.org/viewvc?rev=1304441&view=rev
Log:
SOLR-3112: Fix tests not to write to src/test-files
Added:
lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTest.java (with props)
Modified:
lucene/dev/trunk/solr/CHANGES.txt
lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryElevationComponentTest.java
lucene/dev/trunk/solr/solrj/src/test-files/solrj/solr/shared/conf/solrconfig.xml
lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestEmbeddedSolrServer.java
lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestSolrProperties.java
Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1304441&r1=1304440&r2=1304441&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Fri Mar 23 15:32:44 2012
@@ -768,6 +768,8 @@ Build
----------------------
* SOLR-2487: Add build target to package war without slf4j jars (janhoy)
+* SOLR-3112: Fix tests not to write to src/test-files (Luca Cavanna via Robert Muir)
+
================== 3.5.0 ==================
New Features
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryElevationComponentTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryElevationComponentTest.java?rev=1304441&r1=1304440&r2=1304441&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryElevationComponentTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryElevationComponentTest.java Fri Mar 23 15:32:44 2012
@@ -43,15 +43,10 @@ public class DistributedQueryElevationCo
schemaString = "schema11.xml";
}
- private static String elevateFilename = "elevate-data-distrib.xml";
-
@BeforeClass
public static void beforeClass() throws IOException {
- System.setProperty("elevate.data.file", elevateFilename);
+ System.setProperty("elevate.data.file", "elevate.xml");
File parent = new File(TEST_HOME(), "conf");
- File elevateFile = new File(parent, "elevate.xml");
- File elevateDataFile = new File(parent, elevateFilename);
- FileUtils.copyFile(elevateFile, elevateDataFile);
}
@AfterClass
Modified: lucene/dev/trunk/solr/solrj/src/test-files/solrj/solr/shared/conf/solrconfig.xml
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test-files/solrj/solr/shared/conf/solrconfig.xml?rev=1304441&r1=1304440&r2=1304441&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test-files/solrj/solr/shared/conf/solrconfig.xml (original)
+++ lucene/dev/trunk/solr/solrj/src/test-files/solrj/solr/shared/conf/solrconfig.xml Fri Mar 23 15:32:44 2012
@@ -22,7 +22,7 @@
-->
<config>
<luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>
- <dataDir>${solr.solr.home}/data/${l10n:}-${version:}</dataDir>
+ <dataDir>${tempDir}/data/${l10n:}-${version:}</dataDir>
<directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.RAMDirectoryFactory}"/>
<updateHandler class="solr.DirectUpdateHandler2" />
Added: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTest.java?rev=1304441&view=auto
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTest.java (added)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTest.java Fri Mar 23 15:32:44 2012
@@ -0,0 +1,83 @@
+package org.apache.solr.client.solrj.embedded;
+
+import org.apache.lucene.util.LuceneTestCase;
+import org.apache.solr.SolrTestCaseJ4;
+import org.apache.solr.client.solrj.SolrServer;
+import org.apache.solr.core.CoreContainer;
+import org.apache.solr.util.AbstractSolrTestCase;
+import org.junit.After;
+import org.junit.Before;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+
+public abstract class AbstractEmbeddedSolrServerTest extends LuceneTestCase {
+
+ protected static Logger log = LoggerFactory.getLogger(AbstractEmbeddedSolrServerTest.class);
+
+ protected static final File SOLR_HOME = SolrTestCaseJ4.getFile("solrj/solr/shared");
+
+ protected CoreContainer cores = null;
+ protected File tempDir;
+
+ private void createTempDir() {
+ tempDir = new File(TEMP_DIR, "solrtest-" + getTestClass().getSimpleName() + "-" + System.currentTimeMillis());
+ tempDir.mkdirs();
+ }
+
+ @Override
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+
+ System.setProperty("solr.solr.home", SOLR_HOME.getAbsolutePath());
+
+ //The index is always stored within a temporary directory
+ createTempDir();
+ System.setProperty("tempDir", tempDir.getAbsolutePath());
+
+ cores = new CoreContainer(SOLR_HOME.getAbsolutePath(), getSolrXml());
+ }
+
+ protected abstract File getSolrXml() throws Exception;
+
+ @Override
+ @After
+ public void tearDown() throws Exception {
+ if (cores != null)
+ cores.shutdown();
+
+ deleteAdditionalFiles();
+
+ File dataDir = new File(tempDir,"data");
+ String skip = System.getProperty("solr.test.leavedatadir");
+ if (null != skip && 0 != skip.trim().length()) {
+ log.info("NOTE: per solr.test.leavedatadir, dataDir will not be removed: " + dataDir.getAbsolutePath());
+ } else {
+ //Removing the temporary directory which contains the index (all other files should have been removed before)
+ if (!AbstractSolrTestCase.recurseDelete(tempDir)) {
+ log.warn("!!!! WARNING: best effort to remove " + dataDir.getAbsolutePath() + " FAILED !!!!!");
+ }
+ }
+
+ super.tearDown();
+ }
+
+ protected void deleteAdditionalFiles() {
+
+ }
+
+ protected SolrServer getSolrCore0() {
+ return getSolrCore("core0");
+ }
+
+ protected SolrServer getSolrCore1() {
+ return getSolrCore("core1");
+ }
+
+ protected SolrServer getSolrCore(String name) {
+ return new EmbeddedSolrServer(cores, name);
+ }
+
+}
Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestEmbeddedSolrServer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestEmbeddedSolrServer.java?rev=1304441&r1=1304440&r2=1304441&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestEmbeddedSolrServer.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestEmbeddedSolrServer.java Fri Mar 23 15:32:44 2012
@@ -17,95 +17,44 @@ package org.apache.solr.client.solrj.emb
* limitations under the License.
*/
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
import junit.framework.Assert;
-
-import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.SystemPropertiesRestoreRule;
-import org.apache.solr.SolrTestCaseJ4;
-import org.apache.solr.common.util.FileUtils;
-import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.SolrCore;
-import org.apache.solr.util.AbstractSolrTestCase;
-import org.junit.After;
-import org.junit.Before;
import org.junit.Rule;
import org.junit.rules.RuleChain;
import org.junit.rules.TestRule;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class TestEmbeddedSolrServer extends LuceneTestCase {
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+public class TestEmbeddedSolrServer extends AbstractEmbeddedSolrServerTest {
@Rule
public TestRule solrTestRules =
RuleChain.outerRule(new SystemPropertiesRestoreRule());
protected static Logger log = LoggerFactory.getLogger(TestEmbeddedSolrServer.class);
-
- protected CoreContainer cores = null;
- private File home;
-
- public String getSolrHome() {
- return "solrj/solr/shared";
- }
-
- public String getOrigSolrXml() {
- return "solr.xml";
- }
-
- public String getSolrXml() {
- return "test-solr.xml";
- }
-
- @Override
- @Before
- public void setUp() throws Exception {
- super.setUp();
- System.setProperty("solr.solr.home", getSolrHome());
-
- home = SolrTestCaseJ4.getFile(getSolrHome());
- System.setProperty("solr.solr.home", home.getAbsolutePath());
- log.info("pwd: " + (new File(".")).getAbsolutePath());
- File origSolrXml = new File(home, getOrigSolrXml());
- File solrXml = new File(home, getSolrXml());
- FileUtils.copyFile(origSolrXml, solrXml);
- cores = new CoreContainer(home.getAbsolutePath(), solrXml);
+ protected EmbeddedSolrServer getSolrCore1() {
+ return new EmbeddedSolrServer(cores, "core1");
}
@Override
- @After
- public void tearDown() throws Exception {
- if (cores != null) {
- cores.shutdown();
- }
- File dataDir = new File(home,"data");
- if (!AbstractSolrTestCase.recurseDelete(dataDir)) {
- log.warn("!!!! WARNING: best effort to remove " + dataDir.getAbsolutePath() + " FAILED !!!!!");
- }
- super.tearDown();
- }
-
- protected EmbeddedSolrServer getSolrCore0() {
- return new EmbeddedSolrServer(cores, "core0");
+ protected File getSolrXml() throws Exception {
+ return new File(SOLR_HOME, "solr.xml");
}
- protected EmbeddedSolrServer getSolrCore1() {
- return new EmbeddedSolrServer(cores, "core1");
- }
-
public void testGetCoreContainer() {
- Assert.assertEquals(cores, getSolrCore0().getCoreContainer());
- Assert.assertEquals(cores, getSolrCore1().getCoreContainer());
+ Assert.assertEquals(cores, ((EmbeddedSolrServer)getSolrCore0()).getCoreContainer());
+ Assert.assertEquals(cores, ((EmbeddedSolrServer)getSolrCore1()).getCoreContainer());
}
public void testShutdown() {
- EmbeddedSolrServer solrServer = getSolrCore0();
+ EmbeddedSolrServer solrServer = (EmbeddedSolrServer)getSolrCore0();
Assert.assertEquals(3, cores.getCores().size());
List<SolrCore> solrCores = new ArrayList<SolrCore>();
@@ -121,7 +70,6 @@ public class TestEmbeddedSolrServer exte
for (SolrCore solrCore : solrCores) {
Assert.assertEquals(true, solrCore.isClosed());
}
-
}
}
Modified: lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestSolrProperties.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestSolrProperties.java?rev=1304441&r1=1304440&r2=1304441&view=diff
==============================================================================
--- lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestSolrProperties.java (original)
+++ lucene/dev/trunk/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/TestSolrProperties.java Fri Mar 23 15:32:44 2012
@@ -17,18 +17,7 @@
package org.apache.solr.client.solrj.embedded;
-import java.io.File;
-import java.io.FileInputStream;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.xpath.XPath;
-import javax.xml.xpath.XPathConstants;
-import javax.xml.xpath.XPathExpressionException;
-import javax.xml.xpath.XPathFactory;
-
import org.apache.commons.io.IOUtils;
-import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.SystemPropertiesRestoreRule;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.client.solrj.SolrQuery;
@@ -41,9 +30,6 @@ import org.apache.solr.client.solrj.resp
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.util.FileUtils;
import org.apache.solr.core.CoreContainer;
-import org.apache.solr.util.AbstractSolrTestCase;
-import org.junit.After;
-import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.RuleChain;
@@ -53,77 +39,50 @@ import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.xpath.XPath;
+import javax.xml.xpath.XPathConstants;
+import javax.xml.xpath.XPathExpressionException;
+import javax.xml.xpath.XPathFactory;
+import java.io.File;
+import java.io.FileInputStream;
+
/**
*
* @since solr 1.3
*/
-public class TestSolrProperties extends LuceneTestCase {
+public class TestSolrProperties extends AbstractEmbeddedSolrServerTest {
protected static Logger log = LoggerFactory.getLogger(TestSolrProperties.class);
- protected CoreContainer cores = null;
- private File home;
- private File solrXml;
-
+
+ private static final String SOLR_XML = "solr.xml";
+ private static final String SOLR_PERSIST_XML = "solr-persist.xml";
+
@Rule
public TestRule solrTestRules =
RuleChain.outerRule(new SystemPropertiesRestoreRule());
private static final XPathFactory xpathFactory = XPathFactory.newInstance();
- public String getSolrHome() {
- return "solrj/solr/shared";
- }
-
- public String getOrigSolrXml() {
- return "solr.xml";
- }
-
- public String getSolrXml() {
- return "test-solr.xml";
- }
-
@Override
- @Before
- public void setUp() throws Exception {
- super.setUp();
- System.setProperty("solr.solr.home", getSolrHome());
-
- home = SolrTestCaseJ4.getFile(getSolrHome());
- System.setProperty("solr.solr.home", home.getAbsolutePath());
-
- log.info("pwd: " + (new File(".")).getAbsolutePath());
- File origSolrXml = new File(home, getOrigSolrXml());
- solrXml = new File(home, getSolrXml());
+ protected File getSolrXml() throws Exception {
+ //This test writes on the directory where the solr.xml is located. Better to copy the solr.xml to
+ //the temporary directory where we store the index
+ File origSolrXml = new File(SOLR_HOME, SOLR_XML);
+ File solrXml = new File(tempDir, SOLR_XML);
FileUtils.copyFile(origSolrXml, solrXml);
- cores = new CoreContainer(home.getAbsolutePath(), solrXml);
+ return solrXml;
}
@Override
- @After
- public void tearDown() throws Exception {
- if (cores != null)
- cores.shutdown();
- File dataDir = new File(home,"data");
- String skip = System.getProperty("solr.test.leavedatadir");
- if (null != skip && 0 != skip.trim().length()) {
- log.info("NOTE: per solr.test.leavedatadir, dataDir will not be removed: " + dataDir.getAbsolutePath());
- } else {
- if (!AbstractSolrTestCase.recurseDelete(dataDir)) {
- log.warn("!!!! WARNING: best effort to remove " + dataDir.getAbsolutePath() + " FAILED !!!!!");
- }
- }
- File persistedFile = new File(home,"solr-persist.xml");
- assertTrue("Failed to delete "+persistedFile, persistedFile.delete());
- assertTrue("Failed to delete "+solrXml, solrXml.delete());
- super.tearDown();
- }
-
- protected SolrServer getSolrCore0() {
- return new EmbeddedSolrServer(cores, "core0");
- }
+ protected void deleteAdditionalFiles() {
+ super.deleteAdditionalFiles();
-
- protected SolrServer getSolrCore1() {
- return new EmbeddedSolrServer(cores, "core1");
+ //Cleans the solr.xml persisted while testing and the solr.xml copied to the temporary directory
+ File persistedFile = new File(tempDir, SOLR_PERSIST_XML);
+ assertTrue("Failed to delete "+persistedFile, persistedFile.delete());
+ File solrXml = new File(tempDir, SOLR_XML);
+ assertTrue("Failed to delete "+ solrXml, solrXml.delete());
}
protected SolrServer getSolrAdmin() {
@@ -134,10 +93,6 @@ public class TestSolrProperties extends
return new EmbeddedSolrServer(cores, "renamed_core");
}
- protected SolrServer getSolrCore(String name) {
- return new EmbeddedSolrServer(cores, name);
- }
-
@Test
public void testProperties() throws Exception {
UpdateRequest up = new UpdateRequest();
@@ -209,14 +164,14 @@ public class TestSolrProperties extends
long after = mcr.getStartTime(name).getTime();
assertTrue("should have more recent time: " + after + "," + before, after > before);
- mcr = CoreAdminRequest.persist("solr-persist.xml", coreadmin);
+ mcr = CoreAdminRequest.persist(SOLR_PERSIST_XML, coreadmin);
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
- FileInputStream fis = new FileInputStream(new File(solrXml.getParent(), "solr-persist.xml"));
+ FileInputStream fis = new FileInputStream(new File(tempDir, SOLR_PERSIST_XML));
try {
Document document = builder.parse(fis);
fis.close();
- fis = new FileInputStream(new File(solrXml.getParent(), "solr-persist.xml"));
+ fis = new FileInputStream(new File(tempDir, SOLR_PERSIST_XML));
String solrPersistXml = IOUtils.toString(fis);
//System.out.println("xml:" + solrPersistXml);
assertTrue("\"/solr/cores[@defaultCoreName='core0']\" doesn't match in:\n" + solrPersistXml,
@@ -235,14 +190,14 @@ public class TestSolrProperties extends
}
CoreAdminRequest.renameCore(name, "renamed_core", coreadmin);
- mcr = CoreAdminRequest.persist("solr-persist.xml", getRenamedSolrAdmin());
+ mcr = CoreAdminRequest.persist(SOLR_PERSIST_XML, getRenamedSolrAdmin());
-// fis = new FileInputStream(new File(solrXml.getParent(), "solr-persist.xml"));
+// fis = new FileInputStream(new File(solrXml.getParent(), SOLR_PERSIST_XML));
// String solrPersistXml = IOUtils.toString(fis);
// System.out.println("xml:" + solrPersistXml);
// fis.close();
- fis = new FileInputStream(new File(solrXml.getParent(), "solr-persist.xml"));
+ fis = new FileInputStream(new File(tempDir, SOLR_PERSIST_XML));
try {
Document document = builder.parse(fis);
assertTrue(exists("/solr/cores/core[@name='renamed_core']", document));
@@ -254,21 +209,21 @@ public class TestSolrProperties extends
}
coreadmin = getRenamedSolrAdmin();
- CoreAdminRequest.createCore("newCore", home.getAbsolutePath(), coreadmin);
+ CoreAdminRequest.createCore("newCore", SOLR_HOME.getAbsolutePath(), coreadmin);
-// fis = new FileInputStream(new File(solrXml.getParent(), "solr-persist.xml"));
+// fis = new FileInputStream(new File(solrXml.getParent(), SOLR_PERSIST_XML));
// solrPersistXml = IOUtils.toString(fis);
// System.out.println("xml:" + solrPersistXml);
// fis.close();
- mcr = CoreAdminRequest.persist("solr-persist.xml", getRenamedSolrAdmin());
+ mcr = CoreAdminRequest.persist(SOLR_PERSIST_XML, getRenamedSolrAdmin());
-// fis = new FileInputStream(new File(solrXml.getParent(), "solr-persist.xml"));
+// fis = new FileInputStream(new File(solrXml.getParent(), SOLR_PERSIST_XML));
// solrPersistXml = IOUtils.toString(fis);
// System.out.println("xml:" + solrPersistXml);
// fis.close();
- fis = new FileInputStream(new File(solrXml.getParent(), "solr-persist.xml"));
+ fis = new FileInputStream(new File(tempDir, SOLR_PERSIST_XML));
try {
Document document = builder.parse(fis);
assertTrue(exists("/solr/cores/core[@name='collection1' and (@instanceDir='./' or @instanceDir='.\\')]", document));
@@ -279,13 +234,13 @@ public class TestSolrProperties extends
// test reload and parse
cores.shutdown();
- cores = new CoreContainer(home.getAbsolutePath(), new File(solrXml.getParent(), "solr-persist.xml"));
+ cores = new CoreContainer(SOLR_HOME.getAbsolutePath(), new File(tempDir, SOLR_PERSIST_XML));
- mcr = CoreAdminRequest.persist("solr-persist.xml", getRenamedSolrAdmin());
+ mcr = CoreAdminRequest.persist(SOLR_PERSIST_XML, getRenamedSolrAdmin());
// fis = new FileInputStream(new File(solrXml.getParent(),
-// "solr-persist.xml"));
+// SOLR_PERSIST_XML));
// solrPersistXml = IOUtils.toString(fis);
// System.out.println("xml:" + solrPersistXml);
// fis.close();