[LC] merge ultraLightFacades tests to lightClassByPsi

This commit is contained in:
Dmitrii Gridin
2022-12-22 14:59:33 +01:00
committed by teamcity
parent 3b739d9a44
commit 3e36e51920
54 changed files with 376 additions and 313 deletions
@@ -1,42 +0,0 @@
/*
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.light.classes.symbol.base
import com.intellij.openapi.project.Project
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestConfigurator
import org.jetbrains.kotlin.asJava.KotlinAsJavaSupport
import org.jetbrains.kotlin.asJava.LightClassTestCommon
import org.jetbrains.kotlin.asJava.classes.KtLightClass
import org.jetbrains.kotlin.asJava.renderClass
import org.jetbrains.kotlin.light.classes.symbol.base.service.withExtendedTypeRenderer
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.test.model.TestModule
import java.nio.file.Path
abstract class AbstractSymbolLightClassesFacadeTest(
configurator: AnalysisApiTestConfigurator,
override val currentExtension: String,
override val stopIfCompilationErrorDirectivePresent: Boolean,
) : AbstractSymbolLightClassesTestBase(configurator) {
override fun getRenderResult(ktFile: KtFile, ktFiles: List<KtFile>, testDataFile: Path, module: TestModule, project: Project): String {
val lightClasses = getFacades(project)
if (lightClasses.isEmpty()) return LightClassTestCommon.NOT_GENERATED_DIRECTIVE
return withExtendedTypeRenderer((testDataFile)) {
lightClasses.joinToString("\n\n") { it.renderClass() }
}
}
private fun getFacades(
project: Project
): List<KtLightClass> {
val kotlinAsJavaSupport = KotlinAsJavaSupport.getInstance(project)
val scope = GlobalSearchScope.allScope(project)
val facades = kotlinAsJavaSupport.getFacadeNames(FqName.ROOT, scope).sorted()
return facades.flatMap { facadeName -> kotlinAsJavaSupport.getFacadeClasses(FqName(facadeName), scope) }
}
}
@@ -23,19 +23,15 @@ abstract class AbstractSymbolLightClassesLoadingTest(
) : AbstractSymbolLightClassesTestBase(configurator) {
override fun getRenderResult(ktFile: KtFile, ktFiles: List<KtFile>, testDataFile: Path, module: TestModule, project: Project): String {
val lightClasses = ktFiles.flatMap { getLightClassesFromFile(it, project) }
val lightClasses = ktFiles.flatMap { getLightClassesFromFile(it) }
if (lightClasses.isEmpty()) return LightClassTestCommon.NOT_GENERATED_DIRECTIVE
return withExtendedTypeRenderer(testDataFile) {
lightClasses.joinToString("\n\n") { it.renderClass() }
}
}
private fun getLightClassesFromFile(
ktFile: KtFile,
project: Project
): List<PsiClass> {
private fun getLightClassesFromFile(ktFile: KtFile): List<PsiClass> {
val ktClasses = SyntaxTraverser.psiTraverser(ktFile).filter(KtClassOrObject::class.java).toList()
val kotlinAsJavaSupport = KotlinAsJavaSupport.getInstance(project)
return ktClasses.mapNotNull(kotlinAsJavaSupport::getLightClass) + listOfNotNull(kotlinAsJavaSupport.getLightFacade(ktFile))
return ktClasses.plus(ktFile).flatMap { it.toLightElements() }.filterIsInstance<PsiClass>()
}
}
@@ -1,16 +0,0 @@
/*
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.light.classes.symbol.decompiled
import org.jetbrains.kotlin.light.classes.symbol.base.AbstractSymbolLightClassesFacadeTest
import org.jetbrains.kotlin.light.classes.symbol.decompiled.test.configurators.AnalysisApiSymbolLightClassesDecompiledTestConfigurator
abstract class AbstractSymbolLightClassesFacadeForLibraryTest :
AbstractSymbolLightClassesFacadeTest(
AnalysisApiSymbolLightClassesDecompiledTestConfigurator,
EXTENSIONS.LIB_JAVA,
stopIfCompilationErrorDirectivePresent = true
)
@@ -1,110 +0,0 @@
/*
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.light.classes.symbol.decompiled;
import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.test.util.KtTestUtil;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import java.io.File;
import java.util.regex.Pattern;
/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
@TestMetadata("compiler/testData/asJava/lightClasses/ultraLightFacades")
@TestDataPath("$PROJECT_ROOT")
public class SymbolLightClassesFacadeForLibraryTestGenerated extends AbstractSymbolLightClassesFacadeForLibraryTest {
@Test
public void testAllFilesPresentInUltraLightFacades() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/asJava/lightClasses/ultraLightFacades"), Pattern.compile("^(.+)\\.(kt|kts)$"), null, true);
}
@Test
@TestMetadata("coroutines.kt")
public void testCoroutines() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/coroutines.kt");
}
@Test
@TestMetadata("importAliases.kt")
public void testImportAliases() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/importAliases.kt");
}
@Test
@TestMetadata("inlineOnly.kt")
public void testInlineOnly() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/inlineOnly.kt");
}
@Test
@TestMetadata("jvmField.kt")
public void testJvmField() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/jvmField.kt");
}
@Test
@TestMetadata("jvmName.kt")
public void testJvmName() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/jvmName.kt");
}
@Test
@TestMetadata("jvmWildcardAnnotations.kt")
public void testJvmWildcardAnnotations() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/jvmWildcardAnnotations.kt");
}
@Test
@TestMetadata("lateinitProperty.kt")
public void testLateinitProperty() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/lateinitProperty.kt");
}
@Test
@TestMetadata("multifileFacade.kt")
public void testMultifileFacade() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/multifileFacade.kt");
}
@Test
@TestMetadata("multifileFacadeJvmName.kt")
public void testMultifileFacadeJvmName() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/multifileFacadeJvmName.kt");
}
@Test
@TestMetadata("properties.kt")
public void testProperties() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/properties.kt");
}
@Test
@TestMetadata("script.kts")
public void testScript() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/script.kts");
}
@Test
@TestMetadata("simpleFunctions.kt")
public void testSimpleFunctions() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/simpleFunctions.kt");
}
@Test
@TestMetadata("throwsAnnotation.kt")
public void testThrowsAnnotation() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/throwsAnnotation.kt");
}
@Test
@TestMetadata("wildcardOptimization.kt")
public void testWildcardOptimization() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/wildcardOptimization.kt");
}
}
@@ -222,6 +222,12 @@ public class SymbolLightClassesLoadingForLibraryTestGenerated extends AbstractSy
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/properties.kt");
}
@Test
@TestMetadata("script.kts")
public void testScript() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/script.kts");
}
@Test
@TestMetadata("simpleFunctions.kt")
public void testSimpleFunctions() throws Exception {
@@ -251,4 +257,92 @@ public class SymbolLightClassesLoadingForLibraryTestGenerated extends AbstractSy
public void testWildcardOptimization() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/wildcardOptimization.kt");
}
@Nested
@TestMetadata("compiler/testData/asJava/lightClasses/lightClassByPsi/facades")
@TestDataPath("$PROJECT_ROOT")
public class Facades {
@Test
public void testAllFilesPresentInFacades() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/asJava/lightClasses/lightClassByPsi/facades"), Pattern.compile("^(.+)\\.(kt|kts)$"), null, true);
}
@Test
@TestMetadata("coroutines.kt")
public void testCoroutines() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/coroutines.kt");
}
@Test
@TestMetadata("importAliases.kt")
public void testImportAliases() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/importAliases.kt");
}
@Test
@TestMetadata("inlineOnly.kt")
public void testInlineOnly() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/inlineOnly.kt");
}
@Test
@TestMetadata("jvmField.kt")
public void testJvmField() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/jvmField.kt");
}
@Test
@TestMetadata("jvmName.kt")
public void testJvmName() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/jvmName.kt");
}
@Test
@TestMetadata("jvmWildcardAnnotations.kt")
public void testJvmWildcardAnnotations() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/jvmWildcardAnnotations.kt");
}
@Test
@TestMetadata("lateinitProperty.kt")
public void testLateinitProperty() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/lateinitProperty.kt");
}
@Test
@TestMetadata("multifileFacade.kt")
public void testMultifileFacade() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/multifileFacade.kt");
}
@Test
@TestMetadata("multifileFacadeJvmName.kt")
public void testMultifileFacadeJvmName() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/multifileFacadeJvmName.kt");
}
@Test
@TestMetadata("properties.kt")
public void testProperties() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/properties.kt");
}
@Test
@TestMetadata("simpleFunctions.kt")
public void testSimpleFunctions() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/simpleFunctions.kt");
}
@Test
@TestMetadata("throwsAnnotation.kt")
public void testThrowsAnnotation() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/throwsAnnotation.kt");
}
@Test
@TestMetadata("wildcardOptimization.kt")
public void testWildcardOptimization() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/wildcardOptimization.kt");
}
}
}
@@ -1,16 +0,0 @@
/*
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.light.classes.symbol.source
import org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators.AnalysisApiFirSourceTestConfigurator
import org.jetbrains.kotlin.light.classes.symbol.base.AbstractSymbolLightClassesFacadeTest
abstract class AbstractSymbolLightClassesFacadeForSourceTest :
AbstractSymbolLightClassesFacadeTest(
AnalysisApiFirSourceTestConfigurator(analyseInDependentSession = false),
EXTENSIONS.FIR_JAVA,
stopIfCompilationErrorDirectivePresent = false
)
@@ -1,110 +0,0 @@
/*
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package org.jetbrains.kotlin.light.classes.symbol.source;
import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.test.util.KtTestUtil;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import java.io.File;
import java.util.regex.Pattern;
/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.analysis.api.GenerateAnalysisApiTestsKt}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
@TestMetadata("compiler/testData/asJava/lightClasses/ultraLightFacades")
@TestDataPath("$PROJECT_ROOT")
public class SymbolLightClassesFacadeForSourceTestGenerated extends AbstractSymbolLightClassesFacadeForSourceTest {
@Test
public void testAllFilesPresentInUltraLightFacades() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/asJava/lightClasses/ultraLightFacades"), Pattern.compile("^(.+)\\.(kt|kts)$"), null, true);
}
@Test
@TestMetadata("coroutines.kt")
public void testCoroutines() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/coroutines.kt");
}
@Test
@TestMetadata("importAliases.kt")
public void testImportAliases() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/importAliases.kt");
}
@Test
@TestMetadata("inlineOnly.kt")
public void testInlineOnly() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/inlineOnly.kt");
}
@Test
@TestMetadata("jvmField.kt")
public void testJvmField() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/jvmField.kt");
}
@Test
@TestMetadata("jvmName.kt")
public void testJvmName() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/jvmName.kt");
}
@Test
@TestMetadata("jvmWildcardAnnotations.kt")
public void testJvmWildcardAnnotations() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/jvmWildcardAnnotations.kt");
}
@Test
@TestMetadata("lateinitProperty.kt")
public void testLateinitProperty() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/lateinitProperty.kt");
}
@Test
@TestMetadata("multifileFacade.kt")
public void testMultifileFacade() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/multifileFacade.kt");
}
@Test
@TestMetadata("multifileFacadeJvmName.kt")
public void testMultifileFacadeJvmName() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/multifileFacadeJvmName.kt");
}
@Test
@TestMetadata("properties.kt")
public void testProperties() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/properties.kt");
}
@Test
@TestMetadata("script.kts")
public void testScript() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/script.kts");
}
@Test
@TestMetadata("simpleFunctions.kt")
public void testSimpleFunctions() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/simpleFunctions.kt");
}
@Test
@TestMetadata("throwsAnnotation.kt")
public void testThrowsAnnotation() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/throwsAnnotation.kt");
}
@Test
@TestMetadata("wildcardOptimization.kt")
public void testWildcardOptimization() throws Exception {
runTest("compiler/testData/asJava/lightClasses/ultraLightFacades/wildcardOptimization.kt");
}
}
@@ -222,6 +222,12 @@ public class SymbolLightClassesLoadingForSourceTestGenerated extends AbstractSym
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/properties.kt");
}
@Test
@TestMetadata("script.kts")
public void testScript() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/script.kts");
}
@Test
@TestMetadata("simpleFunctions.kt")
public void testSimpleFunctions() throws Exception {
@@ -251,4 +257,92 @@ public class SymbolLightClassesLoadingForSourceTestGenerated extends AbstractSym
public void testWildcardOptimization() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/wildcardOptimization.kt");
}
@Nested
@TestMetadata("compiler/testData/asJava/lightClasses/lightClassByPsi/facades")
@TestDataPath("$PROJECT_ROOT")
public class Facades {
@Test
public void testAllFilesPresentInFacades() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/asJava/lightClasses/lightClassByPsi/facades"), Pattern.compile("^(.+)\\.(kt|kts)$"), null, true);
}
@Test
@TestMetadata("coroutines.kt")
public void testCoroutines() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/coroutines.kt");
}
@Test
@TestMetadata("importAliases.kt")
public void testImportAliases() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/importAliases.kt");
}
@Test
@TestMetadata("inlineOnly.kt")
public void testInlineOnly() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/inlineOnly.kt");
}
@Test
@TestMetadata("jvmField.kt")
public void testJvmField() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/jvmField.kt");
}
@Test
@TestMetadata("jvmName.kt")
public void testJvmName() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/jvmName.kt");
}
@Test
@TestMetadata("jvmWildcardAnnotations.kt")
public void testJvmWildcardAnnotations() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/jvmWildcardAnnotations.kt");
}
@Test
@TestMetadata("lateinitProperty.kt")
public void testLateinitProperty() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/lateinitProperty.kt");
}
@Test
@TestMetadata("multifileFacade.kt")
public void testMultifileFacade() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/multifileFacade.kt");
}
@Test
@TestMetadata("multifileFacadeJvmName.kt")
public void testMultifileFacadeJvmName() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/multifileFacadeJvmName.kt");
}
@Test
@TestMetadata("properties.kt")
public void testProperties() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/properties.kt");
}
@Test
@TestMetadata("simpleFunctions.kt")
public void testSimpleFunctions() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/simpleFunctions.kt");
}
@Test
@TestMetadata("throwsAnnotation.kt")
public void testThrowsAnnotation() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/throwsAnnotation.kt");
}
@Test
@TestMetadata("wildcardOptimization.kt")
public void testWildcardOptimization() throws Exception {
runTest("compiler/testData/asJava/lightClasses/lightClassByPsi/facades/wildcardOptimization.kt");
}
}
}