Stop mangle common project descriptor in GenerateTestSupport tests
Use custom project descriptor instead. Mitingate flaky failures: ERROR: Save settings failed java.lang.RuntimeException: java.io.IOException: Cannot save /test_path/test.ipr. Unable to open the file for writing. at com.intellij.util.ExceptionUtil.rethrow(ExceptionUtil.java:116) at com.intellij.util.lang.CompoundRuntimeException.throwIfNotEmpty(CompoundRuntimeException.java:106) at com.intellij.configurationStore.SaveResult.throwIfErrored(SaveResult.kt:59) at com.intellij.configurationStore.ComponentStoreImpl.save$suspendImpl(ComponentStoreImpl.kt:152) at com.intellij.configurationStore.ComponentStoreImpl$save$1.invokeSuspend(ComponentStoreImpl.kt) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:56) at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:274) at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:84) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:59) at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source) at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:38) at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source) at com.intellij.configurationStore.StoreUtil$Companion.saveSettings(storeUtil.kt:44) at com.intellij.configurationStore.StoreUtil.saveSettings(storeUtil.kt) at com.intellij.openapi.project.impl.ProjectImpl.save(ProjectImpl.java:157) at org.jetbrains.kotlin.idea.codeInsight.generate.AbstractGenerateTestSupportMethodActionTest$setUpTestSourceRoot$1.invoke(AbstractGenerateTestSupportMethodActionTest.kt:22) at org.jetbrains.kotlin.idea.codeInsight.generate.AbstractGenerateTestSupportMethodActionTest$setUpTestSourceRoot$1.invoke(AbstractGenerateTestSupportMethodActionTest.kt:20)
This commit is contained in:
committed by
TeamCityServer
parent
b0347c3822
commit
8e38f9d176
+2
-1
@@ -10,6 +10,7 @@ import com.intellij.openapi.actionSystem.AnAction
|
|||||||
import com.intellij.openapi.actionSystem.Presentation
|
import com.intellij.openapi.actionSystem.Presentation
|
||||||
import com.intellij.openapi.util.io.FileUtil
|
import com.intellij.openapi.util.io.FileUtil
|
||||||
import com.intellij.refactoring.util.CommonRefactoringUtil
|
import com.intellij.refactoring.util.CommonRefactoringUtil
|
||||||
|
import com.intellij.testFramework.LightProjectDescriptor
|
||||||
import com.intellij.testFramework.PlatformTestUtil
|
import com.intellij.testFramework.PlatformTestUtil
|
||||||
import com.intellij.testFramework.TestActionEvent
|
import com.intellij.testFramework.TestActionEvent
|
||||||
import junit.framework.ComparisonFailure
|
import junit.framework.ComparisonFailure
|
||||||
@@ -113,5 +114,5 @@ abstract class AbstractCodeInsightActionTest : KotlinLightCodeInsightFixtureTest
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getProjectDescriptor() = KotlinWithJdkAndRuntimeLightProjectDescriptor.INSTANCE
|
override fun getProjectDescriptor(): LightProjectDescriptor = KotlinWithJdkAndRuntimeLightProjectDescriptor.INSTANCE
|
||||||
}
|
}
|
||||||
|
|||||||
+14
-17
@@ -5,30 +5,27 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.codeInsight.generate
|
package org.jetbrains.kotlin.idea.codeInsight.generate
|
||||||
|
|
||||||
import com.intellij.openapi.roots.ModuleRootManager
|
import com.intellij.openapi.module.ModuleTypeId
|
||||||
|
import com.intellij.openapi.projectRoots.Sdk
|
||||||
|
import com.intellij.testFramework.LightProjectDescriptor
|
||||||
|
import org.jetbrains.jps.model.java.JavaSourceRootType
|
||||||
|
import org.jetbrains.jps.model.module.JpsModuleSourceRootType
|
||||||
import org.jetbrains.kotlin.idea.actions.generate.KotlinGenerateTestSupportActionBase
|
import org.jetbrains.kotlin.idea.actions.generate.KotlinGenerateTestSupportActionBase
|
||||||
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
|
||||||
import org.jetbrains.kotlin.test.InTextDirectivesUtils
|
import org.jetbrains.kotlin.test.InTextDirectivesUtils
|
||||||
|
|
||||||
abstract class AbstractGenerateTestSupportMethodActionTest : AbstractCodeInsightActionTest() {
|
abstract class AbstractGenerateTestSupportMethodActionTest : AbstractCodeInsightActionTest() {
|
||||||
private fun setUpTestSourceRoot() {
|
|
||||||
val model = ModuleRootManager.getInstance(module).modifiableModel
|
|
||||||
val entry = model.contentEntries.single()
|
|
||||||
val sourceFolderFile = entry.sourceFolderFiles.single()
|
|
||||||
entry.removeSourceFolder(entry.sourceFolders.single())
|
|
||||||
entry.addSourceFolder(sourceFolderFile, true)
|
|
||||||
runWriteAction {
|
|
||||||
model.commit()
|
|
||||||
module.project.save()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun createAction(fileText: String) = (super.createAction(fileText) as KotlinGenerateTestSupportActionBase).apply {
|
override fun createAction(fileText: String) = (super.createAction(fileText) as KotlinGenerateTestSupportActionBase).apply {
|
||||||
testFrameworkToUse = InTextDirectivesUtils.findStringWithPrefixes(fileText, "// TEST_FRAMEWORK:")
|
testFrameworkToUse = InTextDirectivesUtils.findStringWithPrefixes(fileText, "// TEST_FRAMEWORK:")
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun doTest(path: String) {
|
override fun getProjectDescriptor(): LightProjectDescriptor = TEST_ROOT_PROJECT_DESCRIPTOR
|
||||||
setUpTestSourceRoot()
|
|
||||||
super.doTest(path)
|
companion object {
|
||||||
|
val TEST_ROOT_PROJECT_DESCRIPTOR = object : LightProjectDescriptor() {
|
||||||
|
override fun getModuleTypeId(): String = ModuleTypeId.JAVA_MODULE
|
||||||
|
override fun getSdk(): Sdk = PluginTestCaseBase.mockJdk()
|
||||||
|
override fun getSourceRootType(): JpsModuleSourceRootType<*> = JavaSourceRootType.TEST_SOURCE
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user