AA: reuse CoreJarFileSystem from KotlinCoreEnvironment in tests
This commit is contained in:
+3
-1
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.analysis.api.descriptors.test
|
|||||||
import com.intellij.mock.MockApplication
|
import com.intellij.mock.MockApplication
|
||||||
import com.intellij.mock.MockProject
|
import com.intellij.mock.MockProject
|
||||||
import com.intellij.openapi.Disposable
|
import com.intellij.openapi.Disposable
|
||||||
|
import com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import org.jetbrains.kotlin.analysis.api.InvalidWayOfUsingAnalysisSession
|
import org.jetbrains.kotlin.analysis.api.InvalidWayOfUsingAnalysisSession
|
||||||
import org.jetbrains.kotlin.analysis.api.KtAnalysisSessionProvider
|
import org.jetbrains.kotlin.analysis.api.KtAnalysisSessionProvider
|
||||||
@@ -52,7 +53,8 @@ object KtFe10FrontendApiTestConfiguratorService : FrontendApiTestConfiguratorSer
|
|||||||
compilerConfig: CompilerConfiguration,
|
compilerConfig: CompilerConfiguration,
|
||||||
files: List<KtFile>,
|
files: List<KtFile>,
|
||||||
packagePartProvider: (GlobalSearchScope) -> PackagePartProvider,
|
packagePartProvider: (GlobalSearchScope) -> PackagePartProvider,
|
||||||
projectStructureProvider: ProjectStructureProvider
|
projectStructureProvider: ProjectStructureProvider,
|
||||||
|
jarFileSystem: CoreJarFileSystem,
|
||||||
) {
|
) {
|
||||||
project.registerService(KtAnalysisSessionProvider::class.java, KtFe10AnalysisSessionProvider())
|
project.registerService(KtAnalysisSessionProvider::class.java, KtFe10AnalysisSessionProvider())
|
||||||
project.registerService(Fe10AnalysisFacade::class.java, CliFe10AnalysisFacade(project))
|
project.registerService(Fe10AnalysisFacade::class.java, CliFe10AnalysisFacade(project))
|
||||||
|
|||||||
+5
-2
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.analysis.api.fir
|
|||||||
import com.intellij.mock.MockApplication
|
import com.intellij.mock.MockApplication
|
||||||
import com.intellij.mock.MockProject
|
import com.intellij.mock.MockProject
|
||||||
import com.intellij.openapi.Disposable
|
import com.intellij.openapi.Disposable
|
||||||
|
import com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import org.jetbrains.kotlin.analysis.api.fir.utils.configureOptionalTestCompilerPlugin
|
import org.jetbrains.kotlin.analysis.api.fir.utils.configureOptionalTestCompilerPlugin
|
||||||
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService
|
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService
|
||||||
@@ -41,14 +42,16 @@ object FirFrontendApiTestConfiguratorService : FrontendApiTestConfiguratorServic
|
|||||||
compilerConfig: CompilerConfiguration,
|
compilerConfig: CompilerConfiguration,
|
||||||
files: List<KtFile>,
|
files: List<KtFile>,
|
||||||
packagePartProvider: (GlobalSearchScope) -> PackagePartProvider,
|
packagePartProvider: (GlobalSearchScope) -> PackagePartProvider,
|
||||||
projectStructureProvider: ProjectStructureProvider
|
projectStructureProvider: ProjectStructureProvider,
|
||||||
|
jarFileSystem: CoreJarFileSystem,
|
||||||
) {
|
) {
|
||||||
FirLowLevelFrontendApiTestConfiguratorService.registerProjectServices(
|
FirLowLevelFrontendApiTestConfiguratorService.registerProjectServices(
|
||||||
project,
|
project,
|
||||||
compilerConfig,
|
compilerConfig,
|
||||||
files,
|
files,
|
||||||
packagePartProvider,
|
packagePartProvider,
|
||||||
projectStructureProvider
|
projectStructureProvider,
|
||||||
|
jarFileSystem
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-1
@@ -10,6 +10,7 @@ import com.intellij.mock.MockApplication
|
|||||||
import com.intellij.mock.MockProject
|
import com.intellij.mock.MockProject
|
||||||
import com.intellij.openapi.Disposable
|
import com.intellij.openapi.Disposable
|
||||||
import com.intellij.openapi.extensions.LoadingOrder
|
import com.intellij.openapi.extensions.LoadingOrder
|
||||||
|
import com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem
|
||||||
import com.intellij.psi.ClassFileViewProviderFactory
|
import com.intellij.psi.ClassFileViewProviderFactory
|
||||||
import com.intellij.psi.FileTypeFileViewProviders
|
import com.intellij.psi.FileTypeFileViewProviders
|
||||||
import com.intellij.psi.compiled.ClassFileDecompilers
|
import com.intellij.psi.compiled.ClassFileDecompilers
|
||||||
@@ -42,7 +43,8 @@ object LibraryFrontendApiTestConfiguratorService : FrontendApiTestConfiguratorSe
|
|||||||
compilerConfig: CompilerConfiguration,
|
compilerConfig: CompilerConfiguration,
|
||||||
files: List<KtFile>,
|
files: List<KtFile>,
|
||||||
packagePartProvider: (GlobalSearchScope) -> PackagePartProvider,
|
packagePartProvider: (GlobalSearchScope) -> PackagePartProvider,
|
||||||
projectStructureProvider: ProjectStructureProvider
|
projectStructureProvider: ProjectStructureProvider,
|
||||||
|
jarFileSystem: CoreJarFileSystem,
|
||||||
) {
|
) {
|
||||||
project.registerTestServices(files, packagePartProvider, projectStructureProvider)
|
project.registerTestServices(files, packagePartProvider, projectStructureProvider)
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-1
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.analysis.api.fir.utils.libraries.source
|
|||||||
import com.intellij.mock.MockApplication
|
import com.intellij.mock.MockApplication
|
||||||
import com.intellij.mock.MockProject
|
import com.intellij.mock.MockProject
|
||||||
import com.intellij.openapi.Disposable
|
import com.intellij.openapi.Disposable
|
||||||
|
import com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import org.jetbrains.kotlin.analysis.api.fir.FirFrontendApiTestConfiguratorService
|
import org.jetbrains.kotlin.analysis.api.fir.FirFrontendApiTestConfiguratorService
|
||||||
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService
|
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService
|
||||||
@@ -35,7 +36,8 @@ object LibrarySourceFrontendApiTestConfiguratorService : FrontendApiTestConfigur
|
|||||||
compilerConfig: CompilerConfiguration,
|
compilerConfig: CompilerConfiguration,
|
||||||
files: List<KtFile>,
|
files: List<KtFile>,
|
||||||
packagePartProvider: (GlobalSearchScope) -> PackagePartProvider,
|
packagePartProvider: (GlobalSearchScope) -> PackagePartProvider,
|
||||||
projectStructureProvider: ProjectStructureProvider
|
projectStructureProvider: ProjectStructureProvider,
|
||||||
|
jarFileSystem: CoreJarFileSystem,
|
||||||
) {
|
) {
|
||||||
project.registerTestServices(files, packagePartProvider, projectStructureProvider)
|
project.registerTestServices(files, packagePartProvider, projectStructureProvider)
|
||||||
}
|
}
|
||||||
|
|||||||
+8
-4
@@ -10,6 +10,7 @@ import com.intellij.mock.MockProject
|
|||||||
import com.intellij.openapi.Disposable
|
import com.intellij.openapi.Disposable
|
||||||
import com.intellij.openapi.application.ApplicationManager
|
import com.intellij.openapi.application.ApplicationManager
|
||||||
import com.intellij.openapi.util.Disposer
|
import com.intellij.openapi.util.Disposer
|
||||||
|
import com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import com.intellij.testFramework.TestDataFile
|
import com.intellij.testFramework.TestDataFile
|
||||||
import junit.framework.ComparisonFailure
|
import junit.framework.ComparisonFailure
|
||||||
@@ -61,7 +62,8 @@ interface FrontendApiTestConfiguratorService {
|
|||||||
compilerConfig: CompilerConfiguration,
|
compilerConfig: CompilerConfiguration,
|
||||||
files: List<KtFile>,
|
files: List<KtFile>,
|
||||||
packagePartProvider: (GlobalSearchScope) -> PackagePartProvider,
|
packagePartProvider: (GlobalSearchScope) -> PackagePartProvider,
|
||||||
projectStructureProvider: ProjectStructureProvider
|
projectStructureProvider: ProjectStructureProvider,
|
||||||
|
jarFileSystem: CoreJarFileSystem,
|
||||||
)
|
)
|
||||||
|
|
||||||
fun registerApplicationServices(application: MockApplication)
|
fun registerApplicationServices(application: MockApplication)
|
||||||
@@ -193,14 +195,16 @@ abstract class AbstractFrontendApiTest : TestWithDisposable() {
|
|||||||
|
|
||||||
val ktFiles = getKtFilesFromModule(testServices, singleModule)
|
val ktFiles = getKtFilesFromModule(testServices, singleModule)
|
||||||
with(project as MockProject) {
|
with(project as MockProject) {
|
||||||
val compilerConfiguration = testServices.compilerConfigurationProvider.getCompilerConfiguration(singleModule)
|
val compilerConfigurationProvider = testServices.compilerConfigurationProvider
|
||||||
|
val compilerConfiguration = compilerConfigurationProvider.getCompilerConfiguration(singleModule)
|
||||||
compilerConfiguration.addJavaSourceRoots(ktFiles.map { File(it.virtualFilePath) })
|
compilerConfiguration.addJavaSourceRoots(ktFiles.map { File(it.virtualFilePath) })
|
||||||
configurator.registerProjectServices(
|
configurator.registerProjectServices(
|
||||||
this,
|
this,
|
||||||
compilerConfiguration,
|
compilerConfiguration,
|
||||||
ktFiles,
|
ktFiles,
|
||||||
testServices.compilerConfigurationProvider.getPackagePartProviderFactory(singleModule),
|
compilerConfigurationProvider.getPackagePartProviderFactory(singleModule),
|
||||||
KotlinProjectStructureProviderTestImpl(testServices)
|
KotlinProjectStructureProviderTestImpl(testServices),
|
||||||
|
compilerConfigurationProvider.getJarFileSystem(singleModule)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+10
-2
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.analysis.api.standalone
|
|||||||
import com.intellij.mock.MockApplication
|
import com.intellij.mock.MockApplication
|
||||||
import com.intellij.mock.MockProject
|
import com.intellij.mock.MockProject
|
||||||
import com.intellij.openapi.Disposable
|
import com.intellij.openapi.Disposable
|
||||||
|
import com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import org.jetbrains.kotlin.analysis.api.fir.FirFrontendApiTestConfiguratorService
|
import org.jetbrains.kotlin.analysis.api.fir.FirFrontendApiTestConfiguratorService
|
||||||
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService
|
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService
|
||||||
@@ -30,9 +31,16 @@ object StandaloneModeConfiguratorService : FrontendApiTestConfiguratorService {
|
|||||||
compilerConfig: CompilerConfiguration,
|
compilerConfig: CompilerConfiguration,
|
||||||
files: List<KtFile>,
|
files: List<KtFile>,
|
||||||
packagePartProvider: (GlobalSearchScope) -> PackagePartProvider,
|
packagePartProvider: (GlobalSearchScope) -> PackagePartProvider,
|
||||||
projectStructureProvider: ProjectStructureProvider
|
projectStructureProvider: ProjectStructureProvider,
|
||||||
|
jarFileSystem: CoreJarFileSystem,
|
||||||
) {
|
) {
|
||||||
configureProjectEnvironment(project, compilerConfig, files, packagePartProvider)
|
configureProjectEnvironment(
|
||||||
|
project,
|
||||||
|
compilerConfig,
|
||||||
|
files,
|
||||||
|
packagePartProvider,
|
||||||
|
jarFileSystem
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun registerApplicationServices(application: MockApplication) {
|
override fun registerApplicationServices(application: MockApplication) {
|
||||||
|
|||||||
+3
-1
@@ -9,6 +9,7 @@ import com.intellij.mock.MockApplication
|
|||||||
import com.intellij.mock.MockProject
|
import com.intellij.mock.MockProject
|
||||||
import com.intellij.openapi.Disposable
|
import com.intellij.openapi.Disposable
|
||||||
import com.intellij.openapi.components.ServiceManager
|
import com.intellij.openapi.components.ServiceManager
|
||||||
|
import com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService
|
import org.jetbrains.kotlin.analysis.api.impl.barebone.test.FrontendApiTestConfiguratorService
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.compiler.based.ModuleRegistrarPreAnalysisHandler
|
import org.jetbrains.kotlin.analysis.low.level.api.fir.compiler.based.ModuleRegistrarPreAnalysisHandler
|
||||||
@@ -44,7 +45,8 @@ object FirLowLevelFrontendApiTestConfiguratorService : FrontendApiTestConfigurat
|
|||||||
compilerConfig: CompilerConfiguration,
|
compilerConfig: CompilerConfiguration,
|
||||||
files: List<KtFile>,
|
files: List<KtFile>,
|
||||||
packagePartProvider: (GlobalSearchScope) -> PackagePartProvider,
|
packagePartProvider: (GlobalSearchScope) -> PackagePartProvider,
|
||||||
projectStructureProvider: ProjectStructureProvider
|
projectStructureProvider: ProjectStructureProvider,
|
||||||
|
jarFileSystem: CoreJarFileSystem,
|
||||||
) {
|
) {
|
||||||
project.registerTestServices(files, packagePartProvider, projectStructureProvider)
|
project.registerTestServices(files, packagePartProvider, projectStructureProvider)
|
||||||
}
|
}
|
||||||
|
|||||||
+5
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.test.services
|
|||||||
|
|
||||||
import com.intellij.openapi.Disposable
|
import com.intellij.openapi.Disposable
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
|
import com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys
|
||||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
||||||
@@ -55,6 +56,10 @@ abstract class CompilerConfigurationProvider : TestService {
|
|||||||
val bootClasspath = mockJdk?.let { listOf(it) }
|
val bootClasspath = mockJdk?.let { listOf(it) }
|
||||||
environment.registerJavac(kotlinFiles = ktFiles, bootClasspath = bootClasspath)
|
environment.registerJavac(kotlinFiles = ktFiles, bootClasspath = bootClasspath)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun getJarFileSystem(module: TestModule): CoreJarFileSystem {
|
||||||
|
return getKotlinCoreEnvironment(module).projectEnvironment.environment.jarFileSystem as CoreJarFileSystem
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val TestServices.compilerConfigurationProvider: CompilerConfigurationProvider by TestServices.testServiceAccessor()
|
val TestServices.compilerConfigurationProvider: CompilerConfigurationProvider by TestServices.testServiceAccessor()
|
||||||
|
|||||||
Reference in New Issue
Block a user