From c969a3464416c294584daff5bdca5f102c7b5849 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Mon, 25 Jan 2021 19:02:09 +0300 Subject: [PATCH] [Test] Set static field with application to null after tests are completed --- .../jetbrains/kotlin/test/ApplicationEnvironmentDisposer.kt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/ApplicationEnvironmentDisposer.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/ApplicationEnvironmentDisposer.kt index 02f1230a327..be0bbed8116 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/ApplicationEnvironmentDisposer.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/ApplicationEnvironmentDisposer.kt @@ -6,10 +6,12 @@ package org.jetbrains.kotlin.test import com.intellij.openapi.Disposable +import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.util.Disposer import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment import org.junit.platform.launcher.TestExecutionListener import org.junit.platform.launcher.TestPlan +import java.lang.reflect.Field class ApplicationEnvironmentDisposer : TestExecutionListener { companion object { @@ -19,5 +21,8 @@ class ApplicationEnvironmentDisposer : TestExecutionListener { override fun testPlanExecutionFinished(testPlan: TestPlan) { KotlinCoreEnvironment.disposeApplicationEnvironment() Disposer.dispose(ROOT_DISPOSABLE) + val ourApplicationField: Field = ApplicationManager::class.java.getDeclaredField("ourApplication") + ourApplicationField.isAccessible = true + ourApplicationField.set(null, null) } }