Reuse already created temp folder from UsefulTestCase

This commit is contained in:
Mikhael Bogdanov
2019-04-15 09:07:17 +02:00
parent 0d3f03a15a
commit 5dea14f4ce
3 changed files with 2 additions and 50 deletions
@@ -55,13 +55,11 @@ import static org.jetbrains.kotlin.test.testFramework.EdtTestUtil.runInEdtAndWai
// part of com.intellij.openapi.externalSystem.test.ExternalSystemTestCase
public abstract class ExternalSystemTestCase extends UsefulTestCase {
private File ourTempDir;
protected IdeaProjectTestFixture myTestFixture;
protected Project myProject;
private File myTestDir;
private VirtualFile myProjectRoot;
private final List<VirtualFile> myAllConfigs = new ArrayList<VirtualFile>();
@@ -69,10 +67,6 @@ public abstract class ExternalSystemTestCase extends UsefulTestCase {
@Override
public void setUp() throws Exception {
super.setUp();
ensureTempDirCreated();
myTestDir = new File(ourTempDir, getTestName(false));
FileUtil.ensureExists(myTestDir);
setUpFixtures();
myProject = myTestFixture.getProject();
@@ -133,24 +127,13 @@ public abstract class ExternalSystemTestCase extends UsefulTestCase {
return roots;
}
private void ensureTempDirCreated() throws IOException {
if (ourTempDir != null) return;
ourTempDir = new File(FileUtil.getTempDirectory(), getTestsTempDir());
FileUtil.delete(ourTempDir);
FileUtil.ensureExists(ourTempDir);
}
protected abstract String getTestsTempDir();
protected void setUpFixtures() throws Exception {
myTestFixture = IdeaTestFixtureFactory.getFixtureFactory().createFixtureBuilder(getName()).getFixture();
myTestFixture.setUp();
}
private void setUpInWriteAction() throws Exception {
File projectDir = new File(myTestDir, "project");
FileUtil.ensureExists(projectDir);
File projectDir = FileUtil.createTempDirectory("project", "", false);
myProjectRoot = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(projectDir);
}
@@ -166,11 +149,6 @@ public abstract class ExternalSystemTestCase extends UsefulTestCase {
}
});
myProject = null;
if (!FileUtil.delete(myTestDir) && myTestDir.exists()) {
System.err.println("Cannot delete " + myTestDir);
//printDirectoryContent(myDir);
myTestDir.deleteOnExit();
}
}
finally {
super.tearDown();
@@ -144,8 +144,6 @@ abstract class GradleImportingTestCase : ExternalSystemImportingTestCase() {
return if (name.methodName == null) super.getName() else FileUtil.sanitizeFileName(name.methodName)
}
override fun getTestsTempDir(): String = "gradleImportTests"
override fun getExternalSystemConfigFileName(): String = "build.gradle"
protected fun importProjectUsingSingeModulePerGradleProject() {
@@ -76,8 +76,6 @@ public abstract class MavenTestCase extends UsefulTestCase {
}
}
private File ourTempDir;
protected IdeaProjectTestFixture myTestFixture;
protected Project myProject;
@@ -92,11 +90,6 @@ public abstract class MavenTestCase extends UsefulTestCase {
protected void setUp() throws Exception {
super.setUp();
ensureTempDirCreated();
myDir = new File(ourTempDir, getTestName(false));
FileUtil.ensureExists(myDir);
setUpFixtures();
myProject = myTestFixture.getProject();
@@ -139,22 +132,13 @@ public abstract class MavenTestCase extends UsefulTestCase {
});
}
private void ensureTempDirCreated() throws IOException {
if (ourTempDir != null) return;
ourTempDir = new File(FileUtil.getTempDirectory(), "mavenTests");
FileUtil.delete(ourTempDir);
FileUtil.ensureExists(ourTempDir);
}
protected void setUpFixtures() throws Exception {
myTestFixture = IdeaTestFixtureFactory.getFixtureFactory().createFixtureBuilder(getName()).getFixture();
myTestFixture.setUp();
}
protected void setUpInWriteAction() throws Exception {
File projectDir = new File(myDir, "project");
projectDir.mkdirs();
File projectDir = FileUtil.createTempDirectory("project", "", false);
myProjectRoot = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(projectDir);
}
@@ -180,14 +164,6 @@ public abstract class MavenTestCase extends UsefulTestCase {
}
finally {
super.tearDown();
FileUtil.delete(myDir);
// cannot use reliably the result of the com.intellij.openapi.util.io.FileUtil.delete() method
// because com.intellij.openapi.util.io.FileUtilRt.deleteRecursivelyNIO() does not honor this contract
if (myDir.exists()) {
System.err.println("Cannot delete " + myDir);
//printDirectoryContent(myDir);
myDir.deleteOnExit();
}
resetClassFields(getClass());
}
}