Fix leaked thread for AbstractScriptConfigurationTest

This commit is contained in:
Natalia Selezneva
2018-08-06 13:11:59 +03:00
parent b38a9ee386
commit b7bdb43219
2 changed files with 15 additions and 12 deletions
@@ -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
@@ -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)