[analysis api] simplify dependent analysis mode tests

This commit is contained in:
Ilya Kirillov
2022-03-17 12:44:23 +01:00
parent 3206c0ce87
commit 12e0254918
20 changed files with 116 additions and 96 deletions
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.psi.KotlinReferenceProvidersService
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
object FirAnalysisApiTestConfiguratorService : AnalysisApiTestConfiguratorService {
open class FirAnalysisApiTestConfiguratorService(override val analyseInDependentSession: Boolean) : AnalysisApiTestConfiguratorService {
override fun TestConfigurationBuilder.configureTest(disposable: Disposable) {
with(FirLowLevelAnalysisApiTestConfiguratorService) { configureTest(disposable) }
configureOptionalTestCompilerPlugin()
@@ -67,3 +67,6 @@ object FirAnalysisApiTestConfiguratorService : AnalysisApiTestConfiguratorServic
FirLowLevelAnalysisApiTestConfiguratorService.doOutOfBlockModification(file)
}
}
object FirAnalysisApiDependentModeTestConfiguratorService: FirAnalysisApiTestConfiguratorService(analyseInDependentSession = true)
object FirAnalysisApiNormalModeTestConfiguratorService: FirAnalysisApiTestConfiguratorService(analyseInDependentSession = false)
@@ -15,7 +15,7 @@ import com.intellij.psi.ClassFileViewProviderFactory
import com.intellij.psi.FileTypeFileViewProviders
import com.intellij.psi.compiled.ClassFileDecompilers
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.analysis.api.fir.FirAnalysisApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.fir.FirAnalysisApiNormalModeTestConfiguratorService
import org.jetbrains.kotlin.analysis.test.framework.AnalysisApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.decompiler.psi.KotlinBuiltInDecompiler
import org.jetbrains.kotlin.analysis.decompiler.psi.KotlinClassFileDecompiler
@@ -31,7 +31,7 @@ import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
object LibraryAnalysisApiTestConfiguratorService : AnalysisApiTestConfiguratorService {
override val allowDependedAnalysisSession: Boolean get() = false
override val analyseInDependentSession: Boolean get() = false
override fun TestConfigurationBuilder.configureTest(disposable: Disposable) {
useConfigurators(::LibraryEnvironmentConfigurator)
@@ -50,7 +50,7 @@ object LibraryAnalysisApiTestConfiguratorService : AnalysisApiTestConfiguratorSe
}
override fun registerApplicationServices(application: MockApplication) {
FirAnalysisApiTestConfiguratorService.registerApplicationServices(application)
FirAnalysisApiNormalModeTestConfiguratorService.registerApplicationServices(application)
if (application.getServiceIfCreated(ClsKotlinBinaryClassCache::class.java) != null) return
application.registerService(ClsKotlinBinaryClassCache::class.java)
application.registerService(FileAttributeService::class.java, DummyFileAttributeService)
@@ -68,6 +68,6 @@ object LibraryAnalysisApiTestConfiguratorService : AnalysisApiTestConfiguratorSe
}
override fun doOutOfBlockModification(file: KtFile) {
FirAnalysisApiTestConfiguratorService.doOutOfBlockModification(file)
FirAnalysisApiNormalModeTestConfiguratorService.doOutOfBlockModification(file)
}
}
@@ -10,7 +10,7 @@ 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.FirAnalysisApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.api.fir.FirAnalysisApiNormalModeTestConfiguratorService
import org.jetbrains.kotlin.analysis.test.framework.AnalysisApiTestConfiguratorService
import org.jetbrains.kotlin.analysis.low.level.api.fir.compiler.based.registerTestServices
import org.jetbrains.kotlin.analysis.project.structure.ProjectStructureProvider
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
import org.jetbrains.kotlin.test.services.ServiceRegistrationData
object LibrarySourceAnalysisApiTestConfiguratorService : AnalysisApiTestConfiguratorService {
override val allowDependedAnalysisSession: Boolean get() = false
override val analyseInDependentSession: Boolean get() = false
override fun TestConfigurationBuilder.configureTest(disposable: Disposable) {
useConfigurators(::LibraryEnvironmentConfigurator)
@@ -43,10 +43,10 @@ object LibrarySourceAnalysisApiTestConfiguratorService : AnalysisApiTestConfigur
}
override fun registerApplicationServices(application: MockApplication) {
FirAnalysisApiTestConfiguratorService.registerApplicationServices(application)
FirAnalysisApiNormalModeTestConfiguratorService.registerApplicationServices(application)
}
override fun doOutOfBlockModification(file: KtFile) {
FirAnalysisApiTestConfiguratorService.doOutOfBlockModification(file)
FirAnalysisApiNormalModeTestConfiguratorService.doOutOfBlockModification(file)
}
}