From 1f45e309d217da3e1d888425ded8a188bec8f3aa Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Thu, 13 Jun 2013 11:55:49 +0400 Subject: [PATCH] Do not dispose environments outside tearDown() This caused exceptions (write access assertions) when tests with mock application ran after tests with full Application --- .../AbstractLoadCompiledKotlinTest.java | 38 ++++++++----------- .../jvm/compiler/AbstractLoadJavaTest.java | 16 ++------ .../jet/jvm/compiler/LoadDescriptorUtil.java | 3 -- 3 files changed, 19 insertions(+), 38 deletions(-) diff --git a/compiler/tests/org/jetbrains/jet/jvm/compiler/AbstractLoadCompiledKotlinTest.java b/compiler/tests/org/jetbrains/jet/jvm/compiler/AbstractLoadCompiledKotlinTest.java index f50084a18db..ceabcd5a33d 100644 --- a/compiler/tests/org/jetbrains/jet/jvm/compiler/AbstractLoadCompiledKotlinTest.java +++ b/compiler/tests/org/jetbrains/jet/jvm/compiler/AbstractLoadCompiledKotlinTest.java @@ -16,8 +16,6 @@ package org.jetbrains.jet.jvm.compiler; -import com.intellij.openapi.Disposable; -import com.intellij.openapi.util.Disposer; import junit.framework.Assert; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.ConfigurationKind; @@ -48,29 +46,23 @@ public abstract class AbstractLoadCompiledKotlinTest extends TestCaseWithTmpdir } private void doTest(@NotNull String ktFileName, boolean includeAccessors) throws Exception { - Disposable tmpDisposable = Disposer.newDisposable(); - try { - File ktFile = new File(ktFileName); - File txtFile = new File(ktFileName.replaceFirst("\\.kt$", ".txt")); - AnalyzeExhaust exhaust = compileKotlinToDirAndGetAnalyzeExhaust(ktFile, tmpdir, tmpDisposable, - ConfigurationKind.JDK_ONLY); + File ktFile = new File(ktFileName); + File txtFile = new File(ktFileName.replaceFirst("\\.kt$", ".txt")); + AnalyzeExhaust exhaust = compileKotlinToDirAndGetAnalyzeExhaust(ktFile, tmpdir, getTestRootDisposable(), + ConfigurationKind.JDK_ONLY); - NamespaceDescriptor namespaceFromSource = exhaust.getBindingContext().get(BindingContext.FQNAME_TO_NAMESPACE_DESCRIPTOR, - TEST_PACKAGE_FQNAME); - assert namespaceFromSource != null; - Assert.assertEquals("test", namespaceFromSource.getName().asString()); + NamespaceDescriptor namespaceFromSource = exhaust.getBindingContext().get(BindingContext.FQNAME_TO_NAMESPACE_DESCRIPTOR, + TEST_PACKAGE_FQNAME); + assert namespaceFromSource != null; + Assert.assertEquals("test", namespaceFromSource.getName().asString()); - NamespaceDescriptor namespaceFromClass = LoadDescriptorUtil.loadTestNamespaceAndBindingContextFromJavaRoot( - tmpdir, getTestRootDisposable(), ConfigurationKind.JDK_ONLY).first; + NamespaceDescriptor namespaceFromClass = LoadDescriptorUtil.loadTestNamespaceAndBindingContextFromJavaRoot( + tmpdir, getTestRootDisposable(), ConfigurationKind.JDK_ONLY).first; - validateAndCompareNamespaces(namespaceFromSource, namespaceFromClass, - NamespaceComparator.DONT_INCLUDE_METHODS_OF_OBJECT - .checkPrimaryConstructors(true) - .checkPropertyAccessors(includeAccessors), - txtFile); - } - finally { - Disposer.dispose(tmpDisposable); - } + validateAndCompareNamespaces(namespaceFromSource, namespaceFromClass, + NamespaceComparator.DONT_INCLUDE_METHODS_OF_OBJECT + .checkPrimaryConstructors(true) + .checkPropertyAccessors(includeAccessors), + txtFile); } } diff --git a/compiler/tests/org/jetbrains/jet/jvm/compiler/AbstractLoadJavaTest.java b/compiler/tests/org/jetbrains/jet/jvm/compiler/AbstractLoadJavaTest.java index c2f1e7f7db3..784f7402d6f 100644 --- a/compiler/tests/org/jetbrains/jet/jvm/compiler/AbstractLoadJavaTest.java +++ b/compiler/tests/org/jetbrains/jet/jvm/compiler/AbstractLoadJavaTest.java @@ -17,8 +17,6 @@ package org.jetbrains.jet.jvm.compiler; import com.google.common.base.Predicates; -import com.intellij.openapi.Disposable; -import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.io.FileUtil; import com.intellij.psi.PsiFile; @@ -67,16 +65,10 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir { File javaFile = new File(javaFileName); File ktFile = new File(javaFile.getPath().replaceFirst("\\.java$", ".kt")); File txtFile = getTxtFile(javaFile.getPath()); - Disposable tmpDisposable = Disposer.newDisposable(); - try { - NamespaceDescriptor kotlinNamespace = analyzeKotlinAndLoadTestNamespace(ktFile, tmpDisposable, ConfigurationKind.JDK_AND_ANNOTATIONS); - Pair javaNamespaceAndContext = compileJavaAndLoadTestNamespaceAndBindingContextFromBinary( - Arrays.asList(javaFile), tmpdir, myTestRootDisposable, ConfigurationKind.JDK_AND_ANNOTATIONS); - checkLoadedNamespaces(txtFile, kotlinNamespace, javaNamespaceAndContext.first, javaNamespaceAndContext.second); - } - finally { - Disposer.dispose(tmpDisposable); - } + NamespaceDescriptor kotlinNamespace = analyzeKotlinAndLoadTestNamespace(ktFile, myTestRootDisposable, ConfigurationKind.JDK_AND_ANNOTATIONS); + Pair javaNamespaceAndContext = compileJavaAndLoadTestNamespaceAndBindingContextFromBinary( + Arrays.asList(javaFile), tmpdir, myTestRootDisposable, ConfigurationKind.JDK_AND_ANNOTATIONS); + checkLoadedNamespaces(txtFile, kotlinNamespace, javaNamespaceAndContext.first, javaNamespaceAndContext.second); } protected void doTestCompiledJava(@NotNull String javaFileName) throws Exception { diff --git a/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadDescriptorUtil.java b/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadDescriptorUtil.java index cc5a56fd4a4..6e32282bec7 100644 --- a/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadDescriptorUtil.java +++ b/compiler/tests/org/jetbrains/jet/jvm/compiler/LoadDescriptorUtil.java @@ -17,7 +17,6 @@ package org.jetbrains.jet.jvm.compiler; import com.intellij.openapi.Disposable; -import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.io.FileUtil; import org.jetbrains.annotations.NotNull; @@ -92,8 +91,6 @@ public final class LoadDescriptorUtil { @NotNull Disposable disposable, @NotNull ConfigurationKind configurationKind ) { - Disposer.dispose(disposable); - CompilerConfiguration configuration = JetTestUtils.compilerConfigurationForTests( configurationKind, TestJdkKind.MOCK_JDK, JetTestUtils.getAnnotationsJar(), javaRoot,