[analysis api, refactoring] move base test cases to base modules, improve service names

This commit is contained in:
Ilya Kirillov
2022-03-24 22:14:47 +01:00
parent 443ee4c860
commit 1e5cf80278
32 changed files with 49 additions and 799 deletions
@@ -7,7 +7,7 @@ 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.AnalysisApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.test.framework.AnalysisApiTestConfigurator
import org.jetbrains.kotlin.asJava.KotlinAsJavaSupport
import org.jetbrains.kotlin.asJava.classes.KtLightClass
import org.jetbrains.kotlin.asJava.renderClass
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.test.model.TestModule
import java.nio.file.Path
abstract class AbstractSymbolLightClassesFacadeTest(
configurator: AnalysisApiTestConfiguratorService,
configurator: AnalysisApiTestConfigurator,
override val currentExtension: String,
override val stopIfCompilationErrorDirectivePresent: Boolean,
) : AbstractSymbolLightClassesTestBase(configurator) {
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.light.classes.symbol.base
import com.intellij.openapi.project.Project
import com.intellij.psi.SyntaxTraverser
import org.jetbrains.kotlin.analysis.test.framework.AnalysisApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.test.framework.AnalysisApiTestConfigurator
import org.jetbrains.kotlin.asJava.KotlinAsJavaSupport
import org.jetbrains.kotlin.asJava.classes.KtLightClass
import org.jetbrains.kotlin.asJava.renderClass
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.test.model.TestModule
import java.nio.file.Path
abstract class AbstractSymbolLightClassesLoadingTest(
configurator: AnalysisApiTestConfiguratorService,
configurator: AnalysisApiTestConfigurator,
override val currentExtension: String,
override val stopIfCompilationErrorDirectivePresent: Boolean,
) : AbstractSymbolLightClassesTestBase(configurator) {
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.light.classes.symbol.base
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiClass
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.analysis.test.framework.AnalysisApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.test.framework.AnalysisApiTestConfigurator
import org.jetbrains.kotlin.asJava.LightClassTestCommon
import org.jetbrains.kotlin.asJava.finder.JavaElementFinder
import org.jetbrains.kotlin.psi.KtFile
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.test.model.TestModule
import java.nio.file.Path
abstract class AbstractSymbolLightClassesTest(
configurator: AnalysisApiTestConfiguratorService,
configurator: AnalysisApiTestConfigurator,
override val currentExtension: String,
override val stopIfCompilationErrorDirectivePresent: Boolean,
) : AbstractSymbolLightClassesTestBase(configurator) {
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.light.classes.symbol.base
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiClass
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.analysis.test.framework.AnalysisApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.test.framework.AnalysisApiTestConfigurator
import org.jetbrains.kotlin.analysis.test.framework.base.AbstractAnalysisApiBasedSingleModuleTest
import org.jetbrains.kotlin.analysis.test.framework.services.libraries.CompilerExecutor
import org.jetbrains.kotlin.asJava.finder.JavaElementFinder
@@ -28,7 +28,7 @@ import kotlin.io.path.exists
import kotlin.io.path.nameWithoutExtension
abstract class AbstractSymbolLightClassesTestBase(
override val configurator: AnalysisApiTestConfiguratorService
override val configurator: AnalysisApiTestConfigurator
) : AbstractAnalysisApiBasedSingleModuleTest() {
override fun configureTest(builder: TestConfigurationBuilder) {
@@ -6,11 +6,11 @@
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.service.SymbolLightClassesForLibraryAnalysisApiTestConfiguratorService
import org.jetbrains.kotlin.light.classes.symbol.decompiled.service.SymbolLightClassesForLibraryAnalysisApiTestConfigurator
abstract class AbstractSymbolLightClassesFacadeForLibraryTest :
AbstractSymbolLightClassesFacadeTest(
SymbolLightClassesForLibraryAnalysisApiTestConfiguratorService,
SymbolLightClassesForLibraryAnalysisApiTestConfigurator,
EXTENSIONS.LIB_JAVA,
stopIfCompilationErrorDirectivePresent = true
)
@@ -6,11 +6,11 @@
package org.jetbrains.kotlin.light.classes.symbol.decompiled
import org.jetbrains.kotlin.light.classes.symbol.base.AbstractSymbolLightClassesTest
import org.jetbrains.kotlin.light.classes.symbol.decompiled.service.SymbolLightClassesForLibraryAnalysisApiTestConfiguratorService
import org.jetbrains.kotlin.light.classes.symbol.decompiled.service.SymbolLightClassesForLibraryAnalysisApiTestConfigurator
abstract class AbstractSymbolLightClassesForLibraryTest :
AbstractSymbolLightClassesTest(
SymbolLightClassesForLibraryAnalysisApiTestConfiguratorService,
SymbolLightClassesForLibraryAnalysisApiTestConfigurator,
EXTENSIONS.LIB_JAVA,
stopIfCompilationErrorDirectivePresent = true
)
@@ -6,11 +6,11 @@
package org.jetbrains.kotlin.light.classes.symbol.decompiled
import org.jetbrains.kotlin.light.classes.symbol.base.AbstractSymbolLightClassesLoadingTest
import org.jetbrains.kotlin.light.classes.symbol.decompiled.service.SymbolLightClassesForLibraryAnalysisApiTestConfiguratorService
import org.jetbrains.kotlin.light.classes.symbol.decompiled.service.SymbolLightClassesForLibraryAnalysisApiTestConfigurator
abstract class AbstractSymbolLightClassesLoadingForLibraryTest :
AbstractSymbolLightClassesLoadingTest(
SymbolLightClassesForLibraryAnalysisApiTestConfiguratorService,
SymbolLightClassesForLibraryAnalysisApiTestConfigurator,
EXTENSIONS.LIB_JAVA,
stopIfCompilationErrorDirectivePresent = true
)
@@ -1,59 +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.service
import com.intellij.mock.MockApplication
import com.intellij.mock.MockProject
import com.intellij.openapi.Disposable
import com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.analysis.api.fir.utils.libraries.binary.LibraryAnalysisApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.test.framework.AnalysisApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.decompiled.light.classes.ClsJavaStubByVirtualFileCache
import org.jetbrains.kotlin.analysis.project.structure.ProjectStructureProvider
import org.jetbrains.kotlin.analysis.test.framework.services.libraries.CompiledLibraryProvider
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.load.kotlin.PackagePartProvider
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
import org.jetbrains.kotlin.test.services.ServiceRegistrationData
internal object SymbolLightClassesForLibraryAnalysisApiTestConfiguratorService : AnalysisApiTestConfiguratorService {
override val analyseInDependentSession: Boolean get() = false
override fun TestConfigurationBuilder.configureTest(disposable: Disposable) {
with(LibraryAnalysisApiTestConfiguratorService) {
configureTest(disposable)
}
useAdditionalServices(ServiceRegistrationData(CompiledLibraryProvider::class, ::CompiledLibraryProvider))
}
override fun registerProjectServices(
project: MockProject,
compilerConfig: CompilerConfiguration,
files: List<KtFile>,
packagePartProvider: (GlobalSearchScope) -> PackagePartProvider,
projectStructureProvider: ProjectStructureProvider,
jarFileSystem: CoreJarFileSystem,
) {
LibraryAnalysisApiTestConfiguratorService.registerProjectServices(
project,
compilerConfig,
files,
packagePartProvider,
projectStructureProvider,
jarFileSystem,
)
project.registerService(ClsJavaStubByVirtualFileCache::class.java)
}
override fun registerApplicationServices(application: MockApplication) {
LibraryAnalysisApiTestConfiguratorService.registerApplicationServices(application)
}
override fun doOutOfBlockModification(file: KtFile) {
LibraryAnalysisApiTestConfiguratorService.doOutOfBlockModification(file)
}
}
@@ -5,12 +5,12 @@
package org.jetbrains.kotlin.light.classes.symbol.source
import org.jetbrains.kotlin.analysis.api.fir.FirAnalysisApiNormalModeTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.fir.AnalysisApiFirTestConfigurator
import org.jetbrains.kotlin.light.classes.symbol.base.AbstractSymbolLightClassesFacadeTest
abstract class AbstractSymbolLightClassesFacadeForSourceTest :
AbstractSymbolLightClassesFacadeTest(
FirAnalysisApiNormalModeTestConfiguratorService,
AnalysisApiFirTestConfigurator(analyseInDependentSession = false),
EXTENSIONS.FIR_JAVA,
stopIfCompilationErrorDirectivePresent = false
)
@@ -5,12 +5,12 @@
package org.jetbrains.kotlin.light.classes.symbol.source
import org.jetbrains.kotlin.analysis.api.fir.FirAnalysisApiNormalModeTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.fir.AnalysisApiFirTestConfigurator
import org.jetbrains.kotlin.light.classes.symbol.base.AbstractSymbolLightClassesTest
abstract class AbstractSymbolLightClassesForSourceTest :
AbstractSymbolLightClassesTest(
FirAnalysisApiNormalModeTestConfiguratorService,
AnalysisApiFirTestConfigurator(analyseInDependentSession = false),
EXTENSIONS.FIR_JAVA,
stopIfCompilationErrorDirectivePresent = false
)
@@ -5,12 +5,12 @@
package org.jetbrains.kotlin.light.classes.symbol.source
import org.jetbrains.kotlin.analysis.api.fir.FirAnalysisApiNormalModeTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.fir.AnalysisApiFirTestConfigurator
import org.jetbrains.kotlin.light.classes.symbol.base.AbstractSymbolLightClassesLoadingTest
abstract class AbstractSymbolLightClassesLoadingForSourceTest :
AbstractSymbolLightClassesLoadingTest(
FirAnalysisApiNormalModeTestConfiguratorService,
AnalysisApiFirTestConfigurator(analyseInDependentSession = false),
EXTENSIONS.FIR_JAVA,
stopIfCompilationErrorDirectivePresent = false
)