diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/test/testFramework/KtUsefulTestCase.java b/compiler/tests-common/tests/org/jetbrains/kotlin/test/testFramework/KtUsefulTestCase.java index f387166ed58..eb7859998af 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/test/testFramework/KtUsefulTestCase.java +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/test/testFramework/KtUsefulTestCase.java @@ -51,7 +51,6 @@ import org.jetbrains.kotlin.test.IdeaSystemPropertiesForParallelRunConfigurator; import org.jetbrains.kotlin.testFramework.MockComponentManagerCreationTracer; import org.jetbrains.kotlin.types.AbstractTypeChecker; import org.jetbrains.kotlin.types.FlexibleTypeImpl; -import org.jetbrains.kotlin.utils.ExceptionUtilsKt; import org.junit.Assert; import java.io.File; @@ -165,28 +164,11 @@ public abstract class KtUsefulTestCase extends TestCase { } finally { super.tearDown(); - resetApplicationToNull(application); + TestApplicationUtilKt.resetApplicationToNull(application); application = null; } } - public static void resetApplicationToNull(Application old) { - if (old != null) return; - resetApplicationToNull(); - } - - public static void resetApplicationToNull() { - try { - Field ourApplicationField = ApplicationManager.class.getDeclaredField("ourApplication"); - ourApplicationField.setAccessible(true); - ourApplicationField.set(null, null); - } - catch (Exception e) { - throw ExceptionUtilsKt.rethrow(e); - } - } - - protected final void disposeRootDisposable() { Disposer.dispose(getTestRootDisposable()); } diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/test/testFramework/TestApplicationUtil.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/test/testFramework/TestApplicationUtil.kt new file mode 100644 index 00000000000..f2e57de84d6 --- /dev/null +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/test/testFramework/TestApplicationUtil.kt @@ -0,0 +1,26 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.test.testFramework + +import com.intellij.openapi.application.Application +import com.intellij.openapi.application.ApplicationManager +import org.jetbrains.kotlin.utils.rethrow +import java.lang.reflect.Field + +fun resetApplicationToNull(old: Application?) { + if (old != null) return + resetApplicationToNull() +} + +fun resetApplicationToNull() { + try { + val ourApplicationField: Field = ApplicationManager::class.java.getDeclaredField("ourApplication") + ourApplicationField.setAccessible(true) + ourApplicationField.set(null, null) + } catch (e: Exception) { + throw rethrow(e) + } +} \ No newline at end of file diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/testFramework/MockComponentManagerCreationTracer.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/testFramework/MockComponentManagerCreationTracer.kt index 60cf1a2b0a0..b591688e4b4 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/testFramework/MockComponentManagerCreationTracer.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/testFramework/MockComponentManagerCreationTracer.kt @@ -19,7 +19,7 @@ package org.jetbrains.kotlin.testFramework import com.intellij.mock.MockComponentManager import com.intellij.openapi.application.Application import com.intellij.util.containers.ContainerUtil -import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase +import org.jetbrains.kotlin.test.testFramework.resetApplicationToNull object MockComponentManagerCreationTracer { @@ -41,7 +41,7 @@ object MockComponentManagerCreationTracer { @JvmStatic fun diagnoseDisposedButNotClearedApplication(app: Application) { if (app is MockComponentManager) { - KtUsefulTestCase.resetApplicationToNull() + resetApplicationToNull() throw IllegalStateException("Some test disposed, but forgot to clear MockApplication", creationTraceMap[app]) } } diff --git a/compiler/tests/org/jetbrains/kotlin/cli/jvm/repl/GenericReplTest.kt b/compiler/tests/org/jetbrains/kotlin/cli/jvm/repl/GenericReplTest.kt index 3dcce09d1bf..c2946009bbf 100644 --- a/compiler/tests/org/jetbrains/kotlin/cli/jvm/repl/GenericReplTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/cli/jvm/repl/GenericReplTest.kt @@ -34,7 +34,7 @@ import org.jetbrains.kotlin.test.ConfigurationKind import org.jetbrains.kotlin.test.KotlinTestUtils import org.jetbrains.kotlin.test.TestJdkKind import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase -import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase.resetApplicationToNull +import org.jetbrains.kotlin.test.testFramework.resetApplicationToNull import java.io.Closeable import java.io.File import java.net.URLClassLoader diff --git a/compiler/tests/org/jetbrains/kotlin/daemon/CompilerApiTest.kt b/compiler/tests/org/jetbrains/kotlin/daemon/CompilerApiTest.kt index 3d74f89678d..d046b0a364b 100644 --- a/compiler/tests/org/jetbrains/kotlin/daemon/CompilerApiTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/daemon/CompilerApiTest.kt @@ -30,7 +30,7 @@ import org.jetbrains.kotlin.daemon.common.* import org.jetbrains.kotlin.integration.KotlinIntegrationTestBase import org.jetbrains.kotlin.scripts.captureOut import org.jetbrains.kotlin.test.KotlinTestUtils -import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase +import org.jetbrains.kotlin.test.testFramework.resetApplicationToNull import org.junit.Assert import java.io.File import java.net.URLClassLoader @@ -59,7 +59,7 @@ class CompilerApiTest : KotlinIntegrationTestBase() { return code to outputs } finally { - KtUsefulTestCase.resetApplicationToNull(application) + resetApplicationToNull(application) } } diff --git a/compiler/tests/org/jetbrains/kotlin/daemon/experimental/integration/CompilerApiTest.kt b/compiler/tests/org/jetbrains/kotlin/daemon/experimental/integration/CompilerApiTest.kt index a649ff4c6bd..00fe858a4eb 100644 --- a/compiler/tests/org/jetbrains/kotlin/daemon/experimental/integration/CompilerApiTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/daemon/experimental/integration/CompilerApiTest.kt @@ -23,7 +23,7 @@ import org.jetbrains.kotlin.integration.KotlinIntegrationTestBase import org.jetbrains.kotlin.scripts.captureOut import org.jetbrains.kotlin.test.IgnoreAll import org.jetbrains.kotlin.test.KotlinTestUtils -import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase +import org.jetbrains.kotlin.test.testFramework.resetApplicationToNull import org.junit.Assert import org.junit.runner.RunWith import java.io.File @@ -101,7 +101,7 @@ class CompilerApiTest : KotlinIntegrationTestBase() { } return code to outputs } finally { - KtUsefulTestCase.resetApplicationToNull(application) + resetApplicationToNull(application) } } diff --git a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileEnvironmentTest.java b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileEnvironmentTest.java index 83eee7550fb..8a75ae16396 100644 --- a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileEnvironmentTest.java +++ b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileEnvironmentTest.java @@ -22,13 +22,14 @@ import org.jetbrains.kotlin.cli.common.ExitCode; import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler; import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime; import org.jetbrains.kotlin.test.KotlinTestUtils; -import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase; import org.junit.Assert; import java.io.File; import java.io.IOException; import java.util.Arrays; +import static org.jetbrains.kotlin.test.testFramework.TestApplicationUtilKt.resetApplicationToNull; + public class CompileEnvironmentTest extends TestCase { public void testSmokeWithCompilerOutput() throws IOException { @@ -58,6 +59,6 @@ public class CompileEnvironmentTest extends TestCase { @Override protected void tearDown() throws Exception { super.tearDown(); - KtUsefulTestCase.resetApplicationToNull(); + resetApplicationToNull(); } } diff --git a/js/js.tests/test/org/jetbrains/kotlin/js/test/EncodeSignatureTest.kt b/js/js.tests/test/org/jetbrains/kotlin/js/test/EncodeSignatureTest.kt index 39806382877..ace53b90545 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/js/test/EncodeSignatureTest.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/js/test/EncodeSignatureTest.kt @@ -32,7 +32,7 @@ import org.jetbrains.kotlin.js.naming.encodeSignature import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.resolve.scopes.MemberScope -import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase +import org.jetbrains.kotlin.test.testFramework.resetApplicationToNull import org.junit.Assert import org.junit.Test @@ -222,7 +222,7 @@ class EncodeSignatureTest { } finally { Disposer.dispose(disposable) - KtUsefulTestCase.resetApplicationToNull() + resetApplicationToNull() } } diff --git a/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/LegacyReplTest.kt b/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/LegacyReplTest.kt index 301095543a5..c8f4a442633 100644 --- a/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/LegacyReplTest.kt +++ b/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/LegacyReplTest.kt @@ -8,7 +8,7 @@ package kotlin.script.experimental.jvmhost.test import com.intellij.openapi.application.ApplicationManager import junit.framework.TestCase import org.jetbrains.kotlin.cli.common.repl.* -import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase.resetApplicationToNull +import org.jetbrains.kotlin.test.testFramework.resetApplicationToNull import java.io.Closeable import java.util.concurrent.atomic.AtomicInteger import java.util.concurrent.locks.ReentrantReadWriteLock diff --git a/plugins/uast-kotlin/tests/AbstractKotlinUastTest.kt b/plugins/uast-kotlin/tests/AbstractKotlinUastTest.kt index 1519e51062e..2c490ee57c7 100644 --- a/plugins/uast-kotlin/tests/AbstractKotlinUastTest.kt +++ b/plugins/uast-kotlin/tests/AbstractKotlinUastTest.kt @@ -25,7 +25,7 @@ import org.jetbrains.kotlin.script.loadScriptingPlugin import org.jetbrains.kotlin.test.ConfigurationKind import org.jetbrains.kotlin.test.KotlinTestUtils import org.jetbrains.kotlin.test.TestJdkKind -import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase +import org.jetbrains.kotlin.test.testFramework.resetApplicationToNull import org.jetbrains.uast.UastLanguagePlugin import org.jetbrains.uast.evaluation.UEvaluatorExtension import org.jetbrains.uast.kotlin.KotlinUastLanguagePlugin @@ -158,7 +158,7 @@ abstract class AbstractKotlinUastTest : AbstractUastTest() { override fun dispose() { Disposer.dispose(parentDisposable) if (appWasNull) { - KtUsefulTestCase.resetApplicationToNull() + resetApplicationToNull() } } }