From b7bdb43219aa5ae50e5be6f67aeb7449e15625cd Mon Sep 17 00:00:00 2001 From: Natalia Selezneva Date: Mon, 6 Aug 2018 13:11:59 +0300 Subject: [PATCH] Fix leaked thread for AbstractScriptConfigurationTest --- .../core/script/ScriptDependenciesUpdater.kt | 2 ++ .../script/AbstractScriptConfigurationTest.kt | 25 ++++++++++--------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesUpdater.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesUpdater.kt index 099e7669ad5..813320bb245 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesUpdater.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/script/ScriptDependenciesUpdater.kt @@ -75,6 +75,8 @@ class ScriptDependenciesUpdater( if (file.fileType != KotlinFileType.INSTANCE) return val ktFile = PsiManager.getInstance(project).findFile(file) as? KtFile ?: return + if (ApplicationManager.getApplication().isUnitTestMode && ApplicationManager.getApplication().isScriptDependenciesUpdaterDisabled == true) return + val scriptDef = findScriptDefinition(ktFile) ?: return if (!ScriptDefinitionsManager.getInstance(project).isInExpectedLocation(ktFile, scriptDef)) return diff --git a/idea/tests/org/jetbrains/kotlin/idea/script/AbstractScriptConfigurationTest.kt b/idea/tests/org/jetbrains/kotlin/idea/script/AbstractScriptConfigurationTest.kt index ee4cd59d612..4c9cf9af6c5 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/script/AbstractScriptConfigurationTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/script/AbstractScriptConfigurationTest.kt @@ -84,16 +84,6 @@ abstract class AbstractScriptConfigurationHighlightingTest : AbstractScriptConfi updateScriptDependenciesSynchronously(myFile.virtualFile, project) checkHighlighting(editor, false, false) } - - override fun setUp() { - super.setUp() - ApplicationManager.getApplication().isScriptDependenciesUpdaterDisabled = true - } - - override fun tearDown() { - ApplicationManager.getApplication().isScriptDependenciesUpdaterDisabled = false - super.tearDown() - } } abstract class AbstractScriptConfigurationNavigationTest : AbstractScriptConfigurationTest() { @@ -188,6 +178,16 @@ abstract class AbstractScriptConfigurationTest : KotlinCompletionTestCase() { createFileAndSyncDependencies(mainScriptFile) } + override fun setUp() { + super.setUp() + ApplicationManager.getApplication().isScriptDependenciesUpdaterDisabled = true + } + + override fun tearDown() { + ApplicationManager.getApplication().isScriptDependenciesUpdaterDisabled = false + super.tearDown() + } + private fun createTestModuleByName(name: String): Module { val newModuleDir = runWriteAction { VfsUtil.createDirectoryIfMissing(project.baseDir, name) } val newModule = createModuleAtWrapper(name, project, JavaModuleType.getModuleType(), newModuleDir.path) @@ -267,10 +267,11 @@ abstract class AbstractScriptConfigurationTest : KotlinCompletionTestCase() { script = LocalFileSystem.getInstance().findFileByPath(target.path) } - assert(script != null) - configureByExistingFile(script!!) + if (script == null) error("Test file with script couldn't be found in test project") + configureByExistingFile(script) updateScriptDependenciesSynchronously(script, project) + VfsUtil.markDirtyAndRefresh(false, true, true, project.baseDir) // This is needed because updateScriptDependencies invalidates psiFile that was stored in myFile field myFile = psiManager.findFile(script)