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 // part of com.intellij.openapi.externalSystem.test.ExternalSystemTestCase
public abstract class ExternalSystemTestCase extends UsefulTestCase { public abstract class ExternalSystemTestCase extends UsefulTestCase {
private File ourTempDir;
protected IdeaProjectTestFixture myTestFixture; protected IdeaProjectTestFixture myTestFixture;
protected Project myProject; protected Project myProject;
private File myTestDir;
private VirtualFile myProjectRoot; private VirtualFile myProjectRoot;
private final List<VirtualFile> myAllConfigs = new ArrayList<VirtualFile>(); private final List<VirtualFile> myAllConfigs = new ArrayList<VirtualFile>();
@@ -69,10 +67,6 @@ public abstract class ExternalSystemTestCase extends UsefulTestCase {
@Override @Override
public void setUp() throws Exception { public void setUp() throws Exception {
super.setUp(); super.setUp();
ensureTempDirCreated();
myTestDir = new File(ourTempDir, getTestName(false));
FileUtil.ensureExists(myTestDir);
setUpFixtures(); setUpFixtures();
myProject = myTestFixture.getProject(); myProject = myTestFixture.getProject();
@@ -133,24 +127,13 @@ public abstract class ExternalSystemTestCase extends UsefulTestCase {
return roots; 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 { protected void setUpFixtures() throws Exception {
myTestFixture = IdeaTestFixtureFactory.getFixtureFactory().createFixtureBuilder(getName()).getFixture(); myTestFixture = IdeaTestFixtureFactory.getFixtureFactory().createFixtureBuilder(getName()).getFixture();
myTestFixture.setUp(); myTestFixture.setUp();
} }
private void setUpInWriteAction() throws Exception { private void setUpInWriteAction() throws Exception {
File projectDir = new File(myTestDir, "project"); File projectDir = FileUtil.createTempDirectory("project", "", false);
FileUtil.ensureExists(projectDir);
myProjectRoot = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(projectDir); myProjectRoot = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(projectDir);
} }
@@ -166,11 +149,6 @@ public abstract class ExternalSystemTestCase extends UsefulTestCase {
} }
}); });
myProject = null; myProject = null;
if (!FileUtil.delete(myTestDir) && myTestDir.exists()) {
System.err.println("Cannot delete " + myTestDir);
//printDirectoryContent(myDir);
myTestDir.deleteOnExit();
}
} }
finally { finally {
super.tearDown(); super.tearDown();
@@ -144,8 +144,6 @@ abstract class GradleImportingTestCase : ExternalSystemImportingTestCase() {
return if (name.methodName == null) super.getName() else FileUtil.sanitizeFileName(name.methodName) return if (name.methodName == null) super.getName() else FileUtil.sanitizeFileName(name.methodName)
} }
override fun getTestsTempDir(): String = "gradleImportTests"
override fun getExternalSystemConfigFileName(): String = "build.gradle" override fun getExternalSystemConfigFileName(): String = "build.gradle"
protected fun importProjectUsingSingeModulePerGradleProject() { protected fun importProjectUsingSingeModulePerGradleProject() {
@@ -76,8 +76,6 @@ public abstract class MavenTestCase extends UsefulTestCase {
} }
} }
private File ourTempDir;
protected IdeaProjectTestFixture myTestFixture; protected IdeaProjectTestFixture myTestFixture;
protected Project myProject; protected Project myProject;
@@ -92,11 +90,6 @@ public abstract class MavenTestCase extends UsefulTestCase {
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
ensureTempDirCreated();
myDir = new File(ourTempDir, getTestName(false));
FileUtil.ensureExists(myDir);
setUpFixtures(); setUpFixtures();
myProject = myTestFixture.getProject(); 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 { protected void setUpFixtures() throws Exception {
myTestFixture = IdeaTestFixtureFactory.getFixtureFactory().createFixtureBuilder(getName()).getFixture(); myTestFixture = IdeaTestFixtureFactory.getFixtureFactory().createFixtureBuilder(getName()).getFixture();
myTestFixture.setUp(); myTestFixture.setUp();
} }
protected void setUpInWriteAction() throws Exception { protected void setUpInWriteAction() throws Exception {
File projectDir = new File(myDir, "project"); File projectDir = FileUtil.createTempDirectory("project", "", false);
projectDir.mkdirs();
myProjectRoot = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(projectDir); myProjectRoot = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(projectDir);
} }
@@ -180,14 +164,6 @@ public abstract class MavenTestCase extends UsefulTestCase {
} }
finally { finally {
super.tearDown(); 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()); resetClassFields(getClass());
} }
} }