[Analysis API] migrate AbstractSymbolLightClassesTestBase to doTestByMainModuleAndOptionalMainFile
^KT-64805
This commit is contained in:
committed by
Space Team
parent
1aa2377c60
commit
cf290a73fc
+2
-2
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Copyright 2010-2024 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.
|
||||
*/
|
||||
|
||||
@@ -29,7 +29,7 @@ abstract class AbstractSymbolLightClassesAnnotationEqualityTest(
|
||||
override val currentExtension: String,
|
||||
override val isTestAgainstCompiledCode: Boolean,
|
||||
) : AbstractSymbolLightClassesTestBase(configurator) {
|
||||
override fun doTestByFileStructure(ktFiles: List<KtFile>, module: TestModule, testServices: TestServices) {
|
||||
override fun doLightClassTest(ktFiles: List<KtFile>, module: TestModule, testServices: TestServices) {
|
||||
val directives = module.directives
|
||||
val expectedAnnotations = directives[Directives.EXPECTED]
|
||||
val unexpectedAnnotations = directives[Directives.UNEXPECTED]
|
||||
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Copyright 2010-2024 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.
|
||||
*/
|
||||
|
||||
@@ -22,13 +22,13 @@ import java.nio.file.Path
|
||||
abstract class AbstractSymbolLightClassesEqualityTestBase(
|
||||
configurator: AnalysisApiTestConfigurator,
|
||||
override val currentExtension: String,
|
||||
override val isTestAgainstCompiledCode: Boolean
|
||||
override val isTestAgainstCompiledCode: Boolean,
|
||||
) : AbstractSymbolLightClassesTestBase(configurator) {
|
||||
override fun getRenderResult(ktFile: KtFile, ktFiles: List<KtFile>, testDataFile: Path, module: TestModule, project: Project): String {
|
||||
throw IllegalStateException("This test is not rendering light elements")
|
||||
}
|
||||
|
||||
final override fun doTestByFileStructure(ktFiles: List<KtFile>, module: TestModule, testServices: TestServices) {
|
||||
final override fun doLightClassTest(ktFiles: List<KtFile>, module: TestModule, testServices: TestServices) {
|
||||
val lightClasses = lightClassesToCheck(ktFiles, module, testServices)
|
||||
if (lightClasses.isEmpty()) return
|
||||
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Copyright 2010-2024 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.
|
||||
*/
|
||||
|
||||
@@ -17,7 +17,7 @@ abstract class AbstractSymbolLightClassesParentingTestByFqName(
|
||||
currentExtension: String,
|
||||
stopIfCompilationErrorDirectivePresent: Boolean,
|
||||
) : AbstractSymbolLightClassesParentingTestBase(configurator, currentExtension, stopIfCompilationErrorDirectivePresent) {
|
||||
override fun doTestByFileStructure(ktFiles: List<KtFile>, module: TestModule, testServices: TestServices) {
|
||||
override fun doLightClassTest(ktFiles: List<KtFile>, module: TestModule, testServices: TestServices) {
|
||||
val fqName = LightClassTestCommon.fqNameInTestDataFile(testDataPath.toFile())
|
||||
|
||||
val ktFile = ktFiles.first()
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Copyright 2010-2024 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.
|
||||
*/
|
||||
|
||||
@@ -17,7 +17,7 @@ abstract class AbstractSymbolLightClassesParentingTestByPsi(
|
||||
currentExtension: String,
|
||||
stopIfCompilationErrorDirectivePresent: Boolean,
|
||||
) : AbstractSymbolLightClassesParentingTestBase(configurator, currentExtension, stopIfCompilationErrorDirectivePresent) {
|
||||
override fun doTestByFileStructure(ktFiles: List<KtFile>, module: TestModule, testServices: TestServices) {
|
||||
override fun doLightClassTest(ktFiles: List<KtFile>, module: TestModule, testServices: TestServices) {
|
||||
val elementVisitor = createLightElementsVisitor(module.directives, testServices.assertions)
|
||||
for (ktFile in ktFiles) {
|
||||
for (psiClass in getLightClassesFromFile(ktFile)) {
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Copyright 2010-2024 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.
|
||||
*/
|
||||
|
||||
@@ -26,7 +26,7 @@ abstract class AbstractSymbolLightClassesStructureByFqNameTest(
|
||||
builder.useDirectives(Directives)
|
||||
}
|
||||
|
||||
override fun doTestByFileStructure(ktFiles: List<KtFile>, module: TestModule, testServices: TestServices) {
|
||||
override fun doLightClassTest(ktFiles: List<KtFile>, module: TestModule, testServices: TestServices) {
|
||||
val result = prettyPrint {
|
||||
val fqName = module.directives.singleValue(Directives.FQ_NAME)
|
||||
val psiClass = findLightClass(fqName, ktFiles.first().project)
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@ abstract class AbstractSymbolLightClassesStructureTest(
|
||||
stopIfCompilationErrorDirectivePresent: Boolean,
|
||||
) : AbstractSymbolLightClassesStructureTestBase(configurator, testPrefix, stopIfCompilationErrorDirectivePresent) {
|
||||
|
||||
override fun doTestByFileStructure(ktFiles: List<KtFile>, module: TestModule, testServices: TestServices) {
|
||||
override fun doLightClassTest(ktFiles: List<KtFile>, module: TestModule, testServices: TestServices) {
|
||||
val result = prettyPrint {
|
||||
for (ktFile in ktFiles.sortedBy(KtFile::getName)) {
|
||||
if (ktFiles.size > 1) {
|
||||
|
||||
+8
-13
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Copyright 2010-2024 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.
|
||||
*/
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.PsiClass
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedTest
|
||||
import org.jetbrains.kotlin.analysis.test.framework.project.structure.getKtFiles
|
||||
import org.jetbrains.kotlin.analysis.test.framework.project.structure.ktModuleProvider
|
||||
import org.jetbrains.kotlin.analysis.test.framework.services.libraries.CompiledLibraryProvider
|
||||
import org.jetbrains.kotlin.analysis.test.framework.services.libraries.TestModuleCompiler
|
||||
@@ -28,12 +29,10 @@ import org.jetbrains.kotlin.test.directives.model.Directive
|
||||
import org.jetbrains.kotlin.test.directives.model.DirectiveApplicability
|
||||
import org.jetbrains.kotlin.test.directives.model.SimpleDirectivesContainer
|
||||
import org.jetbrains.kotlin.test.model.TestModule
|
||||
import org.jetbrains.kotlin.test.services.TestModuleStructure
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
import org.jetbrains.kotlin.test.services.assertions
|
||||
import org.jetbrains.kotlin.test.services.service
|
||||
import org.jetbrains.kotlin.test.utils.FirIdenticalCheckerHelper
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.ifNotEmpty
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
||||
import java.io.File
|
||||
import java.nio.file.Path
|
||||
@@ -45,7 +44,7 @@ import kotlin.test.fail
|
||||
private const val TEST_MODULE_NAME = "light_idea_test_case"
|
||||
|
||||
abstract class AbstractSymbolLightClassesTestBase(
|
||||
override val configurator: AnalysisApiTestConfigurator
|
||||
override val configurator: AnalysisApiTestConfigurator,
|
||||
) : AbstractAnalysisApiBasedTest() {
|
||||
|
||||
override fun configureTest(builder: TestConfigurationBuilder) {
|
||||
@@ -61,16 +60,12 @@ abstract class AbstractSymbolLightClassesTestBase(
|
||||
}
|
||||
}
|
||||
|
||||
override fun doTestByModuleStructure(moduleStructure: TestModuleStructure, testServices: TestServices) {
|
||||
val lastModule = with(moduleStructure.modules) {
|
||||
find { it.name.substringBefore('-') == "main" } ?: last()
|
||||
}
|
||||
|
||||
val ktFiles = testServices.ktModuleProvider.getModuleFiles(lastModule).filterIsInstance<KtFile>()
|
||||
doTestByFileStructure(ktFiles, lastModule, testServices)
|
||||
override fun doTestByMainModuleAndOptionalMainFile(mainFile: KtFile?, mainModule: TestModule, testServices: TestServices) {
|
||||
val ktFiles = testServices.ktModuleProvider.getKtFiles(mainModule)
|
||||
doLightClassTest(ktFiles, mainModule, testServices)
|
||||
}
|
||||
|
||||
open fun doTestByFileStructure(ktFiles: List<KtFile>, module: TestModule, testServices: TestServices) {
|
||||
open fun doLightClassTest(ktFiles: List<KtFile>, module: TestModule, testServices: TestServices) {
|
||||
if (isTestAgainstCompiledCode && TestModuleCompiler.Directives.COMPILATION_ERRORS in module.directives) {
|
||||
return
|
||||
}
|
||||
@@ -105,7 +100,7 @@ abstract class AbstractSymbolLightClassesTestBase(
|
||||
ktFiles: List<KtFile>,
|
||||
testDataFile: Path,
|
||||
module: TestModule,
|
||||
project: Project
|
||||
project: Project,
|
||||
): String
|
||||
|
||||
protected fun ignoreExceptionIfIgnoreDirectivePresent(module: TestModule, action: () -> Unit) {
|
||||
|
||||
compiler/testData/asJava/lightClasses/lightClassByFqName/compilationErrors/typeAliasActualization.kt
Vendored
+1
-1
@@ -5,7 +5,7 @@ package common.pack
|
||||
|
||||
expect annotation class ExpectAnnotation
|
||||
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// MODULE: main-jvm()()(m1-common)
|
||||
// FILE: annotations.kt
|
||||
package jvm.pack
|
||||
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ class ClassToCheck {
|
||||
|
||||
}
|
||||
}
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// MODULE: main-jvm()()(m1-common)
|
||||
// FILE: annotations.kt
|
||||
package jvm.pack
|
||||
|
||||
|
||||
Reference in New Issue
Block a user