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.state.KotlinTypeMapper
|
||||
import org.jetbrains.kotlin.config.JvmTarget
|
||||
import org.jetbrains.kotlin.config.LanguageFeature
|
||||
import org.jetbrains.kotlin.descriptors.ClassifierDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor
|
||||
import org.jetbrains.kotlin.idea.caches.lightClasses.IDELightClassContexts
|
||||
import org.jetbrains.kotlin.idea.caches.lightClasses.LazyLightClassDataHolder
|
||||
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.stubindex.KotlinTypeAliasShortNameIndex
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
@@ -74,8 +76,7 @@ class IDELightClassGenerationSupport(private val project: Project) : LightClassG
|
||||
}
|
||||
|
||||
override val isReleasedCoroutine
|
||||
get() = KotlinFacet.get(module)
|
||||
?.configuration?.settings?.languageLevel?.let { it.major >= 1 && it.minor >= 3 } ?: true
|
||||
get() = module.languageVersionSettings.supportsFeature(LanguageFeature.ReleaseCoroutines)
|
||||
|
||||
override fun isTooComplexForUltraLightGeneration(element: KtDeclaration): Boolean {
|
||||
val facet = KotlinFacet.get(module)
|
||||
|
||||
@@ -6,8 +6,11 @@
|
||||
package org.jetbrains.kotlin.asJava.classes
|
||||
|
||||
import com.intellij.testFramework.LightProjectDescriptor
|
||||
import junit.framework.TestCase
|
||||
import org.jetbrains.kotlin.asJava.LightClassGenerationSupport
|
||||
import org.jetbrains.kotlin.config.LanguageFeature
|
||||
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.KotlinWithJdkAndRuntimeLightProjectDescriptor
|
||||
import org.jetbrains.kotlin.psi.KtClassOrObject
|
||||
@@ -38,6 +41,11 @@ abstract class AbstractUltraLightClassLoadingTest : KotlinLightCodeInsightFixtur
|
||||
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)) {
|
||||
val ultraLightClass = UltraLightChecker.checkClassEquivalence(ktClass)
|
||||
if (ultraLightClass != null) {
|
||||
|
||||
@@ -6,7 +6,10 @@
|
||||
package org.jetbrains.kotlin.asJava.classes
|
||||
|
||||
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.project.languageVersionSettings
|
||||
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
||||
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
@@ -22,6 +25,12 @@ abstract class AbstractUltraLightClassSanityTest : KotlinLightCodeInsightFixture
|
||||
}
|
||||
|
||||
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)
|
||||
}
|
||||
}
|
||||
+8
@@ -7,8 +7,11 @@ package org.jetbrains.kotlin.asJava.classes
|
||||
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import com.intellij.testFramework.LightProjectDescriptor
|
||||
import junit.framework.TestCase
|
||||
import org.jetbrains.kotlin.asJava.KotlinAsJavaSupport
|
||||
import org.jetbrains.kotlin.config.LanguageFeature
|
||||
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.KotlinWithJdkAndRuntimeLightProjectDescriptor
|
||||
import org.jetbrains.kotlin.kdoc.psi.api.KDoc
|
||||
@@ -31,6 +34,11 @@ abstract class AbstractUltraLightFacadeClassTest : KotlinLightCodeInsightFixture
|
||||
val scope = GlobalSearchScope.allScope(project)
|
||||
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) {
|
||||
val ultraLightClass = UltraLightChecker.checkFacadeEquivalence(FqName(facadeName), scope, project)
|
||||
if (ultraLightClass != null) {
|
||||
|
||||
Reference in New Issue
Block a user