Merging with trunk.
git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/branches/solr5914@1585024 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index 8fa367f..0d029df 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -248,6 +248,9 @@
Test Framework
+* LUCENE-5577: Temporary folder and file management (and cleanup facilities)
+ (Mark Miller, Uwe Schindler, Dawid Weiss)
+
* LUCENE-5567: When a suite fails with zombie threads failure marker and count
is not propagated properly. (Dawid Weiss)
diff --git a/lucene/analysis/common/src/test/org/apache/lucene/analysis/util/TestFilesystemResourceLoader.java b/lucene/analysis/common/src/test/org/apache/lucene/analysis/util/TestFilesystemResourceLoader.java
index 8bf5dd1..2451551 100644
--- a/lucene/analysis/common/src/test/org/apache/lucene/analysis/util/TestFilesystemResourceLoader.java
+++ b/lucene/analysis/common/src/test/org/apache/lucene/analysis/util/TestFilesystemResourceLoader.java
@@ -62,7 +62,7 @@
}
public void testBaseDir() throws Exception {
- final File base = TestUtil.getTempDir("fsResourceLoaderBase").getAbsoluteFile();
+ final File base = createTempDir("fsResourceLoaderBase").getAbsoluteFile();
try {
base.mkdirs();
Writer os = new OutputStreamWriter(new FileOutputStream(new File(base, "template.txt")), StandardCharsets.UTF_8);
@@ -88,7 +88,7 @@
assertClasspathDelegation(rl);
assertNotFound(rl);
} finally {
- TestUtil.rmDir(base);
+ TestUtil.rm(base);
}
}
diff --git a/lucene/analysis/stempel/src/test/org/egothor/stemmer/TestCompile.java b/lucene/analysis/stempel/src/test/org/egothor/stemmer/TestCompile.java
index 8bca7bb..763e56a 100644
--- a/lucene/analysis/stempel/src/test/org/egothor/stemmer/TestCompile.java
+++ b/lucene/analysis/stempel/src/test/org/egothor/stemmer/TestCompile.java
@@ -75,7 +75,7 @@
public class TestCompile extends LuceneTestCase {
public void testCompile() throws Exception {
- File dir = TestUtil.getTempDir("testCompile");
+ File dir = createTempDir("testCompile");
dir.mkdirs();
InputStream input = getClass().getResourceAsStream("testRules.txt");
File output = new File(dir, "testRules.txt");
@@ -91,7 +91,7 @@
}
public void testCompileBackwards() throws Exception {
- File dir = TestUtil.getTempDir("testCompile");
+ File dir = createTempDir("testCompile");
dir.mkdirs();
InputStream input = getClass().getResourceAsStream("testRules.txt");
File output = new File(dir, "testRules.txt");
@@ -107,7 +107,7 @@
}
public void testCompileMulti() throws Exception {
- File dir = TestUtil.getTempDir("testCompile");
+ File dir = createTempDir("testCompile");
dir.mkdirs();
InputStream input = getClass().getResourceAsStream("testRules.txt");
File output = new File(dir, "testRules.txt");
diff --git a/lucene/benchmark/src/test/org/apache/lucene/benchmark/BenchmarkTestCase.java b/lucene/benchmark/src/test/org/apache/lucene/benchmark/BenchmarkTestCase.java
index a00d727..ec5efb1 100644
--- a/lucene/benchmark/src/test/org/apache/lucene/benchmark/BenchmarkTestCase.java
+++ b/lucene/benchmark/src/test/org/apache/lucene/benchmark/BenchmarkTestCase.java
@@ -36,7 +36,7 @@
@BeforeClass
public static void beforeClassBenchmarkTestCase() {
- WORKDIR = TestUtil.getTempDir("benchmark");
+ WORKDIR = createTempDir("benchmark");
WORKDIR.delete();
WORKDIR.mkdirs();
}
diff --git a/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java b/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java
index 12e1523..a0510b5 100644
--- a/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java
+++ b/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksLogic.java
@@ -387,7 +387,7 @@
* Test WriteLineDoc and LineDocSource.
*/
public void testLineDocFile() throws Exception {
- File lineFile = new File(TEMP_DIR, "test.reuters.lines.txt");
+ File lineFile = createTempFile("test.reuters.lines", ".txt");
// We will call WriteLineDocs this many times
final int NUM_TRY_DOCS = 50;
diff --git a/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksParse.java b/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksParse.java
index 7999a55..3094e84 100644
--- a/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksParse.java
+++ b/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/TestPerfTasksParse.java
@@ -20,11 +20,9 @@
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
-import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StringReader;
-import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
@@ -39,6 +37,9 @@
import org.apache.lucene.search.Query;
import org.apache.lucene.store.RAMDirectory;
import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.TestUtil;
+
+import com.carrotsearch.randomizedtesting.RandomizedTest;
import conf.ConfLoader;
@@ -124,13 +125,13 @@
Config config = new Config(new InputStreamReader(new FileInputStream(algFile), StandardCharsets.UTF_8));
String contentSource = config.get("content.source", null);
if (contentSource != null) { Class.forName(contentSource); }
- config.set("work.dir", new File(TEMP_DIR,"work").getAbsolutePath());
+ config.set("work.dir", createTempDir(LuceneTestCase.getTestClass().getSimpleName()).getAbsolutePath());
config.set("content.source", MockContentSource.class.getName());
String dir = config.get("content.source", null);
if (dir != null) { Class.forName(dir); }
config.set("directory", RAMDirectory.class.getName());
if (config.get("line.file.out", null) != null) {
- config.set("line.file.out", new File(TEMP_DIR,"o.txt").getAbsolutePath());
+ config.set("line.file.out", createTempFile("linefile", ".txt").getAbsolutePath());
}
if (config.get("query.maker", null) != null) {
Class.forName(config.get("query.maker", null));
@@ -139,9 +140,7 @@
PerfRunData data = new PerfRunData(config);
new Algorithm(data);
} catch (Throwable t) {
- t.printStackTrace();
- fail("Could not parse sample file: " + algFile + " reason:"
- + t.getClass() + ":" + t.getMessage());
+ throw new AssertionError("Could not parse sample file: " + algFile, t);
}
foundFiles = true;
}
diff --git a/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/feeds/TrecContentSourceTest.java b/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/feeds/TrecContentSourceTest.java
index 006fbba..9fc2f4f 100644
--- a/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/feeds/TrecContentSourceTest.java
+++ b/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/feeds/TrecContentSourceTest.java
@@ -344,7 +344,7 @@
* supported formats - bzip, gzip, txt.
*/
public void testTrecFeedDirAllTypes() throws Exception {
- File dataDir = TestUtil.getTempDir("trecFeedAllTypes");
+ File dataDir = createTempDir("trecFeedAllTypes");
TestUtil.unzip(getDataFile("trecdocs.zip"), dataDir);
TrecContentSource tcs = new TrecContentSource();
Properties props = new Properties();
diff --git a/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/tasks/AddIndexesTaskTest.java b/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/tasks/AddIndexesTaskTest.java
index b8a4da5..993acf1 100644
--- a/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/tasks/AddIndexesTaskTest.java
+++ b/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/tasks/AddIndexesTaskTest.java
@@ -41,7 +41,7 @@
@BeforeClass
public static void beforeClassAddIndexesTaskTest() throws Exception {
- testDir = TestUtil.getTempDir("addIndexesTask");
+ testDir = createTempDir("addIndexesTask");
// create a dummy index under inputDir
inputDir = new File(testDir, "input");
diff --git a/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/utils/StreamUtilsTest.java b/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/utils/StreamUtilsTest.java
index 15fb0c9..8a88e20 100644
--- a/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/utils/StreamUtilsTest.java
+++ b/lucene/benchmark/src/test/org/apache/lucene/benchmark/byTask/utils/StreamUtilsTest.java
@@ -136,14 +136,14 @@
public void setUp() throws Exception {
super.setUp();
testDir = new File(getWorkDir(),"ContentSourceTest");
- TestUtil.rmDir(testDir);
+ TestUtil.rm(testDir);
assertTrue(testDir.mkdirs());
}
@Override
@After
public void tearDown() throws Exception {
- TestUtil.rmDir(testDir);
+ TestUtil.rm(testDir);
super.tearDown();
}
diff --git a/lucene/codecs/src/test/org/apache/lucene/codecs/pulsing/Test10KPulsings.java b/lucene/codecs/src/test/org/apache/lucene/codecs/pulsing/Test10KPulsings.java
index eaf9639..410cacf 100644
--- a/lucene/codecs/src/test/org/apache/lucene/codecs/pulsing/Test10KPulsings.java
+++ b/lucene/codecs/src/test/org/apache/lucene/codecs/pulsing/Test10KPulsings.java
@@ -52,7 +52,7 @@
// we always run this test with pulsing codec.
Codec cp = TestUtil.alwaysPostingsFormat(new Pulsing41PostingsFormat(1));
- File f = TestUtil.getTempDir("10kpulsed");
+ File f = createTempDir("10kpulsed");
BaseDirectoryWrapper dir = newFSDirectory(f);
dir.setCheckIndexOnClose(false); // we do this ourselves explicitly
RandomIndexWriter iw = new RandomIndexWriter(random(), dir,
@@ -103,7 +103,7 @@
int freqCutoff = TestUtil.nextInt(random(), 1, 10);
Codec cp = TestUtil.alwaysPostingsFormat(new Pulsing41PostingsFormat(freqCutoff));
- File f = TestUtil.getTempDir("10knotpulsed");
+ File f = createTempDir("10knotpulsed");
BaseDirectoryWrapper dir = newFSDirectory(f);
dir.setCheckIndexOnClose(false); // we do this ourselves explicitly
RandomIndexWriter iw = new RandomIndexWriter(random(), dir,
diff --git a/lucene/common-build.xml b/lucene/common-build.xml
index 8cbf655..b51c731 100644
--- a/lucene/common-build.xml
+++ b/lucene/common-build.xml
@@ -990,6 +990,9 @@
<propertyref prefix="tests.jettyConnector" />
<propertyref prefix="tests.disableHdfs" />
<propertyref prefix="tests.filter" />
+ <propertyref prefix="tests.leavetmpdir" />
+ <propertyref prefix="tests.leaveTemporary" />
+ <propertyref prefix="solr.test.leavetmpdir" />
</syspropertyset>
<!-- Pass randomized settings to the forked JVM. -->
@@ -1238,9 +1241,11 @@
# Override forked JVM file.encoding
ant -Dtests.file.encoding=XXX ...
-# Don't remove temporary files under slave directories, even if
-# the test passes.
+# Don't remove any temporary files under slave directories, even if
+# the test passes (any of the following props):
ant -Dtests.leaveTemporary=true
+ant -Dtests.leavetmpdir=true
+ant -Dsolr.test.leavetmpdir=true
# Do *not* filter stack traces emitted to the console.
ant -Dtests.filterstacks=false
diff --git a/lucene/core/src/test/org/apache/lucene/codecs/lucene40/TestLucene40PostingsReader.java b/lucene/core/src/test/org/apache/lucene/codecs/lucene40/TestLucene40PostingsReader.java
index a149e3b..4157719 100644
--- a/lucene/core/src/test/org/apache/lucene/codecs/lucene40/TestLucene40PostingsReader.java
+++ b/lucene/core/src/test/org/apache/lucene/codecs/lucene40/TestLucene40PostingsReader.java
@@ -53,7 +53,7 @@
* depends heavily on term vectors cross-check at checkIndex
*/
public void testPostings() throws Exception {
- Directory dir = newFSDirectory(TestUtil.getTempDir("postings"));
+ Directory dir = newFSDirectory(createTempDir("postings"));
IndexWriterConfig iwc = newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random()));
iwc.setCodec(Codec.forName("Lucene40"));
RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
diff --git a/lucene/core/src/test/org/apache/lucene/codecs/lucene41/TestBlockPostingsFormat2.java b/lucene/core/src/test/org/apache/lucene/codecs/lucene41/TestBlockPostingsFormat2.java
index f336bd6..4fe2f93 100644
--- a/lucene/core/src/test/org/apache/lucene/codecs/lucene41/TestBlockPostingsFormat2.java
+++ b/lucene/core/src/test/org/apache/lucene/codecs/lucene41/TestBlockPostingsFormat2.java
@@ -43,7 +43,7 @@
@Override
public void setUp() throws Exception {
super.setUp();
- dir = newFSDirectory(TestUtil.getTempDir("testDFBlockSize"));
+ dir = newFSDirectory(createTempDir("testDFBlockSize"));
iwc = newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random()));
iwc.setCodec(TestUtil.alwaysPostingsFormat(new Lucene41PostingsFormat()));
iw = new RandomIndexWriter(random(), dir, iwc.clone());
diff --git a/lucene/core/src/test/org/apache/lucene/index/Test2BBinaryDocValues.java b/lucene/core/src/test/org/apache/lucene/index/Test2BBinaryDocValues.java
index 0741446..fd79189 100644
--- a/lucene/core/src/test/org/apache/lucene/index/Test2BBinaryDocValues.java
+++ b/lucene/core/src/test/org/apache/lucene/index/Test2BBinaryDocValues.java
@@ -38,7 +38,7 @@
// indexes Integer.MAX_VALUE docs with a fixed binary field
public void testFixedBinary() throws Exception {
- BaseDirectoryWrapper dir = newFSDirectory(TestUtil.getTempDir("2BFixedBinary"));
+ BaseDirectoryWrapper dir = newFSDirectory(createTempDir("2BFixedBinary"));
if (dir instanceof MockDirectoryWrapper) {
((MockDirectoryWrapper)dir).setThrottling(MockDirectoryWrapper.Throttling.NEVER);
}
@@ -98,7 +98,7 @@
// indexes Integer.MAX_VALUE docs with a variable binary field
public void testVariableBinary() throws Exception {
- BaseDirectoryWrapper dir = newFSDirectory(TestUtil.getTempDir("2BVariableBinary"));
+ BaseDirectoryWrapper dir = newFSDirectory(createTempDir("2BVariableBinary"));
if (dir instanceof MockDirectoryWrapper) {
((MockDirectoryWrapper)dir).setThrottling(MockDirectoryWrapper.Throttling.NEVER);
}
diff --git a/lucene/core/src/test/org/apache/lucene/index/Test2BDocs.java b/lucene/core/src/test/org/apache/lucene/index/Test2BDocs.java
index f298521..fa7b87a 100644
--- a/lucene/core/src/test/org/apache/lucene/index/Test2BDocs.java
+++ b/lucene/core/src/test/org/apache/lucene/index/Test2BDocs.java
@@ -31,7 +31,7 @@
@BeforeClass
public static void beforeClass() throws Exception {
- dir = newFSDirectory(TestUtil.getTempDir("2Bdocs"));
+ dir = newFSDirectory(createTempDir("2Bdocs"));
IndexWriter iw = new IndexWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, null));
Document doc = new Document();
for (int i = 0; i < 262144; i++) {
@@ -61,7 +61,7 @@
}
public void testExactlyAtLimit() throws Exception {
- Directory dir2 = newFSDirectory(TestUtil.getTempDir("2BDocs2"));
+ Directory dir2 = newFSDirectory(createTempDir("2BDocs2"));
IndexWriter iw = new IndexWriter(dir2, new IndexWriterConfig(TEST_VERSION_CURRENT, null));
Document doc = new Document();
for (int i = 0; i < 262143; i++) {
diff --git a/lucene/core/src/test/org/apache/lucene/index/Test2BNumericDocValues.java b/lucene/core/src/test/org/apache/lucene/index/Test2BNumericDocValues.java
index f83ef7a..c02dad3 100644
--- a/lucene/core/src/test/org/apache/lucene/index/Test2BNumericDocValues.java
+++ b/lucene/core/src/test/org/apache/lucene/index/Test2BNumericDocValues.java
@@ -35,7 +35,7 @@
// indexes Integer.MAX_VALUE docs with an increasing dv field
public void testNumerics() throws Exception {
- BaseDirectoryWrapper dir = newFSDirectory(TestUtil.getTempDir("2BNumerics"));
+ BaseDirectoryWrapper dir = newFSDirectory(createTempDir("2BNumerics"));
if (dir instanceof MockDirectoryWrapper) {
((MockDirectoryWrapper)dir).setThrottling(MockDirectoryWrapper.Throttling.NEVER);
}
diff --git a/lucene/core/src/test/org/apache/lucene/index/Test2BPositions.java b/lucene/core/src/test/org/apache/lucene/index/Test2BPositions.java
index 7b99513..08dce80 100644
--- a/lucene/core/src/test/org/apache/lucene/index/Test2BPositions.java
+++ b/lucene/core/src/test/org/apache/lucene/index/Test2BPositions.java
@@ -47,7 +47,7 @@
// uses lots of space and takes a few minutes
@Ignore("Very slow. Enable manually by removing @Ignore.")
public void test() throws Exception {
- BaseDirectoryWrapper dir = newFSDirectory(TestUtil.getTempDir("2BPositions"));
+ BaseDirectoryWrapper dir = newFSDirectory(createTempDir("2BPositions"));
if (dir instanceof MockDirectoryWrapper) {
((MockDirectoryWrapper)dir).setThrottling(MockDirectoryWrapper.Throttling.NEVER);
}
diff --git a/lucene/core/src/test/org/apache/lucene/index/Test2BPostings.java b/lucene/core/src/test/org/apache/lucene/index/Test2BPostings.java
index 8fad986..d9297f8 100644
--- a/lucene/core/src/test/org/apache/lucene/index/Test2BPostings.java
+++ b/lucene/core/src/test/org/apache/lucene/index/Test2BPostings.java
@@ -45,7 +45,7 @@
@Nightly
public void test() throws Exception {
- BaseDirectoryWrapper dir = newFSDirectory(TestUtil.getTempDir("2BPostings"));
+ BaseDirectoryWrapper dir = newFSDirectory(createTempDir("2BPostings"));
if (dir instanceof MockDirectoryWrapper) {
((MockDirectoryWrapper)dir).setThrottling(MockDirectoryWrapper.Throttling.NEVER);
}
diff --git a/lucene/core/src/test/org/apache/lucene/index/Test2BPostingsBytes.java b/lucene/core/src/test/org/apache/lucene/index/Test2BPostingsBytes.java
index 71ffeae..1fdedae 100644
--- a/lucene/core/src/test/org/apache/lucene/index/Test2BPostingsBytes.java
+++ b/lucene/core/src/test/org/apache/lucene/index/Test2BPostingsBytes.java
@@ -50,7 +50,7 @@
// with some codecs needs more heap space as well.
@Ignore("Very slow. Enable manually by removing @Ignore.")
public void test() throws Exception {
- BaseDirectoryWrapper dir = newFSDirectory(TestUtil.getTempDir("2BPostingsBytes1"));
+ BaseDirectoryWrapper dir = newFSDirectory(createTempDir("2BPostingsBytes1"));
if (dir instanceof MockDirectoryWrapper) {
((MockDirectoryWrapper)dir).setThrottling(MockDirectoryWrapper.Throttling.NEVER);
}
@@ -93,7 +93,7 @@
IndexReader subReaders[] = new IndexReader[1000];
Arrays.fill(subReaders, oneThousand);
MultiReader mr = new MultiReader(subReaders);
- BaseDirectoryWrapper dir2 = newFSDirectory(TestUtil.getTempDir("2BPostingsBytes2"));
+ BaseDirectoryWrapper dir2 = newFSDirectory(createTempDir("2BPostingsBytes2"));
if (dir2 instanceof MockDirectoryWrapper) {
((MockDirectoryWrapper)dir2).setThrottling(MockDirectoryWrapper.Throttling.NEVER);
}
@@ -108,7 +108,7 @@
subReaders = new IndexReader[2000];
Arrays.fill(subReaders, oneMillion);
mr = new MultiReader(subReaders);
- BaseDirectoryWrapper dir3 = newFSDirectory(TestUtil.getTempDir("2BPostingsBytes3"));
+ BaseDirectoryWrapper dir3 = newFSDirectory(createTempDir("2BPostingsBytes3"));
if (dir3 instanceof MockDirectoryWrapper) {
((MockDirectoryWrapper)dir3).setThrottling(MockDirectoryWrapper.Throttling.NEVER);
}
diff --git a/lucene/core/src/test/org/apache/lucene/index/Test2BSortedDocValues.java b/lucene/core/src/test/org/apache/lucene/index/Test2BSortedDocValues.java
index b7c7a0f..355b364 100644
--- a/lucene/core/src/test/org/apache/lucene/index/Test2BSortedDocValues.java
+++ b/lucene/core/src/test/org/apache/lucene/index/Test2BSortedDocValues.java
@@ -38,7 +38,7 @@
// indexes Integer.MAX_VALUE docs with a fixed binary field
public void testFixedSorted() throws Exception {
- BaseDirectoryWrapper dir = newFSDirectory(TestUtil.getTempDir("2BFixedSorted"));
+ BaseDirectoryWrapper dir = newFSDirectory(createTempDir("2BFixedSorted"));
if (dir instanceof MockDirectoryWrapper) {
((MockDirectoryWrapper)dir).setThrottling(MockDirectoryWrapper.Throttling.NEVER);
}
@@ -95,7 +95,7 @@
// indexes Integer.MAX_VALUE docs with a fixed binary field
// TODO: must use random.nextBytes (like Test2BTerms) to avoid BytesRefHash probing issues
public void test2BOrds() throws Exception {
- BaseDirectoryWrapper dir = newFSDirectory(TestUtil.getTempDir("2BOrds"));
+ BaseDirectoryWrapper dir = newFSDirectory(createTempDir("2BOrds"));
if (dir instanceof MockDirectoryWrapper) {
((MockDirectoryWrapper)dir).setThrottling(MockDirectoryWrapper.Throttling.NEVER);
}
diff --git a/lucene/core/src/test/org/apache/lucene/index/Test2BTerms.java b/lucene/core/src/test/org/apache/lucene/index/Test2BTerms.java
index 8616615..bc36331 100644
--- a/lucene/core/src/test/org/apache/lucene/index/Test2BTerms.java
+++ b/lucene/core/src/test/org/apache/lucene/index/Test2BTerms.java
@@ -148,7 +148,7 @@
List<BytesRef> savedTerms = null;
- BaseDirectoryWrapper dir = newFSDirectory(TestUtil.getTempDir("2BTerms"));
+ BaseDirectoryWrapper dir = newFSDirectory(createTempDir("2BTerms"));
//MockDirectoryWrapper dir = newFSDirectory(new File("/p/lucene/indices/2bindex"));
if (dir instanceof MockDirectoryWrapper) {
((MockDirectoryWrapper)dir).setThrottling(MockDirectoryWrapper.Throttling.NEVER);
diff --git a/lucene/core/src/test/org/apache/lucene/index/Test4GBStoredFields.java b/lucene/core/src/test/org/apache/lucene/index/Test4GBStoredFields.java
index 14b5ba5..731a23a 100644
--- a/lucene/core/src/test/org/apache/lucene/index/Test4GBStoredFields.java
+++ b/lucene/core/src/test/org/apache/lucene/index/Test4GBStoredFields.java
@@ -42,7 +42,7 @@
@Nightly
public void test() throws Exception {
- MockDirectoryWrapper dir = new MockDirectoryWrapper(random(), new MMapDirectory(TestUtil.getTempDir("4GBStoredFields")));
+ MockDirectoryWrapper dir = new MockDirectoryWrapper(random(), new MMapDirectory(createTempDir("4GBStoredFields")));
dir.setThrottling(MockDirectoryWrapper.Throttling.NEVER);
IndexWriter w = new IndexWriter(dir,
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestAtomicUpdate.java b/lucene/core/src/test/org/apache/lucene/index/TestAtomicUpdate.java
index e94667c..3e0a2ee 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestAtomicUpdate.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestAtomicUpdate.java
@@ -175,10 +175,10 @@
directory.close();
// Second in an FSDirectory:
- File dirPath = TestUtil.getTempDir("lucene.test.atomic");
+ File dirPath = createTempDir("lucene.test.atomic");
directory = newFSDirectory(dirPath);
runTest(directory);
directory.close();
- TestUtil.rmDir(dirPath);
+ TestUtil.rm(dirPath);
}
}
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java b/lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
index c3b7dda..7a568af 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java
@@ -228,7 +228,7 @@
names.addAll(Arrays.asList(oldSingleSegmentNames));
oldIndexDirs = new HashMap<>();
for (String name : names) {
- File dir = TestUtil.getTempDir(name);
+ File dir = createTempDir(name);
File dataFile = new File(TestBackwardsCompatibility.class.getResource("index." + name + ".zip").toURI());
TestUtil.unzip(dataFile, dir);
oldIndexDirs.put(name, newFSDirectory(dir));
@@ -249,7 +249,7 @@
if (VERBOSE) {
System.out.println("TEST: index " + unsupportedNames[i]);
}
- File oldIndxeDir = TestUtil.getTempDir(unsupportedNames[i]);
+ File oldIndxeDir = createTempDir(unsupportedNames[i]);
TestUtil.unzip(getDataFile("unsupported." + unsupportedNames[i] + ".zip"), oldIndxeDir);
BaseDirectoryWrapper dir = newFSDirectory(oldIndxeDir);
// don't checkindex, these are intentionally not supported
@@ -299,7 +299,7 @@
assertTrue(bos.toString(IOUtils.UTF_8).contains(IndexFormatTooOldException.class.getName()));
dir.close();
- TestUtil.rmDir(oldIndxeDir);
+ TestUtil.rm(oldIndxeDir);
}
}
@@ -598,7 +598,7 @@
public File createIndex(String dirName, boolean doCFS, boolean fullyMerged) throws IOException {
// we use a real directory name that is not cleaned up, because this method is only used to create backwards indexes:
File indexDir = new File("/tmp/idx", dirName);
- TestUtil.rmDir(indexDir);
+ TestUtil.rm(indexDir);
Directory dir = newFSDirectory(indexDir);
LogByteSizeMergePolicy mp = new LogByteSizeMergePolicy();
mp.setNoCFSRatio(doCFS ? 1.0 : 0.0);
@@ -646,8 +646,8 @@
public void testExactFileNames() throws IOException {
String outputDirName = "lucene.backwardscompat0.index";
- File outputDir = TestUtil.getTempDir(outputDirName);
- TestUtil.rmDir(outputDir);
+ File outputDir = createTempDir(outputDirName);
+ TestUtil.rm(outputDir);
try {
Directory dir = newFSDirectory(outputDir);
@@ -705,7 +705,7 @@
}
dir.close();
} finally {
- TestUtil.rmDir(outputDir);
+ TestUtil.rm(outputDir);
}
}
@@ -956,7 +956,7 @@
public void testCommandLineArgs() throws Exception {
for (String name : oldIndexDirs.keySet()) {
- File dir = TestUtil.getTempDir(name);
+ File dir = createTempDir(name);
File dataFile = new File(TestBackwardsCompatibility.class.getResource("index." + name + ".zip").toURI());
TestUtil.unzip(dataFile, dir);
@@ -1049,7 +1049,7 @@
public static final String moreTermsIndex = "moreterms.40.zip";
public void testMoreTerms() throws Exception {
- File oldIndexDir = TestUtil.getTempDir("moreterms");
+ File oldIndexDir = createTempDir("moreterms");
TestUtil.unzip(getDataFile(moreTermsIndex), oldIndexDir);
Directory dir = newFSDirectory(oldIndexDir);
// TODO: more tests
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestBagOfPositions.java b/lucene/core/src/test/org/apache/lucene/index/TestBagOfPositions.java
index eddba07..726ee87 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestBagOfPositions.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestBagOfPositions.java
@@ -68,7 +68,7 @@
final ConcurrentLinkedQueue<String> postings = new ConcurrentLinkedQueue<>(postingsList);
- Directory dir = newFSDirectory(TestUtil.getTempDir("bagofpositions"));
+ Directory dir = newFSDirectory(createTempDir("bagofpositions"));
final RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestBagOfPostings.java b/lucene/core/src/test/org/apache/lucene/index/TestBagOfPostings.java
index a3067e0..0b8c176 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestBagOfPostings.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestBagOfPostings.java
@@ -70,7 +70,7 @@
final ConcurrentLinkedQueue<String> postings = new ConcurrentLinkedQueue<>(postingsList);
- Directory dir = newFSDirectory(TestUtil.getTempDir("bagofpostings"));
+ Directory dir = newFSDirectory(createTempDir("bagofpostings"));
final RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwc);
int threadCount = TestUtil.nextInt(random(), 1, 5);
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestCompoundFile.java b/lucene/core/src/test/org/apache/lucene/index/TestCompoundFile.java
index 489d892..a7465ef 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestCompoundFile.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestCompoundFile.java
@@ -42,7 +42,7 @@
@Override
public void setUp() throws Exception {
super.setUp();
- File file = TestUtil.getTempDir("testIndex");
+ File file = createTempDir("testIndex");
// use a simple FSDir here, to be sure to have SimpleFSInputs
dir = new SimpleFSDirectory(file,null);
}
@@ -769,7 +769,7 @@
// when reading a CFS with many subs:
public void testManySubFiles() throws IOException {
- final Directory d = newFSDirectory(TestUtil.getTempDir("CFSManySubFiles"));
+ final Directory d = newFSDirectory(createTempDir("CFSManySubFiles"));
final int FILE_COUNT = atLeast(500);
for(int fileIdx=0;fileIdx<FILE_COUNT;fileIdx++) {
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestCrashCausesCorruptIndex.java b/lucene/core/src/test/org/apache/lucene/index/TestCrashCausesCorruptIndex.java
index 5cd1f7a..d75664c 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestCrashCausesCorruptIndex.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestCrashCausesCorruptIndex.java
@@ -42,7 +42,7 @@
* LUCENE-3627: This test fails.
*/
public void testCrashCorruptsIndexing() throws Exception {
- path = TestUtil.getTempDir("testCrashCorruptsIndexing");
+ path = createTempDir("testCrashCorruptsIndexing");
indexAndCrashOnCreateOutputSegments2();
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java b/lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java
index 89fd377..1cb79bd 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestDirectoryReader.java
@@ -438,7 +438,7 @@
public void testFilesOpenClose() throws IOException {
// Create initial data set
- File dirFile = TestUtil.getTempDir("TestIndexReader.testFilesOpenClose");
+ File dirFile = createTempDir("TestIndexReader.testFilesOpenClose");
Directory dir = newFSDirectory(dirFile);
IndexWriter writer = new IndexWriter(dir, newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())));
addDoc(writer, "test");
@@ -446,7 +446,7 @@
dir.close();
// Try to erase the data - this ensures that the writer closed all files
- TestUtil.rmDir(dirFile);
+ TestUtil.rm(dirFile);
dir = newFSDirectory(dirFile);
// Now create the data set again, just as before
@@ -463,11 +463,11 @@
// The following will fail if reader did not close
// all files
- TestUtil.rmDir(dirFile);
+ TestUtil.rm(dirFile);
}
public void testOpenReaderAfterDelete() throws IOException {
- File dirFile = TestUtil.getTempDir("deletetest");
+ File dirFile = createTempDir("deletetest");
Directory dir = newFSDirectory(dirFile);
try {
DirectoryReader.open(dir);
@@ -715,8 +715,8 @@
// DirectoryReader on a non-existent directory, you get a
// good exception
public void testNoDir() throws Throwable {
- File tempDir = TestUtil.getTempDir("doesnotexist");
- TestUtil.rmDir(tempDir);
+ File tempDir = createTempDir("doesnotexist");
+ TestUtil.rm(tempDir);
Directory dir = newFSDirectory(tempDir);
try {
DirectoryReader.open(dir);
@@ -1090,7 +1090,7 @@
}
public void testIndexExistsOnNonExistentDirectory() throws Exception {
- File tempDir = TestUtil.getTempDir("testIndexExistsOnNonExistentDirectory");
+ File tempDir = createTempDir("testIndexExistsOnNonExistentDirectory");
tempDir.delete();
Directory dir = newFSDirectory(tempDir);
assertFalse(DirectoryReader.indexExists(dir));
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestDoc.java b/lucene/core/src/test/org/apache/lucene/index/TestDoc.java
index b6c2f75..ea88c06 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestDoc.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestDoc.java
@@ -63,10 +63,10 @@
if (VERBOSE) {
System.out.println("TEST: setUp");
}
- workDir = TestUtil.getTempDir("TestDoc");
+ workDir = createTempDir("TestDoc");
workDir.mkdirs();
- indexDir = TestUtil.getTempDir("testIndex");
+ indexDir = createTempDir("testIndex");
indexDir.mkdirs();
Directory directory = newFSDirectory(indexDir);
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestFieldsReader.java b/lucene/core/src/test/org/apache/lucene/index/TestFieldsReader.java
index 3c188bc..b1e3adf 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestFieldsReader.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestFieldsReader.java
@@ -187,7 +187,7 @@
// LUCENE-1262
public void testExceptions() throws Throwable {
- File indexDir = TestUtil.getTempDir("testfieldswriterexceptions");
+ File indexDir = createTempDir("testfieldswriterexceptions");
try {
Directory dir = new FaultyFSDirectory(indexDir);
@@ -223,7 +223,7 @@
reader.close();
dir.close();
} finally {
- TestUtil.rmDir(indexDir);
+ TestUtil.rm(indexDir);
}
}
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java b/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
index 6bfe709..d6a7853 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
@@ -1477,7 +1477,7 @@
// Tests that if FSDir is opened w/ a NoLockFactory (or SingleInstanceLF),
// then IndexWriter ctor succeeds. Previously (LUCENE-2386) it failed
// when listAll() was called in IndexFileDeleter.
- Directory dir = newFSDirectory(TestUtil.getTempDir("emptyFSDirNoLock"), NoLockFactory.getNoLockFactory());
+ Directory dir = newFSDirectory(createTempDir("emptyFSDirNoLock"), NoLockFactory.getNoLockFactory());
new IndexWriter(dir, newIndexWriterConfig( TEST_VERSION_CURRENT, new MockAnalyzer(random()))).close();
dir.close();
}
@@ -1784,7 +1784,7 @@
}
public void testWhetherDeleteAllDeletesWriteLock() throws Exception {
- Directory d = newFSDirectory(TestUtil.getTempDir("TestIndexWriter.testWhetherDeleteAllDeletesWriteLock"));
+ Directory d = newFSDirectory(createTempDir("TestIndexWriter.testWhetherDeleteAllDeletesWriteLock"));
// Must use SimpleFSLockFactory... NativeFSLockFactory
// somehow "knows" a lock is held against write.lock
// even if you remove that file:
@@ -2033,7 +2033,7 @@
// LUCENE-4398
public void testRotatingFieldNames() throws Exception {
- Directory dir = newFSDirectory(TestUtil.getTempDir("TestIndexWriter.testChangingFields"));
+ Directory dir = newFSDirectory(createTempDir("TestIndexWriter.testChangingFields"));
IndexWriterConfig iwc = new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random()));
iwc.setRAMBufferSizeMB(0.2);
iwc.setMaxBufferedDocs(-1);
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterLockRelease.java b/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterLockRelease.java
index 0833c6e..6cc6a0e 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterLockRelease.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterLockRelease.java
@@ -36,7 +36,7 @@
public class TestIndexWriterLockRelease extends LuceneTestCase {
public void testIndexWriterLockRelease() throws IOException {
- Directory dir = newFSDirectory(TestUtil.getTempDir("testLockRelease"));
+ Directory dir = newFSDirectory(createTempDir("testLockRelease"));
try {
new IndexWriter(dir, new IndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random())).setOpenMode(OpenMode.APPEND));
} catch (FileNotFoundException | NoSuchFileException e) {
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnJRECrash.java b/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnJRECrash.java
index 9620ed7..1ae4a5b 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnJRECrash.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOnJRECrash.java
@@ -43,7 +43,7 @@
@Override
public void setUp() throws Exception {
super.setUp();
- tempDir = TestUtil.getTempDir("jrecrash");
+ tempDir = createTempDir("jrecrash");
tempDir.delete();
tempDir.mkdir();
}
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOutOfFileDescriptors.java b/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOutOfFileDescriptors.java
index ac3ff6e..16c2e00 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOutOfFileDescriptors.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestIndexWriterOutOfFileDescriptors.java
@@ -32,7 +32,7 @@
public class TestIndexWriterOutOfFileDescriptors extends LuceneTestCase {
public void test() throws Exception {
- MockDirectoryWrapper dir = newMockFSDirectory(TestUtil.getTempDir("TestIndexWriterOutOfFileDescriptors"));
+ MockDirectoryWrapper dir = newMockFSDirectory(createTempDir("TestIndexWriterOutOfFileDescriptors"));
dir.setPreventDoubleWrite(false);
double rate = random().nextDouble()*0.01;
//System.out.println("rate=" + rate);
@@ -132,7 +132,7 @@
// it to addIndexes later:
dir.setRandomIOExceptionRateOnOpen(0.0);
r = DirectoryReader.open(dir);
- dirCopy = newMockFSDirectory(TestUtil.getTempDir("TestIndexWriterOutOfFileDescriptors.copy"));
+ dirCopy = newMockFSDirectory(createTempDir("TestIndexWriterOutOfFileDescriptors.copy"));
Set<String> files = new HashSet<>();
for (String file : dir.listAll()) {
dir.copy(dirCopy, file, file, IOContext.DEFAULT);
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestLongPostings.java b/lucene/core/src/test/org/apache/lucene/index/TestLongPostings.java
index 5c767c0..6ee79e9 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestLongPostings.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestLongPostings.java
@@ -78,7 +78,7 @@
public void testLongPostings() throws Exception {
// Don't use _TestUtil.getTempDir so that we own the
// randomness (ie same seed will point to same dir):
- Directory dir = newFSDirectory(TestUtil.getTempDir("longpostings" + "." + random().nextLong()));
+ Directory dir = newFSDirectory(createTempDir("longpostings" + "." + random().nextLong()));
final int NUM_DOCS = atLeast(2000);
@@ -275,7 +275,7 @@
public void doTestLongPostingsNoPositions(IndexOptions options) throws Exception {
// Don't use _TestUtil.getTempDir so that we own the
// randomness (ie same seed will point to same dir):
- Directory dir = newFSDirectory(TestUtil.getTempDir("longpostings" + "." + random().nextLong()));
+ Directory dir = newFSDirectory(createTempDir("longpostings" + "." + random().nextLong()));
final int NUM_DOCS = atLeast(2000);
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestNeverDelete.java b/lucene/core/src/test/org/apache/lucene/index/TestNeverDelete.java
index 21facbb..bdd6f988 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestNeverDelete.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestNeverDelete.java
@@ -35,7 +35,7 @@
public class TestNeverDelete extends LuceneTestCase {
public void testIndexing() throws Exception {
- final File tmpDir = TestUtil.getTempDir("TestNeverDelete");
+ final File tmpDir = createTempDir("TestNeverDelete");
final BaseDirectoryWrapper d = newFSDirectory(tmpDir);
// We want to "see" files removed if Lucene removed
@@ -108,6 +108,6 @@
w.close();
d.close();
- TestUtil.rmDir(tmpDir);
+ TestUtil.rm(tmpDir);
}
}
diff --git a/lucene/core/src/test/org/apache/lucene/index/TestNorms.java b/lucene/core/src/test/org/apache/lucene/index/TestNorms.java
index 3e365e7..643af1b 100644
--- a/lucene/core/src/test/org/apache/lucene/index/TestNorms.java
+++ b/lucene/core/src/test/org/apache/lucene/index/TestNorms.java
@@ -109,7 +109,7 @@
}
public void testMaxByteNorms() throws IOException {
- Directory dir = newFSDirectory(TestUtil.getTempDir("TestNorms.testMaxByteNorms"));
+ Directory dir = newFSDirectory(createTempDir("TestNorms.testMaxByteNorms"));
buildIndex(dir);
AtomicReader open = SlowCompositeReaderWrapper.wrap(DirectoryReader.open(dir));
NumericDocValues normValues = open.getNormValues(byteTestField);
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestControlledRealTimeReopenThread.java b/lucene/core/src/test/org/apache/lucene/search/TestControlledRealTimeReopenThread.java
index 16763ff..e8a07625 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestControlledRealTimeReopenThread.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestControlledRealTimeReopenThread.java
@@ -473,7 +473,7 @@
String content = builder.toString();
final SnapshotDeletionPolicy sdp = new SnapshotDeletionPolicy(new KeepOnlyLastCommitDeletionPolicy());
- final Directory dir = new NRTCachingDirectory(newFSDirectory(TestUtil.getTempDir("nrt")), 5, 128);
+ final Directory dir = new NRTCachingDirectory(newFSDirectory(createTempDir("nrt")), 5, 128);
IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_46,
new MockAnalyzer(random()));
config.setIndexDeletionPolicy(sdp);
diff --git a/lucene/core/src/test/org/apache/lucene/search/TestLiveFieldValues.java b/lucene/core/src/test/org/apache/lucene/search/TestLiveFieldValues.java
index 6a4f295..5c4e085 100644
--- a/lucene/core/src/test/org/apache/lucene/search/TestLiveFieldValues.java
+++ b/lucene/core/src/test/org/apache/lucene/search/TestLiveFieldValues.java
@@ -44,7 +44,7 @@
public class TestLiveFieldValues extends LuceneTestCase {
public void test() throws Exception {
- Directory dir = newFSDirectory(TestUtil.getTempDir("livefieldupdates"));
+ Directory dir = newFSDirectory(createTempDir("livefieldupdates"));
IndexWriterConfig iwc = newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random()));
final IndexWriter w = new IndexWriter(dir, iwc);
diff --git a/lucene/core/src/test/org/apache/lucene/store/TestBufferedIndexInput.java b/lucene/core/src/test/org/apache/lucene/store/TestBufferedIndexInput.java
index 4b90c78..53883a1 100644
--- a/lucene/core/src/test/org/apache/lucene/store/TestBufferedIndexInput.java
+++ b/lucene/core/src/test/org/apache/lucene/store/TestBufferedIndexInput.java
@@ -222,7 +222,7 @@
}
public void testSetBufferSize() throws IOException {
- File indexDir = TestUtil.getTempDir("testSetBufferSize");
+ File indexDir = createTempDir("testSetBufferSize");
MockFSDirectory dir = new MockFSDirectory(indexDir, random());
try {
IndexWriter writer = new IndexWriter(
@@ -274,7 +274,7 @@
writer.close();
reader.close();
} finally {
- TestUtil.rmDir(indexDir);
+ TestUtil.rm(indexDir);
}
}
diff --git a/lucene/core/src/test/org/apache/lucene/store/TestDirectory.java b/lucene/core/src/test/org/apache/lucene/store/TestDirectory.java
index 7e0b4d3..e26b66f 100644
--- a/lucene/core/src/test/org/apache/lucene/store/TestDirectory.java
+++ b/lucene/core/src/test/org/apache/lucene/store/TestDirectory.java
@@ -30,10 +30,11 @@
public class TestDirectory extends LuceneTestCase {
public void testDetectClose() throws Throwable {
+ File tempDir = createTempDir(LuceneTestCase.getTestClass().getSimpleName());
Directory[] dirs = new Directory[] {
new RAMDirectory(),
- new SimpleFSDirectory(TEMP_DIR),
- new NIOFSDirectory(TEMP_DIR)
+ new SimpleFSDirectory(tempDir),
+ new NIOFSDirectory(tempDir)
};
for (Directory dir : dirs) {
@@ -135,7 +136,7 @@
// Test that different instances of FSDirectory can coexist on the same
// path, can read, write, and lock files.
public void testDirectInstantiation() throws Exception {
- final File path = TestUtil.getTempDir("testDirectInstantiation");
+ final File path = createTempDir("testDirectInstantiation");
final byte[] largeBuffer = new byte[random().nextInt(256*1024)], largeReadBuffer = new byte[largeBuffer.length];
for (int i = 0; i < largeBuffer.length; i++) {
@@ -218,19 +219,19 @@
assertFalse(dir.isOpen);
}
- TestUtil.rmDir(path);
+ TestUtil.rm(path);
}
// LUCENE-1464
public void testDontCreate() throws Throwable {
- File path = new File(TEMP_DIR, "doesnotexist");
+ File path = new File(createTempDir(LuceneTestCase.getTestClass().getSimpleName()), "doesnotexist");
try {
assertTrue(!path.exists());
Directory dir = new SimpleFSDirectory(path, null);
assertTrue(!path.exists());
dir.close();
} finally {
- TestUtil.rmDir(path);
+ TestUtil.rm(path);
}
}
@@ -241,7 +242,7 @@
// LUCENE-1468
public void testFSDirectoryFilter() throws IOException {
- checkDirectoryFilter(newFSDirectory(TestUtil.getTempDir("test")));
+ checkDirectoryFilter(newFSDirectory(createTempDir("test")));
}
// LUCENE-1468
@@ -258,20 +259,20 @@
// LUCENE-1468
public void testCopySubdir() throws Throwable {
- File path = TestUtil.getTempDir("testsubdir");
+ File path = createTempDir("testsubdir");
try {
path.mkdirs();
new File(path, "subdir").mkdirs();
Directory fsDir = new SimpleFSDirectory(path, null);
assertEquals(0, new RAMDirectory(fsDir, newIOContext(random())).listAll().length);
} finally {
- TestUtil.rmDir(path);
+ TestUtil.rm(path);
}
}
// LUCENE-1468
public void testNotDirectory() throws Throwable {
- File path = TestUtil.getTempDir("testnotdir");
+ File path = createTempDir("testnotdir");
Directory fsDir = new SimpleFSDirectory(path, null);
try {
IndexOutput out = fsDir.createOutput("afile", newIOContext(random()));
@@ -285,7 +286,7 @@
}
} finally {
fsDir.close();
- TestUtil.rmDir(path);
+ TestUtil.rm(path);
}
}
diff --git a/lucene/core/src/test/org/apache/lucene/store/TestFileSwitchDirectory.java b/lucene/core/src/test/org/apache/lucene/store/TestFileSwitchDirectory.java
index f7e6ecb..17a5549 100644
--- a/lucene/core/src/test/org/apache/lucene/store/TestFileSwitchDirectory.java
+++ b/lucene/core/src/test/org/apache/lucene/store/TestFileSwitchDirectory.java
@@ -88,8 +88,8 @@
}
private Directory newFSSwitchDirectory(Set<String> primaryExtensions) throws IOException {
- File primDir = TestUtil.getTempDir("foo");
- File secondDir = TestUtil.getTempDir("bar");
+ File primDir = createTempDir("foo");
+ File secondDir = createTempDir("bar");
return newFSSwitchDirectory(primDir, secondDir, primaryExtensions);
}
@@ -102,10 +102,10 @@
// LUCENE-3380 -- make sure we get exception if the directory really does not exist.
public void testNoDir() throws Throwable {
- File primDir = TestUtil.getTempDir("foo");
- File secondDir = TestUtil.getTempDir("bar");
- TestUtil.rmDir(primDir);
- TestUtil.rmDir(secondDir);
+ File primDir = createTempDir("foo");
+ File secondDir = createTempDir("bar");
+ TestUtil.rm(primDir);
+ TestUtil.rm(secondDir);
Directory dir = newFSSwitchDirectory(primDir, secondDir, Collections.<String>emptySet());
try {
DirectoryReader.open(dir);
diff --git a/lucene/core/src/test/org/apache/lucene/store/TestLockFactory.java b/lucene/core/src/test/org/apache/lucene/store/TestLockFactory.java
index 137ed92..e1b5bef 100644
--- a/lucene/core/src/test/org/apache/lucene/store/TestLockFactory.java
+++ b/lucene/core/src/test/org/apache/lucene/store/TestLockFactory.java
@@ -136,7 +136,7 @@
// no unexpected exceptions are raised:
@Nightly
public void testStressLocks() throws Exception {
- _testStressLocks(null, TestUtil.getTempDir("index.TestLockFactory6"));
+ _testStressLocks(null, createTempDir("index.TestLockFactory6"));
}
// Verify: do stress test, by opening IndexReaders and
@@ -145,7 +145,7 @@
// NativeFSLockFactory:
@Nightly
public void testStressLocksNativeFSLockFactory() throws Exception {
- File dir = TestUtil.getTempDir("index.TestLockFactory7");
+ File dir = createTempDir("index.TestLockFactory7");
_testStressLocks(new NativeFSLockFactory(dir), dir);
}
@@ -171,13 +171,12 @@
dir.close();
// Cleanup
- TestUtil.rmDir(indexDir);
+ TestUtil.rm(indexDir);
}
// Verify: NativeFSLockFactory works correctly
public void testNativeFSLockFactory() throws IOException {
-
- NativeFSLockFactory f = new NativeFSLockFactory(TEMP_DIR);
+ NativeFSLockFactory f = new NativeFSLockFactory(createTempDir(LuceneTestCase.getTestClass().getSimpleName()));
f.setLockPrefix("test");
Lock l = f.makeLock("commit");
@@ -202,11 +201,11 @@
// Verify: NativeFSLockFactory works correctly if the lock file exists
public void testNativeFSLockFactoryLockExists() throws IOException {
-
- File lockFile = new File(TEMP_DIR, "test.lock");
+ File tempDir = createTempDir(LuceneTestCase.getTestClass().getSimpleName());
+ File lockFile = new File(tempDir, "test.lock");
lockFile.createNewFile();
- Lock l = new NativeFSLockFactory(TEMP_DIR).makeLock("test.lock");
+ Lock l = new NativeFSLockFactory(tempDir).makeLock("test.lock");
assertTrue("failed to obtain lock", l.obtain());
l.close();
assertFalse("failed to release lock", l.isLocked());
@@ -216,8 +215,7 @@
}
public void testNativeFSLockReleaseByOtherLock() throws IOException {
-
- NativeFSLockFactory f = new NativeFSLockFactory(TEMP_DIR);
+ NativeFSLockFactory f = new NativeFSLockFactory(createTempDir(LuceneTestCase.getTestClass().getSimpleName()));
f.setLockPrefix("test");
Lock l = f.makeLock("commit");
@@ -238,8 +236,8 @@
// Verify: NativeFSLockFactory assigns null as lockPrefix if the lockDir is inside directory
public void testNativeFSLockFactoryPrefix() throws IOException {
- File fdir1 = TestUtil.getTempDir("TestLockFactory.8");
- File fdir2 = TestUtil.getTempDir("TestLockFactory.8.Lockdir");
+ File fdir1 = createTempDir("TestLockFactory.8");
+ File fdir2 = createTempDir("TestLockFactory.8.Lockdir");
Directory dir1 = newFSDirectory(fdir1, new NativeFSLockFactory(fdir1));
// same directory, but locks are stored somewhere else. The prefix of the lock factory should != null
Directory dir2 = newFSDirectory(fdir1, new NativeFSLockFactory(fdir2));
@@ -252,8 +250,8 @@
dir1.close();
dir2.close();
- TestUtil.rmDir(fdir1);
- TestUtil.rmDir(fdir2);
+ TestUtil.rm(fdir1);
+ TestUtil.rm(fdir2);
}
// Verify: default LockFactory has no prefix (ie
@@ -261,7 +259,7 @@
public void testDefaultFSLockFactoryPrefix() throws IOException {
// Make sure we get null prefix, which wont happen if setLockFactory is ever called.
- File dirName = TestUtil.getTempDir("TestLockFactory.10");
+ File dirName = createTempDir("TestLockFactory.10");
Directory dir = new SimpleFSDirectory(dirName);
assertNull("Default lock prefix should be null", dir.getLockFactory().getLockPrefix());
@@ -275,7 +273,7 @@
assertNull("Default lock prefix should be null", dir.getLockFactory().getLockPrefix());
dir.close();
- TestUtil.rmDir(dirName);
+ TestUtil.rm(dirName);
}
private class WriterThread extends Thread {
diff --git a/lucene/core/src/test/org/apache/lucene/store/TestMultiMMap.java b/lucene/core/src/test/org/apache/lucene/store/TestMultiMMap.java
index 9ddd715..17f60ad 100644
--- a/lucene/core/src/test/org/apache/lucene/store/TestMultiMMap.java
+++ b/lucene/core/src/test/org/apache/lucene/store/TestMultiMMap.java
@@ -38,18 +38,15 @@
* Integer.MAX_VALUE in size using multiple byte buffers.
*/
public class TestMultiMMap extends LuceneTestCase {
- File workDir;
@Override
public void setUp() throws Exception {
super.setUp();
assumeTrue("test requires a jre that supports unmapping", MMapDirectory.UNMAP_SUPPORTED);
- workDir = TestUtil.getTempDir("TestMultiMMap");
- workDir.mkdirs();
}
public void testCloneSafety() throws Exception {
- MMapDirectory mmapDir = new MMapDirectory(TestUtil.getTempDir("testCloneSafety"));
+ MMapDirectory mmapDir = new MMapDirectory(createTempDir("testCloneSafety"));
IndexOutput io = mmapDir.createOutput("bytes", newIOContext(random()));
io.writeVInt(5);
io.close();
@@ -83,7 +80,7 @@
}
public void testCloneClose() throws Exception {
- MMapDirectory mmapDir = new MMapDirectory(TestUtil.getTempDir("testCloneClose"));
+ MMapDirectory mmapDir = new MMapDirectory(createTempDir("testCloneClose"));
IndexOutput io = mmapDir.createOutput("bytes", newIOContext(random()));
io.writeVInt(5);
io.close();
@@ -105,7 +102,7 @@
}
public void testCloneSliceSafety() throws Exception {
- MMapDirectory mmapDir = new MMapDirectory(TestUtil.getTempDir("testCloneSliceSafety"));
+ MMapDirectory mmapDir = new MMapDirectory(createTempDir("testCloneSliceSafety"));
IndexOutput io = mmapDir.createOutput("bytes", newIOContext(random()));
io.writeInt(1);
io.writeInt(2);
@@ -150,7 +147,7 @@
}
public void testCloneSliceClose() throws Exception {
- MMapDirectory mmapDir = new MMapDirectory(TestUtil.getTempDir("testCloneSliceClose"));
+ MMapDirectory mmapDir = new MMapDirectory(createTempDir("testCloneSliceClose"));
IndexOutput io = mmapDir.createOutput("bytes", newIOContext(random()));
io.writeInt(1);
io.writeInt(2);
@@ -177,7 +174,7 @@
public void testSeekZero() throws Exception {
for (int i = 0; i < 31; i++) {
- MMapDirectory mmapDir = new MMapDirectory(TestUtil.getTempDir("testSeekZero"), null, 1<<i);
+ MMapDirectory mmapDir = new MMapDirectory(createTempDir("testSeekZero"), null, 1<<i);
IndexOutput io = mmapDir.createOutput("zeroBytes", newIOContext(random()));
io.close();
IndexInput ii = mmapDir.openInput("zeroBytes", newIOContext(random()));
@@ -189,7 +186,7 @@
public void testSeekSliceZero() throws Exception {
for (int i = 0; i < 31; i++) {
- MMapDirectory mmapDir = new MMapDirectory(TestUtil.getTempDir("testSeekSliceZero"), null, 1<<i);
+ MMapDirectory mmapDir = new MMapDirectory(createTempDir("testSeekSliceZero"), null, 1<<i);
IndexOutput io = mmapDir.createOutput("zeroBytes", newIOContext(random()));
io.close();
IndexInputSlicer slicer = mmapDir.createSlicer("zeroBytes", newIOContext(random()));
@@ -203,7 +200,7 @@
public void testSeekEnd() throws Exception {
for (int i = 0; i < 17; i++) {
- MMapDirectory mmapDir = new MMapDirectory(TestUtil.getTempDir("testSeekEnd"), null, 1<<i);
+ MMapDirectory mmapDir = new MMapDirectory(createTempDir("testSeekEnd"), null, 1<<i);
IndexOutput io = mmapDir.createOutput("bytes", newIOContext(random()));
byte bytes[] = new byte[1<<i];
random().nextBytes(bytes);
@@ -221,7 +218,7 @@
public void testSeekSliceEnd() throws Exception {
for (int i = 0; i < 17; i++) {
- MMapDirectory mmapDir = new MMapDirectory(TestUtil.getTempDir("testSeekSliceEnd"), null, 1<<i);
+ MMapDirectory mmapDir = new MMapDirectory(createTempDir("testSeekSliceEnd"), null, 1<<i);
IndexOutput io = mmapDir.createOutput("bytes", newIOContext(random()));
byte bytes[] = new byte[1<<i];
random().nextBytes(bytes);
@@ -241,7 +238,7 @@
public void testSeeking() throws Exception {
for (int i = 0; i < 10; i++) {
- MMapDirectory mmapDir = new MMapDirectory(TestUtil.getTempDir("testSeeking"), null, 1<<i);
+ MMapDirectory mmapDir = new MMapDirectory(createTempDir("testSeeking"), null, 1<<i);
IndexOutput io = mmapDir.createOutput("bytes", newIOContext(random()));
byte bytes[] = new byte[1<<(i+1)]; // make sure we switch buffers
random().nextBytes(bytes);
@@ -268,7 +265,7 @@
// the various offset+length and just does readBytes.
public void testSlicedSeeking() throws Exception {
for (int i = 0; i < 10; i++) {
- MMapDirectory mmapDir = new MMapDirectory(TestUtil.getTempDir("testSlicedSeeking"), null, 1<<i);
+ MMapDirectory mmapDir = new MMapDirectory(createTempDir("testSlicedSeeking"), null, 1<<i);
IndexOutput io = mmapDir.createOutput("bytes", newIOContext(random()));
byte bytes[] = new byte[1<<(i+1)]; // make sure we switch buffers
random().nextBytes(bytes);
@@ -301,9 +298,7 @@
}
private void assertChunking(Random random, int chunkSize) throws Exception {
- File path = TestUtil.createTempFile("mmap" + chunkSize, "tmp", workDir);
- path.delete();
- path.mkdirs();
+ File path = createTempDir("mmap" + chunkSize);
MMapDirectory mmapDir = new MMapDirectory(path, null, chunkSize);
// we will map a lot, try to turn on the unmap hack
if (MMapDirectory.UNMAP_SUPPORTED)
diff --git a/lucene/core/src/test/org/apache/lucene/store/TestNRTCachingDirectory.java b/lucene/core/src/test/org/apache/lucene/store/TestNRTCachingDirectory.java
index df4b6a4..3afd152 100644
--- a/lucene/core/src/test/org/apache/lucene/store/TestNRTCachingDirectory.java
+++ b/lucene/core/src/test/org/apache/lucene/store/TestNRTCachingDirectory.java
@@ -123,8 +123,8 @@
// LUCENE-3382 -- make sure we get exception if the directory really does not exist.
public void testNoDir() throws Throwable {
- File tempDir = TestUtil.getTempDir("doesnotexist");
- TestUtil.rmDir(tempDir);
+ File tempDir = createTempDir("doesnotexist");
+ TestUtil.rm(tempDir);
Directory dir = new NRTCachingDirectory(newFSDirectory(tempDir), 2.0, 25.0);
try {
DirectoryReader.open(dir);
@@ -137,7 +137,7 @@
// LUCENE-3382 test that we can add a file, and then when we call list() we get it back
public void testDirectoryFilter() throws IOException {
- Directory dir = new NRTCachingDirectory(newFSDirectory(TestUtil.getTempDir("foo")), 2.0, 25.0);
+ Directory dir = new NRTCachingDirectory(newFSDirectory(createTempDir("foo")), 2.0, 25.0);
String name = "file";
try {
dir.createOutput(name, newIOContext(random())).close();
diff --git a/lucene/core/src/test/org/apache/lucene/store/TestRAMDirectory.java b/lucene/core/src/test/org/apache/lucene/store/TestRAMDirectory.java
index 610267f..105070d 100644
--- a/lucene/core/src/test/org/apache/lucene/store/TestRAMDirectory.java
+++ b/lucene/core/src/test/org/apache/lucene/store/TestRAMDirectory.java
@@ -50,7 +50,7 @@
@Override
public void setUp() throws Exception {
super.setUp();
- indexDir = TestUtil.getTempDir("RAMDirIndex");
+ indexDir = createTempDir("RAMDirIndex");
Directory dir = newFSDirectory(indexDir);
IndexWriter writer = new IndexWriter(dir, new IndexWriterConfig(
diff --git a/lucene/core/src/test/org/apache/lucene/store/TestWindowsMMap.java b/lucene/core/src/test/org/apache/lucene/store/TestWindowsMMap.java
index 25f970f..1b5822b 100644
--- a/lucene/core/src/test/org/apache/lucene/store/TestWindowsMMap.java
+++ b/lucene/core/src/test/org/apache/lucene/store/TestWindowsMMap.java
@@ -65,7 +65,7 @@
// sometimes the directory is not cleaned by rmDir, because on Windows it
// may take some time until the files are finally dereferenced. So clean the
// directory up front, or otherwise new IndexWriter will fail.
- File dirPath = TestUtil.getTempDir("testLuceneMmap");
+ File dirPath = createTempDir("testLuceneMmap");
rmDir(dirPath);
MMapDirectory dir = new MMapDirectory(dirPath, null);
diff --git a/lucene/core/src/test/org/apache/lucene/util/Test2BPagedBytes.java b/lucene/core/src/test/org/apache/lucene/util/Test2BPagedBytes.java
index 47446b1..a7d3f6b 100644
--- a/lucene/core/src/test/org/apache/lucene/util/Test2BPagedBytes.java
+++ b/lucene/core/src/test/org/apache/lucene/util/Test2BPagedBytes.java
@@ -30,7 +30,7 @@
public class Test2BPagedBytes extends LuceneTestCase {
public void test() throws Exception {
- BaseDirectoryWrapper dir = newFSDirectory(TestUtil.getTempDir("test2BPagedBytes"));
+ BaseDirectoryWrapper dir = newFSDirectory(createTempDir("test2BPagedBytes"));
if (dir instanceof MockDirectoryWrapper) {
((MockDirectoryWrapper)dir).setThrottling(MockDirectoryWrapper.Throttling.NEVER);
}
diff --git a/lucene/core/src/test/org/apache/lucene/util/TestOfflineSorter.java b/lucene/core/src/test/org/apache/lucene/util/TestOfflineSorter.java
index fc704cb..c13135c 100644
--- a/lucene/core/src/test/org/apache/lucene/util/TestOfflineSorter.java
+++ b/lucene/core/src/test/org/apache/lucene/util/TestOfflineSorter.java
@@ -43,15 +43,15 @@
@Override
public void setUp() throws Exception {
super.setUp();
- tempDir = TestUtil.getTempDir("mergesort");
- TestUtil.rmDir(tempDir);
+ tempDir = createTempDir("mergesort");
+ TestUtil.rm(tempDir);
tempDir.mkdirs();
}
@Override
public void tearDown() throws Exception {
if (tempDir != null)
- TestUtil.rmDir(tempDir);
+ TestUtil.rm(tempDir);
super.tearDown();
}
diff --git a/lucene/core/src/test/org/apache/lucene/util/TestPagedBytes.java b/lucene/core/src/test/org/apache/lucene/util/TestPagedBytes.java
index 99d2761..b1156da 100644
--- a/lucene/core/src/test/org/apache/lucene/util/TestPagedBytes.java
+++ b/lucene/core/src/test/org/apache/lucene/util/TestPagedBytes.java
@@ -37,7 +37,7 @@
public void testDataInputOutput() throws Exception {
Random random = random();
for(int iter=0;iter<5*RANDOM_MULTIPLIER;iter++) {
- BaseDirectoryWrapper dir = newFSDirectory(TestUtil.getTempDir("testOverflow"));
+ BaseDirectoryWrapper dir = newFSDirectory(createTempDir("testOverflow"));
if (dir instanceof MockDirectoryWrapper) {
((MockDirectoryWrapper)dir).setThrottling(MockDirectoryWrapper.Throttling.NEVER);
}
@@ -150,7 +150,7 @@
@Ignore // memory hole
public void testOverflow() throws IOException {
- BaseDirectoryWrapper dir = newFSDirectory(TestUtil.getTempDir("testOverflow"));
+ BaseDirectoryWrapper dir = newFSDirectory(createTempDir("testOverflow"));
if (dir instanceof MockDirectoryWrapper) {
((MockDirectoryWrapper)dir).setThrottling(MockDirectoryWrapper.Throttling.NEVER);
}
diff --git a/lucene/core/src/test/org/apache/lucene/util/fst/Test2BFST.java b/lucene/core/src/test/org/apache/lucene/util/fst/Test2BFST.java
index 9628875..3d356d6 100644
--- a/lucene/core/src/test/org/apache/lucene/util/fst/Test2BFST.java
+++ b/lucene/core/src/test/org/apache/lucene/util/fst/Test2BFST.java
@@ -45,7 +45,7 @@
IntsRef input = new IntsRef(ints, 0, ints.length);
long seed = random().nextLong();
- Directory dir = new MMapDirectory(TestUtil.getTempDir("2BFST"));
+ Directory dir = new MMapDirectory(createTempDir("2BFST"));
for(int doPackIter=0;doPackIter<2;doPackIter++) {
boolean doPack = doPackIter == 1;
diff --git a/lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java b/lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java
index 27bf2cc..e3acf43 100644
--- a/lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java
+++ b/lucene/core/src/test/org/apache/lucene/util/fst/TestFSTs.java
@@ -310,7 +310,7 @@
analyzer.setMaxTokenLength(TestUtil.nextInt(random(), 1, IndexWriter.MAX_TERM_LENGTH));
final IndexWriterConfig conf = newIndexWriterConfig(TEST_VERSION_CURRENT, analyzer).setMaxBufferedDocs(-1).setRAMBufferSizeMB(64);
- final File tempDir = TestUtil.getTempDir("fstlines");
+ final File tempDir = createTempDir("fstlines");
final Directory dir = newFSDirectory(tempDir);
final IndexWriter writer = new IndexWriter(dir, conf);
final long stopTime = System.currentTimeMillis() + RUN_TIME_MSEC;
diff --git a/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestLeaveFilesIfTestFails.java b/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestLeaveFilesIfTestFails.java
index 9e9c739..a34efd5 100644
--- a/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestLeaveFilesIfTestFails.java
+++ b/lucene/core/src/test/org/apache/lucene/util/junitcompat/TestLeaveFilesIfTestFails.java
@@ -18,13 +18,19 @@
*/
import java.io.File;
+import java.io.IOException;
+import java.io.RandomAccessFile;
+import org.apache.lucene.util.Constants;
+import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.TestUtil;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
+import com.carrotsearch.randomizedtesting.RandomizedTest;
+
public class TestLeaveFilesIfTestFails extends WithNestedTests {
public TestLeaveFilesIfTestFails() {
super(true);
@@ -33,8 +39,7 @@
public static class Nested1 extends WithNestedTests.AbstractNestedTest {
static File file;
public void testDummy() {
- file = TestUtil.getTempDir("leftover");
- file.mkdirs();
+ file = createTempDir("leftover");
fail();
}
}
@@ -43,7 +48,33 @@
public void testLeaveFilesIfTestFails() {
Result r = JUnitCore.runClasses(Nested1.class);
Assert.assertEquals(1, r.getFailureCount());
- Assert.assertTrue(Nested1.file.exists());
+ Assert.assertTrue(Nested1.file != null && Nested1.file.exists());
Nested1.file.delete();
}
+
+ public static class Nested2 extends WithNestedTests.AbstractNestedTest {
+ static File file;
+ static File parent;
+ static RandomAccessFile openFile;
+
+ @SuppressWarnings("deprecation")
+ public void testDummy() throws Exception {
+ file = new File(createTempDir("leftover"), "child.locked");
+ openFile = new RandomAccessFile(file, "rw");
+
+ parent = LuceneTestCase.getTempDirBase();
+ }
+ }
+
+ @Test
+ public void testWindowsUnremovableFile() throws IOException {
+ RandomizedTest.assumeTrue("Requires Windows.", Constants.WINDOWS);
+
+ Result r = JUnitCore.runClasses(Nested2.class);
+ super.prevSysErr.println(r.getFailures().get(0).getMessage());
+ Assert.assertEquals(1, r.getFailureCount());
+
+ Nested2.openFile.close();
+ TestUtil.rm(Nested2.parent);
+ }
}
diff --git a/lucene/demo/src/test/org/apache/lucene/demo/TestDemo.java b/lucene/demo/src/test/org/apache/lucene/demo/TestDemo.java
index d3b91c3..7f12799 100644
--- a/lucene/demo/src/test/org/apache/lucene/demo/TestDemo.java
+++ b/lucene/demo/src/test/org/apache/lucene/demo/TestDemo.java
@@ -44,7 +44,7 @@
public void testIndexSearch() throws Exception {
File dir = getDataFile("test-files/docs");
- File indexDir = TestUtil.getTempDir("ContribDemoTest");
+ File indexDir = createTempDir("ContribDemoTest");
IndexFiles.main(new String[] { "-create", "-docs", dir.getPath(), "-index", indexDir.getPath()});
testOneSearch(indexDir, "apache", 3);
testOneSearch(indexDir, "patent", 8);
diff --git a/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java b/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java
index 55d8384..5fd58d5 100644
--- a/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java
+++ b/lucene/facet/src/java/org/apache/lucene/facet/taxonomy/directory/DirectoryTaxonomyWriter.java
@@ -941,10 +941,12 @@
map[origordinal] = newordinal;
}
in.close();
+
// Delete the temporary file, which is no longer needed.
if (!tmpfile.delete()) {
tmpfile.deleteOnExit();
}
+
return map;
}
}
diff --git a/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/directory/TestAddTaxonomy.java b/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/directory/TestAddTaxonomy.java
index fdf492b..215067b 100644
--- a/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/directory/TestAddTaxonomy.java
+++ b/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/directory/TestAddTaxonomy.java
@@ -74,7 +74,7 @@
private OrdinalMap randomOrdinalMap() throws IOException {
if (random().nextBoolean()) {
- return new DiskOrdinalMap(TestUtil.createTempFile("taxoMap", "", TEMP_DIR));
+ return new DiskOrdinalMap(createTempFile("taxoMap", ""));
} else {
return new MemoryOrdinalMap();
}
diff --git a/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/writercache/TestCharBlockArray.java b/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/writercache/TestCharBlockArray.java
index b9e6ca1..30729da 100644
--- a/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/writercache/TestCharBlockArray.java
+++ b/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/writercache/TestCharBlockArray.java
@@ -85,7 +85,7 @@
assertEqualsInternal("GrowingCharArray<->StringBuilder mismatch.", builder, array);
- File tempDir = TestUtil.getTempDir("growingchararray");
+ File tempDir = createTempDir("growingchararray");
File f = new File(tempDir, "GrowingCharArrayTest.tmp");
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(f));
array.flush(out);
diff --git a/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/writercache/TestCompactLabelToOrdinal.java b/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/writercache/TestCompactLabelToOrdinal.java
index dd3fb9f..cfd71a3 100644
--- a/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/writercache/TestCompactLabelToOrdinal.java
+++ b/lucene/facet/src/test/org/apache/lucene/facet/taxonomy/writercache/TestCompactLabelToOrdinal.java
@@ -68,7 +68,7 @@
}
}
- File tmpDir = TestUtil.getTempDir("testLableToOrdinal");
+ File tmpDir = createTempDir("testLableToOrdinal");
File f = new File(tmpDir, "CompactLabelToOrdinalTest.tmp");
int flushInterval = 10;
diff --git a/lucene/misc/src/test/org/apache/lucene/index/TestIndexSplitter.java b/lucene/misc/src/test/org/apache/lucene/index/TestIndexSplitter.java
index 9ffd4a7..d55de37 100644
--- a/lucene/misc/src/test/org/apache/lucene/index/TestIndexSplitter.java
+++ b/lucene/misc/src/test/org/apache/lucene/index/TestIndexSplitter.java
@@ -28,12 +28,8 @@
public class TestIndexSplitter extends LuceneTestCase {
public void test() throws Exception {
- File dir = new File(TEMP_DIR, "testfilesplitter");
- TestUtil.rmDir(dir);
- dir.mkdirs();
- File destDir = new File(TEMP_DIR, "testfilesplitterdest");
- TestUtil.rmDir(destDir);
- destDir.mkdirs();
+ File dir = createTempDir(LuceneTestCase.getTestClass().getSimpleName());
+ File destDir = createTempDir(LuceneTestCase.getTestClass().getSimpleName());
Directory fsDir = newFSDirectory(dir);
// IndexSplitter.split makes its own commit directly with SIPC/SegmentInfos,
// so the unreferenced files are expected.
@@ -80,9 +76,7 @@
fsDirDest.close();
// now test cmdline
- File destDir2 = new File(TEMP_DIR, "testfilesplitterdest2");
- TestUtil.rmDir(destDir2);
- destDir2.mkdirs();
+ File destDir2 = createTempDir(LuceneTestCase.getTestClass().getSimpleName());
IndexSplitter.main(new String[] {dir.getAbsolutePath(), destDir2.getAbsolutePath(), splitSegName});
assertEquals(5, destDir2.listFiles().length);
Directory fsDirDest2 = newFSDirectory(destDir2);
diff --git a/lucene/replicator/src/test/org/apache/lucene/replicator/IndexAndTaxonomyReplicationClientTest.java b/lucene/replicator/src/test/org/apache/lucene/replicator/IndexAndTaxonomyReplicationClientTest.java
index 0462ce0..a7c9cfa 100644
--- a/lucene/replicator/src/test/org/apache/lucene/replicator/IndexAndTaxonomyReplicationClientTest.java
+++ b/lucene/replicator/src/test/org/apache/lucene/replicator/IndexAndTaxonomyReplicationClientTest.java
@@ -191,7 +191,7 @@
publishTaxoDir = newDirectory();
handlerIndexDir = newMockDirectory();
handlerTaxoDir = newMockDirectory();
- clientWorkDir = TestUtil.getTempDir("replicationClientTest");
+ clientWorkDir = createTempDir("replicationClientTest");
sourceDirFactory = new PerSessionDirectoryFactory(clientWorkDir);
replicator = new LocalReplicator();
callback = new IndexAndTaxonomyReadyCallback(handlerIndexDir, handlerTaxoDir);
diff --git a/lucene/replicator/src/test/org/apache/lucene/replicator/IndexReplicationClientTest.java b/lucene/replicator/src/test/org/apache/lucene/replicator/IndexReplicationClientTest.java
index 76e92e8..6cec41a 100644
--- a/lucene/replicator/src/test/org/apache/lucene/replicator/IndexReplicationClientTest.java
+++ b/lucene/replicator/src/test/org/apache/lucene/replicator/IndexReplicationClientTest.java
@@ -136,7 +136,7 @@
super.setUp();
publishDir = newMockDirectory();
handlerDir = newMockDirectory();
- sourceDirFactory = new PerSessionDirectoryFactory(TestUtil.getTempDir("replicationClientTest"));
+ sourceDirFactory = new PerSessionDirectoryFactory(createTempDir("replicationClientTest"));
replicator = new LocalReplicator();
callback = new IndexReadyCallback(handlerDir);
handler = new IndexReplicationHandler(handlerDir, callback);
diff --git a/lucene/replicator/src/test/org/apache/lucene/replicator/http/HttpReplicatorTest.java b/lucene/replicator/src/test/org/apache/lucene/replicator/http/HttpReplicatorTest.java
index b549f7f..3a21d8b 100644
--- a/lucene/replicator/src/test/org/apache/lucene/replicator/http/HttpReplicatorTest.java
+++ b/lucene/replicator/src/test/org/apache/lucene/replicator/http/HttpReplicatorTest.java
@@ -68,7 +68,7 @@
public void setUp() throws Exception {
super.setUp();
System.setProperty("org.eclipse.jetty.LEVEL", "DEBUG"); // sets stderr logging to DEBUG level
- clientWorkDir = TestUtil.getTempDir("httpReplicatorTest");
+ clientWorkDir = createTempDir("httpReplicatorTest");
handlerIndexDir = newDirectory();
serverIndexDir = newDirectory();
serverReplicator = new LocalReplicator();
diff --git a/lucene/suggest/src/test/org/apache/lucene/search/suggest/LookupBenchmarkTest.java b/lucene/suggest/src/test/org/apache/lucene/search/suggest/LookupBenchmarkTest.java
index 693f880..c57705a 100644
--- a/lucene/suggest/src/test/org/apache/lucene/search/suggest/LookupBenchmarkTest.java
+++ b/lucene/suggest/src/test/org/apache/lucene/search/suggest/LookupBenchmarkTest.java
@@ -163,7 +163,7 @@
} catch (InstantiationException e) {
Analyzer a = new MockAnalyzer(random, MockTokenizer.KEYWORD, false);
if (cls == AnalyzingInfixSuggester.class) {
- lookup = new AnalyzingInfixSuggester(TEST_VERSION_CURRENT, FSDirectory.open(TestUtil.getTempDir("LookupBenchmarkTest")), a);
+ lookup = new AnalyzingInfixSuggester(TEST_VERSION_CURRENT, FSDirectory.open(createTempDir("LookupBenchmarkTest")), a);
} else {
Constructor<? extends Lookup> ctor = cls.getConstructor(Analyzer.class);
lookup = ctor.newInstance(a);
diff --git a/lucene/suggest/src/test/org/apache/lucene/search/suggest/PersistenceTest.java b/lucene/suggest/src/test/org/apache/lucene/search/suggest/PersistenceTest.java
index 3a29eff..b492cf4 100644
--- a/lucene/suggest/src/test/org/apache/lucene/search/suggest/PersistenceTest.java
+++ b/lucene/suggest/src/test/org/apache/lucene/search/suggest/PersistenceTest.java
@@ -70,7 +70,7 @@
lookup.build(new InputArrayIterator(keys));
// Store the suggester.
- File storeDir = TEMP_DIR;
+ File storeDir = createTempDir(LuceneTestCase.getTestClass().getSimpleName());
lookup.store(new FileOutputStream(new File(storeDir, "lookup.dat")));
// Re-read it from disk.
diff --git a/lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggesterTest.java b/lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggesterTest.java
index 8fba9ca..040258f 100644
--- a/lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggesterTest.java
+++ b/lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/AnalyzingInfixSuggesterTest.java
@@ -91,7 +91,7 @@
new Input("a penny saved is a penny earned", 10, new BytesRef("foobaz")),
};
- File tempDir = TestUtil.getTempDir("AnalyzingInfixSuggesterTest");
+ File tempDir = createTempDir("AnalyzingInfixSuggesterTest");
Analyzer a = new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false);
AnalyzingInfixSuggester suggester = new AnalyzingInfixSuggester(TEST_VERSION_CURRENT, newFSDirectory(tempDir), a, a, 3);
@@ -210,7 +210,7 @@
new Input("lend me your ear", 8, new BytesRef("foobar")),
new Input("a penny saved is a penny earned", 10, new BytesRef("foobaz")),
};
- File tempDir = TestUtil.getTempDir("AnalyzingInfixSuggesterTest");
+ File tempDir = createTempDir("AnalyzingInfixSuggesterTest");
Analyzer a = new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false);
int minPrefixLength = random().nextInt(10);
@@ -471,7 +471,7 @@
}
public void testRandomNRT() throws Exception {
- final File tempDir = TestUtil.getTempDir("AnalyzingInfixSuggesterTest");
+ final File tempDir = createTempDir("AnalyzingInfixSuggesterTest");
Analyzer a = new MockAnalyzer(random(), MockTokenizer.WHITESPACE, false);
int minPrefixChars = random().nextInt(7);
if (VERBOSE) {
@@ -806,7 +806,7 @@
new Input("a penny saved is a penny earned", 10, new BytesRef("foobaz"), asSet("foo", "baz"))
};
- File tempDir = TestUtil.getTempDir("analyzingInfixContext");
+ File tempDir = createTempDir("analyzingInfixContext");
for(int iter=0;iter<2;iter++) {
AnalyzingInfixSuggester suggester;
diff --git a/lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/AnalyzingSuggesterTest.java b/lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/AnalyzingSuggesterTest.java
index ccbecc6..a8e1cf0 100644
--- a/lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/AnalyzingSuggesterTest.java
+++ b/lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/AnalyzingSuggesterTest.java
@@ -921,7 +921,7 @@
assertEquals(3, results.get(2).value);
// Try again after save/load:
- File tmpDir = TestUtil.getTempDir("AnalyzingSuggesterTest");
+ File tmpDir = createTempDir("AnalyzingSuggesterTest");
tmpDir.mkdir();
File path = new File(tmpDir, "suggester");
@@ -983,7 +983,7 @@
assertEquals(5, results.get(1).value);
// Try again after save/load:
- File tmpDir = TestUtil.getTempDir("AnalyzingSuggesterTest");
+ File tmpDir = createTempDir("AnalyzingSuggesterTest");
tmpDir.mkdir();
File path = new File(tmpDir, "suggester");
@@ -1053,7 +1053,7 @@
assertEquals(5, results.get(1).value);
// Try again after save/load:
- File tmpDir = TestUtil.getTempDir("AnalyzingSuggesterTest");
+ File tmpDir = createTempDir("AnalyzingSuggesterTest");
tmpDir.mkdir();
File path = new File(tmpDir, "suggester");
diff --git a/lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/BlendedInfixSuggesterTest.java b/lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/BlendedInfixSuggesterTest.java
index cbd21ec..dca3193 100644
--- a/lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/BlendedInfixSuggesterTest.java
+++ b/lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/BlendedInfixSuggesterTest.java
@@ -17,6 +17,10 @@
* limitations under the License.
*/
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.analysis.util.CharArraySet;
@@ -25,11 +29,6 @@
import org.apache.lucene.search.suggest.Lookup;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.TestUtil;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
public class BlendedInfixSuggesterTest extends LuceneTestCase {
@@ -45,7 +44,7 @@
new Input("star wars: episode v - the empire strikes back", 8, payload)
};
- File tempDir = TestUtil.getTempDir("BlendedInfixSuggesterTest");
+ File tempDir = createTempDir("BlendedInfixSuggesterTest");
Analyzer a = new StandardAnalyzer(TEST_VERSION_CURRENT, CharArraySet.EMPTY_SET);
BlendedInfixSuggester suggester = new BlendedInfixSuggester(TEST_VERSION_CURRENT, newFSDirectory(tempDir), a, a,
@@ -84,7 +83,7 @@
new Input("top of the lake", w, pl)
};
- File tempDir = TestUtil.getTempDir("BlendedInfixSuggesterTest");
+ File tempDir = createTempDir("BlendedInfixSuggesterTest");
Analyzer a = new StandardAnalyzer(TEST_VERSION_CURRENT, CharArraySet.EMPTY_SET);
// BlenderType.LINEAR is used by default (remove position*10%)
@@ -125,7 +124,7 @@
new Input("the returned", 10, ret),
};
- File tempDir = TestUtil.getTempDir("BlendedInfixSuggesterTest");
+ File tempDir = createTempDir("BlendedInfixSuggesterTest");
Analyzer a = new StandardAnalyzer(TEST_VERSION_CURRENT, CharArraySet.EMPTY_SET);
// if factor is small, we don't get the expected element
@@ -175,7 +174,7 @@
new Input("the returned", 10, ret),
};
- File tempDir = TestUtil.getTempDir("BlendedInfixSuggesterTest");
+ File tempDir = createTempDir("BlendedInfixSuggesterTest");
Analyzer a = new StandardAnalyzer(TEST_VERSION_CURRENT, CharArraySet.EMPTY_SET);
// if factor is small, we don't get the expected element
diff --git a/lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/TestFreeTextSuggester.java b/lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/TestFreeTextSuggester.java
index b24945b..e2ddc3c 100644
--- a/lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/TestFreeTextSuggester.java
+++ b/lucene/suggest/src/test/org/apache/lucene/search/suggest/analyzing/TestFreeTextSuggester.java
@@ -82,7 +82,7 @@
toString(sug.lookup("b", 10)));
// Try again after save/load:
- File tmpDir = TestUtil.getTempDir("FreeTextSuggesterTest");
+ File tmpDir = createTempDir("FreeTextSuggesterTest");
tmpDir.mkdir();
File path = new File(tmpDir, "suggester");
diff --git a/lucene/test-framework/src/java/org/apache/lucene/analysis/BaseTokenStreamTestCase.java b/lucene/test-framework/src/java/org/apache/lucene/analysis/BaseTokenStreamTestCase.java
index 054e8e1..356b192 100644
--- a/lucene/test-framework/src/java/org/apache/lucene/analysis/BaseTokenStreamTestCase.java
+++ b/lucene/test-framework/src/java/org/apache/lucene/analysis/BaseTokenStreamTestCase.java
@@ -503,7 +503,7 @@
!(postingsFormat.equals("Memory") ||
postingsFormat.equals("SimpleText"));
if (rarely(random) && codecOk) {
- dir = newFSDirectory(TestUtil.getTempDir("bttc"));
+ dir = newFSDirectory(createTempDir("bttc"));
iw = new RandomIndexWriter(new Random(seed), dir, a);
}
boolean success = false;
diff --git a/lucene/test-framework/src/java/org/apache/lucene/index/BaseDocValuesFormatTestCase.java b/lucene/test-framework/src/java/org/apache/lucene/index/BaseDocValuesFormatTestCase.java
index 422eb1d..bb8f327 100644
--- a/lucene/test-framework/src/java/org/apache/lucene/index/BaseDocValuesFormatTestCase.java
+++ b/lucene/test-framework/src/java/org/apache/lucene/index/BaseDocValuesFormatTestCase.java
@@ -2615,7 +2615,7 @@
Analyzer analyzer = new MockAnalyzer(random());
// FSDirectory because SimpleText will consume gobbs of
// space when storing big binary values:
- Directory d = newFSDirectory(TestUtil.getTempDir("hugeBinaryValues"));
+ Directory d = newFSDirectory(createTempDir("hugeBinaryValues"));
boolean doFixed = random().nextBoolean();
int numDocs;
int fixedLength = 0;
@@ -2713,7 +2713,7 @@
Analyzer analyzer = new MockAnalyzer(random());
// FSDirectory because SimpleText will consume gobbs of
// space when storing big binary values:
- Directory d = newFSDirectory(TestUtil.getTempDir("hugeBinaryValues"));
+ Directory d = newFSDirectory(createTempDir("hugeBinaryValues"));
boolean doFixed = random().nextBoolean();
int numDocs;
int fixedLength = 0;
diff --git a/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java b/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java
index d96a473..8862c0a 100644
--- a/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java
+++ b/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java
@@ -1203,7 +1203,7 @@
/** Indexes all fields/terms at the specified
* IndexOptions, and fully tests at that IndexOptions. */
private void testFull(IndexOptions options, boolean withPayloads) throws Exception {
- File path = TestUtil.getTempDir("testPostingsFormat.testExact");
+ File path = createTempDir("testPostingsFormat.testExact");
Directory dir = newFSDirectory(path);
// TODO test thread safety of buildIndex too
@@ -1224,7 +1224,7 @@
fieldsProducer.close();
dir.close();
- TestUtil.rmDir(path);
+ TestUtil.rm(path);
}
public void testDocsOnly() throws Exception {
@@ -1256,7 +1256,7 @@
int iters = 5;
for(int iter=0;iter<iters;iter++) {
- File path = TestUtil.getTempDir("testPostingsFormat");
+ File path = createTempDir("testPostingsFormat");
Directory dir = newFSDirectory(path);
boolean indexPayloads = random().nextBoolean();
@@ -1273,7 +1273,7 @@
fieldsProducer = null;
dir.close();
- TestUtil.rmDir(path);
+ TestUtil.rm(path);
}
}
diff --git a/lucene/test-framework/src/java/org/apache/lucene/index/BaseStoredFieldsFormatTestCase.java b/lucene/test-framework/src/java/org/apache/lucene/index/BaseStoredFieldsFormatTestCase.java
index 25559c9..d1dcc1e 100644
--- a/lucene/test-framework/src/java/org/apache/lucene/index/BaseStoredFieldsFormatTestCase.java
+++ b/lucene/test-framework/src/java/org/apache/lucene/index/BaseStoredFieldsFormatTestCase.java
@@ -599,7 +599,7 @@
// for this test we force a FS dir
// we can't just use newFSDirectory, because this test doesn't really index anything.
// so if we get NRTCachingDir+SimpleText, we make massive stored fields and OOM (LUCENE-4484)
- Directory dir = new MockDirectoryWrapper(random(), new MMapDirectory(TestUtil.getTempDir("testBigDocuments")));
+ Directory dir = new MockDirectoryWrapper(random(), new MMapDirectory(createTempDir("testBigDocuments")));
IndexWriterConfig iwConf = newIndexWriterConfig(TEST_VERSION_CURRENT, new MockAnalyzer(random()));
iwConf.setMaxBufferedDocs(RandomInts.randomIntBetween(random(), 2, 30));
RandomIndexWriter iw = new RandomIndexWriter(random(), dir, iwConf);
diff --git a/lucene/test-framework/src/java/org/apache/lucene/index/ThreadedIndexingAndSearchingTestCase.java b/lucene/test-framework/src/java/org/apache/lucene/index/ThreadedIndexingAndSearchingTestCase.java
index 8beff38..7b6406b 100644
--- a/lucene/test-framework/src/java/org/apache/lucene/index/ThreadedIndexingAndSearchingTestCase.java
+++ b/lucene/test-framework/src/java/org/apache/lucene/index/ThreadedIndexingAndSearchingTestCase.java
@@ -435,7 +435,7 @@
Random random = new Random(random().nextLong());
final LineFileDocs docs = new LineFileDocs(random, true);
- final File tempDir = TestUtil.getTempDir(testName);
+ final File tempDir = createTempDir(testName);
dir = getDirectory(newMockFSDirectory(tempDir)); // some subclasses rely on this being MDW
if (dir instanceof BaseDirectoryWrapper) {
((BaseDirectoryWrapper) dir).setCheckIndexOnClose(false); // don't double-checkIndex, we do it ourselves.
@@ -645,7 +645,7 @@
TestUtil.checkIndex(dir);
dir.close();
- TestUtil.rmDir(tempDir);
+ TestUtil.rm(tempDir);
if (VERBOSE) {
System.out.println("TEST: done [" + (System.currentTimeMillis()-t0) + " ms]");
diff --git a/lucene/test-framework/src/java/org/apache/lucene/search/ShardSearchingTestBase.java b/lucene/test-framework/src/java/org/apache/lucene/search/ShardSearchingTestBase.java
index 43b33e9..27610b6 100644
--- a/lucene/test-framework/src/java/org/apache/lucene/search/ShardSearchingTestBase.java
+++ b/lucene/test-framework/src/java/org/apache/lucene/search/ShardSearchingTestBase.java
@@ -447,7 +447,7 @@
public NodeState(Random random, int nodeID, int numNodes) throws IOException {
myNodeID = nodeID;
- dir = newFSDirectory(TestUtil.getTempDir("ShardSearchingTestBase"));
+ dir = newFSDirectory(createTempDir("ShardSearchingTestBase"));
// TODO: set warmer
MockAnalyzer analyzer = new MockAnalyzer(random());
analyzer.setMaxTokenLength(TestUtil.nextInt(random(), 1, IndexWriter.MAX_TERM_LENGTH));
diff --git a/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java b/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java
index 7ac506f..160470f 100644
--- a/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java
+++ b/lucene/test-framework/src/java/org/apache/lucene/util/LuceneTestCase.java
@@ -17,55 +17,153 @@
* limitations under the License.
*/
-import java.io.*;
-import java.nio.file.NoSuchFileException;
-import java.lang.annotation.*;
+import static com.carrotsearch.randomizedtesting.RandomizedTest.systemPropertyAsBoolean;
+import static com.carrotsearch.randomizedtesting.RandomizedTest.systemPropertyAsInt;
+
+import java.io.Closeable;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
-import java.util.*;
-import java.util.concurrent.*;
+import java.nio.file.NoSuchFileException;
+import java.util.ArrayDeque;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Deque;
+import java.util.EnumSet;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+import java.util.Random;
+import java.util.Set;
+import java.util.TimeZone;
+import java.util.TreeSet;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicReference;
import java.util.logging.Logger;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.codecs.Codec;
-import org.apache.lucene.document.Field.Store;
import org.apache.lucene.document.Field;
+import org.apache.lucene.document.Field.Store;
import org.apache.lucene.document.FieldType;
import org.apache.lucene.document.StringField;
import org.apache.lucene.document.TextField;
-import org.apache.lucene.index.*;
+import org.apache.lucene.index.AlcoholicMergePolicy;
+import org.apache.lucene.index.AssertingAtomicReader;
+import org.apache.lucene.index.AssertingDirectoryReader;
+import org.apache.lucene.index.AtomicReader;
+import org.apache.lucene.index.AtomicReaderContext;
+import org.apache.lucene.index.BinaryDocValues;
+import org.apache.lucene.index.CompositeReader;
+import org.apache.lucene.index.ConcurrentMergeScheduler;
+import org.apache.lucene.index.DirectoryReader;
+import org.apache.lucene.index.DocsAndPositionsEnum;
+import org.apache.lucene.index.DocsEnum;
+import org.apache.lucene.index.FieldFilterAtomicReader;
+import org.apache.lucene.index.FieldInfo;
+import org.apache.lucene.index.FieldInfos;
+import org.apache.lucene.index.Fields;
+import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexReader.ReaderClosedListener;
+import org.apache.lucene.index.IndexWriterConfig;
+import org.apache.lucene.index.LogByteSizeMergePolicy;
+import org.apache.lucene.index.LogDocMergePolicy;
+import org.apache.lucene.index.LogMergePolicy;
+import org.apache.lucene.index.MergePolicy;
+import org.apache.lucene.index.MockRandomMergePolicy;
+import org.apache.lucene.index.MultiDocValues;
+import org.apache.lucene.index.MultiFields;
+import org.apache.lucene.index.NumericDocValues;
+import org.apache.lucene.index.ParallelAtomicReader;
+import org.apache.lucene.index.ParallelCompositeReader;
+import org.apache.lucene.index.SegmentReader;
+import org.apache.lucene.index.SerialMergeScheduler;
+import org.apache.lucene.index.SimpleMergedSegmentWarmer;
+import org.apache.lucene.index.SlowCompositeReaderWrapper;
+import org.apache.lucene.index.SortedDocValues;
+import org.apache.lucene.index.SortedSetDocValues;
+import org.apache.lucene.index.StorableField;
+import org.apache.lucene.index.StoredDocument;
+import org.apache.lucene.index.Terms;
+import org.apache.lucene.index.TermsEnum;
import org.apache.lucene.index.TermsEnum.SeekStatus;
-import org.apache.lucene.search.*;
+import org.apache.lucene.index.TieredMergePolicy;
+import org.apache.lucene.search.AssertingIndexSearcher;
+import org.apache.lucene.search.DocIdSetIterator;
+import org.apache.lucene.search.FieldCache;
import org.apache.lucene.search.FieldCache.CacheEntry;
+import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.QueryUtils.FCInvisibleMultiReader;
-import org.apache.lucene.store.*;
+import org.apache.lucene.store.BaseDirectoryWrapper;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.store.FSDirectory;
+import org.apache.lucene.store.FlushInfo;
+import org.apache.lucene.store.IOContext;
import org.apache.lucene.store.IOContext.Context;
+import org.apache.lucene.store.LockFactory;
+import org.apache.lucene.store.MergeInfo;
+import org.apache.lucene.store.MockDirectoryWrapper;
import org.apache.lucene.store.MockDirectoryWrapper.Throttling;
+import org.apache.lucene.store.NRTCachingDirectory;
+import org.apache.lucene.store.RateLimitedDirectoryWrapper;
import org.apache.lucene.util.FieldCacheSanityChecker.Insanity;
import org.apache.lucene.util.automaton.AutomatonTestUtil;
import org.apache.lucene.util.automaton.CompiledAutomaton;
import org.apache.lucene.util.automaton.RegExp;
-import org.junit.*;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.ClassRule;
+import org.junit.Rule;
+import org.junit.Test;
import org.junit.rules.RuleChain;
import org.junit.rules.TestRule;
import org.junit.runner.RunWith;
-import com.carrotsearch.randomizedtesting.*;
-import com.carrotsearch.randomizedtesting.annotations.*;
+
+import com.carrotsearch.randomizedtesting.JUnit4MethodProvider;
+import com.carrotsearch.randomizedtesting.LifecycleScope;
+import com.carrotsearch.randomizedtesting.MixWithSuiteName;
+import com.carrotsearch.randomizedtesting.RandomizedContext;
+import com.carrotsearch.randomizedtesting.RandomizedRunner;
+import com.carrotsearch.randomizedtesting.RandomizedTest;
+import com.carrotsearch.randomizedtesting.annotations.Listeners;
+import com.carrotsearch.randomizedtesting.annotations.SeedDecorators;
+import com.carrotsearch.randomizedtesting.annotations.TestGroup;
+import com.carrotsearch.randomizedtesting.annotations.TestMethodProviders;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakAction;
import com.carrotsearch.randomizedtesting.annotations.ThreadLeakAction.Action;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakGroup;
import com.carrotsearch.randomizedtesting.annotations.ThreadLeakGroup.Group;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakLingering;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakScope;
import com.carrotsearch.randomizedtesting.annotations.ThreadLeakScope.Scope;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakZombies;
import com.carrotsearch.randomizedtesting.annotations.ThreadLeakZombies.Consequence;
+import com.carrotsearch.randomizedtesting.annotations.TimeoutSuite;
import com.carrotsearch.randomizedtesting.generators.RandomPicks;
import com.carrotsearch.randomizedtesting.rules.NoClassHooksShadowingRule;
import com.carrotsearch.randomizedtesting.rules.NoInstanceHooksOverridesRule;
import com.carrotsearch.randomizedtesting.rules.StaticFieldsInvariantRule;
import com.carrotsearch.randomizedtesting.rules.SystemPropertiesInvariantRule;
-
-import static com.carrotsearch.randomizedtesting.RandomizedTest.systemPropertyAsBoolean;
-import static com.carrotsearch.randomizedtesting.RandomizedTest.systemPropertyAsInt;
+import com.carrotsearch.randomizedtesting.rules.TestRuleAdapter;
/**
* Base class for all Lucene unit tests, Junit3 or Junit4 variant.
@@ -112,13 +210,6 @@
* context ({@link RandomizedContext#current()}) and then calling
* {@link RandomizedContext#getRunnerSeedAsString()}.</li>
* </ul>
- *
- * <p>There is a number of other facilities tests can use, like:
- * <ul>
- * <li>{@link #closeAfterTest(Closeable)} and {@link #closeAfterSuite(Closeable)} to
- * register resources to be closed after each scope (if close fails, the scope
- * will fail too).</li>
- * </ul>
*/
@RunWith(RandomizedRunner.class)
@TestMethodProviders({
@@ -228,6 +319,23 @@
String[] value();
}
+ /**
+ * Marks any suites which are known not to close all the temporary
+ * files. This may prevent temp. files and folders from being cleaned
+ * up after the suite is completed.
+ *
+ * @see LuceneTestCase#createTempDir()
+ * @see LuceneTestCase#createTempFile(String, String)
+ */
+ @Documented
+ @Inherited
+ @Retention(RetentionPolicy.RUNTIME)
+ @Target(ElementType.TYPE)
+ public @interface SuppressTempFileChecks {
+ /** Point to JIRA entry. */
+ public String bugUrl() default "None";
+ }
+
// -----------------------------------------------------------------
// Truly immutable fields and constants, initialized once and valid
// for all suites ever since.
@@ -291,14 +399,18 @@
/** Throttling, see {@link MockDirectoryWrapper#setThrottling(Throttling)}. */
public static final Throttling TEST_THROTTLING = TEST_NIGHTLY ? Throttling.SOMETIMES : Throttling.NEVER;
- /** Create indexes in this directory, optimally use a subdir, named after the test */
- public static final File TEMP_DIR;
+ /** Leave temporary files on disk, even on successful runs. */
+ public static final boolean LEAVE_TEMPORARY;
static {
- String s = System.getProperty("tempDir", System.getProperty("java.io.tmpdir"));
- if (s == null)
- throw new RuntimeException("To run tests, you need to define system property 'tempDir' or 'java.io.tmpdir'.");
- TEMP_DIR = new File(s);
- TEMP_DIR.mkdirs();
+ boolean defaultValue = false;
+ for (String property : Arrays.asList(
+ "tests.leaveTemporary" /* ANT tasks's (junit4) flag. */,
+ "tests.leavetemporary" /* lowercase */,
+ "tests.leavetmpdir" /* default */,
+ "solr.test.leavetmpdir" /* Solr's legacy */)) {
+ defaultValue |= systemPropertyAsBoolean(property, false);
+ }
+ LEAVE_TEMPORARY = defaultValue;
}
/**
@@ -423,6 +535,7 @@
.around(ignoreAfterMaxFailures)
.around(suiteFailureMarker = new TestRuleMarkFailure())
.around(new TestRuleAssertionsRequired())
+ .around(new TemporaryFilesCleanupRule())
.around(new StaticFieldsInvariantRule(STATIC_LEAK_THRESHOLD, true) {
@Override
protected boolean accept(java.lang.reflect.Field field) {
@@ -1143,7 +1256,7 @@
final Class<? extends Directory> clazz = CommandLineUtil.loadDirectoryClass(clazzName);
// If it is a FSDirectory type, try its ctor(File)
if (FSDirectory.class.isAssignableFrom(clazz)) {
- final File dir = TestUtil.getTempDir("index");
+ final File dir = createTempDir("index-" + clazzName);
dir.mkdirs(); // ensure it's created so we 'have' it.
return newFSDirectoryImpl(clazz.asSubclass(FSDirectory.class), dir);
}
@@ -2079,4 +2192,156 @@
return false;
}
}
+
+ /**
+ * A base location for temporary files of a given test. Helps in figuring out
+ * which tests left which files and where.
+ */
+ private static File tempDirBase;
+
+ /**
+ * Retry to create temporary file name this many times.
+ */
+ private static final int TEMP_NAME_RETRY_THRESHOLD = 9999;
+
+ /**
+ * This method is deprecated for a reason. Do not use it. Call {@link #createTempDir()}
+ * or {@link #createTempDir(String)} or {@link #createTempFile(String, String)}.
+ */
+ @Deprecated
+ public static File getTempDirBase() {
+ synchronized (LuceneTestCase.class) {
+ if (tempDirBase == null) {
+ File directory = new File(System.getProperty("tempDir", System.getProperty("java.io.tmpdir")));
+ assert directory.exists() &&
+ directory.isDirectory() &&
+ directory.canWrite();
+
+ RandomizedContext ctx = RandomizedContext.current();
+ Class<?> clazz = ctx.getTargetClass();
+ String prefix = clazz.getName();
+ prefix = prefix.replaceFirst("^org.apache.lucene.", "lucene.");
+ prefix = prefix.replaceFirst("^org.apache.solr.", "solr.");
+
+ int attempt = 0;
+ File f;
+ do {
+ if (attempt++ >= TEMP_NAME_RETRY_THRESHOLD) {
+ throw new RuntimeException(
+ "Failed to get a temporary name too many times, check your temp directory and consider manually cleaning it: "
+ + directory.getAbsolutePath());
+ }
+ f = new File(directory, prefix + "-" + ctx.getRunnerSeedAsString()
+ + "-" + String.format(Locale.ENGLISH, "%03d", attempt));
+ } while (!f.mkdirs());
+
+ tempDirBase = f;
+ registerToRemoveAfterSuite(tempDirBase);
+ }
+ }
+ return tempDirBase;
+ }
+
+ /**
+ */
+ protected static File createTempDir(String prefix) {
+ File base = getTempDirBase();
+
+ int attempt = 0;
+ File f;
+ do {
+ if (attempt++ >= TEMP_NAME_RETRY_THRESHOLD) {
+ throw new RuntimeException(
+ "Failed to get a temporary name too many times, check your temp directory and consider manually cleaning it: "
+ + base.getAbsolutePath());
+ }
+ f = new File(base, prefix + "-" + String.format(Locale.ENGLISH, "%03d", attempt));
+ } while (!f.mkdirs());
+
+ registerToRemoveAfterSuite(f);
+ return f;
+ }
+
+ /**
+ */
+ protected static File createTempFile(String prefix, String suffix) throws IOException {
+ File base = getTempDirBase();
+
+ int attempt = 0;
+ File f;
+ do {
+ if (attempt++ >= TEMP_NAME_RETRY_THRESHOLD) {
+ throw new RuntimeException(
+ "Failed to get a temporary name too many times, check your temp directory and consider manually cleaning it: "
+ + base.getAbsolutePath());
+ }
+ f = new File(base, prefix + "-" + String.format(Locale.ENGLISH, "%03d", attempt) + suffix);
+ } while (!f.createNewFile());
+
+ registerToRemoveAfterSuite(f);
+ return f;
+ }
+
+ /**
+ */
+ protected static File createTempDir() {
+ return createTempDir("tempDir");
+ }
+
+ /**
+ */
+ protected static File createTempFile() throws IOException {
+ return createTempFile("tempFile", ".tmp");
+ }
+
+ /**
+ * A queue of temporary resources to be removed after the
+ * suite completes.
+ * @see #registerToRemoveAfterSuite(File)
+ */
+ private final static Deque<File> cleanupQueue = new ArrayDeque<File>();
+
+ /**
+ * Register temporary folder for removal after the suite completes.
+ */
+ private static void registerToRemoveAfterSuite(File f) {
+ assert f != null;
+
+ if (LuceneTestCase.LEAVE_TEMPORARY) {
+ System.err.println("INFO: Will leave temporary file: " + f.getAbsolutePath());
+ return;
+ }
+
+ synchronized (cleanupQueue) {
+ cleanupQueue.addLast(f);
+ }
+ }
+
+ private static class TemporaryFilesCleanupRule extends TestRuleAdapter {
+ @Override
+ protected void afterAlways(List<Throwable> errors) throws Throwable {
+ if (LuceneTestCase.suiteFailureMarker.wasSuccessful()) {
+ synchronized (cleanupQueue) {
+ File [] everything = new File [cleanupQueue.size()];
+ for (int i = 0; !cleanupQueue.isEmpty(); i++) {
+ everything[i] = cleanupQueue.removeLast();
+ }
+
+ // Will throw an IOException on un-removable files.
+ try {
+ TestUtil.rm(everything);
+ } catch (IOException e) {
+ Class<?> suiteClass = RandomizedContext.current().getTargetClass();
+ if (suiteClass.isAnnotationPresent(SuppressTempFileChecks.class)) {
+ System.err.println("WARNING: Leftover undeleted temporary files (bugUrl: "
+ + suiteClass.getAnnotation(SuppressTempFileChecks.class).bugUrl() + "): "
+ + e.getMessage());
+ return;
+ }
+ throw e;
+ }
+ }
+ }
+ }
+ }
}
diff --git a/lucene/test-framework/src/java/org/apache/lucene/util/CloseableFile.java b/lucene/test-framework/src/java/org/apache/lucene/util/RemoveUponClose.java
similarity index 67%
rename from lucene/test-framework/src/java/org/apache/lucene/util/CloseableFile.java
rename to lucene/test-framework/src/java/org/apache/lucene/util/RemoveUponClose.java
index 33737b1..d30c379 100644
--- a/lucene/test-framework/src/java/org/apache/lucene/util/CloseableFile.java
+++ b/lucene/test-framework/src/java/org/apache/lucene/util/RemoveUponClose.java
@@ -1,6 +1,8 @@
package org.apache.lucene.util;
-import java.io.*;
+import java.io.Closeable;
+import java.io.File;
+import java.io.IOException;
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -22,13 +24,20 @@
/**
* A {@link Closeable} that attempts to remove a given file/folder.
*/
-final class CloseableFile implements Closeable {
+final class RemoveUponClose implements Closeable {
private final File file;
private final TestRuleMarkFailure failureMarker;
+ private final String creationStack;
- public CloseableFile(File file, TestRuleMarkFailure failureMarker) {
+ public RemoveUponClose(File file, TestRuleMarkFailure failureMarker) {
this.file = file;
this.failureMarker = failureMarker;
+
+ StringBuilder b = new StringBuilder();
+ for (StackTraceElement e : Thread.currentThread().getStackTrace()) {
+ b.append('\t').append(e.toString()).append('\n');
+ }
+ creationStack = b.toString();
}
@Override
@@ -37,17 +46,13 @@
if (failureMarker.wasSuccessful()) {
if (file.exists()) {
try {
- TestUtil.rmDir(file);
+ TestUtil.rm(file);
} catch (IOException e) {
- // Ignore the exception from rmDir.
- }
-
- // Re-check.
- if (file.exists()) {
throw new IOException(
- "Could not remove: " + file.getAbsolutePath());
+ "Could not remove temporary location '"
+ + file.getAbsolutePath() + "', created at stack trace:\n" + creationStack, e);
}
- }
+ }
}
}
}
\ No newline at end of file
diff --git a/lucene/test-framework/src/java/org/apache/lucene/util/TestUtil.java b/lucene/test-framework/src/java/org/apache/lucene/util/TestUtil.java
index 859d5e0..a634f02 100644
--- a/lucene/test-framework/src/java/org/apache/lucene/util/TestUtil.java
+++ b/lucene/test-framework/src/java/org/apache/lucene/util/TestUtil.java
@@ -28,9 +28,11 @@
import java.math.BigDecimal;
import java.math.BigInteger;
import java.nio.CharBuffer;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.HashMap;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Random;
@@ -87,7 +89,6 @@
import org.apache.lucene.store.Directory;
import org.junit.Assert;
-import com.carrotsearch.randomizedtesting.RandomizedContext;
import com.carrotsearch.randomizedtesting.generators.RandomInts;
import com.carrotsearch.randomizedtesting.generators.RandomPicks;
@@ -99,73 +100,50 @@
//
}
- // the max number of retries we're going to do in getTempDir
- private static final int GET_TEMP_DIR_RETRY_THRESHOLD = 1000;
-
/**
- * Returns a temp directory, based on the given description. Creates the
- * directory.
+ * Deletes one or more files or directories (and everything underneath it).
+ *
+ * @throws IOException if any of the given files (or their subhierarchy files in case
+ * of directories) cannot be removed.
*/
- public static File getTempDir(String desc) {
- if (desc.length() < 3) {
- throw new IllegalArgumentException("description must be at least 3 characters");
+ public static void rm(File... locations) throws IOException {
+ LinkedHashSet<File> unremoved = rm(new LinkedHashSet<File>(), locations);
+ if (!unremoved.isEmpty()) {
+ StringBuilder b = new StringBuilder("Could not remove the following files (in the order of attempts):\n");
+ for (File f : unremoved) {
+ b.append(" ")
+ .append(f.getAbsolutePath())
+ .append("\n");
+ }
+ throw new IOException(b.toString());
}
- // always pull a long from master random. that way, the randomness of the test
- // is not affected by whether it initialized the counter (in genTempFile) or not.
- // note that the Random used by genTempFile is *not* the master Random, and therefore
- // does not affect the randomness of the test.
- final Random random = new Random(RandomizedContext.current().getRandom().nextLong());
- int attempt = 0;
- File f;
- do {
- f = genTempFile(random, desc, "tmp", LuceneTestCase.TEMP_DIR);
- } while (!f.mkdir() && (attempt++) < GET_TEMP_DIR_RETRY_THRESHOLD);
-
- if (attempt > GET_TEMP_DIR_RETRY_THRESHOLD) {
- throw new RuntimeException(
- "failed to get a temporary dir too many times. check your temp directory and consider manually cleaning it.");
- }
-
- LuceneTestCase.closeAfterSuite(new CloseableFile(f, LuceneTestCase.suiteFailureMarker));
- return f;
}
- /**
- * Deletes a directory and everything underneath it.
- */
- public static void rmDir(File dir) throws IOException {
- if (dir.exists()) {
- if (dir.isFile() && !dir.delete()) {
- throw new IOException("could not delete " + dir);
- }
- for (File f : dir.listFiles()) {
- if (f.isDirectory()) {
- rmDir(f);
- } else {
- if (!f.delete()) {
- throw new IOException("could not delete " + f);
- }
+ private static LinkedHashSet<File> rm(LinkedHashSet<File> unremoved, File... locations) {
+ for (File location : locations) {
+ if (location.exists()) {
+ if (location.isDirectory()) {
+ rm(unremoved, location.listFiles());
+ }
+
+ if (!location.delete()) {
+ unremoved.add(location);
}
}
- if (!dir.delete()) {
- throw new IOException("could not delete " + dir);
- }
}
+ return unremoved;
}
/**
- * Convenience method: Unzip zipName + ".zip" under destDir, removing destDir first
+ * Convenience method unzipping zipName into destDir, cleaning up
+ * destDir first.
*/
public static void unzip(File zipName, File destDir) throws IOException {
-
- ZipFile zipFile = new ZipFile(zipName);
-
- Enumeration<? extends ZipEntry> entries = zipFile.entries();
-
- rmDir(destDir);
-
+ rm(destDir);
destDir.mkdir();
- LuceneTestCase.closeAfterSuite(new CloseableFile(destDir, LuceneTestCase.suiteFailureMarker));
+
+ ZipFile zipFile = new ZipFile(zipName);
+ Enumeration<? extends ZipEntry> entries = zipFile.entries();
while (entries.hasMoreElements()) {
ZipEntry entry = entries.nextElement();
@@ -809,52 +787,6 @@
});
Assert.assertEquals("Reflection does not produce same map", reflectedValues, map);
}
-
- /**
- * insecure, fast version of File.createTempFile
- * uses Random instead of SecureRandom.
- */
- public static File createTempFile(String prefix, String suffix, File directory)
- throws IOException {
- if (prefix.length() < 3) {
- throw new IllegalArgumentException("prefix must be at least 3 characters");
- }
- String newSuffix = suffix == null ? ".tmp" : suffix;
- // always pull a long from master random. that way, the randomness of the test
- // is not affected by whether it initialized the counter (in genTempFile) or not.
- // note that the Random used by genTempFile is *not* the master Random, and therefore
- // does not affect the randomness of the test.
- final Random random = new Random(RandomizedContext.current().getRandom().nextLong());
- File result;
- do {
- result = genTempFile(random, prefix, newSuffix, directory);
- } while (!result.createNewFile());
- return result;
- }
-
- /* identify for differnt VM processes */
- private static String counterBase;
-
- /* Temp file counter */
- private static int counter;
- private static final Object counterLock = new Object();
-
- private static File genTempFile(Random random, String prefix, String suffix, File directory) {
- final int identify;
- synchronized (counterLock) {
- if (counterBase == null) { // init once
- counter = random.nextInt() & 0xFFFF; // up to five digits number
- counterBase = Integer.toString(counter);
- }
- identify = counter++;
- }
- StringBuilder newName = new StringBuilder();
- newName.append(prefix);
- newName.append(counterBase);
- newName.append(identify);
- newName.append(suffix);
- return new File(directory, newName.toString());
- }
public static void assertEquals(TopDocs expected, TopDocs actual) {
Assert.assertEquals("wrong total hits", expected.totalHits, actual.totalHits);
diff --git a/solr/contrib/analysis-extras/src/test/org/apache/solr/schema/TestICUCollationField.java b/solr/contrib/analysis-extras/src/test/org/apache/solr/schema/TestICUCollationField.java
index fa18f8c..9ae3e4d 100644
--- a/solr/contrib/analysis-extras/src/test/org/apache/solr/schema/TestICUCollationField.java
+++ b/solr/contrib/analysis-extras/src/test/org/apache/solr/schema/TestICUCollationField.java
@@ -22,6 +22,8 @@
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
+import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.TestUtil;
import org.apache.solr.SolrTestCaseJ4;
import org.junit.BeforeClass;
@@ -61,13 +63,9 @@
* So its preferable to create this file on-the-fly.
*/
public static String setupSolrHome() throws Exception {
- // make a solr home underneath the test's TEMP_DIR
- File tmpFile = File.createTempFile("test", "tmp", dataDir);
- tmpFile.delete();
- tmpFile.mkdir();
-
+ String tmpFile = createTempDir().getAbsolutePath();
// make data and conf dirs
- new File(tmpFile + "/collection1", "data").mkdirs();
+ new File(tmpFile + "/collection1", "data").mkdirs();
File confDir = new File(tmpFile + "/collection1", "conf");
confDir.mkdirs();
@@ -89,7 +87,7 @@
IOUtils.write(tailoredRules, os, "UTF-8");
os.close();
- return tmpFile.getAbsolutePath();
+ return tmpFile;
}
/**
diff --git a/solr/contrib/analysis-extras/src/test/org/apache/solr/schema/TestICUCollationFieldDocValues.java b/solr/contrib/analysis-extras/src/test/org/apache/solr/schema/TestICUCollationFieldDocValues.java
index c391d80..27c695d 100644
--- a/solr/contrib/analysis-extras/src/test/org/apache/solr/schema/TestICUCollationFieldDocValues.java
+++ b/solr/contrib/analysis-extras/src/test/org/apache/solr/schema/TestICUCollationFieldDocValues.java
@@ -22,6 +22,8 @@
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
+import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.TestUtil;
import org.apache.lucene.util.LuceneTestCase.SuppressCodecs;
import org.apache.solr.SolrTestCaseJ4;
import org.junit.BeforeClass;
@@ -63,10 +65,7 @@
* So its preferable to create this file on-the-fly.
*/
public static String setupSolrHome() throws Exception {
- // make a solr home underneath the test's TEMP_DIR
- File tmpFile = File.createTempFile("test", "tmp", dataDir);
- tmpFile.delete();
- tmpFile.mkdir();
+ File tmpFile = createTempDir();
// make data and conf dirs
new File(tmpFile + "/collection1", "data").mkdirs();
diff --git a/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/AbstractSqlEntityProcessorTestCase.java b/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/AbstractSqlEntityProcessorTestCase.java
index 0513e09..e4eb14e 100644
--- a/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/AbstractSqlEntityProcessorTestCase.java
+++ b/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/AbstractSqlEntityProcessorTestCase.java
@@ -16,11 +16,11 @@
import java.util.Map;
import java.util.Set;
+import junit.framework.Assert;
+
import org.junit.After;
import org.junit.Before;
-import junit.framework.Assert;
-
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
@@ -54,12 +54,11 @@
@Before
public void beforeSqlEntitiyProcessorTestCase() throws Exception {
- File tmpdir = File.createTempFile("test", "tmp", dataDir);
- tmpdir.delete();
- tmpdir.mkdir();
+ File tmpdir = createTempDir();
fileLocation = tmpdir.getPath();
fileName = "the.properties";
}
+
@After
public void afterSqlEntitiyProcessorTestCase() {
useSimpleCaches = false;
diff --git a/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestContentStreamDataSource.java b/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestContentStreamDataSource.java
index 2e6ea00..a15e2d1 100644
--- a/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestContentStreamDataSource.java
+++ b/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestContentStreamDataSource.java
@@ -16,6 +16,9 @@
*/
package org.apache.solr.handler.dataimport;
+import java.io.File;
+import java.util.List;
+
import org.apache.commons.io.FileUtils;
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
@@ -25,14 +28,10 @@
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.common.params.UpdateParams;
-
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import java.io.File;
-import java.util.List;
-
/**
* Test for ContentStreamDataSource
*
@@ -150,12 +149,7 @@
public void setUp() throws Exception {
-
- File home = new File(dataDir,
- getClass().getName() + "-" + System.currentTimeMillis());
-
-
- homeDir = new File(home, "inst");
+ homeDir = createTempDir("inst");
dataDir = new File(homeDir + "/collection1", "data");
confDir = new File(homeDir + "/collection1", "conf");
diff --git a/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestDocBuilder2.java b/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestDocBuilder2.java
index 61d9139..faa7dcf 100644
--- a/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestDocBuilder2.java
+++ b/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestDocBuilder2.java
@@ -16,15 +16,16 @@
*/
package org.apache.solr.handler.dataimport;
-import org.junit.BeforeClass;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.apache.solr.request.LocalSolrQueryRequest;
-
+import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-import java.io.File;
+
+import org.apache.solr.request.LocalSolrQueryRequest;
+import org.junit.BeforeClass;
+import org.junit.Ignore;
+import org.junit.Test;
+
import java.nio.charset.StandardCharsets;
/**
@@ -240,10 +241,7 @@
@Test
@Ignore("Fix Me. See SOLR-4103.")
public void testFileListEntityProcessor_lastIndexTime() throws Exception {
- File tmpdir = File.createTempFile("test", "tmp", dataDir);
- tmpdir.delete();
- tmpdir.mkdir();
- tmpdir.deleteOnExit();
+ File tmpdir = File.createTempFile("test", "tmp", createTempDir());
Map<String, String> params = createMap("baseDir", tmpdir.getAbsolutePath());
diff --git a/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestFileListEntityProcessor.java b/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestFileListEntityProcessor.java
index a7d3d52..1fac521 100644
--- a/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestFileListEntityProcessor.java
+++ b/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestFileListEntityProcessor.java
@@ -16,6 +16,8 @@
* limitations under the License.
*/
+import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.TestUtil;
import org.junit.Ignore;
import org.junit.Test;
@@ -38,10 +40,8 @@
@Test
@SuppressWarnings("unchecked")
public void testSimple() throws IOException {
- File tmpdir = File.createTempFile("test", "tmp", dataDir);
- tmpdir.delete();
- tmpdir.mkdir();
- tmpdir.deleteOnExit();
+ File tmpdir = createTempDir();
+
createFile(tmpdir, "a.xml", "a.xml".getBytes(StandardCharsets.UTF_8), false);
createFile(tmpdir, "b.xml", "b.xml".getBytes(StandardCharsets.UTF_8), false);
createFile(tmpdir, "c.props", "c.props".getBytes(StandardCharsets.UTF_8), false);
@@ -64,10 +64,10 @@
@Test
public void testBiggerSmallerFiles() throws IOException {
- File tmpdir = File.createTempFile("test", "tmp", dataDir);
+ File tmpdir = File.createTempFile("test", "tmp", createTempDir());
tmpdir.delete();
tmpdir.mkdir();
- tmpdir.deleteOnExit();
+
long minLength = Long.MAX_VALUE;
String smallestFile = "";
byte[] content = "abcdefgij".getBytes(StandardCharsets.UTF_8);
@@ -134,10 +134,8 @@
@Test
public void testNTOT() throws IOException {
- File tmpdir = File.createTempFile("test", "tmp", dataDir);
- tmpdir.delete();
- tmpdir.mkdir();
- tmpdir.deleteOnExit();
+ File tmpdir = createTempDir();
+
createFile(tmpdir, "a.xml", "a.xml".getBytes(StandardCharsets.UTF_8), true);
createFile(tmpdir, "b.xml", "b.xml".getBytes(StandardCharsets.UTF_8), true);
createFile(tmpdir, "c.props", "c.props".getBytes(StandardCharsets.UTF_8), true);
@@ -170,13 +168,9 @@
@Test
public void testRECURSION() throws IOException {
- File tmpdir = File.createTempFile("test", "tmp", dataDir);
- tmpdir.delete();
- tmpdir.mkdir();
- tmpdir.deleteOnExit();
+ File tmpdir = createTempDir();
File childdir = new File(tmpdir + "/child" );
- childdir.mkdirs();
- childdir.deleteOnExit();
+ childdir.mkdir();
createFile(childdir, "a.xml", "a.xml".getBytes(StandardCharsets.UTF_8), true);
createFile(childdir, "b.xml", "b.xml".getBytes(StandardCharsets.UTF_8), true);
createFile(childdir, "c.props", "c.props".getBytes(StandardCharsets.UTF_8), true);
diff --git a/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestFileListWithLineEntityProcessor.java b/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestFileListWithLineEntityProcessor.java
index 58a9eee..00109d1 100644
--- a/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestFileListWithLineEntityProcessor.java
+++ b/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestFileListWithLineEntityProcessor.java
@@ -3,6 +3,8 @@
import java.io.File;
import java.nio.charset.StandardCharsets;
+import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.TestUtil;
import org.apache.solr.request.LocalSolrQueryRequest;
import org.junit.BeforeClass;
@@ -30,10 +32,7 @@
}
public void test() throws Exception {
- File tmpdir = File.createTempFile("test", "tmp", TEMP_DIR);
- tmpdir.delete();
- tmpdir.mkdir();
- tmpdir.deleteOnExit();
+ File tmpdir = createTempDir(LuceneTestCase.getTestClass().getSimpleName());
createFile(tmpdir, "a.txt", "a line one\na line two\na line three".getBytes(StandardCharsets.UTF_8), false);
createFile(tmpdir, "b.txt", "b line one\nb line two".getBytes(StandardCharsets.UTF_8), false);
createFile(tmpdir, "c.txt", "c line one\nc line two\nc line three\nc line four".getBytes(StandardCharsets.UTF_8), false);
diff --git a/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestNonWritablePersistFile.java b/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestNonWritablePersistFile.java
index 7d33c1d..c309dcf 100644
--- a/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestNonWritablePersistFile.java
+++ b/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestNonWritablePersistFile.java
@@ -16,15 +16,15 @@
*/
package org.apache.solr.handler.dataimport;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
import org.apache.commons.io.FileUtils;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
public class TestNonWritablePersistFile extends AbstractDataImportHandlerTestCase {
private static final String FULLIMPORT_QUERY = "select * from x";
@@ -52,16 +52,11 @@
@BeforeClass
public static void createTempSolrHomeAndCore() throws Exception {
- tmpSolrHome = dataDir + File.separator + TestNonWritablePersistFile.class.getSimpleName() + System.currentTimeMillis();
+ tmpSolrHome = createTempDir().getAbsolutePath();
FileUtils.copyDirectory(getFile("dih/solr"), new File(tmpSolrHome).getAbsoluteFile());
initCore("dataimport-solrconfig.xml", "dataimport-schema.xml",
new File(tmpSolrHome).getAbsolutePath());
}
-
- @AfterClass
- public static void destroyTempSolrHomeAndCore() throws Exception {
- FileUtils.deleteDirectory(new File(tmpSolrHome).getAbsoluteFile());
- }
@Test
@SuppressWarnings("unchecked")
diff --git a/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSimplePropertiesWriter.java b/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSimplePropertiesWriter.java
index 9b8aca2..fdd9773 100644
--- a/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSimplePropertiesWriter.java
+++ b/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSimplePropertiesWriter.java
@@ -6,13 +6,10 @@
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
-import java.util.Calendar;
import java.util.Date;
-import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
-import java.util.TimeZone;
import org.junit.After;
import org.junit.Assert;
@@ -46,21 +43,10 @@
@Before
public void spwBefore() throws Exception {
- File tmpdir = File.createTempFile("test", "tmp", dataDir);
- tmpdir.delete();
- tmpdir.mkdir();
- fileLocation = tmpdir.getPath();
+ fileLocation = createTempDir().getAbsolutePath();
fileName = "the.properties";
}
- @After
- public void spwAfter() throws Exception {
- //If an Assume was tripped while setting up the test,
- //the file might not ever have been created...
- if(fileLocation!=null) {
- new File(fileLocation + File.separatorChar + fileName).delete();
- new File(fileLocation).delete();
- }
- }
+
@Test
public void testSimplePropertiesWriter() throws Exception {
diff --git a/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSolrEntityProcessorEndToEnd.java b/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSolrEntityProcessorEndToEnd.java
index 6d89d786..d7f3678 100644
--- a/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSolrEntityProcessorEndToEnd.java
+++ b/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestSolrEntityProcessorEndToEnd.java
@@ -304,7 +304,7 @@
}
public String getDataDir() {
- return dataDir.toString();
+ return initCoreDataDir.toString();
}
public String getSolrConfigFile() {
@@ -316,16 +316,13 @@
}
public void setUp() throws Exception {
-
- File home = new File(dataDir, getClass().getName() + "-"
- + System.currentTimeMillis());
-
- homeDir = new File(home + "inst");
- dataDir = new File(homeDir + "/collection1", "data");
+ String home = createTempDir().getAbsolutePath();
+ homeDir = new File(home + "inst");
+ initCoreDataDir = new File(homeDir + "/collection1", "data");
confDir = new File(homeDir + "/collection1", "conf");
homeDir.mkdirs();
- dataDir.mkdirs();
+ initCoreDataDir.mkdirs();
confDir.mkdirs();
FileUtils.copyFile(getFile(getSolrXmlFile()), new File(homeDir, "solr.xml"));
diff --git a/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestXPathEntityProcessor.java b/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestXPathEntityProcessor.java
index 28bd4c8..778d191 100644
--- a/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestXPathEntityProcessor.java
+++ b/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestXPathEntityProcessor.java
@@ -16,8 +16,6 @@
*/
package org.apache.solr.handler.dataimport;
-import org.junit.Test;
-
import java.io.File;
import java.io.Reader;
import java.io.StringReader;
@@ -28,6 +26,8 @@
import java.util.Properties;
import java.util.concurrent.TimeUnit;
+import org.junit.Test;
+
/**
* <p>
* Test for XPathEntityProcessor
@@ -43,10 +43,8 @@
@Test
public void withFieldsAndXpath() throws Exception {
- File tmpdir = File.createTempFile("test", "tmp", dataDir);
- tmpdir.delete();
- tmpdir.mkdir();
- tmpdir.deleteOnExit();
+ File tmpdir = createTempDir();
+
createFile(tmpdir, "x.xsl", xsl.getBytes(StandardCharsets.UTF_8), false);
Map entityAttrs = createMap("name", "e", "url", "cd.xml",
XPathEntityProcessor.FOR_EACH, "/catalog/cd");
@@ -334,12 +332,10 @@
@Test
public void withDefaultSolrAndXsl() throws Exception {
- File tmpdir = File.createTempFile("test", "tmp", dataDir);
- tmpdir.delete();
- tmpdir.mkdir();
- tmpdir.deleteOnExit();
+ File tmpdir = createTempDir();
AbstractDataImportHandlerTestCase.createFile(tmpdir, "x.xsl", xsl.getBytes(StandardCharsets.UTF_8),
false);
+
Map entityAttrs = createMap("name", "e",
XPathEntityProcessor.USE_SOLR_ADD_SCHEMA, "true", "xsl", ""
+ new File(tmpdir, "x.xsl").toURI(), "url", "cd.xml");
diff --git a/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestZKPropertiesWriter.java b/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestZKPropertiesWriter.java
index 0a212da..4bf494e 100644
--- a/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestZKPropertiesWriter.java
+++ b/solr/contrib/dataimporthandler/src/test/org/apache/solr/handler/dataimport/TestZKPropertiesWriter.java
@@ -17,7 +17,6 @@
* limitations under the License.
*/
-import java.io.File;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
@@ -50,8 +49,7 @@
@BeforeClass
public static void dihZk_beforeClass() throws Exception {
- zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper/server1/data";
+ zkDir = createTempDir("zkData").getAbsolutePath();
zkServer = new ZkTestServer(zkDir);
zkServer.run();
diff --git a/solr/contrib/map-reduce/src/test/org/apache/solr/hadoop/MRUnitBase.java b/solr/contrib/map-reduce/src/test/org/apache/solr/hadoop/MRUnitBase.java
index 7369c00..31e5a91 100644
--- a/solr/contrib/map-reduce/src/test/org/apache/solr/hadoop/MRUnitBase.java
+++ b/solr/contrib/map-reduce/src/test/org/apache/solr/hadoop/MRUnitBase.java
@@ -46,10 +46,10 @@
protected void setupHadoopConfig(Configuration config) throws IOException {
- String tempDir = dataDir + "/test-morphlines-" + System.currentTimeMillis();
- new File(tempDir).mkdirs();
+ String tempDir = createTempDir().getAbsolutePath();
+
FileUtils.copyFile(new File(RESOURCES_DIR + "/custom-mimetypes.xml"), new File(tempDir + "/custom-mimetypes.xml"));
-
+
AbstractSolrMorphlineTestBase.setupMorphline(tempDir, "test-morphlines/solrCellDocumentTypes", true);
config.set(MorphlineMapRunner.MORPHLINE_FILE_PARAM, tempDir + "/test-morphlines/solrCellDocumentTypes.conf");
diff --git a/solr/contrib/map-reduce/src/test/org/apache/solr/hadoop/MapReduceIndexerToolArgumentParserTest.java b/solr/contrib/map-reduce/src/test/org/apache/solr/hadoop/MapReduceIndexerToolArgumentParserTest.java
index 0056eb3..e7b2117 100644
--- a/solr/contrib/map-reduce/src/test/org/apache/solr/hadoop/MapReduceIndexerToolArgumentParserTest.java
+++ b/solr/contrib/map-reduce/src/test/org/apache/solr/hadoop/MapReduceIndexerToolArgumentParserTest.java
@@ -56,7 +56,7 @@
private static final Logger LOG = LoggerFactory.getLogger(MapReduceIndexerToolArgumentParserTest.class);
- private static final File solrHomeDirectory = new File(dataDir, MorphlineGoLiveMiniMRTest.class.getName());
+ private final File solrHomeDirectory = createTempDir();
@BeforeClass
public static void beforeClass() {
diff --git a/solr/contrib/map-reduce/src/test/org/apache/solr/hadoop/MorphlineBasicMiniMRTest.java b/solr/contrib/map-reduce/src/test/org/apache/solr/hadoop/MorphlineBasicMiniMRTest.java
index 1590faf..a076851 100644
--- a/solr/contrib/map-reduce/src/test/org/apache/solr/hadoop/MorphlineBasicMiniMRTest.java
+++ b/solr/contrib/map-reduce/src/test/org/apache/solr/hadoop/MorphlineBasicMiniMRTest.java
@@ -80,7 +80,7 @@
private static String tempDir;
- private static final File solrHomeDirectory = new File(dataDir, MorphlineBasicMiniMRTest.class.getName());
+ private static File solrHomeDirectory;
protected MapReduceIndexerTool createTool() {
return new MapReduceIndexerTool();
@@ -109,6 +109,7 @@
@BeforeClass
public static void setupClass() throws Exception {
+ solrHomeDirectory = createTempDir();
assumeTrue(
"Currently this test can only be run without the lucene test security policy in place",
System.getProperty("java.security.manager", "").equals(""));
@@ -122,8 +123,8 @@
AbstractZkTestCase.SOLRHOME = solrHomeDirectory;
FileUtils.copyDirectory(MINIMR_CONF_DIR, solrHomeDirectory);
-
- tempDir = dataDir + "/test-morphlines-" + System.currentTimeMillis();
+ File dataDir = createTempDir();
+ tempDir = dataDir.getAbsolutePath();
new File(tempDir).mkdirs();
FileUtils.copyFile(new File(RESOURCES_DIR + "/custom-mimetypes.xml"), new File(tempDir + "/custom-mimetypes.xml"));
diff --git a/solr/contrib/map-reduce/src/test/org/apache/solr/hadoop/MorphlineGoLiveMiniMRTest.java b/solr/contrib/map-reduce/src/test/org/apache/solr/hadoop/MorphlineGoLiveMiniMRTest.java
index b6e4d26..8f47c94 100644
--- a/solr/contrib/map-reduce/src/test/org/apache/solr/hadoop/MorphlineGoLiveMiniMRTest.java
+++ b/solr/contrib/map-reduce/src/test/org/apache/solr/hadoop/MorphlineGoLiveMiniMRTest.java
@@ -109,8 +109,8 @@
private final String inputAvroFile2;
private final String inputAvroFile3;
- private static final File solrHomeDirectory = new File(dataDir, MorphlineGoLiveMiniMRTest.class.getName());
-
+ private static File solrHomeDirectory;
+
@Override
public String getSolrHome() {
return solrHomeDirectory.getPath();
@@ -128,6 +128,7 @@
@BeforeClass
public static void setupClass() throws Exception {
+ solrHomeDirectory = createTempDir();
assumeTrue(
"Currently this test can only be run without the lucene test security policy in place",
System.getProperty("java.security.manager", "").equals(""));
@@ -140,16 +141,17 @@
assumeFalse("FIXME: This test fails under J9 due to the Saxon dependency - see SOLR-1301", System.getProperty("java.vm.info", "<?>").contains("IBM J9"));
AbstractZkTestCase.SOLRHOME = solrHomeDirectory;
- FileUtils.copyDirectory(MINIMR_INSTANCE_DIR, solrHomeDirectory);
+ FileUtils.copyDirectory(MINIMR_INSTANCE_DIR, AbstractZkTestCase.SOLRHOME);
+ tempDir = createTempDir().getAbsolutePath();
- tempDir = dataDir + "/test-morphlines-" + System.currentTimeMillis();
new File(tempDir).mkdirs();
+
FileUtils.copyFile(new File(RESOURCES_DIR + "/custom-mimetypes.xml"), new File(tempDir + "/custom-mimetypes.xml"));
AbstractSolrMorphlineTestBase.setupMorphline(tempDir, "test-morphlines/solrCellDocumentTypes", true);
- System.setProperty("hadoop.log.dir", new File(dataDir, "logs").getAbsolutePath());
+ System.setProperty("hadoop.log.dir", new File(tempDir, "logs").getAbsolutePath());
int taskTrackers = 2;
int dataNodes = 2;
@@ -161,15 +163,15 @@
conf.set("dfs.permissions", "true");
conf.set("hadoop.security.authentication", "simple");
- conf.set(YarnConfiguration.NM_LOCAL_DIRS, dataDir + File.separator + "nm-local-dirs");
- conf.set(YarnConfiguration.DEFAULT_NM_LOG_DIRS, dataDir + File.separator + "nm-logs");
+ conf.set(YarnConfiguration.NM_LOCAL_DIRS, tempDir + File.separator + "nm-local-dirs");
+ conf.set(YarnConfiguration.DEFAULT_NM_LOG_DIRS, tempDir + File.separator + "nm-logs");
- new File(dataDir + File.separator + "nm-local-dirs").mkdirs();
+ new File(tempDir + File.separator + "nm-local-dirs").mkdirs();
- System.setProperty("test.build.dir", dataDir + File.separator + "hdfs" + File.separator + "test-build-dir");
- System.setProperty("test.build.data", dataDir + File.separator + "hdfs" + File.separator + "build");
- System.setProperty("test.cache.data", dataDir + File.separator + "hdfs" + File.separator + "cache");
+ System.setProperty("test.build.dir", tempDir + File.separator + "hdfs" + File.separator + "test-build-dir");
+ System.setProperty("test.build.data", tempDir + File.separator + "hdfs" + File.separator + "build");
+ System.setProperty("test.cache.data", tempDir + File.separator + "hdfs" + File.separator + "cache");
dfsCluster = new MiniDFSCluster(conf, dataNodes, true, null);
FileSystem fileSystem = dfsCluster.getFileSystem();
@@ -183,7 +185,7 @@
fileSystem.setPermission(new Path("/hadoop/mapred/system"),
FsPermission.valueOf("-rwx------"));
- mrCluster = MiniMRClientClusterFactory.create(MorphlineGoLiveMiniMRTest.class, 1, conf, new File(dataDir, "mrCluster"));
+ mrCluster = MiniMRClientClusterFactory.create(MorphlineGoLiveMiniMRTest.class, 1, conf, new File(tempDir, "mrCluster"));
//new MiniMRCluster(0, 0, taskTrackers, nnURI, numDirs, racks,
//hosts, null, conf);
diff --git a/solr/contrib/morphlines-core/src/test/org/apache/solr/morphlines/solr/AbstractSolrMorphlineTestBase.java b/solr/contrib/morphlines-core/src/test/org/apache/solr/morphlines/solr/AbstractSolrMorphlineTestBase.java
index 9978466..e997b59 100644
--- a/solr/contrib/morphlines-core/src/test/org/apache/solr/morphlines/solr/AbstractSolrMorphlineTestBase.java
+++ b/solr/contrib/morphlines-core/src/test/org/apache/solr/morphlines/solr/AbstractSolrMorphlineTestBase.java
@@ -118,8 +118,7 @@
testServer = new SolrServerDocumentLoader(solrServer, batchSize);
deleteAllDocuments();
- tempDir = new File(dataDir + "/test-morphlines-" + System.currentTimeMillis()).getAbsolutePath();
- new File(tempDir).mkdirs();
+ tempDir = createTempDir().getAbsolutePath();
}
@After
diff --git a/solr/contrib/morphlines-core/src/test/org/apache/solr/morphlines/solr/AbstractSolrMorphlineZkTestBase.java b/solr/contrib/morphlines-core/src/test/org/apache/solr/morphlines/solr/AbstractSolrMorphlineZkTestBase.java
index adb2fdc..2b50117 100644
--- a/solr/contrib/morphlines-core/src/test/org/apache/solr/morphlines/solr/AbstractSolrMorphlineZkTestBase.java
+++ b/solr/contrib/morphlines-core/src/test/org/apache/solr/morphlines/solr/AbstractSolrMorphlineZkTestBase.java
@@ -32,9 +32,8 @@
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
-
-import org.kitesdk.morphline.api.Command;
import org.kitesdk.morphline.api.Collector;
+import org.kitesdk.morphline.api.Command;
import org.kitesdk.morphline.api.MorphlineContext;
import org.kitesdk.morphline.api.Record;
import org.kitesdk.morphline.base.Compiler;
@@ -47,7 +46,7 @@
import com.typesafe.config.Config;
public abstract class AbstractSolrMorphlineZkTestBase extends AbstractFullDistribZkTestBase {
- private static final File solrHomeDirectory = new File(dataDir, AbstractSolrMorphlineZkTestBase.class.getName());
+ private static File solrHomeDirectory;
protected static final String RESOURCES_DIR = getFile("morphlines-core.marker").getParent();
private static final File SOLR_INSTANCE_DIR = new File(RESOURCES_DIR + "/solr");
@@ -69,6 +68,7 @@
@BeforeClass
public static void setupClass() throws Exception {
+ solrHomeDirectory = createTempDir();
AbstractZkTestCase.SOLRHOME = solrHomeDirectory;
FileUtils.copyDirectory(SOLR_INSTANCE_DIR, solrHomeDirectory);
}
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/EditFileRequestHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/EditFileRequestHandler.java
index 3509938..aa05466 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/EditFileRequestHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/EditFileRequestHandler.java
@@ -308,15 +308,6 @@
rsp.setException(new SolrException(ErrorCode.SERVER_ERROR,
"Caught IO exception when trying to verify configs. " + ex.getMessage()));
return false;
- } finally {
- if (home != null) {
- try {
- FileUtils.deleteDirectory(home);
- } catch (IOException e) {
- log.warn("Caught IO exception trying to delete temporary directory " + home + e.getMessage());
- return true; // Don't fail for this reason!
- }
- }
}
}
diff --git a/solr/core/src/test/org/apache/solr/AnalysisAfterCoreReloadTest.java b/solr/core/src/test/org/apache/solr/AnalysisAfterCoreReloadTest.java
index fccce42..d545f05 100644
--- a/solr/core/src/test/org/apache/solr/AnalysisAfterCoreReloadTest.java
+++ b/solr/core/src/test/org/apache/solr/AnalysisAfterCoreReloadTest.java
@@ -17,6 +17,9 @@
* limitations under the License.
*/
+import java.io.File;
+import java.io.IOException;
+
import org.apache.commons.io.FileUtils;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
@@ -29,9 +32,6 @@
import org.junit.AfterClass;
import org.junit.BeforeClass;
-import java.io.File;
-import java.io.IOException;
-
public class AnalysisAfterCoreReloadTest extends SolrTestCaseJ4 {
private static String tmpSolrHome;
@@ -42,14 +42,14 @@
@BeforeClass
public static void beforeClass() throws Exception {
- tmpSolrHome = dataDir + File.separator + AnalysisAfterCoreReloadTest.class.getSimpleName() + System.currentTimeMillis();
+ tmpSolrHome = createTempDir().getAbsolutePath();
FileUtils.copyDirectory(new File(TEST_HOME()), new File(tmpSolrHome).getAbsoluteFile());
initCore("solrconfig.xml", "schema.xml", new File(tmpSolrHome).getAbsolutePath());
}
@AfterClass
public static void AfterClass() throws Exception {
- FileUtils.deleteDirectory(new File(tmpSolrHome).getAbsoluteFile());
+
}
public void testStopwordsAfterCoreReload() throws Exception {
diff --git a/solr/core/src/test/org/apache/solr/SolrTestCaseJ4Test.java b/solr/core/src/test/org/apache/solr/SolrTestCaseJ4Test.java
index 0f166b1..1553207 100644
--- a/solr/core/src/test/org/apache/solr/SolrTestCaseJ4Test.java
+++ b/solr/core/src/test/org/apache/solr/SolrTestCaseJ4Test.java
@@ -17,13 +17,13 @@
* limitations under the License.
*/
+import java.io.File;
+
import org.apache.commons.io.FileUtils;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
-import java.io.File;
-
public class SolrTestCaseJ4Test extends SolrTestCaseJ4 {
@@ -31,10 +31,9 @@
@BeforeClass
public static void beforeClass() throws Exception {
-
// Create a temporary directory that holds a core NOT named "collection1". Use the smallest configuration sets
// we can so we don't copy that much junk around.
- tmpSolrHome = dataDir + File.separator + SolrTestCaseJ4Test.class.getSimpleName() + System.currentTimeMillis();
+ tmpSolrHome = createTempDir().getAbsolutePath();
File subHome = new File(new File(tmpSolrHome, "core0"), "conf");
assertTrue("Failed to make subdirectory ", subHome.mkdirs());
@@ -52,7 +51,7 @@
@AfterClass
public static void AfterClass() throws Exception {
- FileUtils.deleteDirectory(new File(tmpSolrHome).getAbsoluteFile());
+
}
@Test
diff --git a/solr/core/src/test/org/apache/solr/TestSolrCoreProperties.java b/solr/core/src/test/org/apache/solr/TestSolrCoreProperties.java
index b063728..17de926 100644
--- a/solr/core/src/test/org/apache/solr/TestSolrCoreProperties.java
+++ b/solr/core/src/test/org/apache/solr/TestSolrCoreProperties.java
@@ -16,23 +16,20 @@
*/
package org.apache.solr;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.util.Properties;
+
+import org.apache.commons.io.FileUtils;
import org.apache.lucene.util.IOUtils;
-//import org.apache.lucene.util.LuceneTestCase;
-//import org.apache.solr.util.AbstractSolrTestCase;
-//import org.apache.solr.client.solrj.embedded.JettySolrRunner;
-//import org.apache.solr.client.solrj.impl.HttpSolrServer;
-//import org.apache.solr.client.solrj.SolrServer;
-//import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.NamedList;
-import org.apache.commons.io.FileUtils;
import org.junit.BeforeClass;
-import java.io.*;
import java.nio.charset.StandardCharsets;
-import java.util.Properties;
-
/**
* <p> Test for Loading core properties from a properties file </p>
@@ -44,8 +41,8 @@
@BeforeClass
public static void beforeTest() throws Exception {
- File homeDir = new File(dataDir,
- "solrtest-TestSolrCoreProperties-" + System.currentTimeMillis());
+ File homeDir = createTempDir();
+
File collDir = new File(homeDir, "collection1");
File dataDir = new File(collDir, "data");
File confDir = new File(collDir, "conf");
diff --git a/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZk2Test.java b/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZk2Test.java
index d019190..18df162 100644
--- a/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZk2Test.java
+++ b/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZk2Test.java
@@ -168,8 +168,7 @@
createCmd.setCoreName(ONE_NODE_COLLECTION + "core");
createCmd.setCollection(ONE_NODE_COLLECTION);
createCmd.setNumShards(1);
- createCmd.setDataDir(getDataDir(dataDir.getAbsolutePath() + File.separator
- + ONE_NODE_COLLECTION));
+ createCmd.setDataDir(getDataDir(createTempDir(ONE_NODE_COLLECTION).getAbsolutePath()));
server.request(createCmd);
server.shutdown();
} catch (Exception e) {
@@ -415,15 +414,15 @@
ModifiableSolrParams params = new ModifiableSolrParams();
params.set("qt", "/replication");
params.set("command", "backup");
- File location = new File(dataDir, BasicDistributedZk2Test.class.getName() + "-backupdir-" + System.currentTimeMillis());
+ File location = createTempDir();
params.set("location", location.getAbsolutePath());
QueryRequest request = new QueryRequest(params);
NamedList<Object> results = client.request(request );
checkForBackupSuccess(client, location);
-
}
+
private void checkForBackupSuccess(final HttpSolrServer client, File location)
throws InterruptedException, IOException {
class CheckStatus extends Thread {
diff --git a/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java b/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java
index 1f0a2e4..3a14fe0 100644
--- a/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/BasicDistributedZkTest.java
@@ -17,7 +17,6 @@
* limitations under the License.
*/
-import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.ArrayList;
@@ -38,8 +37,8 @@
import org.apache.commons.lang.StringUtils;
import org.apache.lucene.util.LuceneTestCase.Slow;
-import org.apache.solr.SolrTestCaseJ4.SuppressSSL;
import org.apache.solr.JSONTestUtil;
+import org.apache.solr.SolrTestCaseJ4.SuppressSSL;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.SolrServer;
@@ -388,8 +387,7 @@
Create createCmd = new Create();
createCmd.setCoreName("core1");
createCmd.setCollection("the_core_collection");
- String coredataDir = dataDir.getAbsolutePath() + File.separator
- + System.currentTimeMillis() + "the_core_collection";
+ String coredataDir = createTempDir().getAbsolutePath();
createCmd.setDataDir(coredataDir);
createCmd.setNumShards(1);
createCmd.setSchemaName("nonexistent_schema.xml");
@@ -569,8 +567,7 @@
createCmd.setNumShards(numShards);
try {
- String core3dataDir = dataDir.getAbsolutePath() + File.separator
- + System.currentTimeMillis() + collection + "_3n" + freezeI;
+ String core3dataDir = createTempDir(collection).getAbsolutePath();
createCmd.setDataDir(getDataDir(core3dataDir));
server.request(createCmd);
@@ -982,8 +979,7 @@
if (shardId == null) {
createCmd.setNumShards(2);
}
- createCmd.setDataDir(getDataDir(dataDir.getAbsolutePath() + File.separator
- + collection + num));
+ createCmd.setDataDir(getDataDir(createTempDir(collection).getAbsolutePath()));
if (shardId != null) {
createCmd.setShardId(shardId);
}
@@ -1110,11 +1106,8 @@
server.setSoTimeout(60000);
Create createCmd = new Create();
createCmd.setCoreName(collection);
- createCmd.setDataDir(getDataDir(dataDir.getAbsolutePath() + File.separator
- + collection + frozeUnique));
-
+ createCmd.setDataDir(getDataDir(createTempDir(collection).getAbsolutePath()));
server.request(createCmd);
-
} catch (Exception e) {
e.printStackTrace();
//fails
diff --git a/solr/core/src/test/org/apache/solr/cloud/ClusterStateUpdateTest.java b/solr/core/src/test/org/apache/solr/cloud/ClusterStateUpdateTest.java
index 8f6d6a0..e391d88 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ClusterStateUpdateTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ClusterStateUpdateTest.java
@@ -18,6 +18,7 @@
*/
import org.apache.commons.io.FileUtils;
+import org.apache.lucene.util.TestUtil;
import org.apache.lucene.util.LuceneTestCase.Slow;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.cloud.ClusterState;
@@ -68,15 +69,13 @@
private File dataDir4;
- private static volatile File solrHomeDirectory = new File(dataDir, "ZkControllerTest");
+ private static volatile File solrHomeDirectory;
@BeforeClass
public static void beforeClass() throws IOException {
+ solrHomeDirectory = createTempDir();
System.setProperty("solrcloud.skip.autorecovery", "true");
System.setProperty("genericCoreNodeNames", "false");
- if (solrHomeDirectory.exists()) {
- FileUtils.deleteDirectory(solrHomeDirectory);
- }
copyMinFullSetup(solrHomeDirectory);
}
@@ -85,9 +84,6 @@
public static void afterClass() throws InterruptedException, IOException {
System.clearProperty("solrcloud.skip.autorecovery");
System.clearProperty("genericCoreNodeNames");
- if (solrHomeDirectory.exists()) {
- FileUtils.deleteDirectory(solrHomeDirectory);
- }
}
@@ -95,9 +91,8 @@
public void setUp() throws Exception {
super.setUp();
System.setProperty("zkClientTimeout", "3000");
-
- zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper/server1/data";
+ File tmpDir = createTempDir("zkData");
+ zkDir = tmpDir.getAbsolutePath();
zkServer = new ZkTestServer(zkDir);
zkServer.run();
System.setProperty("zkHost", zkServer.getZkAddress());
@@ -105,16 +100,16 @@
.getZkAddress(), "solrconfig.xml", "schema.xml");
log.info("####SETUP_START " + getTestName());
- dataDir1 = new File(dataDir + File.separator + "data1");
+ dataDir1 = new File(tmpDir + File.separator + "data1");
dataDir1.mkdirs();
- dataDir2 = new File(dataDir + File.separator + "data2");
+ dataDir2 = new File(tmpDir + File.separator + "data2");
dataDir2.mkdirs();
- dataDir3 = new File(dataDir + File.separator + "data3");
+ dataDir3 = new File(tmpDir + File.separator + "data3");
dataDir3.mkdirs();
- dataDir4 = new File(dataDir + File.separator + "data4");
+ dataDir4 = new File(tmpDir + File.separator + "data4");
dataDir4.mkdirs();
// set some system properties for use by tests
diff --git a/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIDistributedZkTest.java b/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIDistributedZkTest.java
index cc764bb..3e1780b 100644
--- a/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIDistributedZkTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/CollectionsAPIDistributedZkTest.java
@@ -50,7 +50,6 @@
import org.apache.lucene.util.LuceneTestCase.Slow;
import org.apache.lucene.util.TestUtil;
-import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.SolrServer;
@@ -335,8 +334,7 @@
Create createCmd = new Create();
createCmd.setCoreName("halfdeletedcollection_shard1_replica1");
createCmd.setCollection(collectionName);
- String dataDir = SolrTestCaseJ4.dataDir.getAbsolutePath() + File.separator
- + System.currentTimeMillis() + "halfcollection" + "_hdn";
+ String dataDir = createTempDir().getAbsolutePath();
createCmd.setDataDir(dataDir);
createCmd.setNumShards(2);
if (secondConfigSet) {
@@ -527,8 +525,7 @@
Create createCmd = new Create();
createCmd.setCoreName("halfcollection_shard1_replica1");
createCmd.setCollection("halfcollectionblocker");
- String dataDir = SolrTestCaseJ4.dataDir.getAbsolutePath() + File.separator
- + System.currentTimeMillis() + "halfcollection" + "_3n";
+ String dataDir = createTempDir().getAbsolutePath();
createCmd.setDataDir(dataDir);
createCmd.setNumShards(1);
if (secondConfigSet) {
@@ -539,8 +536,7 @@
createCmd = new Create();
createCmd.setCoreName("halfcollection_shard1_replica1");
createCmd.setCollection("halfcollectionblocker2");
- dataDir = SolrTestCaseJ4.dataDir.getAbsolutePath() + File.separator
- + System.currentTimeMillis() + "halfcollection" + "_3n";
+ dataDir = createTempDir().getAbsolutePath();
createCmd.setDataDir(dataDir);
createCmd.setNumShards(1);
if (secondConfigSet) {
@@ -589,8 +585,7 @@
Create createCmd = new Create();
createCmd.setCoreName("corewithnocollection");
createCmd.setCollection("");
- String dataDir = SolrTestCaseJ4.dataDir.getAbsolutePath() + File.separator
- + System.currentTimeMillis() + "corewithnocollection" + "_1v";
+ String dataDir = createTempDir().getAbsolutePath();
createCmd.setDataDir(dataDir);
createCmd.setNumShards(1);
if (secondConfigSet) {
diff --git a/solr/core/src/test/org/apache/solr/cloud/ConnectionManagerTest.java b/solr/core/src/test/org/apache/solr/cloud/ConnectionManagerTest.java
index 049bdbf..9594d3f 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ConnectionManagerTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ConnectionManagerTest.java
@@ -37,8 +37,7 @@
public void testConnectionManager() throws Exception {
// setup a SolrZkClient to do some getBaseUrlForNodeName testing
- String zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper/server1/data";
+ String zkDir = createTempDir("zkData").getAbsolutePath();
ZkTestServer server = new ZkTestServer(zkDir);
try {
@@ -72,8 +71,7 @@
public void testLikelyExpired() throws Exception {
// setup a SolrZkClient to do some getBaseUrlForNodeName testing
- String zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper/server1/data";
+ String zkDir = createTempDir("zkData").getAbsolutePath();
ZkTestServer server = new ZkTestServer(zkDir);
try {
diff --git a/solr/core/src/test/org/apache/solr/cloud/LeaderElectionIntegrationTest.java b/solr/core/src/test/org/apache/solr/cloud/LeaderElectionIntegrationTest.java
index 2b30db6..5adc575 100644
--- a/solr/core/src/test/org/apache/solr/cloud/LeaderElectionIntegrationTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/LeaderElectionIntegrationTest.java
@@ -79,8 +79,7 @@
System.setProperty("zkClientTimeout", "8000");
- zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper" + System.currentTimeMillis() + "/server1/data";
+ zkDir = createTempDir("zkData").getAbsolutePath();
zkServer = new ZkTestServer(zkDir);
zkServer.run();
System.setProperty("zkHost", zkServer.getZkAddress());
@@ -133,8 +132,7 @@
private void setupContainer(int port, String shard) throws IOException,
ParserConfigurationException, SAXException {
- File data = new File(dataDir + File.separator + "data_" + port);
- data.mkdirs();
+ File data = createTempDir();
System.setProperty("hostPort", Integer.toString(port));
System.setProperty("shard", shard);
diff --git a/solr/core/src/test/org/apache/solr/cloud/LeaderElectionTest.java b/solr/core/src/test/org/apache/solr/cloud/LeaderElectionTest.java
index c57fbb1..b3f01c2 100644
--- a/solr/core/src/test/org/apache/solr/cloud/LeaderElectionTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/LeaderElectionTest.java
@@ -66,8 +66,7 @@
@Override
public void setUp() throws Exception {
super.setUp();
- String zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper/server1/data";
+ String zkDir = createTempDir("zkData").getAbsolutePath();;
server = new ZkTestServer(zkDir);
server.setTheTickTime(1000);
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 6c3b672..8836a7c 100644
--- a/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/OverseerTest.java
@@ -43,7 +43,6 @@
import org.apache.solr.common.cloud.SolrZkClient;
import org.apache.solr.common.cloud.ZkNodeProps;
import org.apache.solr.common.cloud.ZkStateReader;
-import org.apache.solr.handler.admin.CollectionsHandler;
import org.apache.solr.handler.component.HttpShardHandlerFactory;
import org.apache.solr.util.DefaultSolrThreadFactory;
import org.apache.zookeeper.CreateMode;
@@ -204,8 +203,7 @@
@Test
public void testShardAssignment() throws Exception {
- String zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper/server1/data";
+ String zkDir = createTempDir("zkData").getAbsolutePath();
ZkTestServer server = new ZkTestServer(zkDir);
@@ -260,8 +258,7 @@
@Test
public void testBadQueueItem() throws Exception {
- String zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper/server1/data";
+ String zkDir = createTempDir("zkData").getAbsolutePath();
ZkTestServer server = new ZkTestServer(zkDir);
@@ -335,8 +332,7 @@
@Test
public void testShardAssignmentBigger() throws Exception {
- String zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper/server1/data";
+ String zkDir = createTempDir("zkData").getAbsolutePath();
final int nodeCount = random().nextInt(50)+50; //how many simulated nodes (num of threads)
final int coreCount = random().nextInt(100)+100; //how many cores to register
@@ -506,8 +502,7 @@
@Test
public void testStateChange() throws Exception {
- String zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper/server1/data";
+ String zkDir = createTempDir("zkData").getAbsolutePath();
ZkTestServer server = new ZkTestServer(zkDir);
@@ -603,8 +598,7 @@
@Test
public void testOverseerFailure() throws Exception {
- String zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper/server1/data";
+ String zkDir = createTempDir("zkData").getAbsolutePath();
ZkTestServer server = new ZkTestServer(zkDir);
@@ -726,8 +720,7 @@
@Test
public void testShardLeaderChange() throws Exception {
- String zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper/server1/data";
+ String zkDir = createTempDir("zkData").getAbsolutePath();
final ZkTestServer server = new ZkTestServer(zkDir);
SolrZkClient controllerClient = null;
ZkStateReader reader = null;
@@ -782,8 +775,7 @@
@Test
public void testDoubleAssignment() throws Exception {
- String zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper/server1/data";
+ String zkDir = createTempDir("zkData").getAbsolutePath();
ZkTestServer server = new ZkTestServer(zkDir);
@@ -847,8 +839,7 @@
@Test
public void testPlaceholders() throws Exception {
- String zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper/server1/data";
+ String zkDir = createTempDir("zkData").getAbsolutePath();
ZkTestServer server = new ZkTestServer(zkDir);
@@ -896,7 +887,7 @@
@Test
public void testReplay() throws Exception{
- String zkDir = dataDir.getAbsolutePath() + File.separator
+ String zkDir = createTempDir().getAbsolutePath() + File.separator
+ "zookeeper/server1/data";
ZkTestServer server = new ZkTestServer(zkDir);
SolrZkClient zkClient = null;
diff --git a/solr/core/src/test/org/apache/solr/cloud/SliceStateUpdateTest.java b/solr/core/src/test/org/apache/solr/cloud/SliceStateUpdateTest.java
index ea59249..8b0086c 100644
--- a/solr/core/src/test/org/apache/solr/cloud/SliceStateUpdateTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/SliceStateUpdateTest.java
@@ -77,8 +77,7 @@
System.setProperty("zkClientTimeout", "3000");
- zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper/server1/data";
+ zkDir = createTempDir("zkData").getAbsolutePath();
zkServer = new ZkTestServer(zkDir);
zkServer.run();
System.setProperty("zkHost", zkServer.getZkAddress());
@@ -99,11 +98,9 @@
CreateMode.PERSISTENT, true);
zkClient.close();
- dataDir1 = new File(dataDir + File.separator + "data1");
- dataDir1.mkdirs();
+ dataDir1 = createTempDir("data1");
- dataDir2 = new File(dataDir + File.separator + "data2");
- dataDir2.mkdirs();
+ dataDir2 = createTempDir("data2");
// set some system properties for use by tests
System.setProperty("solr.test.sys.prop1", "propone");
diff --git a/solr/core/src/test/org/apache/solr/cloud/SolrXmlInZkTest.java b/solr/core/src/test/org/apache/solr/cloud/SolrXmlInZkTest.java
index b21f101..45f05b0 100644
--- a/solr/core/src/test/org/apache/solr/cloud/SolrXmlInZkTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/SolrXmlInZkTest.java
@@ -50,8 +50,6 @@
private ZkStateReader reader;
- private static int PORT = 7000;
-
private ConfigSolr cfg;
@Before
@@ -60,8 +58,9 @@
}
private void setUpZkAndDiskXml(boolean toZk, boolean leaveOnLocal) throws Exception {
- recurseDelete(dataDir);
- File solrHome = new File(dataDir, "home");
+ File tmpDir = createTempDir();
+ recurseDelete(tmpDir);
+ File solrHome = new File(tmpDir, "home");
copyMinConf(new File(solrHome, "myCollect"));
if (leaveOnLocal) {
FileUtils.copyFile(new File(SolrTestCaseJ4.TEST_HOME(), "solr-stress-new.xml"), new File(solrHome, "solr.xml"));
@@ -74,7 +73,7 @@
System.setProperty("zkClientTimeout", "8000");
- zkDir = dataDir.getAbsolutePath() + File.separator
+ zkDir = tmpDir.getAbsolutePath() + File.separator
+ "zookeeper" + System.currentTimeMillis() + "/server1/data";
zkServer = new ZkTestServer(zkDir);
zkServer.run();
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestMultiCoreConfBootstrap.java b/solr/core/src/test/org/apache/solr/cloud/TestMultiCoreConfBootstrap.java
index c9a8669..5d66b96 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestMultiCoreConfBootstrap.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestMultiCoreConfBootstrap.java
@@ -17,10 +17,11 @@
package org.apache.solr.cloud;
+import java.io.File;
+
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.cloud.SolrZkClient;
import org.apache.solr.core.CoreContainer;
-import org.apache.solr.util.AbstractSolrTestCase;
import org.apache.solr.util.ExternalPaths;
import org.junit.After;
import org.junit.Before;
@@ -28,13 +29,12 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.File;
-
public class TestMultiCoreConfBootstrap extends SolrTestCaseJ4 {
protected static Logger log = LoggerFactory.getLogger(TestMultiCoreConfBootstrap.class);
protected CoreContainer cores = null;
private String home;
+ protected File dataDir1;
protected File dataDir2;
protected ZkTestServer zkServer;
protected String zkDir;
@@ -43,17 +43,15 @@
@Before
public void setUp() throws Exception {
super.setUp();
-
- dataDir2 = new File(dataDir, getSimpleClassName() + "-core1-"
- + System.currentTimeMillis());
- dataDir2.mkdirs();
+ dataDir1 = createTempDir();
+ dataDir2 = createTempDir();
home = ExternalPaths.EXAMPLE_MULTICORE_HOME;
System.setProperty("solr.solr.home", home);
- System.setProperty( "solr.core0.data.dir", dataDir.getCanonicalPath() );
+ System.setProperty( "solr.core0.data.dir", dataDir1.getCanonicalPath() );
System.setProperty( "solr.core1.data.dir", dataDir2.getCanonicalPath() );
- zkDir = dataDir.getAbsolutePath() + File.separator
+ zkDir = dataDir1.getAbsolutePath() + File.separator
+ "zookeeper/server1/data";
zkServer = new ZkTestServer(zkDir);
zkServer.run();
diff --git a/solr/core/src/test/org/apache/solr/cloud/TestZkChroot.java b/solr/core/src/test/org/apache/solr/cloud/TestZkChroot.java
index 3b6cdc8..78f7233 100644
--- a/solr/core/src/test/org/apache/solr/cloud/TestZkChroot.java
+++ b/solr/core/src/test/org/apache/solr/cloud/TestZkChroot.java
@@ -17,11 +17,12 @@
* limitations under the License.
*/
+import java.io.File;
+
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.cloud.SolrZkClient;
import org.apache.solr.common.cloud.ZooKeeperException;
import org.apache.solr.core.CoreContainer;
-import org.apache.solr.util.AbstractSolrTestCase;
import org.apache.solr.util.ExternalPaths;
import org.junit.After;
import org.junit.Before;
@@ -29,8 +30,6 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.File;
-
public class TestZkChroot extends SolrTestCaseJ4 {
protected static Logger log = LoggerFactory.getLogger(TestZkChroot.class);
protected CoreContainer cores = null;
@@ -44,8 +43,7 @@
public void setUp() throws Exception {
super.setUp();
- zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper/server1/data";
+ zkDir = createTempDir("zkData").getAbsolutePath();
zkServer = new ZkTestServer(zkDir);
zkServer.run();
home = ExternalPaths.EXAMPLE_HOME;
diff --git a/solr/core/src/test/org/apache/solr/cloud/UnloadDistributedZkTest.java b/solr/core/src/test/org/apache/solr/cloud/UnloadDistributedZkTest.java
index dd18110..f66bee7 100644
--- a/solr/core/src/test/org/apache/solr/cloud/UnloadDistributedZkTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/UnloadDistributedZkTest.java
@@ -84,13 +84,11 @@
private void testUnloadShardAndCollection() throws Exception{
// create one leader and one replica
-
Create createCmd = new Create();
createCmd.setCoreName("test_unload_shard_and_collection_1");
String collection = "test_unload_shard_and_collection";
createCmd.setCollection(collection);
- String coreDataDir = dataDir.getAbsolutePath() + File.separator
- + System.currentTimeMillis() + collection + "1";
+ String coreDataDir = createTempDir().getAbsolutePath();
createCmd.setDataDir(getDataDir(coreDataDir));
createCmd.setNumShards(2);
@@ -105,8 +103,7 @@
createCmd.setCoreName("test_unload_shard_and_collection_2");
collection = "test_unload_shard_and_collection";
createCmd.setCollection(collection);
- coreDataDir = dataDir.getAbsolutePath() + File.separator
- + System.currentTimeMillis() + collection + "2";
+ coreDataDir = createTempDir().getAbsolutePath();
createCmd.setDataDir(getDataDir(coreDataDir));
server.request(createCmd);
@@ -157,6 +154,8 @@
* @throws Exception on any problem
*/
private void testCoreUnloadAndLeaders() throws Exception {
+ File tmpDir = createTempDir();
+
// create a new collection collection
SolrServer client = clients.get(0);
String url1 = getBaseUrl(client);
@@ -168,7 +167,7 @@
createCmd.setCoreName("unloadcollection1");
createCmd.setCollection("unloadcollection");
createCmd.setNumShards(1);
- String core1DataDir = dataDir.getAbsolutePath() + File.separator + System.currentTimeMillis() + "unloadcollection1" + "_1n";
+ String core1DataDir = tmpDir.getAbsolutePath() + File.separator + System.currentTimeMillis() + "unloadcollection1" + "_1n";
createCmd.setDataDir(getDataDir(core1DataDir));
server.request(createCmd);
server.shutdown();
@@ -188,7 +187,7 @@
createCmd = new Create();
createCmd.setCoreName("unloadcollection2");
createCmd.setCollection("unloadcollection");
- String core2dataDir = dataDir.getAbsolutePath() + File.separator + System.currentTimeMillis() + "unloadcollection1" + "_2n";
+ String core2dataDir = tmpDir.getAbsolutePath() + File.separator + System.currentTimeMillis() + "unloadcollection1" + "_2n";
createCmd.setDataDir(getDataDir(core2dataDir));
server.request(createCmd);
server.shutdown();
@@ -230,7 +229,7 @@
createCmd = new Create();
createCmd.setCoreName("unloadcollection3");
createCmd.setCollection("unloadcollection");
- String core3dataDir = dataDir.getAbsolutePath() + File.separator + System.currentTimeMillis() + "unloadcollection" + "_3n";
+ String core3dataDir = tmpDir.getAbsolutePath() + File.separator + System.currentTimeMillis() + "unloadcollection" + "_3n";
createCmd.setDataDir(getDataDir(core3dataDir));
server.request(createCmd);
server.shutdown();
@@ -308,7 +307,7 @@
createCmd = new Create();
createCmd.setCoreName("unloadcollection4");
createCmd.setCollection("unloadcollection");
- String core4dataDir = dataDir.getAbsolutePath() + File.separator + System.currentTimeMillis() + "unloadcollection" + "_4n";
+ String core4dataDir = tmpDir.getAbsolutePath() + File.separator + System.currentTimeMillis() + "unloadcollection" + "_4n";
createCmd.setDataDir(getDataDir(core4dataDir));
server.request(createCmd);
server.shutdown();
diff --git a/solr/core/src/test/org/apache/solr/cloud/ZkCLITest.java b/solr/core/src/test/org/apache/solr/cloud/ZkCLITest.java
index 7548403..26f9894 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ZkCLITest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ZkCLITest.java
@@ -77,18 +77,18 @@
log.info("####SETUP_START " + getTestName());
boolean useNewSolrXml = random().nextBoolean();
-
+ File tmpDir = createTempDir();
if (useNewSolrXml) {
solrHome = ExternalPaths.EXAMPLE_HOME;
} else {
- File tmpSolrHome = new File(dataDir, "tmp-solr-home");
+ File tmpSolrHome = new File(tmpDir, "tmp-solr-home");
FileUtils.copyDirectory(new File(ExternalPaths.EXAMPLE_HOME), tmpSolrHome);
FileUtils.copyFile(getFile("old-solr-example/solr.xml"), new File(tmpSolrHome, "solr.xml"));
solrHome = tmpSolrHome.getAbsolutePath();
}
- zkDir = dataDir.getAbsolutePath() + File.separator
+ zkDir = tmpDir.getAbsolutePath() + File.separator
+ "zookeeper/server1/data";
log.info("ZooKeeper dataDir:" + zkDir);
zkServer = new ZkTestServer(zkDir);
@@ -204,6 +204,8 @@
@Test
public void testUpConfigLinkConfigClearZk() throws Exception {
+ File tmpDir = createTempDir();
+
// test upconfig
String confsetname = "confsetone";
String[] args = new String[] {
@@ -231,11 +233,10 @@
assertEquals(confsetname, collectionProps.getStr("configName"));
// test down config
- File confDir = new File(dataDir,
+ File confDir = new File(tmpDir,
"solrtest-confdropspot-" + this.getClass().getName() + "-" + System.currentTimeMillis());
-
assertFalse(confDir.exists());
-
+
args = new String[] {"-zkhost", zkServer.getZkAddress(), "-cmd",
"downconfig", "-confdir", confDir.getAbsolutePath(), "-confname", confsetname};
ZkCLI.main(args);
@@ -277,11 +278,13 @@
@Test
public void testGetFile() throws Exception {
+ File tmpDir = createTempDir();
+
String getNode = "/getFileNode";
byte [] data = new String("getFileNode-data").getBytes(StandardCharsets.UTF_8);
this.zkClient.create(getNode, data, CreateMode.PERSISTENT, true);
- File file = new File(dataDir,
+ File file = new File(tmpDir,
"solrtest-getfile-" + this.getClass().getName() + "-" + System.currentTimeMillis());
String[] args = new String[] {"-zkhost", zkServer.getZkAddress(), "-cmd",
"getfile", getNode, file.getAbsolutePath()};
@@ -293,10 +296,10 @@
@Test
public void testGetFileNotExists() throws Exception {
+ File tmpDir = createTempDir();
String getNode = "/getFileNotExistsNode";
- File file = new File(dataDir,
- "solrtest-getfilenotexists-" + this.getClass().getName() + "-" + System.currentTimeMillis());
+ File file = File.createTempFile("newfile", null, tmpDir);
String[] args = new String[] {"-zkhost", zkServer.getZkAddress(), "-cmd",
"getfile", getNode, file.getAbsolutePath()};
try {
diff --git a/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java b/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java
index ff70752..e06482d 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ZkControllerTest.java
@@ -81,8 +81,7 @@
ZkController.generateNodeName("foo-bar", "77", "/solr/sub_dir/"));
// setup a SolrZkClient to do some getBaseUrlForNodeName testing
- String zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper/server1/data";
+ String zkDir = createTempDir("zkData").getAbsolutePath();
ZkTestServer server = new ZkTestServer(zkDir);
try {
@@ -152,8 +151,7 @@
@Test
public void testReadConfigName() throws Exception {
- String zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper/server1/data";
+ String zkDir = createTempDir("zkData").getAbsolutePath();
CoreContainer cc = null;
ZkTestServer server = new ZkTestServer(zkDir);
@@ -208,8 +206,7 @@
@Test
public void testUploadToCloud() throws Exception {
- String zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper/server1/data";
+ String zkDir = createTempDir("zkData").getAbsolutePath();
ZkTestServer server = new ZkTestServer(zkDir);
ZkController zkController = null;
@@ -261,8 +258,7 @@
@Test
public void testGetHostName() throws Exception {
- String zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper/server1/data";
+ String zkDir = createTempDir("zkData").getAbsolutePath();
CoreContainer cc = null;
ZkTestServer server = new ZkTestServer(zkDir);
diff --git a/solr/core/src/test/org/apache/solr/cloud/ZkSolrClientTest.java b/solr/core/src/test/org/apache/solr/cloud/ZkSolrClientTest.java
index e0ef66b..d6c0746 100644
--- a/solr/core/src/test/org/apache/solr/cloud/ZkSolrClientTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/ZkSolrClientTest.java
@@ -40,8 +40,7 @@
}
public void testConnect() throws Exception {
- String zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper/server1/data";
+ String zkDir = createTempDir("zkData").getAbsolutePath();
ZkTestServer server = null;
server = new ZkTestServer(zkDir);
@@ -54,8 +53,7 @@
}
public void testMakeRootNode() throws Exception {
- String zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper/server1/data";
+ String zkDir = createTempDir("zkData").getAbsolutePath();
ZkTestServer server = null;
server = new ZkTestServer(zkDir);
@@ -73,8 +71,7 @@
}
public void testClean() throws Exception {
- String zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper/server1/data";
+ String zkDir = createTempDir("zkData").getAbsolutePath();
ZkTestServer server = null;
server = new ZkTestServer(zkDir);
@@ -99,8 +96,7 @@
}
public void testReconnect() throws Exception {
- String zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper/server1/data";
+ String zkDir = createTempDir("zkData").getAbsolutePath();
ZkTestServer server = null;
SolrZkClient zkClient = null;
try {
@@ -193,8 +189,7 @@
}
public void testWatchChildren() throws Exception {
- String zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper/server1/data";
+ String zkDir = createTempDir("zkData").getAbsolutePath();
final AtomicInteger cnt = new AtomicInteger();
ZkTestServer server = new ZkTestServer(zkDir);
diff --git a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsBasicDistributedZk2Test.java b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsBasicDistributedZk2Test.java
index eb65214..9baf3e0 100644
--- a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsBasicDistributedZk2Test.java
+++ b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsBasicDistributedZk2Test.java
@@ -17,7 +17,6 @@
* limitations under the License.
*/
-import java.io.File;
import java.io.IOException;
import org.apache.hadoop.hdfs.MiniDFSCluster;
@@ -38,9 +37,7 @@
@BeforeClass
public static void setupClass() throws Exception {
- dfsCluster = HdfsTestUtil.setupClass(new File(dataDir,
- HdfsBasicDistributedZk2Test.class.getName() + "_"
- + System.currentTimeMillis()).getAbsolutePath());
+ dfsCluster = HdfsTestUtil.setupClass(createTempDir().getAbsolutePath());
}
@AfterClass
diff --git a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsBasicDistributedZkTest.java b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsBasicDistributedZkTest.java
index 53ceeef..4125490 100644
--- a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsBasicDistributedZkTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsBasicDistributedZkTest.java
@@ -21,6 +21,7 @@
import java.io.IOException;
import org.apache.hadoop.hdfs.MiniDFSCluster;
+import org.apache.lucene.util.TestUtil;
import org.apache.lucene.util.LuceneTestCase.Slow;
import org.apache.solr.cloud.BasicDistributedZkTest;
import org.junit.AfterClass;
@@ -38,9 +39,7 @@
@BeforeClass
public static void setupClass() throws Exception {
- dfsCluster = HdfsTestUtil.setupClass(new File(dataDir,
- HdfsBasicDistributedZk2Test.class.getName() + "_"
- + System.currentTimeMillis()).getAbsolutePath());
+ dfsCluster = HdfsTestUtil.setupClass(createTempDir().getAbsolutePath());
}
@AfterClass
diff --git a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsChaosMonkeySafeLeaderTest.java b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsChaosMonkeySafeLeaderTest.java
index d0d09ba..8a0e4a6 100644
--- a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsChaosMonkeySafeLeaderTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsChaosMonkeySafeLeaderTest.java
@@ -17,7 +17,6 @@
* limitations under the License.
*/
-import java.io.File;
import java.io.IOException;
import org.apache.hadoop.hdfs.MiniDFSCluster;
@@ -39,9 +38,7 @@
@BeforeClass
public static void setupClass() throws Exception {
- dfsCluster = HdfsTestUtil.setupClass(new File(dataDir,
- HdfsBasicDistributedZk2Test.class.getName() + "_"
- + System.currentTimeMillis()).getAbsolutePath());
+ dfsCluster = HdfsTestUtil.setupClass(createTempDir().getAbsolutePath());
}
@AfterClass
diff --git a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsCollectionsAPIDistributedZkTest.java b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsCollectionsAPIDistributedZkTest.java
index 23fa61c..eb45412 100644
--- a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsCollectionsAPIDistributedZkTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsCollectionsAPIDistributedZkTest.java
@@ -17,7 +17,6 @@
* limitations under the License.
*/
-import java.io.File;
import java.io.IOException;
import org.apache.hadoop.hdfs.MiniDFSCluster;
@@ -38,9 +37,7 @@
@BeforeClass
public static void setupClass() throws Exception {
- dfsCluster = HdfsTestUtil.setupClass(new File(dataDir,
- HdfsCollectionsAPIDistributedZkTest.class.getName() + "_"
- + System.currentTimeMillis()).getAbsolutePath());
+ dfsCluster = HdfsTestUtil.setupClass(createTempDir().getAbsolutePath());
System.setProperty("solr.hdfs.home", dfsCluster.getURI().toString() + "/solr");
System.setProperty("solr.hdfs.blockcache.enabled", "false");
diff --git a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsRecoveryZkTest.java b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsRecoveryZkTest.java
index b555042..8d254c0 100644
--- a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsRecoveryZkTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsRecoveryZkTest.java
@@ -17,7 +17,6 @@
* limitations under the License.
*/
-import java.io.File;
import java.io.IOException;
import org.apache.hadoop.hdfs.MiniDFSCluster;
@@ -38,9 +37,7 @@
@BeforeClass
public static void setupClass() throws Exception {
- dfsCluster = HdfsTestUtil.setupClass(new File(dataDir,
- HdfsBasicDistributedZk2Test.class.getName() + "_"
- + System.currentTimeMillis()).getAbsolutePath());
+ dfsCluster = HdfsTestUtil.setupClass(createTempDir().getAbsolutePath());
System.setProperty("solr.hdfs.blockcache.blocksperbank", "2048");
}
diff --git a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsSyncSliceTest.java b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsSyncSliceTest.java
index f895953..304eb33 100644
--- a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsSyncSliceTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsSyncSliceTest.java
@@ -17,9 +17,7 @@
* limitations under the License.
*/
-import java.io.File;
import java.io.IOException;
-import java.util.Locale;
import org.apache.hadoop.hdfs.MiniDFSCluster;
import org.apache.lucene.util.LuceneTestCase.Slow;
@@ -40,9 +38,7 @@
@BeforeClass
public static void setupClass() throws Exception {
- dfsCluster = HdfsTestUtil.setupClass(new File(dataDir,
- HdfsBasicDistributedZk2Test.class.getName() + "_"
- + System.currentTimeMillis()).getAbsolutePath());
+ dfsCluster = HdfsTestUtil.setupClass(createTempDir().getAbsolutePath());
}
@AfterClass
diff --git a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsTestUtil.java b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsTestUtil.java
index 1384cb2..567f79e 100644
--- a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsTestUtil.java
+++ b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsTestUtil.java
@@ -13,6 +13,7 @@
import org.apache.hadoop.hdfs.MiniDFSCluster;
import org.apache.hadoop.hdfs.server.namenode.NameNodeAdapter;
import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.TestUtil;
import org.apache.solr.SolrTestCaseJ4;
/*
@@ -38,11 +39,9 @@
private static Map<MiniDFSCluster,Timer> timers = new ConcurrentHashMap<>();
- public static MiniDFSCluster setupClass(String dataDir) throws Exception {
+ public static MiniDFSCluster setupClass(String dir) throws Exception {
LuceneTestCase.assumeFalse("HDFS tests were disabled by -Dtests.disableHdfs",
Boolean.parseBoolean(System.getProperty("tests.disableHdfs", "false")));
- File dir = new File(dataDir);
- new File(dataDir).mkdirs();
savedLocale = Locale.getDefault();
// TODO: we HACK around HADOOP-9643
@@ -54,12 +53,12 @@
conf.set("dfs.block.access.token.enable", "false");
conf.set("dfs.permissions.enabled", "false");
conf.set("hadoop.security.authentication", "simple");
- conf.set("hdfs.minidfs.basedir", dir.getAbsolutePath() + File.separator + "hdfsBaseDir");
- conf.set("dfs.namenode.name.dir", dir.getAbsolutePath() + File.separator + "nameNodeNameDir");
+ conf.set("hdfs.minidfs.basedir", dir + File.separator + "hdfsBaseDir");
+ conf.set("dfs.namenode.name.dir", dir + File.separator + "nameNodeNameDir");
- System.setProperty("test.build.data", dir.getAbsolutePath() + File.separator + "hdfs" + File.separator + "build");
- System.setProperty("test.cache.data", dir.getAbsolutePath() + File.separator + "hdfs" + File.separator + "cache");
+ System.setProperty("test.build.data", dir + File.separator + "hdfs" + File.separator + "build");
+ System.setProperty("test.cache.data", dir + File.separator + "hdfs" + File.separator + "cache");
System.setProperty("solr.lock.type", "hdfs");
System.setProperty("solr.hdfs.home", "/solr_hdfs_home");
diff --git a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsUnloadDistributedZkTest.java b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsUnloadDistributedZkTest.java
index cd67468..b5faf41 100644
--- a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsUnloadDistributedZkTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsUnloadDistributedZkTest.java
@@ -17,7 +17,6 @@
* limitations under the License.
*/
-import java.io.File;
import java.io.IOException;
import org.apache.hadoop.hdfs.MiniDFSCluster;
@@ -38,9 +37,7 @@
@BeforeClass
public static void setupClass() throws Exception {
- dfsCluster = HdfsTestUtil.setupClass(new File(dataDir,
- HdfsUnloadDistributedZkTest.class.getName() + "_"
- + System.currentTimeMillis()).getAbsolutePath());
+ dfsCluster = HdfsTestUtil.setupClass(createTempDir().getAbsolutePath());
}
@AfterClass
diff --git a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsWriteToMultipleCollectionsTest.java b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsWriteToMultipleCollectionsTest.java
index b22a245..c598a00 100644
--- a/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsWriteToMultipleCollectionsTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/hdfs/HdfsWriteToMultipleCollectionsTest.java
@@ -17,7 +17,6 @@
package org.apache.solr.cloud.hdfs;
-import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
@@ -60,9 +59,7 @@
@BeforeClass
public static void setupClass() throws Exception {
schemaString = "schema15.xml"; // we need a string id
- dfsCluster = HdfsTestUtil.setupClass(new File(dataDir,
- HdfsBasicDistributedZk2Test.class.getName() + "_"
- + System.currentTimeMillis()).getAbsolutePath());
+ dfsCluster = HdfsTestUtil.setupClass(createTempDir().getAbsolutePath());
System.setProperty(SOLR_HDFS_HOME, dfsCluster.getURI().toString() + "/solr");
}
diff --git a/solr/core/src/test/org/apache/solr/cloud/hdfs/StressHdfsTest.java b/solr/core/src/test/org/apache/solr/cloud/hdfs/StressHdfsTest.java
index 9b09c74..20ac6ed 100644
--- a/solr/core/src/test/org/apache/solr/cloud/hdfs/StressHdfsTest.java
+++ b/solr/core/src/test/org/apache/solr/cloud/hdfs/StressHdfsTest.java
@@ -17,7 +17,6 @@
package org.apache.solr.cloud.hdfs;
-import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
@@ -62,10 +61,7 @@
@BeforeClass
public static void setupClass() throws Exception {
-
- dfsCluster = HdfsTestUtil.setupClass(new File(dataDir,
- HdfsBasicDistributedZk2Test.class.getName() + "_"
- + System.currentTimeMillis()).getAbsolutePath());
+ dfsCluster = HdfsTestUtil.setupClass(createTempDir().getAbsolutePath());
System.setProperty("solr.hdfs.home", dfsCluster.getURI().toString() + "/solr");
}
@@ -182,8 +178,7 @@
NamedList<Object> response = c.query(
new SolrQuery().setRequestHandler("/admin/system")).getResponse();
NamedList<Object> coreInfo = (NamedList<Object>) response.get("core");
- String dataDir = (String) ((NamedList<Object>) coreInfo
- .get("directory")).get("data");
+ String dataDir = (String) ((NamedList<Object>) coreInfo.get("directory")).get("data");
dataDirs.add(dataDir);
} finally {
c.shutdown();
diff --git a/solr/core/src/test/org/apache/solr/core/CoreContainerCoreInitFailuresTest.java b/solr/core/src/test/org/apache/solr/core/CoreContainerCoreInitFailuresTest.java
index 18b68d8..0b1b77b 100644
--- a/solr/core/src/test/org/apache/solr/core/CoreContainerCoreInitFailuresTest.java
+++ b/solr/core/src/test/org/apache/solr/core/CoreContainerCoreInitFailuresTest.java
@@ -17,6 +17,11 @@
package org.apache.solr.core;
+import java.io.File;
+import java.util.Collection;
+import java.util.Map;
+import java.util.regex.Pattern;
+
import org.apache.commons.io.FileUtils;
import org.apache.lucene.util.IOUtils;
import org.apache.solr.SolrTestCaseJ4;
@@ -24,21 +29,13 @@
import org.junit.After;
import org.xml.sax.SAXParseException;
-import java.io.File;
-import java.util.Collection;
-import java.util.Map;
-import java.util.regex.Pattern;
-
public class CoreContainerCoreInitFailuresTest extends SolrTestCaseJ4 {
File solrHome = null;
CoreContainer cc = null;
private void init(final String dirSuffix) {
- // would be nice to do this in an @Before method,
- // but junit doesn't let @Before methods have test names
- solrHome = new File(dataDir, this.getClass().getName() + "_" + dirSuffix);
- assertTrue("Failed to mkdirs solrhome [" + solrHome + "]", solrHome.mkdirs());
+ solrHome = createTempDir(dirSuffix);
}
@After
@@ -48,12 +45,7 @@
cc = null;
}
- if (null != solrHome) {
- if (solrHome.exists()) {
- FileUtils.deleteDirectory(solrHome);
- }
- solrHome = null;
- }
+ solrHome = null;
}
public void testFlowWithEmpty() throws Exception {
diff --git a/solr/core/src/test/org/apache/solr/core/OpenCloseCoreStressTest.java b/solr/core/src/test/org/apache/solr/core/OpenCloseCoreStressTest.java
index 5bebd41..e976120 100644
--- a/solr/core/src/test/org/apache/solr/core/OpenCloseCoreStressTest.java
+++ b/solr/core/src/test/org/apache/solr/core/OpenCloseCoreStressTest.java
@@ -30,7 +30,6 @@
import java.util.concurrent.atomic.AtomicLong;
import org.apache.commons.io.FileUtils;
-import org.apache.lucene.util.LuceneTestCase.BadApple;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
@@ -86,8 +85,7 @@
coreNames = new ArrayList<>();
cumulativeDocs = 0;
- solrHomeDirectory = new File(dataDir, "OpenCloseCoreStressTest_");
- FileUtils.deleteDirectory(solrHomeDirectory); // Ensure that a failed test didn't leave something lying around.
+ solrHomeDirectory = createTempDir();
jetty = new JettySolrRunner(solrHomeDirectory.getAbsolutePath(), "/solr", 0, null, null, true, null, sslConfig);
}
@@ -95,7 +93,6 @@
@After
public void tearDownServer() throws Exception {
if (jetty != null) jetty.stop();
- FileUtils.deleteDirectory(solrHomeDirectory);
for(SolrServer server:indexingServers) {
server.shutdown();
}
diff --git a/solr/core/src/test/org/apache/solr/core/ResourceLoaderTest.java b/solr/core/src/test/org/apache/solr/core/ResourceLoaderTest.java
index c9ea6d8..7dda63e 100644
--- a/solr/core/src/test/org/apache/solr/core/ResourceLoaderTest.java
+++ b/solr/core/src/test/org/apache/solr/core/ResourceLoaderTest.java
@@ -60,7 +60,7 @@
}
public void testEscapeInstanceDir() throws Exception {
- File temp = TestUtil.getTempDir("testEscapeInstanceDir");
+ File temp = createTempDir("testEscapeInstanceDir");
try {
temp.mkdirs();
new File(temp, "dummy.txt").createNewFile();
@@ -76,7 +76,7 @@
}
loader.close();
} finally {
- TestUtil.rmDir(temp);
+ TestUtil.rm(temp);
}
}
@@ -170,7 +170,7 @@
}
public void testClassLoaderLibs() throws Exception {
- File tmpRoot = TestUtil.getTempDir("testClassLoaderLibs");
+ File tmpRoot = createTempDir("testClassLoaderLibs");
File lib = new File(tmpRoot, "lib");
lib.mkdirs();
diff --git a/solr/core/src/test/org/apache/solr/core/SolrCoreCheckLockOnStartupTest.java b/solr/core/src/test/org/apache/solr/core/SolrCoreCheckLockOnStartupTest.java
index cb85e91..567b833 100644
--- a/solr/core/src/test/org/apache/solr/core/SolrCoreCheckLockOnStartupTest.java
+++ b/solr/core/src/test/org/apache/solr/core/SolrCoreCheckLockOnStartupTest.java
@@ -17,20 +17,19 @@
* limitations under the License.
*/
+import java.io.File;
+import java.util.Map;
+
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.LockObtainFailedException;
import org.apache.lucene.store.NativeFSLockFactory;
import org.apache.lucene.store.SimpleFSLockFactory;
-import org.apache.lucene.util.Version;
import org.apache.solr.SolrTestCaseJ4;
import org.junit.Before;
import org.junit.Test;
-import java.io.File;
-import java.util.Map;
-
public class SolrCoreCheckLockOnStartupTest extends SolrTestCaseJ4 {
@Override
@@ -41,7 +40,7 @@
System.setProperty("solr.directoryFactory", "org.apache.solr.core.SimpleFSDirectoryFactory");
IndexWriterConfig indexWriterConfig = new IndexWriterConfig(TEST_VERSION_CURRENT, null);
- Directory directory = newFSDirectory(new File(dataDir, "index"));
+ Directory directory = newFSDirectory(createTempDir("index"));
//creates a new index on the known location
new IndexWriter(
directory,
@@ -53,7 +52,7 @@
@Test
public void testSimpleLockErrorOnStartup() throws Exception {
- Directory directory = newFSDirectory(new File(dataDir, "index"), new SimpleFSLockFactory());
+ Directory directory = newFSDirectory(new File(initCoreDataDir, "index"), new SimpleFSLockFactory());
//creates a new IndexWriter without releasing the lock yet
IndexWriter indexWriter = new IndexWriter(directory, new IndexWriterConfig(TEST_VERSION_CURRENT, null));
@@ -77,7 +76,7 @@
@Test
public void testNativeLockErrorOnStartup() throws Exception {
- File indexDir = new File(dataDir, "index");
+ File indexDir = new File(initCoreDataDir, "index");
log.info("Acquiring lock on {}", indexDir.getAbsolutePath());
Directory directory = newFSDirectory(indexDir, new NativeFSLockFactory());
//creates a new IndexWriter without releasing the lock yet
diff --git a/solr/core/src/test/org/apache/solr/core/SolrCoreTest.java b/solr/core/src/test/org/apache/solr/core/SolrCoreTest.java
index 1ae9277..a723cfe 100644
--- a/solr/core/src/test/org/apache/solr/core/SolrCoreTest.java
+++ b/solr/core/src/test/org/apache/solr/core/SolrCoreTest.java
@@ -17,19 +17,6 @@
package org.apache.solr.core;
-import org.apache.solr.SolrTestCaseJ4;
-import org.apache.solr.handler.RequestHandlerBase;
-import org.apache.solr.handler.component.SpellCheckComponent;
-import org.apache.solr.handler.component.QueryComponent;
-import org.apache.solr.request.SolrQueryRequest;
-import org.apache.solr.request.SolrRequestHandler;
-import org.apache.solr.response.SolrQueryResponse;
-import org.apache.solr.schema.IndexSchema;
-import org.apache.solr.util.DefaultSolrThreadFactory;
-import org.apache.solr.util.plugin.SolrCoreAware;
-import org.junit.Test;
-
-import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -39,6 +26,18 @@
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
+import org.apache.solr.SolrTestCaseJ4;
+import org.apache.solr.handler.RequestHandlerBase;
+import org.apache.solr.handler.component.QueryComponent;
+import org.apache.solr.handler.component.SpellCheckComponent;
+import org.apache.solr.request.SolrQueryRequest;
+import org.apache.solr.request.SolrRequestHandler;
+import org.apache.solr.response.SolrQueryResponse;
+import org.apache.solr.schema.IndexSchema;
+import org.apache.solr.util.DefaultSolrThreadFactory;
+import org.apache.solr.util.plugin.SolrCoreAware;
+import org.junit.Test;
+
public class SolrCoreTest extends SolrTestCaseJ4 {
private static final String COLLECTION1 = "collection1";
@@ -67,8 +66,7 @@
core.close();
- SolrCore newCore = new SolrCore(COLLECTION1, dataDir + File.separator
- + "datadir2", new SolrConfig("solr/collection1", "solrconfig.xml", null), schema,
+ SolrCore newCore = new SolrCore(COLLECTION1, createTempDir("dataDir2").getAbsolutePath(), new SolrConfig("solr/collection1", "solrconfig.xml", null), schema,
new CoreDescriptor(cores, COLLECTION1, "solr/collection1"));
cores.register(newCore, false);
diff --git a/solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java b/solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java
index e050fc5..3d3f00b 100644
--- a/solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java
+++ b/solr/core/src/test/org/apache/solr/core/TestArbitraryIndexDir.java
@@ -72,14 +72,11 @@
@Override
public void setUp() throws Exception {
super.setUp();
-
- dataDir = new File(dataDir,
- getClass().getName() + "-" + System.currentTimeMillis() + System.getProperty("file.separator") + "solr"
- + System.getProperty("file.separator") + "data");
- dataDir.mkdirs();
+
+ File tmpDataDir = createTempDir();
solrConfig = TestHarness.createConfig(getSolrHome(), "solrconfig.xml");
- h = new TestHarness( dataDir.getAbsolutePath(),
+ h = new TestHarness( tmpDataDir.getAbsolutePath(),
solrConfig,
"schema12.xml");
lrf = h.getRequestFactory
diff --git a/solr/core/src/test/org/apache/solr/core/TestConfigSets.java b/solr/core/src/test/org/apache/solr/core/TestConfigSets.java
index 3d1bf8c..ae249fd 100644
--- a/solr/core/src/test/org/apache/solr/core/TestConfigSets.java
+++ b/solr/core/src/test/org/apache/solr/core/TestConfigSets.java
@@ -17,7 +17,14 @@
* limitations under the License.
*/
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.hamcrest.core.Is.is;
+import static org.junit.internal.matchers.StringContains.containsString;
+
+import java.io.File;
+import java.io.IOException;
+
import org.apache.commons.io.FileUtils;
import org.apache.solr.SolrTestCaseJ4;
import org.junit.Rule;
@@ -25,13 +32,7 @@
import org.junit.rules.RuleChain;
import org.junit.rules.TestRule;
-import java.io.File;
-import java.io.IOException;
-
-import static org.hamcrest.CoreMatchers.notNullValue;
-import static org.hamcrest.CoreMatchers.nullValue;
-import static org.hamcrest.core.Is.is;
-import static org.junit.internal.matchers.StringContains.containsString;
+import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
public class TestConfigSets extends SolrTestCaseJ4 {
@@ -40,10 +41,8 @@
public static String solrxml = "<solr><str name=\"configSetBaseDir\">${configsets:configsets}</str></solr>";
- public CoreContainer setupContainer(String testName, String configSetsBaseDir) {
-
- File testDirectory = new File(dataDir, testName);
- testDirectory.mkdirs();
+ public CoreContainer setupContainer(String configSetsBaseDir) {
+ File testDirectory = createTempDir();
System.setProperty("configsets", configSetsBaseDir);
@@ -58,7 +57,7 @@
public void testConfigSetServiceFindsConfigSets() {
CoreContainer container = null;
try {
- container = setupContainer("findsConfigSets", getFile("solr/configsets").getAbsolutePath());
+ container = setupContainer(getFile("solr/configsets").getAbsolutePath());
String testDirectory = container.getResourceLoader().getInstanceDir();
SolrCore core1 = container.create("core1", testDirectory + "/core1", "configSet", "configset-2");
@@ -77,7 +76,7 @@
public void testNonExistentConfigSetThrowsException() {
CoreContainer container = null;
try {
- container = setupContainer("badConfigSet", getFile("solr/configsets").getAbsolutePath());
+ container = setupContainer(getFile("solr/configsets").getAbsolutePath());
String testDirectory = container.getResourceLoader().getInstanceDir();
container.create("core1", testDirectory + "/core1", "configSet", "nonexistent");
@@ -95,7 +94,7 @@
@Test
public void testConfigSetOnCoreReload() throws IOException {
- File testDirectory = new File(dataDir, "core-reload");
+ File testDirectory = new File(initCoreDataDir, "core-reload");
testDirectory.mkdirs();
File configSetsDir = new File(testDirectory, "configsets");
diff --git a/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java b/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java
index 4a1cdf2..f63643c 100644
--- a/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java
+++ b/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java
@@ -17,18 +17,8 @@
package org.apache.solr.core;
-import org.apache.commons.io.FileUtils;
-import org.apache.lucene.util.TestUtil;
-import org.apache.solr.SolrTestCaseJ4;
-import org.apache.solr.handler.admin.CollectionsHandler;
-import org.apache.solr.handler.admin.CoreAdminHandler;
-import org.apache.solr.handler.admin.InfoHandler;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.xml.sax.SAXException;
-
-import javax.xml.parsers.ParserConfigurationException;
+import static org.hamcrest.core.Is.is;
+import static org.hamcrest.core.IsInstanceOf.instanceOf;
import java.io.BufferedWriter;
import java.io.File;
@@ -41,8 +31,19 @@
import java.util.jar.JarEntry;
import java.util.jar.JarOutputStream;
-import static org.hamcrest.core.Is.is;
-import static org.hamcrest.core.IsInstanceOf.instanceOf;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.lucene.util.TestUtil;
+import org.apache.solr.SolrTestCaseJ4;
+import org.apache.solr.handler.admin.CollectionsHandler;
+import org.apache.solr.handler.admin.CoreAdminHandler;
+import org.apache.solr.handler.admin.InfoHandler;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.xml.sax.SAXException;
+
public class TestCoreContainer extends SolrTestCaseJ4 {
@@ -68,12 +69,7 @@
private CoreContainer init(String dirName) throws Exception {
- solrHomeDirectory = new File(dataDir, this.getClass().getName() + dirName);
-
- if (solrHomeDirectory.exists()) {
- FileUtils.deleteDirectory(solrHomeDirectory);
- }
- assertTrue("Failed to mkdirs workDir", solrHomeDirectory.mkdirs());
+ solrHomeDirectory = createTempDir(dirName);
FileUtils.copyDirectory(new File(SolrTestCaseJ4.TEST_HOME()), solrHomeDirectory);
System.out.println("Using solrconfig from " + new File(SolrTestCaseJ4.TEST_HOME()).getAbsolutePath());
@@ -152,8 +148,7 @@
@Test
public void testNoCores() throws IOException, ParserConfigurationException, SAXException {
//create solrHome
- File solrHomeDirectory = new File(dataDir, this.getClass().getName()
- + "_noCores");
+ File solrHomeDirectory = createTempDir();
boolean oldSolrXml = random().nextBoolean();
@@ -189,7 +184,6 @@
assertNull(ret);
} finally {
cores.shutdown();
- FileUtils.deleteDirectory(solrHomeDirectory);
}
}
@@ -239,7 +233,7 @@
@Test
public void testSharedLib() throws Exception {
- File tmpRoot = TestUtil.getTempDir("testSharedLib");
+ File tmpRoot = createTempDir("testSharedLib");
File lib = new File(tmpRoot, "lib");
lib.mkdirs();
diff --git a/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java b/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java
index 70c24fc..60d2456 100644
--- a/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java
+++ b/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java
@@ -17,6 +17,12 @@
* limitations under the License.
*/
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.util.Properties;
+
import org.apache.commons.io.FileUtils;
import org.apache.lucene.util.IOUtils;
import org.apache.solr.SolrTestCaseJ4;
@@ -25,12 +31,7 @@
import org.junit.BeforeClass;
import org.junit.Test;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.OutputStreamWriter;
-import java.io.Writer;
import java.nio.charset.StandardCharsets;
-import java.util.Properties;
public class TestCoreDiscovery extends SolrTestCaseJ4 {
@@ -39,14 +40,9 @@
initCore();
}
- private final File solrHomeDirectory = new File(dataDir, "org.apache.solr.core.TestCoreDiscovery" + File.separator + "solrHome");
+ private final File solrHomeDirectory = createTempDir();
private void setMeUp(String alternateCoreDir) throws Exception {
- if (solrHomeDirectory.exists()) {
- FileUtils.deleteDirectory(solrHomeDirectory);
- }
- assertTrue("Failed to mkdirs workDir", solrHomeDirectory.mkdirs());
-
System.setProperty("solr.solr.home", solrHomeDirectory.getAbsolutePath());
String xmlStr = SOLR_XML;
if (alternateCoreDir != null) {
@@ -116,9 +112,7 @@
@After
public void after() throws Exception {
- if (solrHomeDirectory.exists()) {
- FileUtils.deleteDirectory(solrHomeDirectory);
- }
+
}
// Test the basic setup, create some dirs with core.properties files in them, but solr.xml has discoverCores
@@ -199,9 +193,9 @@
@Test
public void testAlternateCoreDir() throws Exception {
- File alt = new File(dataDir, "alternateCoreDir");
- if (alt.exists()) FileUtils.deleteDirectory(alt);
- alt.mkdirs();
+
+ File alt = createTempDir();
+
setMeUp(alt.getAbsolutePath());
addCoreWithProps(makeCorePropFile("core1", false, true, "dataDir=core1"),
new File(alt, "core1" + File.separator + CorePropertiesLocator.PROPERTIES_FILENAME));
@@ -214,14 +208,11 @@
assertNotNull(core2);
} finally {
cc.shutdown();
- if (alt.exists()) FileUtils.deleteDirectory(alt);
}
}
@Test
public void testNoCoreDir() throws Exception {
- File noCoreDir = new File(dataDir, "noCoreDir");
- if (noCoreDir.exists()) FileUtils.deleteDirectory(noCoreDir);
- noCoreDir.mkdirs();
+ File noCoreDir = createTempDir();
setMeUp(noCoreDir.getAbsolutePath());
addCoreWithProps(makeCorePropFile("core1", false, true),
new File(noCoreDir, "core1" + File.separator + CorePropertiesLocator.PROPERTIES_FILENAME));
@@ -234,7 +225,6 @@
assertNotNull(core2);
} finally {
cc.shutdown();
- if (noCoreDir.exists()) FileUtils.deleteDirectory(noCoreDir);
}
}
// For testing whether finding a solr.xml overrides looking at solr.properties
diff --git a/solr/core/src/test/org/apache/solr/core/TestLazyCores.java b/solr/core/src/test/org/apache/solr/core/TestLazyCores.java
index 3e95f66..4c200cc 100644
--- a/solr/core/src/test/org/apache/solr/core/TestLazyCores.java
+++ b/solr/core/src/test/org/apache/solr/core/TestLazyCores.java
@@ -17,6 +17,16 @@
* limitations under the License.
*/
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Pattern;
+
import org.apache.commons.codec.Charsets;
import org.apache.commons.io.FileUtils;
import org.apache.solr.SolrTestCaseJ4;
@@ -31,20 +41,10 @@
import org.apache.solr.update.CommitUpdateCommand;
import org.apache.solr.update.UpdateHandler;
import org.apache.solr.util.TestHarness;
-import org.junit.After;
+import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.regex.Pattern;
-
public class TestLazyCores extends SolrTestCaseJ4 {
@BeforeClass
@@ -52,14 +52,17 @@
initCore("solrconfig-minimal.xml", "schema-tiny.xml");
}
- private final File solrHomeDirectory = new File(dataDir, TestLazyCores.getSimpleClassName());
+ private File solrHomeDirectory;
+
+ @Before
+ @Override
+ public void setUp() throws Exception {
+ super.setUp();
+ }
private CoreContainer init() throws Exception {
-
- if (solrHomeDirectory.exists()) {
- FileUtils.deleteDirectory(solrHomeDirectory);
- }
- assertTrue("Failed to mkdirs workDir", solrHomeDirectory.mkdirs());
+ solrHomeDirectory = createTempDir();
+
for (int idx = 1; idx < 10; ++idx) {
copyMinConf(new File(solrHomeDirectory, "collection" + idx));
}
@@ -77,13 +80,7 @@
cores.load();
return cores;
}
-
- @After
- public void after() throws Exception {
- if (solrHomeDirectory.exists()) {
- FileUtils.deleteDirectory(solrHomeDirectory);
- }
- }
+
@Test
public void testLazyLoad() throws Exception {
CoreContainer cc = init();
@@ -502,13 +499,13 @@
// Did we get the expected message for each of the cores that failed to load? Make sure we don't run afoul of
// the dreaded slash/backslash difference on Windows and *nix machines.
testMessage(cc.getCoreInitFailures(),
- "TestLazyCores" + File.separator + "badConfig1" + File.separator + "solrconfig.xml");
+ "badConfig1" + File.separator + "solrconfig.xml");
testMessage(cc.getCoreInitFailures(),
- "TestLazyCores" + File.separator + "badConfig2" + File.separator + "solrconfig.xml");
+ "badConfig2" + File.separator + "solrconfig.xml");
testMessage(cc.getCoreInitFailures(),
- "TestLazyCores" + File.separator + "badSchema1" + File.separator + "schema.xml");
+ "badSchema1" + File.separator + "schema.xml");
testMessage(cc.getCoreInitFailures(),
- "TestLazyCores" + File.separator + "badSchema2" + File.separator + "schema.xml");
+ "badSchema2" + File.separator + "schema.xml");
// Status should report that there are failure messages for the bad cores and none for the good cores.
checkStatus(cc, true, "core1");
@@ -591,15 +588,11 @@
private CoreContainer initGoodAndBad(List<String> goodCores,
List<String> badSchemaCores,
List<String> badConfigCores) throws Exception {
-
+ solrHomeDirectory = createTempDir();
+
// Don't pollute the log with exception traces when they're expected.
ignoreException(Pattern.quote("SAXParseException"));
-
- if (solrHomeDirectory.exists()) {
- FileUtils.deleteDirectory(solrHomeDirectory);
- }
- assertTrue("Failed to mkdirs workDir", solrHomeDirectory.mkdirs());
-
+
// Create the cores that should be fine.
for (String coreName : goodCores) {
File coreRoot = new File(solrHomeDirectory, coreName);
diff --git a/solr/core/src/test/org/apache/solr/core/TestNRTOpen.java b/solr/core/src/test/org/apache/solr/core/TestNRTOpen.java
index e18e15a..cf5e80b 100644
--- a/solr/core/src/test/org/apache/solr/core/TestNRTOpen.java
+++ b/solr/core/src/test/org/apache/solr/core/TestNRTOpen.java
@@ -46,10 +46,10 @@
// add a doc
assertU(adoc("foo", "bar"));
assertU(commit());
- File myDir = dataDir;
+ File myDir = initCoreDataDir;
deleteCore();
// boot up again over the same index
- dataDir = myDir;
+ initCoreDataDir = myDir;
initCore("solrconfig-basic.xml", "schema-minimal.xml");
// startup
assertNRT(1);
diff --git a/solr/core/src/test/org/apache/solr/core/TestNonNRTOpen.java b/solr/core/src/test/org/apache/solr/core/TestNonNRTOpen.java
index b3b8514..e828824 100644
--- a/solr/core/src/test/org/apache/solr/core/TestNonNRTOpen.java
+++ b/solr/core/src/test/org/apache/solr/core/TestNonNRTOpen.java
@@ -51,10 +51,10 @@
// add a doc
assertU(adoc("foo", "bar"));
assertU(commit());
- File myDir = dataDir;
+ File myDir = initCoreDataDir;
deleteCore();
// boot up again over the same index
- dataDir = myDir;
+ initCoreDataDir = myDir;
initCore("solrconfig-basic.xml", "schema-minimal.xml");
// startup
assertNotNRT(1);
diff --git a/solr/core/src/test/org/apache/solr/core/TestSolrXMLSerializer.java b/solr/core/src/test/org/apache/solr/core/TestSolrXMLSerializer.java
index 480acba..2ae8128 100644
--- a/solr/core/src/test/org/apache/solr/core/TestSolrXMLSerializer.java
+++ b/solr/core/src/test/org/apache/solr/core/TestSolrXMLSerializer.java
@@ -81,12 +81,10 @@
}
assertResults(w.toString().getBytes(StandardCharsets.UTF_8));
-
- // again with default file
- File tmpFile = TestUtil.createTempFile("solr.xml", null, dataDir);
-
- serializer.persistFile(tmpFile, solrXMLDef);
+ // again with default file
+ File tmpFile = new File(createTempDir(), "solr.xml");
+ serializer.persistFile(tmpFile, solrXMLDef);
assertResults(FileUtils.readFileToByteArray(tmpFile));
tmpFile.delete();
}
diff --git a/solr/core/src/test/org/apache/solr/core/TestSolrXml.java b/solr/core/src/test/org/apache/solr/core/TestSolrXml.java
index 55d1e41..faa5b12 100644
--- a/solr/core/src/test/org/apache/solr/core/TestSolrXml.java
+++ b/solr/core/src/test/org/apache/solr/core/TestSolrXml.java
@@ -17,7 +17,9 @@
* limitations under the License.
*/
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
+import java.io.File;
+import java.io.IOException;
+
import org.apache.commons.io.FileUtils;
import org.apache.solr.SolrTestCaseJ4;
import org.junit.Rule;
@@ -25,15 +27,14 @@
import org.junit.rules.RuleChain;
import org.junit.rules.TestRule;
-import java.io.File;
-import java.io.IOException;
+import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
public class TestSolrXml extends SolrTestCaseJ4 {
@Rule
public TestRule solrTestRules = RuleChain.outerRule(new SystemPropertiesRestoreRule());
- private final File solrHome = new File(dataDir, TestSolrXml.getClassName() + File.separator + "solrHome");
+ private final File solrHome = createTempDir();
@Test
public void testAllInfoPresent() throws IOException {
diff --git a/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersistence.java b/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersistence.java
index 648f8ec..c733201 100644
--- a/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersistence.java
+++ b/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersistence.java
@@ -17,15 +17,32 @@
package org.apache.solr.core;
+import static org.hamcrest.core.Is.is;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.lucene.util.IOUtils;
+import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.TestUtil;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.params.CoreAdminParams;
import org.apache.solr.handler.admin.CoreAdminHandler;
import org.apache.solr.response.SolrQueryResponse;
import org.apache.solr.util.TestHarness;
+import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.RuleChain;
@@ -36,33 +53,24 @@
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
+import com.google.common.base.Charsets;
import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.hamcrest.core.Is.is;
public class TestSolrXmlPersistence extends SolrTestCaseJ4 {
- private File solrHomeDirectory = new File(dataDir, this.getClass().getName());
+ private File solrHomeDirectory = createTempDir();
@Rule
public TestRule solrTestRules =
RuleChain.outerRule(new SystemPropertiesRestoreRule());
+ @Before
+ public void setupTest() {
+ solrHomeDirectory = createTempDir(LuceneTestCase.getTestClass().getSimpleName());
+ }
private CoreContainer init(String solrXmlString, String... subDirs) throws Exception {
- solrHomeDirectory = dataDir;
-
for (String s : subDirs) {
copyMinConf(new File(solrHomeDirectory, s));
}
@@ -91,9 +99,6 @@
origMatchesPersist(cc, SOLR_XML_LOTS_SYSVARS);
} finally {
cc.shutdown();
- if (solrHomeDirectory.exists()) {
- FileUtils.deleteDirectory(solrHomeDirectory);
- }
}
}
@@ -252,9 +257,6 @@
origMatchesPersist(cc, SOLR_XML_MINIMAL);
} finally {
cc.shutdown();
- if (solrHomeDirectory.exists()) {
- FileUtils.deleteDirectory(solrHomeDirectory);
- }
}
}
@@ -392,10 +394,6 @@
} finally {
cc.shutdown();
- if (solrHomeDirectory.exists()) {
- FileUtils.deleteDirectory(solrHomeDirectory);
- }
-
}
}
diff --git a/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersistor.java b/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersistor.java
index 42465c0..41ef686 100644
--- a/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersistor.java
+++ b/solr/core/src/test/org/apache/solr/core/TestSolrXmlPersistor.java
@@ -59,34 +59,26 @@
@Test
public void simpleCoreDescriptorIsPersisted() throws IOException {
-
+
final String solrxml = "<solr><cores></cores></solr>";
-
- final File solrHomeDirectory = new File(dataDir, "ZkControllerTest");
- try {
- if (solrHomeDirectory.exists()) {
- FileUtils.deleteDirectory(solrHomeDirectory);
- }
- copyMinFullSetup(solrHomeDirectory);
-
- CoreContainer cc = new CoreContainer(solrHomeDirectory.getAbsolutePath());
-
- final CoreDescriptor cd = new CoreDescriptor(cc, "testcore", "instance/dir/");
- List<CoreDescriptor> cds = ImmutableList.of(cd);
-
- SolrXMLCoresLocator persistor = new SolrXMLCoresLocator(solrxml, null);
- String xml = persistor.buildSolrXML(cds);
-
- assertTrue(xml.contains("<solr><cores>"));
- assertTrue(xml.contains("name=\"testcore\""));
- assertTrue(xml.contains("instanceDir=\"instance/dir/\""));
- assertTrue(xml.contains("</cores></solr>"));
- } finally {
- if (solrHomeDirectory.exists()) {
- FileUtils.deleteDirectory(solrHomeDirectory);
- }
-
- }
+
+ final File solrHomeDirectory = createTempDir();
+
+ copyMinFullSetup(solrHomeDirectory);
+
+ CoreContainer cc = new CoreContainer(solrHomeDirectory.getAbsolutePath());
+
+ final CoreDescriptor cd = new CoreDescriptor(cc, "testcore",
+ "instance/dir/");
+ List<CoreDescriptor> cds = ImmutableList.of(cd);
+
+ SolrXMLCoresLocator persistor = new SolrXMLCoresLocator(solrxml, null);
+ String xml = persistor.buildSolrXML(cds);
+
+ assertTrue(xml.contains("<solr><cores>"));
+ assertTrue(xml.contains("name=\"testcore\""));
+ assertTrue(xml.contains("instanceDir=\"instance/dir/\""));
+ assertTrue(xml.contains("</cores></solr>"));
}
@Test
diff --git a/solr/core/src/test/org/apache/solr/handler/PingRequestHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/PingRequestHandlerTest.java
index dfc312a..29e9343 100644
--- a/solr/core/src/test/org/apache/solr/handler/PingRequestHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/PingRequestHandlerTest.java
@@ -17,22 +17,17 @@
package org.apache.solr.handler;
-import java.io.BufferedReader;
import java.io.File;
-import java.io.FileReader;
import java.io.IOException;
+import org.apache.commons.io.FileUtils;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.response.SolrQueryResponse;
-
-import org.apache.commons.io.FileUtils;
-
import org.junit.Before;
import org.junit.BeforeClass;
-import org.junit.Ignore;
public class PingRequestHandlerTest extends SolrTestCaseJ4 {
@@ -47,14 +42,14 @@
@Before
public void before() throws IOException {
-
+ File tmpDir = initCoreDataDir;
// by default, use relative file in dataDir
- healthcheckFile = new File(dataDir, fileName);
+ healthcheckFile = new File(tmpDir, fileName);
String fileNameParam = fileName;
// sometimes randomly use an absolute File path instead
if (random().nextBoolean()) {
- healthcheckFile = new File(dataDir, fileName);
+ healthcheckFile = new File(tmpDir, fileName);
fileNameParam = healthcheckFile.getAbsolutePath();
}
@@ -84,9 +79,10 @@
assertEquals("OK", rsp.getValues().get("status"));
}
+
public void testEnablingServer() throws Exception {
- assertTrue(! healthcheckFile.exists());
+ assertTrue(!healthcheckFile.exists());
// first make sure that ping responds back that the service is disabled
SolrQueryResponse sqr = makeRequest(handler, req());
diff --git a/solr/core/src/test/org/apache/solr/handler/TestCSVLoader.java b/solr/core/src/test/org/apache/solr/handler/TestCSVLoader.java
index 2b06247..5682428 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestCSVLoader.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestCSVLoader.java
@@ -50,7 +50,7 @@
// if you override setUp or tearDown, you better call
// the super classes version
super.setUp();
- File tempDir = TestUtil.getTempDir("TestCSVLoader");
+ File tempDir = createTempDir("TestCSVLoader");
file = new File(tempDir, "solr_tmp.csv");
filename = file.getPath();
cleanup();
diff --git a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
index 274949c..08e2077 100644
--- a/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
+++ b/solr/core/src/test/org/apache/solr/handler/TestReplicationHandler.java
@@ -45,6 +45,7 @@
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.SimpleFSDirectory;
+import org.apache.lucene.util.TestUtil;
import org.apache.lucene.util.LuceneTestCase.Slow;
import org.apache.solr.BaseDistributedSearchTestCase;
import org.apache.solr.SolrTestCaseJ4;
@@ -1598,7 +1599,6 @@
File home = new File(dataDir,
getClass().getName() + "-" +
System.currentTimeMillis());
-
homeDir = new File(home, name);
dataDir = new File(homeDir + "/collection1", "data");
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminCreateDiscoverTest.java b/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminCreateDiscoverTest.java
index 532245d..33347f9 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminCreateDiscoverTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminCreateDiscoverTest.java
@@ -17,6 +17,12 @@
package org.apache.solr.handler.admin;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.Properties;
+
import org.apache.commons.io.FileUtils;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.SolrException;
@@ -28,12 +34,7 @@
import org.junit.BeforeClass;
import org.junit.Test;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
-import java.util.Properties;
public class CoreAdminCreateDiscoverTest extends SolrTestCaseJ4 {
@@ -49,11 +50,7 @@
public static void beforeClass() throws Exception {
useFactory(null); // I require FS-based indexes for this test.
- solrHomeDirectory = new File(dataDir, "solrHome/" + CoreAdminCreateDiscoverTest.getClassName());
- if (solrHomeDirectory.exists()) {
- FileUtils.deleteDirectory(solrHomeDirectory);
- }
- assertTrue("Failed to mkdirs workDir", solrHomeDirectory.mkdirs());
+ solrHomeDirectory = createTempDir();
setupNoCoreTest(solrHomeDirectory, null);
@@ -63,9 +60,6 @@
@AfterClass
public static void afterClass() throws Exception {
admin = null; // Release it or the test harness complains.
- if (solrHomeDirectory.exists()) {
- FileUtils.deleteDirectory(solrHomeDirectory);
- }
}
private static void setupCore(String coreName, boolean blivet) throws IOException {
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java
index 8bfe121..5a614d0 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java
@@ -17,7 +17,9 @@
package org.apache.solr.handler.admin;
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
+import java.io.File;
+import java.util.Map;
+
import org.apache.commons.codec.Charsets;
import org.apache.commons.io.FileUtils;
import org.apache.solr.SolrTestCaseJ4;
@@ -39,8 +41,7 @@
import org.junit.rules.RuleChain;
import org.junit.rules.TestRule;
-import java.io.File;
-import java.util.Map;
+import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
public class CoreAdminHandlerTest extends SolrTestCaseJ4 {
@@ -58,12 +59,8 @@
public void testCreateWithSysVars() throws Exception {
useFactory(null); // I require FS-based indexes for this test.
- final File workDir = new File(dataDir, getCoreName());
+ final File workDir = createTempDir(getCoreName());
- if (workDir.exists()) {
- FileUtils.deleteDirectory(workDir);
- }
- assertTrue("Failed to mkdirs workDir", workDir.mkdirs());
String coreName = "with_sys_vars";
File instDir = new File(workDir, coreName);
File subHome = new File(instDir, "conf");
@@ -125,20 +122,11 @@
assertTrue("Should have found index dir at " + test.getAbsolutePath(), test.exists());
test = new File(test,"segments.gen");
assertTrue("Should have found segments.gen at " + test.getAbsolutePath(), test.exists());
-
- // Cleanup
- FileUtils.deleteDirectory(workDir);
-
}
@Test
public void testCoreAdminHandler() throws Exception {
- final File workDir = new File(dataDir, this.getClass().getName());
-
- if (workDir.exists()) {
- FileUtils.deleteDirectory(workDir);
- }
- assertTrue("Failed to mkdirs workDir", workDir.mkdirs());
+ final File workDir = createTempDir();
final CoreContainer cores = h.getCoreContainer();
@@ -217,14 +205,11 @@
// :TODO: because of SOLR-3665 we can't ask for status from all cores
- // cleanup
- FileUtils.deleteDirectory(workDir);
-
}
@Test
public void testDeleteInstanceDir() throws Exception {
- File solrHomeDirectory = new File(dataDir, getClass().getName() + "-corex-"
+ File solrHomeDirectory = new File(initCoreDataDir, getClass().getName() + "-corex-"
+ System.currentTimeMillis());
solrHomeDirectory.mkdirs();
copySolrHomeToTemp(solrHomeDirectory, "corex", true);
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminRequestStatusTest.java b/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminRequestStatusTest.java
index a78a8ba..afa5306 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminRequestStatusTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminRequestStatusTest.java
@@ -17,6 +17,8 @@
* limitations under the License.
*/
+import java.io.File;
+
import org.apache.commons.io.FileUtils;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.params.CoreAdminParams;
@@ -26,8 +28,6 @@
import org.junit.BeforeClass;
import org.junit.Test;
-import java.io.File;
-
public class CoreAdminRequestStatusTest extends SolrTestCaseJ4{
@BeforeClass
@@ -37,12 +37,7 @@
@Test
public void testCoreAdminRequestStatus() throws Exception {
- final File workDir = new File(dataDir, this.getClass().getName());
-
- if (workDir.exists()) {
- FileUtils.deleteDirectory(workDir);
- }
- assertTrue("Failed to mkdirs workDir", workDir.mkdirs());
+ final File workDir = createTempDir();
final CoreContainer cores = h.getCoreContainer();
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/CoreMergeIndexesAdminHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/CoreMergeIndexesAdminHandlerTest.java
index 12d1afb..b8c1e78 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/CoreMergeIndexesAdminHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/CoreMergeIndexesAdminHandlerTest.java
@@ -17,9 +17,13 @@
* limitations under the License.
*/
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
+import java.io.File;
+import java.io.IOException;
+
import org.apache.commons.io.FileUtils;
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.common.params.CoreAdminParams;
import org.apache.solr.core.CoreContainer;
@@ -32,8 +36,7 @@
import org.junit.rules.RuleChain;
import org.junit.rules.TestRule;
-import java.io.File;
-import java.io.IOException;
+import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
public class CoreMergeIndexesAdminHandlerTest extends SolrTestCaseJ4 {
@@ -68,12 +71,7 @@
@Test
public void testMergeIndexesCoreAdminHandler() throws Exception {
- final File workDir = new File(dataDir, this.getClass().getName());
-
- if (workDir.exists()) {
- FileUtils.deleteDirectory(workDir);
- }
- assertTrue("Failed to mkdirs workDir", workDir.mkdirs());
+ final File workDir = createTempDir();
final CoreContainer cores = h.getCoreContainer();
@@ -101,8 +99,5 @@
}
dirFactory.fail = false;
}
-
- // cleanup
- FileUtils.deleteDirectory(workDir);
}
}
diff --git a/solr/core/src/test/org/apache/solr/handler/component/DistributedDebugComponentTest.java b/solr/core/src/test/org/apache/solr/handler/component/DistributedDebugComponentTest.java
index 6537098..69ea2db 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/DistributedDebugComponentTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/DistributedDebugComponentTest.java
@@ -3,6 +3,7 @@
import java.io.File;
import org.apache.commons.io.FileUtils;
+import org.apache.lucene.util.TestUtil;
import org.apache.solr.SolrJettyTestBase;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
@@ -48,7 +49,7 @@
}
private static File createSolrHome() throws Exception {
- File workDir = new File(dataDir, DistributedDebugComponentTest.class.getName());
+ File workDir = createTempDir();
setupJettyTestHome(workDir, "collection1");
FileUtils.copyDirectory(new File(workDir, "collection1"), new File(workDir, "collection2"));
return workDir;
@@ -56,7 +57,7 @@
@AfterClass
public static void afterTest() throws Exception {
- cleanUpJettyHome(solrHome);
+
}
@Before
diff --git a/solr/core/src/test/org/apache/solr/handler/component/DistributedSpellCheckComponentTest.java b/solr/core/src/test/org/apache/solr/handler/component/DistributedSpellCheckComponentTest.java
index 5d11c7a..e4d83c0 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/DistributedSpellCheckComponentTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/DistributedSpellCheckComponentTest.java
@@ -23,8 +23,8 @@
import junit.framework.Assert;
-import org.apache.solr.SolrTestCaseJ4.SuppressTempDirCleanUp;
import org.apache.lucene.util.LuceneTestCase.Slow;
+import org.apache.lucene.util.LuceneTestCase.SuppressTempFileChecks;
import org.apache.solr.BaseDistributedSearchTestCase;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
@@ -41,7 +41,7 @@
* @see org.apache.solr.handler.component.SpellCheckComponent
*/
@Slow
-@SuppressTempDirCleanUp(bugUrl = "https://issues.apache.org/jira/browse/SOLR-1877 Spellcheck IndexReader leak bug?")
+@SuppressTempFileChecks(bugUrl = "https://issues.apache.org/jira/browse/SOLR-1877 Spellcheck IndexReader leak bug?")
public class DistributedSpellCheckComponentTest extends BaseDistributedSearchTestCase {
public DistributedSpellCheckComponentTest()
diff --git a/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java b/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java
index 3347621..a26ee20 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/QueryElevationComponentTest.java
@@ -59,7 +59,7 @@
//write out elevate-data.xml to the Data dir first by copying it from conf, which we know exists, this way we can test both conf and data configurations
File parent = new File(TEST_HOME() + "/collection1", "conf");
File elevateFile = new File(parent, "elevate.xml");
- File elevateDataFile = new File(dataDir, "elevate-data.xml");
+ File elevateDataFile = new File(initCoreDataDir, "elevate-data.xml");
FileUtils.copyFile(elevateFile, elevateDataFile);
diff --git a/solr/core/src/test/org/apache/solr/handler/component/SpellCheckComponentTest.java b/solr/core/src/test/org/apache/solr/handler/component/SpellCheckComponentTest.java
index 0f675ea..2f4cc38 100644
--- a/solr/core/src/test/org/apache/solr/handler/component/SpellCheckComponentTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/component/SpellCheckComponentTest.java
@@ -21,8 +21,8 @@
import java.util.*;
import org.apache.lucene.util.LuceneTestCase.Slow;
+import org.apache.lucene.util.LuceneTestCase.SuppressTempFileChecks;
import org.apache.solr.SolrTestCaseJ4;
-import org.apache.solr.SolrTestCaseJ4.SuppressTempDirCleanUp;
import org.apache.solr.common.params.CommonParams;
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.common.params.SpellingParams;
@@ -42,7 +42,7 @@
* @since solr 1.3
*/
@Slow
-@SuppressTempDirCleanUp(bugUrl = "https://issues.apache.org/jira/browse/SOLR-1877 Spellcheck IndexReader leak bug?")
+@SuppressTempFileChecks(bugUrl = "https://issues.apache.org/jira/browse/SOLR-1877 Spellcheck IndexReader leak bug?")
public class SpellCheckComponentTest extends SolrTestCaseJ4 {
static String rh = "spellCheckCompRH";
diff --git a/solr/core/src/test/org/apache/solr/request/TestRemoteStreaming.java b/solr/core/src/test/org/apache/solr/request/TestRemoteStreaming.java
index e06df99..1fdfb23 100644
--- a/solr/core/src/test/org/apache/solr/request/TestRemoteStreaming.java
+++ b/solr/core/src/test/org/apache/solr/request/TestRemoteStreaming.java
@@ -18,6 +18,8 @@
*/
import org.apache.commons.io.IOUtils;
+import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.TestUtil;
import org.apache.solr.SolrJettyTestBase;
import org.apache.solr.SolrTestCaseJ4.SuppressSSL;
import org.apache.solr.client.solrj.SolrQuery;
@@ -49,19 +51,19 @@
*/
@SuppressSSL // does not yet work with ssl yet - uses raw java.net.URL API rather than HttpClient
public class TestRemoteStreaming extends SolrJettyTestBase {
-
- private static final File solrHomeDirectory = new File(TEMP_DIR, "TestRemoteStreaming");
+ private static File solrHomeDirectory;
@BeforeClass
public static void beforeTest() throws Exception {
//this one has handleSelect=true which a test here needs
+ solrHomeDirectory = createTempDir(LuceneTestCase.getTestClass().getSimpleName());
setupJettyTestHome(solrHomeDirectory, "collection1");
createJetty(solrHomeDirectory.getAbsolutePath(), null, null);
}
@AfterClass
public static void afterTest() throws Exception {
- cleanUpJettyHome(solrHomeDirectory);
+
}
@Before
diff --git a/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldResource.java b/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldResource.java
index 6fab808..dffa9e8 100644
--- a/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldResource.java
+++ b/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldResource.java
@@ -16,6 +16,11 @@
* limitations under the License.
*/
+import java.io.File;
+import java.util.SortedMap;
+import java.util.TreeMap;
+import java.util.regex.Pattern;
+
import org.apache.commons.io.FileUtils;
import org.apache.solr.util.RestTestBase;
import org.eclipse.jetty.servlet.ServletHolder;
@@ -24,11 +29,6 @@
import org.junit.Test;
import org.restlet.ext.servlet.ServerServlet;
-import java.io.File;
-import java.util.SortedMap;
-import java.util.TreeMap;
-import java.util.regex.Pattern;
-
public class TestManagedSchemaFieldResource extends RestTestBase {
private static File tmpSolrHome;
@@ -40,11 +40,10 @@
@Before
public void before() throws Exception {
- tmpSolrHome = new File( dataDir + File.separator + TestManagedSchemaFieldResource.class.getSimpleName()
- + System.currentTimeMillis());
+ tmpSolrHome = createTempDir();
tmpConfDir = new File(tmpSolrHome, confDir);
FileUtils.copyDirectory(new File(TEST_HOME()), tmpSolrHome.getAbsoluteFile());
-
+
final SortedMap<ServletHolder,String> extraServlets = new TreeMap<>();
final ServletHolder solrRestApi = new ServletHolder("SolrSchemaRestApi", ServerServlet.class);
solrRestApi.setInitParameter("org.restlet.application", "org.apache.solr.rest.SolrSchemaRestApi");
diff --git a/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedStopFilterFactory.java b/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedStopFilterFactory.java
index 8e34700..8ce6cb5 100644
--- a/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedStopFilterFactory.java
+++ b/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedStopFilterFactory.java
@@ -44,8 +44,7 @@
@Before
public void before() throws Exception {
- tmpSolrHome = new File(dataDir + File.separator + TestManagedStopFilterFactory.class.getSimpleName()
- + System.currentTimeMillis());
+ tmpSolrHome = createTempDir();
tmpConfDir = new File(tmpSolrHome, confDir);
FileUtils.copyDirectory(new File(TEST_HOME()), tmpSolrHome.getAbsoluteFile());
@@ -65,7 +64,6 @@
private void after() throws Exception {
jetty.stop();
jetty = null;
- FileUtils.deleteDirectory(tmpSolrHome);
System.clearProperty("managed.schema.mutable");
System.clearProperty("enable.update.log");
}
diff --git a/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymFilterFactory.java b/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymFilterFactory.java
index 10ea732..1c91ab9 100644
--- a/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymFilterFactory.java
+++ b/solr/core/src/test/org/apache/solr/rest/schema/analysis/TestManagedSynonymFilterFactory.java
@@ -42,8 +42,7 @@
*/
@Before
public void before() throws Exception {
- tmpSolrHome = new File(dataDir + File.separator + TestManagedStopFilterFactory.class.getSimpleName()
- + System.currentTimeMillis());
+ tmpSolrHome = createTempDir();
FileUtils.copyDirectory(new File(TEST_HOME()), tmpSolrHome.getAbsoluteFile());
final SortedMap<ServletHolder,String> extraServlets = new TreeMap<>();
diff --git a/solr/core/src/test/org/apache/solr/schema/ChangedSchemaMergeTest.java b/solr/core/src/test/org/apache/solr/schema/ChangedSchemaMergeTest.java
index 524b9d5..65425a7 100644
--- a/solr/core/src/test/org/apache/solr/schema/ChangedSchemaMergeTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/ChangedSchemaMergeTest.java
@@ -17,6 +17,9 @@
package org.apache.solr.schema;
+import java.io.File;
+import java.io.IOException;
+
import org.apache.commons.codec.Charsets;
import org.apache.commons.io.FileUtils;
import org.apache.solr.SolrTestCaseJ4;
@@ -31,16 +34,13 @@
import org.junit.BeforeClass;
import org.junit.Test;
-import java.io.File;
-import java.io.IOException;
-
public class ChangedSchemaMergeTest extends SolrTestCaseJ4 {
@BeforeClass
public static void beforeClass() throws Exception {
initCore();
}
- private final File solrHomeDirectory = new File(dataDir, getSimpleClassName());
+ private final File solrHomeDirectory = createTempDir();
private File schemaFile = null;
private void addDoc(SolrCore core, String... fieldValues) throws IOException {
@@ -51,11 +51,6 @@
}
private CoreContainer init() throws Exception {
-
- if (solrHomeDirectory.exists()) {
- FileUtils.deleteDirectory(solrHomeDirectory);
- }
- assertTrue("Failed to mkdirs workDir", solrHomeDirectory.mkdirs());
File changed = new File(solrHomeDirectory, "changed");
copyMinConf(changed, "name=changed");
// Overlay with my local schema
diff --git a/solr/core/src/test/org/apache/solr/schema/ModifyConfFileTest.java b/solr/core/src/test/org/apache/solr/schema/ModifyConfFileTest.java
index 2b29b2d..0877470 100644
--- a/solr/core/src/test/org/apache/solr/schema/ModifyConfFileTest.java
+++ b/solr/core/src/test/org/apache/solr/schema/ModifyConfFileTest.java
@@ -17,7 +17,11 @@
package org.apache.solr.schema;
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
+import static org.junit.internal.matchers.StringContains.containsString;
+
+import java.io.File;
+import java.util.ArrayList;
+
import org.apache.commons.codec.Charsets;
import org.apache.commons.io.FileUtils;
import org.apache.solr.SolrTestCaseJ4;
@@ -36,13 +40,10 @@
import org.junit.rules.RuleChain;
import org.junit.rules.TestRule;
-import java.io.File;
-import java.util.ArrayList;
-
-import static org.junit.internal.matchers.StringContains.containsString;
+import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
public class ModifyConfFileTest extends SolrTestCaseJ4 {
- private File solrHomeDirectory = new File(dataDir, this.getClass().getName());
+ private File solrHomeDirectory = createTempDir();
@Rule
public TestRule solrTestRules = RuleChain.outerRule(new SystemPropertiesRestoreRule());
@@ -51,10 +52,7 @@
System.setProperty("solr.test.sys.prop1", "propone");
System.setProperty("solr.test.sys.prop2", "proptwo");
- if (solrHomeDirectory.exists()) {
- FileUtils.deleteDirectory(solrHomeDirectory);
- }
- assertTrue("Failed to mkdirs workDir", solrHomeDirectory.mkdirs());
+ solrHomeDirectory = createTempDir();
copySolrHomeToTemp(solrHomeDirectory, "core1", true);
FileUtils.write(new File(new File(solrHomeDirectory, "core1"), "core.properties"), "", Charsets.UTF_8.toString());
@@ -148,9 +146,6 @@
} finally {
cc.shutdown();
- if (solrHomeDirectory.exists()) {
- FileUtils.deleteDirectory(solrHomeDirectory);
- }
}
}
diff --git a/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java b/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java
index 834677d..e2b9c2b 100644
--- a/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java
+++ b/solr/core/src/test/org/apache/solr/schema/TestBinaryField.java
@@ -35,8 +35,8 @@
@BeforeClass
public static void beforeTest() throws Exception {
- File homeDir = new File(dataDir,
- "solrtest-TestBinaryField-" + System.currentTimeMillis());
+ File homeDir = createTempDir();
+
File collDir = new File(homeDir, "collection1");
File dataDir = new File(collDir, "data");
File confDir = new File(collDir, "conf");
diff --git a/solr/core/src/test/org/apache/solr/schema/TestCollationField.java b/solr/core/src/test/org/apache/solr/schema/TestCollationField.java
index 71a5733..d4168c8 100644
--- a/solr/core/src/test/org/apache/solr/schema/TestCollationField.java
+++ b/solr/core/src/test/org/apache/solr/schema/TestCollationField.java
@@ -63,7 +63,7 @@
*/
public static String setupSolrHome() throws Exception {
// make a solr home underneath the test's TEMP_DIR
- File tmpFile = TestUtil.getTempDir("collation1");
+ File tmpFile = createTempDir("collation1");
tmpFile.delete();
tmpFile.mkdir();
diff --git a/solr/core/src/test/org/apache/solr/schema/TestCollationFieldDocValues.java b/solr/core/src/test/org/apache/solr/schema/TestCollationFieldDocValues.java
index a3f489e..2bc5cfc 100644
--- a/solr/core/src/test/org/apache/solr/schema/TestCollationFieldDocValues.java
+++ b/solr/core/src/test/org/apache/solr/schema/TestCollationFieldDocValues.java
@@ -65,7 +65,7 @@
*/
public static String setupSolrHome() throws Exception {
// make a solr home underneath the test's TEMP_DIR
- File tmpFile = TestUtil.getTempDir("collation1");
+ File tmpFile = createTempDir("collation1");
tmpFile.delete();
tmpFile.mkdir();
diff --git a/solr/core/src/test/org/apache/solr/schema/TestManagedSchema.java b/solr/core/src/test/org/apache/solr/schema/TestManagedSchema.java
index 95b04ab..6854af1 100644
--- a/solr/core/src/test/org/apache/solr/schema/TestManagedSchema.java
+++ b/solr/core/src/test/org/apache/solr/schema/TestManagedSchema.java
@@ -16,6 +16,13 @@
* limitations under the License.
*/
+import java.io.File;
+import java.io.FileInputStream;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.regex.Pattern;
+
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.solr.common.SolrException;
@@ -29,13 +36,6 @@
import org.junit.After;
import org.junit.Before;
-import java.io.File;
-import java.io.FileInputStream;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.regex.Pattern;
-
public class TestManagedSchema extends AbstractBadConfigTestBase {
private static File tmpSolrHome;
@@ -46,9 +46,7 @@
@Before
private void initManagedSchemaCore() throws Exception {
- final String tmpSolrHomePath
- = dataDir + File.separator + TestManagedSchema.class.getSimpleName() + System.currentTimeMillis();
- tmpSolrHome = new File(tmpSolrHomePath).getAbsoluteFile();
+ tmpSolrHome = createTempDir();
tmpConfDir = new File(tmpSolrHome, confDir);
File testHomeConfDir = new File(TEST_HOME(), confDir);
FileUtils.copyFileToDirectory(new File(testHomeConfDir, "solrconfig-managed-schema.xml"), tmpConfDir);
@@ -68,9 +66,8 @@
}
@After
- private void deleteCoreAndTempSolrHomeDirectory() throws Exception {
+ private void afterClass() throws Exception {
deleteCore();
- FileUtils.deleteDirectory(tmpSolrHome);
System.clearProperty("managed.schema.mutable");
System.clearProperty("enable.update.log");
}
diff --git a/solr/core/src/test/org/apache/solr/search/TestAddFieldRealTimeGet.java b/solr/core/src/test/org/apache/solr/search/TestAddFieldRealTimeGet.java
index 345f1ff..7beeab9 100644
--- a/solr/core/src/test/org/apache/solr/search/TestAddFieldRealTimeGet.java
+++ b/solr/core/src/test/org/apache/solr/search/TestAddFieldRealTimeGet.java
@@ -17,15 +17,14 @@
* limitations under the License.
*/
+import java.io.File;
+import java.util.Collections;
+
import org.apache.commons.io.FileUtils;
import org.apache.solr.schema.IndexSchema;
import org.apache.solr.schema.SchemaField;
-import org.apache.solr.schema.TestManagedSchema;
import org.junit.Before;
-import java.io.File;
-import java.util.Collections;
-
public class TestAddFieldRealTimeGet extends TestRTGBase {
private static File tmpSolrHome;
@@ -36,8 +35,7 @@
@Before
private void initManagedSchemaCore() throws Exception {
- final String tmpSolrHomePath
- = dataDir + File.separator + TestManagedSchema.class.getSimpleName() + System.currentTimeMillis();
+ final String tmpSolrHomePath = createTempDir().getAbsolutePath();
tmpSolrHome = new File(tmpSolrHomePath).getAbsoluteFile();
tmpConfDir = new File(tmpSolrHome, confDir);
File testHomeConfDir = new File(TEST_HOME(), confDir);
@@ -45,7 +43,7 @@
final String schemaFileName = "schema-id-and-version-fields-only.xml";
FileUtils.copyFileToDirectory(new File(testHomeConfDir, configFileName), tmpConfDir);
FileUtils.copyFileToDirectory(new File(testHomeConfDir, schemaFileName), tmpConfDir);
- FileUtils.copyFileToDirectory(new File(testHomeConfDir, "solrconfig.snippet.randomindexconfig.xml"), tmpConfDir);
+ FileUtils.copyFileToDirectory(new File(testHomeConfDir, "solrconfig.snippet.randomindexconfig.xml"), tmpConfDir);
// initCore will trigger an upgrade to managed schema, since the solrconfig has
// <schemaFactory class="ManagedIndexSchemaFactory" ... />
diff --git a/solr/core/src/test/org/apache/solr/search/TestRecoveryHdfs.java b/solr/core/src/test/org/apache/solr/search/TestRecoveryHdfs.java
index 448e47d..dfe64bc 100644
--- a/solr/core/src/test/org/apache/solr/search/TestRecoveryHdfs.java
+++ b/solr/core/src/test/org/apache/solr/search/TestRecoveryHdfs.java
@@ -77,9 +77,7 @@
@BeforeClass
public static void beforeClass() throws Exception {
- dfsCluster = HdfsTestUtil.setupClass(new File(dataDir,
- HdfsBasicDistributedZk2Test.class.getName() + "_"
- + System.currentTimeMillis()).getAbsolutePath());
+ dfsCluster = HdfsTestUtil.setupClass(createTempDir().getAbsolutePath());
hdfsUri = dfsCluster.getFileSystem().getUri().toString();
try {
diff --git a/solr/core/src/test/org/apache/solr/search/TestSearcherReuse.java b/solr/core/src/test/org/apache/solr/search/TestSearcherReuse.java
index 2540519..ff056b3 100644
--- a/solr/core/src/test/org/apache/solr/search/TestSearcherReuse.java
+++ b/solr/core/src/test/org/apache/solr/search/TestSearcherReuse.java
@@ -16,22 +16,17 @@
*/
package org.apache.solr.search;
-import org.apache.solr.SolrTestCaseJ4;
-import org.apache.solr.common.util.NamedList;
-import org.apache.solr.request.SolrQueryRequest;
-import org.apache.solr.schema.SchemaField;
-import org.apache.solr.schema.IndexSchema;
-import org.apache.solr.schema.ManagedIndexSchema;
-
-import org.apache.lucene.util.TestUtil;
-
-import org.apache.commons.io.FileUtils;
-
import java.io.File;
import java.util.Collections;
-import org.junit.BeforeClass;
+import org.apache.commons.io.FileUtils;
+import org.apache.solr.SolrTestCaseJ4;
+import org.apache.solr.request.SolrQueryRequest;
+import org.apache.solr.schema.IndexSchema;
+import org.apache.solr.schema.ManagedIndexSchema;
+import org.apache.solr.schema.SchemaField;
import org.junit.AfterClass;
+import org.junit.BeforeClass;
/**
* Requests to open a new searcher w/o any underlying change to the index exposed
@@ -54,7 +49,7 @@
*/
@BeforeClass
private static void setupTempDirAndCoreWithManagedSchema() throws Exception {
- solrHome = new File(dataDir, TestSearcherReuse.class.getSimpleName());
+ solrHome = createTempDir();
solrHome = solrHome.getAbsoluteFile();
File confDir = new File(solrHome, confPath);
@@ -71,8 +66,7 @@
}
@AfterClass
- private static void deleteCoreAndTempSolrHomeDirectory() throws Exception {
- FileUtils.deleteDirectory(solrHome);
+ private static void afterClass() throws Exception {
solrHome = null;
}
diff --git a/solr/core/src/test/org/apache/solr/servlet/CacheHeaderTest.java b/solr/core/src/test/org/apache/solr/servlet/CacheHeaderTest.java
index 07e2aef..aacc945 100644
--- a/solr/core/src/test/org/apache/solr/servlet/CacheHeaderTest.java
+++ b/solr/core/src/test/org/apache/solr/servlet/CacheHeaderTest.java
@@ -16,6 +16,8 @@
*/
package org.apache.solr.servlet;
+
+
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
@@ -28,7 +30,6 @@
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpRequestBase;
import org.apache.http.impl.cookie.DateUtils;
-import org.apache.lucene.util.TestUtil;
import org.apache.solr.common.params.CommonParams;
import org.junit.AfterClass;
import org.junit.BeforeClass;
@@ -38,17 +39,18 @@
* A test case for the several HTTP cache headers emitted by Solr
*/
public class CacheHeaderTest extends CacheHeaderTestBase {
- private static final File solrHomeDirectory = new File(dataDir, "CacheHeaderTest");
+ private static File solrHomeDirectory;
@BeforeClass
public static void beforeTest() throws Exception {
+ solrHomeDirectory = createTempDir();
setupJettyTestHome(solrHomeDirectory, "collection1");
createJetty(solrHomeDirectory.getAbsolutePath(), null, null);
}
@AfterClass
public static void afterTest() throws Exception {
- cleanUpJettyHome(solrHomeDirectory);
+
}
protected static final String CONTENTS = "id\n100\n101\n102";
@@ -252,7 +254,7 @@
protected File makeFile(String contents, String charset) {
try {
- File f = TestUtil.createTempFile("cachetest_csv", null, dataDir);
+ File f = new File(initCoreDataDir, "cachetest_csv");
Writer out = new OutputStreamWriter(new FileOutputStream(f), charset);
out.write(contents);
out.close();
diff --git a/solr/core/src/test/org/apache/solr/spelling/DirectSolrSpellCheckerTest.java b/solr/core/src/test/org/apache/solr/spelling/DirectSolrSpellCheckerTest.java
index b4694a1..56a75ac 100644
--- a/solr/core/src/test/org/apache/solr/spelling/DirectSolrSpellCheckerTest.java
+++ b/solr/core/src/test/org/apache/solr/spelling/DirectSolrSpellCheckerTest.java
@@ -21,8 +21,8 @@
import java.util.Map;
import org.apache.lucene.analysis.Token;
+import org.apache.lucene.util.LuceneTestCase.SuppressTempFileChecks;
import org.apache.solr.SolrTestCaseJ4;
-import org.apache.solr.SolrTestCaseJ4.SuppressTempDirCleanUp;
import org.apache.solr.common.params.SpellingParams;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.core.SolrCore;
@@ -35,7 +35,7 @@
/**
* Simple tests for {@link DirectSolrSpellChecker}
*/
-@SuppressTempDirCleanUp(bugUrl = "https://issues.apache.org/jira/browse/SOLR-1877 Spellcheck IndexReader leak bug?")
+@SuppressTempFileChecks(bugUrl = "https://issues.apache.org/jira/browse/SOLR-1877 Spellcheck IndexReader leak bug?")
public class DirectSolrSpellCheckerTest extends SolrTestCaseJ4 {
private static SpellingQueryConverter queryConverter;
diff --git a/solr/core/src/test/org/apache/solr/spelling/FileBasedSpellCheckerTest.java b/solr/core/src/test/org/apache/solr/spelling/FileBasedSpellCheckerTest.java
index a4eab41..f2f0e48 100644
--- a/solr/core/src/test/org/apache/solr/spelling/FileBasedSpellCheckerTest.java
+++ b/solr/core/src/test/org/apache/solr/spelling/FileBasedSpellCheckerTest.java
@@ -17,27 +17,28 @@
package org.apache.solr.spelling;
-import org.apache.solr.SolrTestCaseJ4.SuppressTempDirCleanUp;
+import java.io.File;
+import java.util.Collection;
+import java.util.Map;
+
+import org.apache.lucene.analysis.Token;
+import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.TestUtil;
+import org.apache.lucene.util.LuceneTestCase.SuppressTempFileChecks;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.core.SolrCore;
import org.apache.solr.search.SolrIndexSearcher;
import org.apache.solr.util.RefCounted;
-import org.apache.lucene.analysis.Token;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
-import java.io.File;
-import java.util.Date;
-import java.util.Map;
-import java.util.Collection;
-
/**
*
* @since solr 1.3
**/
-@SuppressTempDirCleanUp(bugUrl = "https://issues.apache.org/jira/browse/SOLR-1877 Spellcheck IndexReader leak bug?")
+@SuppressTempFileChecks(bugUrl = "https://issues.apache.org/jira/browse/SOLR-1877 Spellcheck IndexReader leak bug?")
public class FileBasedSpellCheckerTest extends SolrTestCaseJ4 {
private static SpellingQueryConverter queryConverter;
@@ -70,8 +71,7 @@
spellchecker.add(AbstractLuceneSpellChecker.LOCATION, "spellings.txt");
spellchecker.add(AbstractLuceneSpellChecker.FIELD, "teststop");
spellchecker.add(FileBasedSpellChecker.SOURCE_FILE_CHAR_ENCODING, "UTF-8");
- File indexDir = new File(TEMP_DIR, "spellingIdx" + new Date().getTime());
- indexDir.mkdirs();
+ File indexDir = createTempDir(LuceneTestCase.getTestClass().getSimpleName());
spellchecker.add(AbstractLuceneSpellChecker.INDEX_DIR, indexDir.getAbsolutePath());
SolrCore core = h.getCore();
String dictName = checker.init(spellchecker, core);
@@ -106,7 +106,7 @@
spellchecker.add(AbstractLuceneSpellChecker.LOCATION, "spellings.txt");
spellchecker.add(AbstractLuceneSpellChecker.FIELD, "teststop");
spellchecker.add(FileBasedSpellChecker.SOURCE_FILE_CHAR_ENCODING, "UTF-8");
- File indexDir = new File(dataDir, "spellingIdx" + new Date().getTime());
+ File indexDir = createTempDir();
indexDir.mkdirs();
spellchecker.add(AbstractLuceneSpellChecker.INDEX_DIR, indexDir.getAbsolutePath());
spellchecker.add(SolrSpellChecker.FIELD_TYPE, "teststop");
diff --git a/solr/core/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java b/solr/core/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java
index e998a44..f1c743a 100644
--- a/solr/core/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java
+++ b/solr/core/src/test/org/apache/solr/spelling/IndexBasedSpellCheckerTest.java
@@ -16,7 +16,12 @@
*/
package org.apache.solr.spelling;
-import org.apache.solr.SolrTestCaseJ4.SuppressTempDirCleanUp;
+import java.io.File;
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.Map;
+
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.core.WhitespaceAnalyzer;
import org.apache.lucene.document.Document;
@@ -32,26 +37,21 @@
import org.apache.lucene.search.spell.SuggestWord;
import org.apache.lucene.search.spell.SuggestWordFrequencyComparator;
import org.apache.lucene.store.Directory;
+import org.apache.lucene.util.LuceneTestCase.SuppressTempFileChecks;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.core.SolrCore;
import org.apache.solr.handler.component.SpellCheckComponent;
-import org.apache.solr.util.RefCounted;
import org.apache.solr.search.SolrIndexSearcher;
+import org.apache.solr.util.RefCounted;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
-import java.io.File;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.Map;
-
/**
* @since solr 1.3
*/
-@SuppressTempDirCleanUp(bugUrl = "https://issues.apache.org/jira/browse/SOLR-1877 Spellcheck IndexReader leak bug?")
+@SuppressTempFileChecks(bugUrl = "https://issues.apache.org/jira/browse/SOLR-1877 Spellcheck IndexReader leak bug?")
public class IndexBasedSpellCheckerTest extends SolrTestCaseJ4 {
protected static SpellingQueryConverter queryConverter;
@@ -110,8 +110,8 @@
NamedList spellchecker = new NamedList();
spellchecker.add("classname", IndexBasedSpellChecker.class.getName());
- File indexDir = new File(dataDir, "spellingIdx" + new Date().getTime());
- indexDir.mkdirs();
+ File indexDir = createTempDir();
+
spellchecker.add(AbstractLuceneSpellChecker.INDEX_DIR, indexDir.getAbsolutePath());
spellchecker.add(AbstractLuceneSpellChecker.FIELD, "title");
spellchecker.add(AbstractLuceneSpellChecker.SPELLCHECKER_ARG_NAME, spellchecker);
@@ -186,7 +186,7 @@
NamedList spellchecker = new NamedList();
spellchecker.add("classname", IndexBasedSpellChecker.class.getName());
- File indexDir = new File(dataDir, "spellingIdx" + new Date().getTime());
+ File indexDir = createTempDir();
indexDir.mkdirs();
spellchecker.add(AbstractLuceneSpellChecker.INDEX_DIR, indexDir.getAbsolutePath());
spellchecker.add(AbstractLuceneSpellChecker.FIELD, "title");
@@ -243,8 +243,7 @@
NamedList spellchecker = new NamedList();
spellchecker.add("classname", IndexBasedSpellChecker.class.getName());
- File indexDir = new File(dataDir, "spellingIdx" + new Date().getTime());
- indexDir.mkdirs();
+ File indexDir = createTempDir();
spellchecker.add(AbstractLuceneSpellChecker.INDEX_DIR, indexDir.getAbsolutePath());
spellchecker.add(AbstractLuceneSpellChecker.FIELD, "title");
spellchecker.add(AbstractLuceneSpellChecker.SPELLCHECKER_ARG_NAME, spellchecker);
@@ -282,10 +281,11 @@
IndexBasedSpellChecker checker = new IndexBasedSpellChecker();
NamedList spellchecker = new NamedList();
spellchecker.add("classname", IndexBasedSpellChecker.class.getName());
-
- File indexDir = new File(dataDir, "spellingIdx" + new Date().getTime());
+
+ File tmpDir = createTempDir();
+ File indexDir = new File(tmpDir, "spellingIdx");
//create a standalone index
- File altIndexDir = new File(dataDir, "alternateIdx" + new Date().getTime());
+ File altIndexDir = new File(tmpDir, "alternateIdx" + new Date().getTime());
Directory dir = newFSDirectory(altIndexDir);
IndexWriter iw = new IndexWriter(
dir,
diff --git a/solr/core/src/test/org/apache/solr/spelling/SpellCheckCollatorTest.java b/solr/core/src/test/org/apache/solr/spelling/SpellCheckCollatorTest.java
index 8ebebf0..f1b3651 100644
--- a/solr/core/src/test/org/apache/solr/spelling/SpellCheckCollatorTest.java
+++ b/solr/core/src/test/org/apache/solr/spelling/SpellCheckCollatorTest.java
@@ -21,9 +21,9 @@
import java.util.Set;
import org.apache.lucene.util.LuceneTestCase.Slow;
+import org.apache.lucene.util.LuceneTestCase.SuppressTempFileChecks;
import org.apache.lucene.util.TestUtil;
import org.apache.solr.SolrTestCaseJ4;
-import org.apache.solr.SolrTestCaseJ4.SuppressTempDirCleanUp;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.params.CommonParams;
import org.apache.solr.common.params.GroupParams;
@@ -42,7 +42,7 @@
import org.junit.Test;
@Slow
-@SuppressTempDirCleanUp(bugUrl = "https://issues.apache.org/jira/browse/SOLR-1877 Spellcheck IndexReader leak bug?")
+@SuppressTempFileChecks(bugUrl = "https://issues.apache.org/jira/browse/SOLR-1877 Spellcheck IndexReader leak bug?")
public class SpellCheckCollatorTest extends SolrTestCaseJ4 {
@BeforeClass
public static void beforeClass() throws Exception {
diff --git a/solr/core/src/test/org/apache/solr/spelling/WordBreakSolrSpellCheckerTest.java b/solr/core/src/test/org/apache/solr/spelling/WordBreakSolrSpellCheckerTest.java
index f357830..395361f 100644
--- a/solr/core/src/test/org/apache/solr/spelling/WordBreakSolrSpellCheckerTest.java
+++ b/solr/core/src/test/org/apache/solr/spelling/WordBreakSolrSpellCheckerTest.java
@@ -23,8 +23,8 @@
import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.analysis.Token;
+import org.apache.lucene.util.LuceneTestCase.SuppressTempFileChecks;
import org.apache.solr.SolrTestCaseJ4;
-import org.apache.solr.SolrTestCaseJ4.SuppressTempDirCleanUp;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.core.SolrCore;
import org.apache.solr.handler.component.SpellCheckComponent;
@@ -33,7 +33,7 @@
import org.junit.BeforeClass;
import org.junit.Test;
-@SuppressTempDirCleanUp(bugUrl = "https://issues.apache.org/jira/browse/SOLR-1877 Spellcheck IndexReader leak bug?")
+@SuppressTempFileChecks(bugUrl = "https://issues.apache.org/jira/browse/SOLR-1877 Spellcheck IndexReader leak bug?")
public class WordBreakSolrSpellCheckerTest extends SolrTestCaseJ4 {
@BeforeClass
diff --git a/solr/core/src/test/org/apache/solr/spelling/suggest/SuggesterTest.java b/solr/core/src/test/org/apache/solr/spelling/suggest/SuggesterTest.java
index f48ab6c..0edb5e6 100644
--- a/solr/core/src/test/org/apache/solr/spelling/suggest/SuggesterTest.java
+++ b/solr/core/src/test/org/apache/solr/spelling/suggest/SuggesterTest.java
@@ -82,10 +82,10 @@
System.setProperty("solr.test.leavedatadir", "true");
addDocs();
assertU(commit());
- File data = dataDir;
+ File data = initCoreDataDir;
String config = configString;
deleteCore();
- dataDir = data;
+ initCoreDataDir = data;
configString = config;
initCore();
assertQ(req("qt", requestUri, "q", "ac", SpellingParams.SPELLCHECK_COUNT, "2", SpellingParams.SPELLCHECK_ONLY_MORE_POPULAR, "true"),
diff --git a/solr/core/src/test/org/apache/solr/store/blockcache/BlockDirectoryTest.java b/solr/core/src/test/org/apache/solr/store/blockcache/BlockDirectoryTest.java
index 46526b6..cf5c4f8 100644
--- a/solr/core/src/test/org/apache/solr/store/blockcache/BlockDirectoryTest.java
+++ b/solr/core/src/test/org/apache/solr/store/blockcache/BlockDirectoryTest.java
@@ -30,6 +30,7 @@
import org.apache.lucene.store.IndexOutput;
import org.apache.lucene.store.MergeInfo;
import org.apache.lucene.util.LuceneTestCase;
+
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.store.hdfs.HdfsDirectory;
import org.junit.After;
@@ -104,9 +105,7 @@
@Before
public void setUp() throws Exception {
super.setUp();
- file = new File(dataDir, HdfsDirectory.class.getName() + "-" + System.currentTimeMillis());
- rm(file);
- file.mkdirs();
+ file = createTempDir();
FSDirectory dir = FSDirectory.open(new File(file, "base"));
mapperCache = new MapperCache();
directory = new BlockDirectory("test", dir, mapperCache, null, true, true);
@@ -117,7 +116,6 @@
public void tearDown() throws Exception {
super.tearDown();
directory.close();
- FileUtils.deleteDirectory(file);
}
@Test
diff --git a/solr/core/src/test/org/apache/solr/store/hdfs/HdfsDirectoryTest.java b/solr/core/src/test/org/apache/solr/store/hdfs/HdfsDirectoryTest.java
index 7e8ee10..98cebfe 100644
--- a/solr/core/src/test/org/apache/solr/store/hdfs/HdfsDirectoryTest.java
+++ b/solr/core/src/test/org/apache/solr/store/hdfs/HdfsDirectoryTest.java
@@ -17,7 +17,6 @@
* limitations under the License.
*/
-import java.io.File;
import java.io.IOException;
import java.util.HashSet;
import java.util.Random;
@@ -58,9 +57,7 @@
@BeforeClass
public static void beforeClass() throws Exception {
- dfsCluster = HdfsTestUtil.setupClass(dataDir.getAbsolutePath()
- + File.separator + HdfsDirectoryTest.class.getName() + "_hdfsdir-"
- + System.currentTimeMillis());
+ dfsCluster = HdfsTestUtil.setupClass(createTempDir().getAbsolutePath());
}
@AfterClass
@@ -76,7 +73,7 @@
Configuration conf = new Configuration();
conf.set("dfs.permissions.enabled", "false");
- directory = new HdfsDirectory(new Path(dfsCluster.getURI().toString() + dataDir.getAbsolutePath() + "/hdfs"), conf);
+ directory = new HdfsDirectory(new Path(dfsCluster.getURI().toString() + createTempDir().getAbsolutePath() + "/hdfs"), conf);
random = random();
}
diff --git a/solr/core/src/test/org/apache/solr/store/hdfs/HdfsLockFactoryTest.java b/solr/core/src/test/org/apache/solr/store/hdfs/HdfsLockFactoryTest.java
index 61ed45d..76f7b26 100644
--- a/solr/core/src/test/org/apache/solr/store/hdfs/HdfsLockFactoryTest.java
+++ b/solr/core/src/test/org/apache/solr/store/hdfs/HdfsLockFactoryTest.java
@@ -17,7 +17,6 @@
* limitations under the License.
*/
-import java.io.File;
import java.io.IOException;
import java.net.URI;
@@ -43,11 +42,9 @@
@BeforeClass
public static void beforeClass() throws Exception {
- dfsCluster = HdfsTestUtil.setupClass(dataDir.getAbsolutePath()
- + File.separator + HdfsLockFactoryTest.class.getName() + "_hdfsdir-"
- + System.currentTimeMillis());
+ dfsCluster = HdfsTestUtil.setupClass(createTempDir().getAbsolutePath());
}
-
+
@AfterClass
public static void afterClass() throws Exception {
HdfsTestUtil.teardownClass(dfsCluster);
diff --git a/solr/core/src/test/org/apache/solr/update/SolrIndexSplitterTest.java b/solr/core/src/test/org/apache/solr/update/SolrIndexSplitterTest.java
index c5662ee..e6df158 100644
--- a/solr/core/src/test/org/apache/solr/update/SolrIndexSplitterTest.java
+++ b/solr/core/src/test/org/apache/solr/update/SolrIndexSplitterTest.java
@@ -17,9 +17,11 @@
* limitations under the License.
*/
-import com.google.common.collect.Lists;
+import java.io.File;
+import java.io.UnsupportedEncodingException;
+import java.util.List;
-import org.apache.commons.io.FileUtils;
+
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.Term;
import org.apache.lucene.store.Directory;
@@ -38,10 +40,8 @@
import org.junit.BeforeClass;
import org.junit.Test;
-import java.io.File;
-import java.io.UnsupportedEncodingException;
+import com.google.common.collect.Lists;
import java.nio.charset.StandardCharsets;
-import java.util.List;
public class SolrIndexSplitterTest extends SolrTestCaseJ4 {
File indexDir1 = null, indexDir2 = null, indexDir3 = null;
@@ -58,27 +58,9 @@
super.setUp();
clearIndex();
assertU(commit());
- 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);
- }
- assertTrue("Failed to mkdirs indexDir1 for split index", indexDir1.mkdirs());
-
- if (indexDir2.exists()) {
- FileUtils.deleteDirectory(indexDir2);
- }
- assertTrue("Failed to mkdirs indexDir2 for split index", indexDir2.mkdirs());
-
- if (indexDir3.exists()) {
- FileUtils.deleteDirectory(indexDir3);
- }
- assertTrue("Failed to mkdirs indexDir3 for split index", indexDir3.mkdirs());
+ indexDir1 = createTempDir("_testSplit1");
+ indexDir2 = createTempDir("_testSplit2");
+ indexDir3 = createTempDir("_testSplit3");
}
@Test
@@ -271,11 +253,7 @@
@Test
public void testSplitByRouteKey() throws Exception {
- File indexDir = new File(dataDir, this.getClass().getName() + "testSplitByRouteKey");
- if (indexDir.exists()) {
- FileUtils.deleteDirectory(indexDir);
- }
- indexDir.mkdirs();
+ File indexDir = createTempDir();
CompositeIdRouter r1 = new CompositeIdRouter();
String splitKey = "sea-line!";
diff --git a/solr/core/src/test/org/apache/solr/update/processor/AddSchemaFieldsUpdateProcessorFactoryTest.java b/solr/core/src/test/org/apache/solr/update/processor/AddSchemaFieldsUpdateProcessorFactoryTest.java
index 789f6cd..5b39019 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/AddSchemaFieldsUpdateProcessorFactoryTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/AddSchemaFieldsUpdateProcessorFactoryTest.java
@@ -17,10 +17,12 @@
package org.apache.solr.update.processor;
+import java.io.File;
+import java.util.Date;
+
import org.apache.commons.io.FileUtils;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.schema.IndexSchema;
-import org.apache.solr.schema.TestManagedSchema;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
@@ -28,9 +30,6 @@
import org.junit.After;
import org.junit.Before;
-import java.io.File;
-import java.util.Date;
-
/**
* Tests for the field mutating update processors
* that parse Dates, Longs, Doubles, and Booleans.
@@ -47,9 +46,7 @@
@Before
private void initManagedSchemaCore() throws Exception {
- final String tmpSolrHomePath
- = dataDir + File.separator + TestManagedSchema.class.getSimpleName() + System.currentTimeMillis();
- tmpSolrHome = new File(tmpSolrHomePath).getAbsoluteFile();
+ tmpSolrHome = createTempDir();
tmpConfDir = new File(tmpSolrHome, confDir);
File testHomeConfDir = new File(TEST_HOME(), confDir);
FileUtils.copyFileToDirectory(new File(testHomeConfDir, SOLRCONFIG_XML), tmpConfDir);
@@ -60,12 +57,6 @@
initCore(SOLRCONFIG_XML, SCHEMA_XML, tmpSolrHome.getPath());
}
- @After
- private void deleteCoreAndTempSolrHomeDirectory() throws Exception {
- deleteCore();
- FileUtils.deleteDirectory(tmpSolrHome);
- }
-
public void testSingleField() throws Exception {
IndexSchema schema = h.getCore().getLatestSchema();
final String fieldName = "newfield1";
@@ -219,4 +210,9 @@
,"//arr[@name='" + fieldName3 + "']/str[.='" + field3String2 + "']"
,"//arr[@name='" + fieldName4 + "']/date[.='" + field4Value1String + "']");
}
+
+ @After
+ private void deleteCoreAndTempSolrHomeDirectory() throws Exception {
+ deleteCore();
+ }
}
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/MergeIndexesExampleTestBase.java b/solr/solrj/src/test/org/apache/solr/client/solrj/MergeIndexesExampleTestBase.java
index 8af0b77..7a0a618 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/MergeIndexesExampleTestBase.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/MergeIndexesExampleTestBase.java
@@ -17,7 +17,10 @@
package org.apache.solr.client.solrj;
-import org.apache.solr.SolrTestCaseJ4;
+import java.io.File;
+import java.io.IOException;
+import java.util.Arrays;
+
import org.apache.solr.client.solrj.request.AbstractUpdateRequest;
import org.apache.solr.client.solrj.request.CoreAdminRequest;
import org.apache.solr.client.solrj.request.QueryRequest;
@@ -30,10 +33,6 @@
import org.apache.solr.util.ExternalPaths;
import org.junit.BeforeClass;
-import java.io.File;
-import java.io.IOException;
-import java.util.Arrays;
-
/**
* Abstract base class for testing merge indexes command
*
@@ -44,6 +43,7 @@
protected CoreContainer cores;
private String saveProp;
+ private File dataDir1;
private File dataDir2;
@Override
@@ -67,13 +67,11 @@
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 = new File(dataDir, getClass().getName() + "-"
- + System.currentTimeMillis());
- dataDir2.mkdirs();
+ dataDir2 = createTempDir();
System.setProperty( "solr.core1.data.dir", this.dataDir2.getCanonicalPath() );
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/MultiCoreExampleTestBase.java b/solr/solrj/src/test/org/apache/solr/client/solrj/MultiCoreExampleTestBase.java
index c590a1c..9a79b4f 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/MultiCoreExampleTestBase.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/MultiCoreExampleTestBase.java
@@ -21,6 +21,8 @@
import java.util.HashSet;
import java.util.Set;
+import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.TestUtil;
import org.apache.solr.client.solrj.request.AbstractUpdateRequest.ACTION;
import org.apache.solr.client.solrj.request.CoreAdminRequest;
import org.apache.solr.client.solrj.request.CoreAdminRequest.Unload;
@@ -55,18 +57,11 @@
@Override public void setUp() throws Exception {
super.setUp();
-
- dataDir1 = new File(dataDir, getClass().getName() + "-core0-"
- + System.currentTimeMillis());
- dataDir1.mkdirs();
-
- dataDir2 = new File(dataDir, getClass().getName() + "-core1-"
- + System.currentTimeMillis());
- dataDir2.mkdirs();
+ dataDir1 = createTempDir();
+ dataDir2 = createTempDir();
System.setProperty( "solr.core0.data.dir", this.dataDir1.getCanonicalPath() );
System.setProperty( "solr.core1.data.dir", this.dataDir2.getCanonicalPath() );
-
}
@Override
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTestBase.java b/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTestBase.java
index 250a9cf..cef77bb 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTestBase.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/SolrExampleTestBase.java
@@ -47,7 +47,7 @@
// 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() );
}
/**
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/TestLBHttpSolrServer.java b/solr/solrj/src/test/org/apache/solr/client/solrj/TestLBHttpSolrServer.java
index 2449d7e..c6f4313 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/TestLBHttpSolrServer.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/TestLBHttpSolrServer.java
@@ -31,6 +31,7 @@
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.LuceneTestCase.Slow;
import org.apache.lucene.util.QuickPatchThreadsFilter;
+import org.apache.lucene.util.TestUtil;
import org.apache.solr.SolrIgnoredThreadsFilter;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
@@ -286,8 +287,6 @@
public void setUp() throws Exception {
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");
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java b/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java
index 75cea80..17e5f4d 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/AbstractEmbeddedSolrServerTestCase.java
@@ -36,13 +36,6 @@
protected CoreContainer cores = null;
protected File tempDir;
- protected void createTempDir() {
- if (tempDir == null) {
- tempDir = new File(dataDir, "solrtest-" + getTestClass().getSimpleName() + "-" + System.currentTimeMillis());
- tempDir.mkdirs();
- }
- }
-
@Override
@Before
public void setUp() throws Exception {
@@ -53,7 +46,7 @@
System.out.println("Solr home: " + SOLR_HOME.getAbsolutePath());
//The index is always stored within a temporary directory
- createTempDir();
+ tempDir = createTempDir();
File dataDir = new File(tempDir,"data1");
File dataDir2 = new File(tempDir,"data2");
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/JettyWebappTest.java b/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/JettyWebappTest.java
index 9475292..d757e31 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/JettyWebappTest.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/embedded/JettyWebappTest.java
@@ -23,6 +23,7 @@
import org.apache.commons.io.IOUtils;
import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.TestUtil;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.util.ExternalPaths;
import org.eclipse.jetty.server.Connector;
@@ -58,9 +59,9 @@
System.setProperty("solr.solr.home", ExternalPaths.EXAMPLE_HOME);
System.setProperty("tests.shardhandler.randomSeed", Long.toString(random().nextLong()));
- File dataDir = new File(this.dataDir,
- getClass().getName() + "-" + System.currentTimeMillis());
+ File dataDir = createTempDir();
dataDir.mkdirs();
+
System.setProperty("solr.data.dir", dataDir.getCanonicalPath());
String path = ExternalPaths.WEBAPP_HOME;
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java b/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java
index 37aab87..fe29cbb 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/request/TestCoreAdmin.java
@@ -17,9 +17,14 @@
package org.apache.solr.client.solrj.request;
-import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.core.Is.is;
+
+import java.io.File;
+
import org.apache.commons.io.FileUtils;
+import org.apache.lucene.util.LuceneTestCase;
+import org.apache.lucene.util.TestUtil;
import org.apache.solr.SolrIgnoredThreadsFilter;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.embedded.AbstractEmbeddedSolrServerTestCase;
@@ -38,10 +43,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.File;
-
-import static org.hamcrest.CoreMatchers.notNullValue;
-import static org.hamcrest.core.Is.is;
+import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
+import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
@ThreadLeakFilters(defaultFilters = true, filters = {SolrIgnoredThreadsFilter.class})
public class TestCoreAdmin extends AbstractEmbeddedSolrServerTestCase {
@@ -73,7 +76,7 @@
public void testConfigSet() throws Exception {
SolrServer server = getSolrAdmin();
- File testDir = createTestDirectory();
+ File testDir = createTempDir(LuceneTestCase.getTestClass().getSimpleName());
File newCoreInstanceDir = new File(testDir, "newcore");
@@ -91,26 +94,14 @@
}
- private File createTestDirectory() {
- File tmp = new File(dataDir, "solrtest-" + getTestClass().getSimpleName() + "-" + System.currentTimeMillis());
- assertTrue("Couldn't create temporary directory " + tmp.getAbsolutePath(), tmp.mkdirs());
- return tmp;
- }
-
@Test
public void testCustomUlogDir() throws Exception {
SolrServer server = getSolrAdmin();
- File tmp = createTestDirectory();
-
- log.info("Creating cores underneath {}", tmp);
+ File dataDir = createTempDir("data");
- File dataDir = new File(tmp, this.getTestName()
- + System.currentTimeMillis() + "-" + "data");
-
- File newCoreInstanceDir = new File(tmp, this.getTestName()
- + System.currentTimeMillis() + "-" + "instance");
+ File newCoreInstanceDir = createTempDir("instance");
File instanceDir = new File(cores.getSolrHome());
FileUtils.copyDirectory(instanceDir, new File(newCoreInstanceDir,
diff --git a/solr/solrj/src/test/org/apache/solr/common/util/ContentStreamTest.java b/solr/solrj/src/test/org/apache/solr/common/util/ContentStreamTest.java
index b907ec1..618e6c9 100644
--- a/solr/solrj/src/test/org/apache/solr/common/util/ContentStreamTest.java
+++ b/solr/solrj/src/test/org/apache/solr/common/util/ContentStreamTest.java
@@ -29,6 +29,7 @@
import org.apache.commons.io.IOUtils;
import org.apache.solr.SolrTestCaseJ4;
+import org.apache.lucene.util.TestUtil;
import org.apache.solr.core.SolrResourceLoader;
/**
@@ -48,7 +49,7 @@
{
InputStream is = new SolrResourceLoader(null, null).openResource( "solrj/README" );
assertNotNull( is );
- File file = new File(dataDir, "README");
+ File file = new File(createTempDir(), "README");
FileOutputStream os = new FileOutputStream(file);
IOUtils.copy(is, os);
os.close();
@@ -77,7 +78,7 @@
{
InputStream is = new SolrResourceLoader(null, null).openResource( "solrj/README" );
assertNotNull( is );
- File file = new File(dataDir, "README");
+ File file = new File(createTempDir(), "README");
FileOutputStream os = new FileOutputStream(file);
IOUtils.copy(is, os);
os.close();
diff --git a/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java b/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java
index 16d91a0..55c57b2 100644
--- a/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java
+++ b/solr/test-framework/src/java/org/apache/solr/BaseDistributedSearchTestCase.java
@@ -37,6 +37,7 @@
import org.apache.commons.io.FileUtils;
import org.apache.lucene.search.FieldCache;
import org.apache.lucene.util.Constants;
+import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.TestUtil;
import org.apache.solr.client.solrj.SolrResponse;
import org.apache.solr.client.solrj.SolrServer;
@@ -53,7 +54,6 @@
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.schema.TrieDateField;
-import org.apache.solr.util.AbstractSolrTestCase;
import org.eclipse.jetty.servlet.ServletHolder;
import org.junit.AfterClass;
import org.junit.BeforeClass;
@@ -278,9 +278,7 @@
super.setUp();
System.setProperty("solr.test.sys.prop1", "propone");
System.setProperty("solr.test.sys.prop2", "proptwo");
- testDir = new File(dataDir,
- getClass().getName() + "-" + System.currentTimeMillis());
- testDir.mkdirs();
+ testDir = createTempDir();
}
@Override
diff --git a/solr/test-framework/src/java/org/apache/solr/SolrJettyTestBase.java b/solr/test-framework/src/java/org/apache/solr/SolrJettyTestBase.java
index c40ac7a..e59c3ba1 100644
--- a/solr/test-framework/src/java/org/apache/solr/SolrJettyTestBase.java
+++ b/solr/test-framework/src/java/org/apache/solr/SolrJettyTestBase.java
@@ -56,7 +56,7 @@
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;
@@ -121,9 +121,6 @@
// Sets up the necessary config files for Jetty. At least some tests require that the solrconfig from the test
// file directory are used, but some also require that the solr.xml file be explicitly there as of SOLR-4817
public static void setupJettyTestHome(File solrHome, String collection) throws Exception {
- if (solrHome.exists()) {
- FileUtils.deleteDirectory(solrHome);
- }
copySolrHomeToTemp(solrHome, collection);
}
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 8ccc3e5..651a266 100644
--- a/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
+++ b/solr/test-framework/src/java/org/apache/solr/SolrTestCaseJ4.java
@@ -134,19 +134,6 @@
public String bugUrl() default "None";
}
-
- /**
- * Annotation for test classes to prevent TEMP_DIR cleanup.
- */
- @Documented
- @Inherited
- @Retention(RetentionPolicy.RUNTIME)
- @Target(ElementType.TYPE)
- public @interface SuppressTempDirCleanUp {
- /** Point to JIRA entry. */
- public String bugUrl() default "None";
- }
-
// 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;
@@ -163,11 +150,9 @@
@BeforeClass
@SuppressWarnings("unused")
private static void beforeClass() {
- String cname = getSimpleClassName();
- dataDir = new File(TEMP_DIR,
- "solrtest-" + cname + "-" + System.currentTimeMillis());
- dataDir.mkdirs();
- System.err.println("Creating dataDir: " + dataDir.getAbsolutePath());
+ initCoreDataDir = createTempDir("init-core-data");
+
+ System.err.println("Creating dataDir: " + initCoreDataDir.getAbsolutePath());
System.setProperty("jetty.testMode", "true");
System.setProperty("enable.update.log", usually() ? "true" : "false");
@@ -199,39 +184,19 @@
resetFactory();
coreName = ConfigSolrXmlOld.DEFAULT_DEFAULT_CORE_NAME;
} finally {
- try {
- boolean skip = Boolean.getBoolean("solr.test.leavedatadir");
- if (skip) {
- System.err
- .println("NOTE: per solr.test.leavedatadir, dataDir will not be removed: "
- + dataDir.getAbsolutePath());
- } else {
-
- 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);
- }
- }
- }
- } finally {
- dataDir = null;
- System.clearProperty("jetty.testMode");
- System.clearProperty("tests.shardhandler.randomSeed");
- System.clearProperty("enable.update.log");
- System.clearProperty("useCompoundFile");
- System.clearProperty("urlScheme");
-
- if (isSSLMode()) {
- HttpClientUtil.setConfigurer(new HttpClientConfigurer());
- }
- // clean up static
- sslConfig = null;
+ initCoreDataDir = null;
+ System.clearProperty("jetty.testMode");
+ System.clearProperty("tests.shardhandler.randomSeed");
+ System.clearProperty("enable.update.log");
+ System.clearProperty("useCompoundFile");
+ System.clearProperty("urlScheme");
+
+ if (isSSLMode()) {
+ HttpClientUtil.setConfigurer(new HttpClientConfigurer());
}
+
+ // clean up static
+ sslConfig = null;
}
IpTables.unblockAllPorts();
@@ -497,7 +462,6 @@
SolrException.ignorePatterns.remove(pattern);
}
-
public static void resetExceptionIgnores() {
SolrException.ignorePatterns = null;
ignoreException("ignore_exception"); // always ignore "ignore_exception"
@@ -554,9 +518,9 @@
}
/**
- * The directory used to story the index managed by the TestHarness h
+ * The directory used to story the index managed by the TestHarness
*/
- protected static volatile File dataDir;
+ protected static volatile File initCoreDataDir;
// hack due to File dataDir
protected static String hdfsDataDir;
@@ -600,7 +564,7 @@
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
@@ -616,7 +580,7 @@
public static CoreContainer createDefaultCoreContainer(String solrHome) {
testSolrHome = checkNotNull(solrHome);
- 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();
}
diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java
index b11f908..aa7e8d1 100644
--- a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java
+++ b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractFullDistribZkTestBase.java
@@ -284,8 +284,7 @@
// System.clearProperty(ZkStateReader.NUM_SHARDS_PROP);
System.setProperty(ZkStateReader.NUM_SHARDS_PROP, "1");
- File controlJettyDir = new File(dataDir,
- getClass().getName() + "-controljetty-" + System.currentTimeMillis());
+ File controlJettyDir = createTempDir();
setupJettySolrHome(controlJettyDir);
controlJetty = createJetty(controlJettyDir, testDir + "/control/data"); // don't pass shard name... let it default to "shard1"
@@ -360,8 +359,9 @@
for (int i = 1; i <= numJettys; i++) {
if (sb.length() > 0) sb.append(',');
int cnt = this.jettyIntCntr.incrementAndGet();
- File jettyDir = new File(dataDir,
- getClass().getName() + "-jetty" + cnt + "-" + System.currentTimeMillis());
+
+ File jettyDir = createTempDir();
+
jettyDir.mkdirs();
setupJettySolrHome(jettyDir);
log.info("create jetty " + i);
@@ -417,7 +417,6 @@
protected SolrServer startCloudJetty(String collection, String shard) throws Exception {
-
// TODO: use the collection string!!!!
collection = DEFAULT_COLLECTION;
@@ -425,8 +424,8 @@
int cnt = this.jettyIntCntr.incrementAndGet();
- File jettyDir = new File(dataDir,
- getClass().getName() + "-jetty" + cnt + "-" + System.currentTimeMillis());
+
+ 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);
diff --git a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractZkTestCase.java b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractZkTestCase.java
index 4f41667..537ad6b 100644
--- a/solr/test-framework/src/java/org/apache/solr/cloud/AbstractZkTestCase.java
+++ b/solr/test-framework/src/java/org/apache/solr/cloud/AbstractZkTestCase.java
@@ -63,8 +63,7 @@
@BeforeClass
public static void azt_beforeClass() throws Exception {
- zkDir = dataDir.getAbsolutePath() + File.separator
- + "zookeeper/server1/data";
+ zkDir = createTempDir("zkData").getAbsolutePath();
zkServer = new ZkTestServer(zkDir);
zkServer.run();
@@ -155,13 +154,11 @@
System.clearProperty("jetty.port");
System.clearProperty(ZOOKEEPER_FORCE_SYNC);
- zkServer.shutdown();
-
- zkServer = null;
+ if (zkServer != null) {
+ zkServer.shutdown();
+ zkServer = null;
+ }
zkDir = null;
-
- // wait just a bit for any zk client threads to outlast timeout
- Thread.sleep(2000);
}
protected void printLayout(String zkHost) throws Exception {