mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[maven] improve test teardown safety
This commit is contained in:
@@ -22,6 +22,7 @@ import com.intellij.openapi.vfs.VfsUtilCore;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.openapi.vfs.newvfs.impl.VfsRootAccess;
|
||||
import com.intellij.testFramework.IdeaTestUtil;
|
||||
import com.intellij.testFramework.RunAll;
|
||||
import com.intellij.util.PathUtil;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import org.intellij.lang.annotations.Language;
|
||||
@@ -59,20 +60,15 @@ public abstract class MavenImportingTestCase extends MavenTestCase {
|
||||
|
||||
@Override
|
||||
protected void tearDown() throws Exception {
|
||||
try {
|
||||
JavaAwareProjectJdkTableImpl.removeInternalJdkInTests();
|
||||
Messages.setTestDialog(TestDialog.DEFAULT);
|
||||
removeFromLocalRepository("test");
|
||||
ExternalSystemTestCase.deleteBuildSystemDirectory();
|
||||
}
|
||||
catch (Throwable e) {
|
||||
addSuppressedException(e);
|
||||
}
|
||||
finally {
|
||||
myProjectsManager = null;
|
||||
myProjectsTree = null;
|
||||
super.tearDown();
|
||||
}
|
||||
new RunAll(
|
||||
() -> JavaAwareProjectJdkTableImpl.removeInternalJdkInTests(),
|
||||
() -> Messages.setTestDialog(TestDialog.DEFAULT),
|
||||
() -> removeFromLocalRepository("test"),
|
||||
() -> ExternalSystemTestCase.deleteBuildSystemDirectory(),
|
||||
() -> myProjectsManager = null,
|
||||
() -> myProjectsTree = null,
|
||||
() -> super.tearDown()
|
||||
).run();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.rt.execution.junit.FileComparisonFailure;
|
||||
import com.intellij.testFramework.EdtTestUtil;
|
||||
import com.intellij.testFramework.PsiTestUtil;
|
||||
import com.intellij.testFramework.RunAll;
|
||||
import com.intellij.testFramework.UsefulTestCase;
|
||||
import com.intellij.testFramework.fixtures.IdeaProjectTestFixture;
|
||||
import com.intellij.testFramework.fixtures.IdeaTestFixtureFactory;
|
||||
@@ -103,26 +104,25 @@ public abstract class MavenTestCase extends UsefulTestCase {
|
||||
|
||||
@Override
|
||||
protected void tearDown() throws Exception {
|
||||
try {
|
||||
MavenServerManager.getInstance().shutdown(true);
|
||||
MavenArtifactDownloader.awaitQuiescence(100, TimeUnit.SECONDS);
|
||||
myProject = null;
|
||||
EdtTestUtil.runInEdtAndWait(() -> tearDownFixtures());
|
||||
|
||||
MavenIndicesManager.getInstance().clear();
|
||||
}
|
||||
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());
|
||||
}
|
||||
new RunAll(
|
||||
() -> MavenServerManager.getInstance().shutdown(true),
|
||||
() -> MavenArtifactDownloader.awaitQuiescence(100, TimeUnit.SECONDS),
|
||||
() -> myProject = null,
|
||||
() -> EdtTestUtil.runInEdtAndWait(() -> tearDownFixtures()),
|
||||
() -> MavenIndicesManager.getInstance().clear(),
|
||||
() -> 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())
|
||||
).run();
|
||||
}
|
||||
|
||||
private void ensureTempDirCreated() throws IOException {
|
||||
|
||||
Reference in New Issue
Block a user