You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2014/03/28 01:55:47 UTC
svn commit: r1582571 [3/3] - in /lucene/dev/branches/solr5914: ./
lucene/test-framework/src/java/org/apache/lucene/util/ solr/ solr/contrib/
solr/contrib/analysis-extras/src/test/org/apache/solr/schema/
solr/contrib/dataimporthandler/src/test/org/apach...
Modified: lucene/dev/branches/solr5914/solr/core/src/test/org/apache/solr/update/SolrIndexSplitterTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr5914/solr/core/src/test/org/apache/solr/update/SolrIndexSplitterTest.java?rev=1582571&r1=1582570&r2=1582571&view=diff
==============================================================================
--- lucene/dev/branches/solr5914/solr/core/src/test/org/apache/solr/update/SolrIndexSplitterTest.java (original)
+++ lucene/dev/branches/solr5914/solr/core/src/test/org/apache/solr/update/SolrIndexSplitterTest.java Fri Mar 28 00:55:45 2014
@@ -25,8 +25,6 @@ import org.apache.commons.io.FileUtils;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.Term;
import org.apache.lucene.store.Directory;
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.TestUtil;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer;
@@ -59,10 +57,13 @@ public class SolrIndexSplitterTest exten
super.setUp();
clearIndex();
assertU(commit());
- File tempDir = TestUtil.createTempDir(LuceneTestCase.getTestClass().getSimpleName());
- indexDir1 = new File(tempDir, this.getClass().getName() + "_testSplit1");
- indexDir2 = new File(tempDir, this.getClass().getName() + "_testSplit2");
- indexDir3 = new File(tempDir, this.getClass().getName() + "_testSplit3");
+ File dataDir = createTempDir();
+ indexDir1 = new File(dataDir, this.getClass().getName()
+ + "_testSplit1");
+ indexDir2 = new File(dataDir, this.getClass().getName()
+ + "_testSplit2");
+ indexDir3 = new File(dataDir, this.getClass().getName()
+ + "_testSplit3");
if (indexDir1.exists()) {
FileUtils.deleteDirectory(indexDir1);
@@ -270,7 +271,11 @@ public class SolrIndexSplitterTest exten
@Test
public void testSplitByRouteKey() throws Exception {
- File indexDir = TestUtil.createTempDir(LuceneTestCase.getTestClass().getSimpleName());
+ File indexDir = createTempDir();
+ if (indexDir.exists()) {
+ FileUtils.deleteDirectory(indexDir);
+ }
+ indexDir.mkdirs();
CompositeIdRouter r1 = new CompositeIdRouter();
String splitKey = "sea-line!";
Modified: lucene/dev/branches/solr5914/solr/core/src/test/org/apache/solr/update/processor/AddSchemaFieldsUpdateProcessorFactoryTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr5914/solr/core/src/test/org/apache/solr/update/processor/AddSchemaFieldsUpdateProcessorFactoryTest.java?rev=1582571&r1=1582570&r2=1582571&view=diff
==============================================================================
--- lucene/dev/branches/solr5914/solr/core/src/test/org/apache/solr/update/processor/AddSchemaFieldsUpdateProcessorFactoryTest.java (original)
+++ lucene/dev/branches/solr5914/solr/core/src/test/org/apache/solr/update/processor/AddSchemaFieldsUpdateProcessorFactoryTest.java Fri Mar 28 00:55:45 2014
@@ -49,8 +49,7 @@ public class AddSchemaFieldsUpdateProces
@Before
private void initManagedSchemaCore() throws Exception {
- createTempDir();
- final String tmpSolrHomePath = TestUtil.createTempDir(LuceneTestCase.getTestClass().getSimpleName()).getAbsolutePath();
+ final String tmpSolrHomePath = createTempDir().getAbsolutePath();
tmpSolrHome = new File(tmpSolrHomePath).getAbsoluteFile();
tmpConfDir = new File(tmpSolrHome, confDir);
File testHomeConfDir = new File(TEST_HOME(), confDir);
Modified: lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/MergeIndexesExampleTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/MergeIndexesExampleTestBase.java?rev=1582571&r1=1582570&r2=1582571&view=diff
==============================================================================
--- lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/MergeIndexesExampleTestBase.java (original)
+++ lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/MergeIndexesExampleTestBase.java Fri Mar 28 00:55:45 2014
@@ -21,9 +21,6 @@ import java.io.File;
import java.io.IOException;
import java.util.Arrays;
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.TestUtil;
-import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.client.solrj.request.AbstractUpdateRequest;
import org.apache.solr.client.solrj.request.CoreAdminRequest;
import org.apache.solr.client.solrj.request.QueryRequest;
@@ -46,6 +43,7 @@ public abstract class MergeIndexesExampl
protected CoreContainer cores;
private String saveProp;
+ private File dataDir1;
private File dataDir2;
@Override
@@ -55,9 +53,7 @@ public abstract class MergeIndexesExampl
@BeforeClass
public static void beforeClass2() throws Exception {
- if (dataDir == null) {
- createTempDir();
- }
+
}
protected void setupCoreContainer() {
@@ -71,12 +67,11 @@ public abstract class MergeIndexesExampl
saveProp = System.getProperty("solr.directoryFactory");
System.setProperty("solr.directoryFactory", "solr.StandardDirectoryFactory");
super.setUp();
-
+ File dataDir1 = createTempDir();
// setup datadirs
- System.setProperty( "solr.core0.data.dir", SolrTestCaseJ4.dataDir.getCanonicalPath() );
+ System.setProperty( "solr.core0.data.dir", dataDir1.getCanonicalPath() );
- dataDir2 = TestUtil.createTempDir(LuceneTestCase.getTestClass().getSimpleName());
- dataDir2.mkdirs();
+ dataDir2 = createTempDir();
System.setProperty( "solr.core1.data.dir", this.dataDir2.getCanonicalPath() );
Modified: lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/MultiCoreExampleTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/MultiCoreExampleTestBase.java?rev=1582571&r1=1582570&r2=1582571&view=diff
==============================================================================
--- lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/MultiCoreExampleTestBase.java (original)
+++ lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/MultiCoreExampleTestBase.java Fri Mar 28 00:55:45 2014
@@ -57,10 +57,9 @@ public abstract class MultiCoreExampleTe
@Override public void setUp() throws Exception {
super.setUp();
-
- dataDir1 = TestUtil.createTempDir(LuceneTestCase.getTestClass().getSimpleName() + "-core0");
- dataDir2 = TestUtil.createTempDir(LuceneTestCase.getTestClass().getSimpleName() + "-core1");
-
+ dataDir1 = createTempDir();
+ dataDir2 = createTempDir();
+
System.setProperty( "solr.core0.data.dir", this.dataDir1.getCanonicalPath() );
System.setProperty( "solr.core1.data.dir", this.dataDir2.getCanonicalPath() );
}
Modified: lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTestBase.java?rev=1582571&r1=1582570&r2=1582571&view=diff
==============================================================================
--- lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTestBase.java (original)
+++ lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTestBase.java Fri Mar 28 00:55:45 2014
@@ -36,9 +36,7 @@ abstract public class SolrExampleTestBas
@BeforeClass
public static void beforeClass() throws Exception {
- if (dataDir == null) {
- createTempDir();
- }
+
}
@Override
@@ -49,7 +47,7 @@ abstract public class SolrExampleTestBas
// this sets the property for jetty starting SolrDispatchFilter
System.setProperty( "solr.solr.home", this.getSolrHome() );
- System.setProperty( "solr.data.dir", this.dataDir.getCanonicalPath() );
+ System.setProperty( "solr.data.dir", this.initCoreDataDir.getCanonicalPath() );
}
/**
Modified: lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/TestLBHttpSolrServer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/TestLBHttpSolrServer.java?rev=1582571&r1=1582570&r2=1582571&view=diff
==============================================================================
--- lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/TestLBHttpSolrServer.java (original)
+++ lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/TestLBHttpSolrServer.java Fri Mar 28 00:55:45 2014
@@ -285,7 +285,8 @@ public class TestLBHttpSolrServer extend
public void setUp() throws Exception {
- File home = TestUtil.createTempDir(LuceneTestCase.getTestClass().getSimpleName());
+ File home = new File(dataDir,
+ getClass().getName() + "-" + System.currentTimeMillis());
homeDir = new File(home, name);
dataDir = new File(homeDir + "/collection1", "data");
confDir = new File(homeDir + "/collection1", "conf");
Modified: lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java?rev=1582571&r1=1582570&r2=1582571&view=diff
==============================================================================
--- lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java (original)
+++ lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java Fri Mar 28 00:55:45 2014
@@ -17,20 +17,17 @@ package org.apache.solr.client.solrj.emb
* limitations under the License.
*/
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.TestUtil;
+import java.io.File;
+
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 AbstractEmbeddedSolrServerTestCase extends LuceneTestCase {
+public abstract class AbstractEmbeddedSolrServerTestCase extends SolrTestCaseJ4 {
protected static Logger log = LoggerFactory.getLogger(AbstractEmbeddedSolrServerTestCase.class);
@@ -49,7 +46,7 @@ public abstract class AbstractEmbeddedSo
System.out.println("Solr home: " + SOLR_HOME.getAbsolutePath());
//The index is always stored within a temporary directory
- tempDir = TestUtil.createTempDir(LuceneTestCase.getTestClass().getSimpleName());
+ tempDir = createTempDir();
File dataDir = new File(tempDir,"data1");
File dataDir2 = new File(tempDir,"data2");
Modified: lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/JettyWebappTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/JettyWebappTest.java?rev=1582571&r1=1582570&r2=1582571&view=diff
==============================================================================
--- lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/JettyWebappTest.java (original)
+++ lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/JettyWebappTest.java Fri Mar 28 00:55:45 2014
@@ -59,7 +59,9 @@ public class JettyWebappTest extends Sol
System.setProperty("solr.solr.home", ExternalPaths.EXAMPLE_HOME);
System.setProperty("tests.shardhandler.randomSeed", Long.toString(random().nextLong()));
- File dataDir = TestUtil.createTempDir(LuceneTestCase.getTestClass().getSimpleName());
+ File dataDir = createTempDir();
+ dataDir.mkdirs();
+
System.setProperty("solr.data.dir", dataDir.getCanonicalPath());
String path = ExternalPaths.WEBAPP_HOME;
Modified: lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java?rev=1582571&r1=1582570&r2=1582571&view=diff
==============================================================================
--- lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java (original)
+++ lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java Fri Mar 28 00:55:45 2014
@@ -99,7 +99,7 @@ public class TestCoreAdmin extends Abstr
SolrServer server = getSolrAdmin();
- File tmp = TestUtil.createTempDir(LuceneTestCase.getTestClass().getSimpleName());
+ File tmp = createTempDir();
log.info("Creating cores underneath {}", tmp);
Modified: lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/common/util/ContentStreamTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/common/util/ContentStreamTest.java?rev=1582571&r1=1582570&r2=1582571&view=diff
==============================================================================
--- lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/common/util/ContentStreamTest.java (original)
+++ lucene/dev/branches/solr5914/solr/solrj/src/test/org/apache/solr/common/util/ContentStreamTest.java Fri Mar 28 00:55:45 2014
@@ -23,16 +23,17 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.io.Reader;
import java.net.URL;
import org.apache.commons.io.IOUtils;
-import org.apache.lucene.util.LuceneTestCase;
+import org.apache.solr.SolrTestCaseJ4;
import org.apache.lucene.util.TestUtil;
import org.apache.solr.core.SolrResourceLoader;
/**
*/
-public class ContentStreamTest extends LuceneTestCase
+public class ContentStreamTest extends SolrTestCaseJ4
{
public void testStringStream() throws IOException
{
@@ -47,15 +48,26 @@ public class ContentStreamTest extends L
{
InputStream is = new SolrResourceLoader(null, null).openResource( "solrj/README" );
assertNotNull( is );
- File file = TestUtil.createTempFile("README", "");
+ File file = TestUtil.createTempFile("README", "", createTempDir());
FileOutputStream os = new FileOutputStream(file);
IOUtils.copy(is, os);
os.close();
+ is.close();
- ContentStreamBase stream = new ContentStreamBase.FileStream( file );
- assertEquals( file.length(), stream.getSize().intValue() );
- assertTrue( IOUtils.contentEquals( new FileInputStream( file ), stream.getStream() ) );
- assertTrue( IOUtils.contentEquals( new InputStreamReader(new FileInputStream(file), "UTF-8"), stream.getReader() ) );
+ ContentStreamBase stream = new ContentStreamBase.FileStream(file);
+ InputStream s = stream.getStream();
+ FileInputStream fis = new FileInputStream(file);
+ InputStreamReader isr = new InputStreamReader(
+ new FileInputStream(file), "UTF-8");
+ try {
+ assertEquals(file.length(), stream.getSize().intValue());
+ assertTrue(IOUtils.contentEquals(fis, s));
+ assertTrue(IOUtils.contentEquals(isr, stream.getReader()));
+ } finally {
+ s.close();
+ isr.close();
+ fis.close();
+ }
}
@@ -63,15 +75,30 @@ public class ContentStreamTest extends L
{
InputStream is = new SolrResourceLoader(null, null).openResource( "solrj/README" );
assertNotNull( is );
- File file = TestUtil.createTempFile("README", "");
+ File file = new File(createTempDir(), "README");
FileOutputStream os = new FileOutputStream(file);
IOUtils.copy(is, os);
os.close();
+ is.close();
- ContentStreamBase stream = new ContentStreamBase.URLStream( new URL(file.toURI().toASCIIString()) );
- assertTrue( IOUtils.contentEquals( new FileInputStream( file ), stream.getStream() ) );
- assertEquals( file.length(), stream.getSize().intValue() );
- assertTrue( IOUtils.contentEquals( new InputStreamReader(new FileInputStream(file), "UTF-8"), stream.getReader() ) );
- assertEquals( file.length(), stream.getSize().intValue() );
+ ContentStreamBase stream = new ContentStreamBase.URLStream(new URL(file
+ .toURI().toASCIIString()));
+ InputStream s = stream.getStream();
+ FileInputStream fis = new FileInputStream(file);
+ FileInputStream fis2 = new FileInputStream(file);
+ InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
+ Reader r = stream.getReader();
+ try {
+ assertTrue(IOUtils.contentEquals(fis2, s));
+ assertEquals(file.length(), stream.getSize().intValue());
+ assertTrue(IOUtils.contentEquals(isr, r));
+ assertEquals(file.length(), stream.getSize().intValue());
+ } finally {
+ r.close();
+ s.close();
+ isr.close();
+ fis.close();
+ fis2.close();
+ }
}
}
Modified: lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java?rev=1582571&r1=1582570&r2=1582571&view=diff
==============================================================================
--- lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java (original)
+++ lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java Fri Mar 28 00:55:45 2014
@@ -278,8 +278,7 @@ public abstract class BaseDistributedSea
super.setUp();
System.setProperty("solr.test.sys.prop1", "propone");
System.setProperty("solr.test.sys.prop2", "proptwo");
- testDir = TestUtil.createTempDir(LuceneTestCase.getTestClass().getSimpleName());
- testDir.mkdirs();
+ testDir = createTempDir();
}
@Override
Modified: lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/SolrJettyTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/SolrJettyTestBase.java?rev=1582571&r1=1582570&r2=1582571&view=diff
==============================================================================
--- lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/SolrJettyTestBase.java (original)
+++ lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/SolrJettyTestBase.java Fri Mar 28 00:55:45 2014
@@ -56,7 +56,7 @@ abstract public class SolrJettyTestBase
ignoreException("maxWarmingSearchers");
// this sets the property for jetty starting SolrDispatchFilter
- System.setProperty( "solr.data.dir", dataDir.getCanonicalPath() );
+ System.setProperty( "solr.data.dir", createTempDir().getCanonicalPath() );
context = context==null ? "/solr" : context;
SolrJettyTestBase.context = context;
Modified: lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java?rev=1582571&r1=1582570&r2=1582571&view=diff
==============================================================================
--- lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java (original)
+++ lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java Fri Mar 28 00:55:45 2014
@@ -150,6 +150,9 @@ public abstract class SolrTestCaseJ4 ext
// these are meant to be accessed sequentially, but are volatile just to ensure any test
// thread will read the latest value
protected static volatile SSLTestConfig sslConfig;
+
+ private static boolean LEAVE_TEST_TMP_DIR = Boolean.getBoolean("solr.test.leavetmpdir");
+ private static boolean LEAVE_TEST_TMP_DIR_ANNOTATION;
@ClassRule
public static TestRule solrClassRules =
@@ -163,6 +166,17 @@ public abstract class SolrTestCaseJ4 ext
@BeforeClass
@SuppressWarnings("unused")
private static void beforeClass() {
+ String cname = getSimpleClassName();
+
+ LEAVE_TEST_TMP_DIR_ANNOTATION = RandomizedContext.current().getTargetClass()
+ .isAnnotationPresent(SuppressTempDirCleanUp.class);
+
+ boolean ensureClosed = !(LEAVE_TEST_TMP_DIR || LEAVE_TEST_TMP_DIR_ANNOTATION);
+ rootTmpDir = TestUtil.createTempDir("solrtest-" + cname, null, ensureClosed);
+ initCoreDataDir = TestUtil.createTempDir("solrtest-" + cname, rootTmpDir);
+
+ System.err.println("Creating dataDir: " + initCoreDataDir.getAbsolutePath());
+
System.setProperty("jetty.testMode", "true");
System.setProperty("enable.update.log", usually() ? "true" : "false");
System.setProperty("tests.shardhandler.randomSeed", Long.toString(random().nextLong()));
@@ -194,18 +208,29 @@ public abstract class SolrTestCaseJ4 ext
coreName = ConfigSolrXmlOld.DEFAULT_DEFAULT_CORE_NAME;
} finally {
try {
- if (dataDir != null && dataDir.exists() && !recurseDelete(dataDir)) {
- String msg = "!!!! WARNING: best effort to remove "
- + dataDir.getAbsolutePath() + " FAILED !!!!!";
- if (RandomizedContext.current().getTargetClass()
- .isAnnotationPresent(SuppressTempDirCleanUp.class)) {
- System.err.println(msg);
- } else {
- fail(msg);
+
+ if (LEAVE_TEST_TMP_DIR) {
+ System.err
+ .println("NOTE: per solr.test.leavetmpdir, the test tmp directory will not be removed: "
+ + rootTmpDir.getAbsolutePath());
+ } else {
+ // TODO: tmp files should already get cleaned up by the test framework, but
+ // we still do it here as well, so that we clean up as much as we can, even
+ // when a test is the SuppressTempDirCleanUp annotation
+ if (rootTmpDir != null && rootTmpDir.exists() && !recurseDelete(rootTmpDir)) {
+ String msg = "!!!! WARNING: best effort to remove "
+ + rootTmpDir.getAbsolutePath() + " FAILED !!!!!";
+ if (LEAVE_TEST_TMP_DIR_ANNOTATION) {
+ System.err.println(msg);
+ } else {
+ // TODO: do we want to fail here with this message? Is the test framework
+ // fail that should happen better?
+ fail(msg);
+ }
}
}
} finally {
- dataDir = null;
+ initCoreDataDir = null;
System.clearProperty("jetty.testMode");
System.clearProperty("tests.shardhandler.randomSeed");
System.clearProperty("enable.update.log");
@@ -483,7 +508,14 @@ public abstract class SolrTestCaseJ4 ext
SolrException.ignorePatterns.remove(pattern);
}
-
+ public static File createTempDir() {
+ return createTempDir(null);
+ }
+
+ public static File createTempDir(String tag) {
+ return TestUtil.createTempDir(getClassName() + (tag == null ? "" : "-" + tag), rootTmpDir);
+ }
+
public static void resetExceptionIgnores() {
SolrException.ignorePatterns = null;
ignoreException("ignore_exception"); // always ignore "ignore_exception"
@@ -542,7 +574,9 @@ public abstract class SolrTestCaseJ4 ext
/**
* The directory used to story the index managed by the TestHarness
*/
- protected static volatile File dataDir;
+ protected static volatile File initCoreDataDir;
+
+ protected static volatile File rootTmpDir;
// hack due to File dataDir
protected static String hdfsDataDir;
@@ -562,10 +596,6 @@ public abstract class SolrTestCaseJ4 ext
private static String factoryProp;
- public static void createTempDir() {
- dataDir = TestUtil.createTempDir(LuceneTestCase.getTestClass().getSimpleName() + "-datadir");
- System.err.println("Creating dataDir: " + dataDir.getAbsolutePath());
- }
public static void initCore() throws Exception {
log.info("####initCore");
@@ -575,9 +605,6 @@ public abstract class SolrTestCaseJ4 ext
if (factoryProp == null) {
System.setProperty("solr.directoryFactory","solr.RAMDirectoryFactory");
}
- if (dataDir == null) {
- createTempDir();
- }
// other methods like starting a jetty instance need these too
System.setProperty("solr.test.sys.prop1", "propone");
@@ -593,7 +620,7 @@ public abstract class SolrTestCaseJ4 ext
public static void createCore() {
assertNotNull(testSolrHome);
solrConfig = TestHarness.createConfig(testSolrHome, coreName, getSolrConfigFile());
- h = new TestHarness( coreName, hdfsDataDir == null ? dataDir.getAbsolutePath() : hdfsDataDir,
+ h = new TestHarness( coreName, hdfsDataDir == null ? initCoreDataDir.getAbsolutePath() : hdfsDataDir,
solrConfig,
getSchemaFile());
lrf = h.getRequestFactory
@@ -602,8 +629,6 @@ public abstract class SolrTestCaseJ4 ext
public static CoreContainer createCoreContainer(String solrHome, String solrXML) {
testSolrHome = checkNotNull(solrHome);
- if (dataDir == null)
- createTempDir();
h = new TestHarness(solrHome, solrXML);
lrf = h.getRequestFactory("standard", 0, 20, CommonParams.VERSION, "2.2");
return h.getCoreContainer();
@@ -611,9 +636,7 @@ public abstract class SolrTestCaseJ4 ext
public static CoreContainer createDefaultCoreContainer(String solrHome) {
testSolrHome = checkNotNull(solrHome);
- if (dataDir == null)
- createTempDir();
- h = new TestHarness("collection1", dataDir.getAbsolutePath(), "solrconfig.xml", "schema.xml");
+ h = new TestHarness("collection1", initCoreDataDir.getAbsolutePath(), "solrconfig.xml", "schema.xml");
lrf = h.getRequestFactory("standard", 0, 20, CommonParams.VERSION, "2.2");
return h.getCoreContainer();
}
Modified: lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/cloud/AbstractDistribZkTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/cloud/AbstractDistribZkTestBase.java?rev=1582571&r1=1582570&r2=1582571&view=diff
==============================================================================
--- lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/cloud/AbstractDistribZkTestBase.java (original)
+++ lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/cloud/AbstractDistribZkTestBase.java Fri Mar 28 00:55:45 2014
@@ -59,7 +59,6 @@ public abstract class AbstractDistribZkT
@Override
public void setUp() throws Exception {
super.setUp();
- createTempDir();
String zkDir = testDir.getAbsolutePath() + File.separator
+ "zookeeper/server1/data";
Modified: lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java?rev=1582571&r1=1582570&r2=1582571&view=diff
==============================================================================
--- lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java (original)
+++ lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java Fri Mar 28 00:55:45 2014
@@ -40,7 +40,6 @@ import java.util.concurrent.atomic.Atomi
import org.apache.commons.io.FilenameUtils;
import org.apache.http.params.CoreConnectionPNames;
-import org.apache.lucene.util.TestUtil;
import org.apache.lucene.util.LuceneTestCase.Slow;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrRequest;
@@ -285,7 +284,7 @@ public abstract class AbstractFullDistri
// System.clearProperty(ZkStateReader.NUM_SHARDS_PROP);
System.setProperty(ZkStateReader.NUM_SHARDS_PROP, "1");
- File controlJettyDir = TestUtil.createTempDir(getClass().getSimpleName() + "-controljetty");
+ File controlJettyDir = createTempDir();
setupJettySolrHome(controlJettyDir);
controlJetty = createJetty(controlJettyDir, testDir + "/control/data"); // don't pass shard name... let it default to "shard1"
@@ -360,7 +359,9 @@ public abstract class AbstractFullDistri
for (int i = 1; i <= numJettys; i++) {
if (sb.length() > 0) sb.append(',');
int cnt = this.jettyIntCntr.incrementAndGet();
- File jettyDir = TestUtil.createTempDir(getClass().getSimpleName() + "-jetty" + cnt);
+
+ File jettyDir = createTempDir();
+
jettyDir.mkdirs();
setupJettySolrHome(jettyDir);
log.info("create jetty " + i);
@@ -423,7 +424,8 @@ public abstract class AbstractFullDistri
int cnt = this.jettyIntCntr.incrementAndGet();
- File jettyDir = TestUtil.createTempDir(getClass().getSimpleName() + "-jetty" + cnt);
+
+ File jettyDir = createTempDir("jetty");
jettyDir.mkdirs();
org.apache.commons.io.FileUtils.copyDirectory(new File(getSolrHome()), jettyDir);
JettySolrRunner j = createJetty(jettyDir, testDir + "/jetty" + cnt, shard, "solrconfig.xml", null);
Modified: lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/cloud/AbstractZkTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/cloud/AbstractZkTestCase.java?rev=1582571&r1=1582570&r2=1582571&view=diff
==============================================================================
--- lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/cloud/AbstractZkTestCase.java (original)
+++ lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/cloud/AbstractZkTestCase.java Fri Mar 28 00:55:45 2014
@@ -63,8 +63,7 @@ public abstract class AbstractZkTestCase
@BeforeClass
public static void azt_beforeClass() throws Exception {
- createTempDir();
- zkDir = dataDir.getAbsolutePath() + File.separator
+ zkDir = createTempDir().getAbsolutePath() + File.separator
+ "zookeeper/server1/data";
zkServer = new ZkTestServer(zkDir);
zkServer.run();
Modified: lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/cloud/ZkTestServer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/cloud/ZkTestServer.java?rev=1582571&r1=1582570&r2=1582571&view=diff
==============================================================================
--- lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/cloud/ZkTestServer.java (original)
+++ lucene/dev/branches/solr5914/solr/test-framework/src/java/org/apache/solr/cloud/ZkTestServer.java Fri Mar 28 00:55:45 2014
@@ -53,7 +53,7 @@ public class ZkTestServer {
private int clientPort;
- private Thread zooThread;
+ private volatile Thread zooThread;
private int theTickTime = TICK_TIME;
@@ -105,9 +105,9 @@ public class ZkTestServer {
config.getMaxClientCnxns());
cnxnFactory.startup(zooKeeperServer);
cnxnFactory.join();
- if (zooKeeperServer.isRunning()) {
+ // if (zooKeeperServer.isRunning()) {
zkServer.shutdown();
- }
+ // }
} catch (InterruptedException e) {
// warn, but generally this is ok
log.warn("Server interrupted", e);
@@ -121,14 +121,19 @@ public class ZkTestServer {
protected void shutdown() throws IOException {
zooKeeperServer.shutdown();
ZKDatabase zkDb = zooKeeperServer.getZKDatabase();
- if (zkDb != null) {
- zkDb.close();
- }
if (cnxnFactory != null && cnxnFactory.getLocalPort() != 0) {
waitForServerDown(getZkHost() + ":" + getPort(), 5000);
}
if (cnxnFactory != null) {
cnxnFactory.shutdown();
+ try {
+ cnxnFactory.join();
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ }
+ }
+ if (zkDb != null) {
+ zkDb.close();
}
}
@@ -251,11 +256,15 @@ public class ZkTestServer {
}
@SuppressWarnings("deprecation")
- public void shutdown() throws IOException {
+ public void shutdown() throws IOException, InterruptedException {
// TODO: this can log an exception while trying to unregister a JMX MBean
zkServer.shutdown();
+ try {
+ zooThread.join();
+ } catch (NullPointerException e) {
+ // okay
+ }
}
-
public static boolean waitForServerDown(String hp, long timeout) {
long start = System.currentTimeMillis();