Fix flaky tests for incorrect language version recognition
(UltraLightFacadeClassTestGenerated.testCoroutines and UltraLightClassLoadingTestGenerated.testCoroutines tests)
This commit is contained in:
+3
-2
@@ -39,12 +39,14 @@ import org.jetbrains.kotlin.codegen.ClassBuilderMode
|
|||||||
import org.jetbrains.kotlin.codegen.JvmCodegenUtil
|
import org.jetbrains.kotlin.codegen.JvmCodegenUtil
|
||||||
import org.jetbrains.kotlin.codegen.state.KotlinTypeMapper
|
import org.jetbrains.kotlin.codegen.state.KotlinTypeMapper
|
||||||
import org.jetbrains.kotlin.config.JvmTarget
|
import org.jetbrains.kotlin.config.JvmTarget
|
||||||
|
import org.jetbrains.kotlin.config.LanguageFeature
|
||||||
import org.jetbrains.kotlin.descriptors.ClassifierDescriptor
|
import org.jetbrains.kotlin.descriptors.ClassifierDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor
|
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor
|
||||||
import org.jetbrains.kotlin.idea.caches.lightClasses.IDELightClassContexts
|
import org.jetbrains.kotlin.idea.caches.lightClasses.IDELightClassContexts
|
||||||
import org.jetbrains.kotlin.idea.caches.lightClasses.LazyLightClassDataHolder
|
import org.jetbrains.kotlin.idea.caches.lightClasses.LazyLightClassDataHolder
|
||||||
import org.jetbrains.kotlin.idea.facet.KotlinFacet
|
import org.jetbrains.kotlin.idea.facet.KotlinFacet
|
||||||
|
import org.jetbrains.kotlin.idea.project.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.idea.resolve.frontendService
|
import org.jetbrains.kotlin.idea.resolve.frontendService
|
||||||
import org.jetbrains.kotlin.idea.stubindex.KotlinTypeAliasShortNameIndex
|
import org.jetbrains.kotlin.idea.stubindex.KotlinTypeAliasShortNameIndex
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
@@ -74,8 +76,7 @@ class IDELightClassGenerationSupport(private val project: Project) : LightClassG
|
|||||||
}
|
}
|
||||||
|
|
||||||
override val isReleasedCoroutine
|
override val isReleasedCoroutine
|
||||||
get() = KotlinFacet.get(module)
|
get() = module.languageVersionSettings.supportsFeature(LanguageFeature.ReleaseCoroutines)
|
||||||
?.configuration?.settings?.languageLevel?.let { it.major >= 1 && it.minor >= 3 } ?: true
|
|
||||||
|
|
||||||
override fun isTooComplexForUltraLightGeneration(element: KtDeclaration): Boolean {
|
override fun isTooComplexForUltraLightGeneration(element: KtDeclaration): Boolean {
|
||||||
val facet = KotlinFacet.get(module)
|
val facet = KotlinFacet.get(module)
|
||||||
|
|||||||
@@ -6,8 +6,11 @@
|
|||||||
package org.jetbrains.kotlin.asJava.classes
|
package org.jetbrains.kotlin.asJava.classes
|
||||||
|
|
||||||
import com.intellij.testFramework.LightProjectDescriptor
|
import com.intellij.testFramework.LightProjectDescriptor
|
||||||
|
import junit.framework.TestCase
|
||||||
import org.jetbrains.kotlin.asJava.LightClassGenerationSupport
|
import org.jetbrains.kotlin.asJava.LightClassGenerationSupport
|
||||||
|
import org.jetbrains.kotlin.config.LanguageFeature
|
||||||
import org.jetbrains.kotlin.idea.perf.UltraLightChecker
|
import org.jetbrains.kotlin.idea.perf.UltraLightChecker
|
||||||
|
import org.jetbrains.kotlin.idea.project.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
||||||
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor
|
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor
|
||||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||||
@@ -38,6 +41,11 @@ abstract class AbstractUltraLightClassLoadingTest : KotlinLightCodeInsightFixtur
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TestCase.assertTrue(
|
||||||
|
"Test should be runned under language version that supports released coroutines",
|
||||||
|
module.languageVersionSettings.supportsFeature(LanguageFeature.ReleaseCoroutines)
|
||||||
|
)
|
||||||
|
|
||||||
for (ktClass in UltraLightChecker.allClasses(file)) {
|
for (ktClass in UltraLightChecker.allClasses(file)) {
|
||||||
val ultraLightClass = UltraLightChecker.checkClassEquivalence(ktClass)
|
val ultraLightClass = UltraLightChecker.checkClassEquivalence(ktClass)
|
||||||
if (ultraLightClass != null) {
|
if (ultraLightClass != null) {
|
||||||
|
|||||||
@@ -6,7 +6,10 @@
|
|||||||
package org.jetbrains.kotlin.asJava.classes
|
package org.jetbrains.kotlin.asJava.classes
|
||||||
|
|
||||||
import com.intellij.testFramework.LightProjectDescriptor
|
import com.intellij.testFramework.LightProjectDescriptor
|
||||||
|
import junit.framework.TestCase
|
||||||
|
import org.jetbrains.kotlin.config.LanguageFeature
|
||||||
import org.jetbrains.kotlin.idea.perf.UltraLightChecker
|
import org.jetbrains.kotlin.idea.perf.UltraLightChecker
|
||||||
|
import org.jetbrains.kotlin.idea.project.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
||||||
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor
|
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
@@ -22,6 +25,12 @@ abstract class AbstractUltraLightClassSanityTest : KotlinLightCodeInsightFixture
|
|||||||
}
|
}
|
||||||
|
|
||||||
val file = myFixture.addFileToProject(testDataPath, ioFile.readText()) as KtFile
|
val file = myFixture.addFileToProject(testDataPath, ioFile.readText()) as KtFile
|
||||||
|
|
||||||
|
TestCase.assertTrue(
|
||||||
|
"Test should be runned under language version that supports released coroutines",
|
||||||
|
module.languageVersionSettings.supportsFeature(LanguageFeature.ReleaseCoroutines)
|
||||||
|
)
|
||||||
|
|
||||||
UltraLightChecker.checkClassEquivalence(file)
|
UltraLightChecker.checkClassEquivalence(file)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+8
@@ -7,8 +7,11 @@ package org.jetbrains.kotlin.asJava.classes
|
|||||||
|
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import com.intellij.testFramework.LightProjectDescriptor
|
import com.intellij.testFramework.LightProjectDescriptor
|
||||||
|
import junit.framework.TestCase
|
||||||
import org.jetbrains.kotlin.asJava.KotlinAsJavaSupport
|
import org.jetbrains.kotlin.asJava.KotlinAsJavaSupport
|
||||||
|
import org.jetbrains.kotlin.config.LanguageFeature
|
||||||
import org.jetbrains.kotlin.idea.perf.UltraLightChecker
|
import org.jetbrains.kotlin.idea.perf.UltraLightChecker
|
||||||
|
import org.jetbrains.kotlin.idea.project.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
||||||
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor
|
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor
|
||||||
import org.jetbrains.kotlin.kdoc.psi.api.KDoc
|
import org.jetbrains.kotlin.kdoc.psi.api.KDoc
|
||||||
@@ -31,6 +34,11 @@ abstract class AbstractUltraLightFacadeClassTest : KotlinLightCodeInsightFixture
|
|||||||
val scope = GlobalSearchScope.allScope(project)
|
val scope = GlobalSearchScope.allScope(project)
|
||||||
val facades = KotlinAsJavaSupport.getInstance(project).getFacadeNames(FqName.ROOT, scope)
|
val facades = KotlinAsJavaSupport.getInstance(project).getFacadeNames(FqName.ROOT, scope)
|
||||||
|
|
||||||
|
TestCase.assertTrue(
|
||||||
|
"Test should be runned under language version that supports released coroutines",
|
||||||
|
module.languageVersionSettings.supportsFeature(LanguageFeature.ReleaseCoroutines)
|
||||||
|
)
|
||||||
|
|
||||||
for (facadeName in facades) {
|
for (facadeName in facades) {
|
||||||
val ultraLightClass = UltraLightChecker.checkFacadeEquivalence(FqName(facadeName), scope, project)
|
val ultraLightClass = UltraLightChecker.checkFacadeEquivalence(FqName(facadeName), scope, project)
|
||||||
if (ultraLightClass != null) {
|
if (ultraLightClass != null) {
|
||||||
|
|||||||
Reference in New Issue
Block a user