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.util.io.FileUtil
|
||||
import com.intellij.refactoring.util.CommonRefactoringUtil
|
||||
import com.intellij.testFramework.LightProjectDescriptor
|
||||
import com.intellij.testFramework.PlatformTestUtil
|
||||
import com.intellij.testFramework.TestActionEvent
|
||||
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
|
||||
|
||||
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.util.application.runWriteAction
|
||||
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
|
||||
import org.jetbrains.kotlin.test.InTextDirectivesUtils
|
||||
|
||||
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 {
|
||||
testFrameworkToUse = InTextDirectivesUtils.findStringWithPrefixes(fileText, "// TEST_FRAMEWORK:")
|
||||
}
|
||||
|
||||
override fun doTest(path: String) {
|
||||
setUpTestSourceRoot()
|
||||
super.doTest(path)
|
||||
override fun getProjectDescriptor(): LightProjectDescriptor = TEST_ROOT_PROJECT_DESCRIPTOR
|
||||
|
||||
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