[Analysis API] Add tests for foreign values

This commit is contained in:
Yan Zhulanow
2024-02-05 18:30:30 +09:00
committed by Space Team
parent 2dd16e1179
commit 1f39bc9a18
27 changed files with 237 additions and 48 deletions
@@ -77,6 +77,12 @@ public class CodeFragmentCapturingTestGenerated extends AbstractCodeFragmentCapt
runTest("analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/extensionReceiverSmartCasted.kt");
}
@Test
@TestMetadata("foreignValue.kt")
public void testForeignValue() {
runTest("analysis/analysis-api/testData/components/compilerFacility/compilation/codeFragments/capturing/foreignValue.kt");
}
@Test
@TestMetadata("initializer.kt")
public void testInitializer() {
@@ -13,7 +13,9 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.services.LLSealedInherito
import org.jetbrains.kotlin.analysis.low.level.api.fir.services.NoOpKtCompilerPluginsProvider
import org.jetbrains.kotlin.analysis.low.level.api.fir.services.PackagePartProviderTestImpl
import org.jetbrains.kotlin.analysis.project.structure.KtCompilerPluginsProvider
import org.jetbrains.kotlin.analysis.providers.ForeignValueProviderService
import org.jetbrains.kotlin.analysis.providers.PackagePartProviderFactory
import org.jetbrains.kotlin.analysis.test.framework.services.TestForeignValueProviderService
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestServiceRegistrar
import org.jetbrains.kotlin.test.TestInfrastructureInternals
import org.jetbrains.kotlin.test.impl.testConfiguration
@@ -25,9 +27,9 @@ object AnalysisApiFirTestServiceRegistrar : AnalysisApiTestServiceRegistrar() {
}
override fun registerProjectServices(project: MockProject, testServices: TestServices) {
project.apply {
FirStandaloneServiceRegistrar.registerProjectServices(project)
FirStandaloneServiceRegistrar.registerProjectServices(project)
project.apply {
registerService(LLSealedInheritorsProviderFactory::class.java, LLSealedInheritorsProviderFactoryForTests())
registerService(PackagePartProviderFactory::class.java, PackagePartProviderTestImpl(testServices))
registerService(KtCompilerPluginsProvider::class.java, NoOpKtCompilerPluginsProvider)
@@ -41,5 +43,9 @@ object AnalysisApiFirTestServiceRegistrar : AnalysisApiTestServiceRegistrar() {
override fun registerApplicationServices(application: MockApplication, testServices: TestServices) {
FirStandaloneServiceRegistrar.registerApplicationServices(application)
application.apply {
registerService(ForeignValueProviderService::class.java, TestForeignValueProviderService())
}
}
}
@@ -9,7 +9,6 @@ import com.intellij.openapi.Disposable
import com.intellij.openapi.project.Project
import org.jetbrains.kotlin.analysis.api.impl.base.test.configurators.AnalysisApiBaseTestServiceRegistrar
import org.jetbrains.kotlin.analysis.api.impl.base.test.configurators.AnalysisApiDecompiledCodeTestServiceRegistrar
import org.jetbrains.kotlin.analysis.api.impl.base.test.configurators.AnalysisApiScriptTestServiceRegistrar
import org.jetbrains.kotlin.analysis.project.structure.KtBinaryModule
import org.jetbrains.kotlin.analysis.project.structure.allDirectDependenciesOfType
import org.jetbrains.kotlin.analysis.test.framework.project.structure.KtScriptModuleByCompilerConfiguration
@@ -42,7 +41,6 @@ object FirLowLevelCompilerBasedTestConfigurator : AnalysisApiTestConfigurator()
AnalysisApiBaseTestServiceRegistrar,
AnalysisApiDecompiledCodeTestServiceRegistrar,
AnalysisApiFirTestServiceRegistrar,
AnalysisApiScriptTestServiceRegistrar,
)
override fun createModules(
@@ -6,10 +6,8 @@
package org.jetbrains.kotlin.analysis.low.level.api.fir.test.configurators
import com.intellij.openapi.Disposable
import org.jetbrains.kotlin.analysis.api.impl.base.test.configurators.AnalysisApiScriptTestServiceRegistrar
import org.jetbrains.kotlin.analysis.test.framework.project.structure.KtScriptTestModuleFactory
import org.jetbrains.kotlin.analysis.test.framework.project.structure.KtTestModuleFactory
import org.jetbrains.kotlin.analysis.test.framework.test.configurators.AnalysisApiTestServiceRegistrar
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
open class AnalysisApiFirScriptTestConfigurator(analyseInDependentSession: Boolean) :
@@ -21,6 +19,4 @@ open class AnalysisApiFirScriptTestConfigurator(analyseInDependentSession: Boole
useAdditionalService<KtTestModuleFactory> { KtScriptTestModuleFactory }
}
}
override val serviceRegistrars: List<AnalysisApiTestServiceRegistrar> = super.serviceRegistrars + AnalysisApiScriptTestServiceRegistrar
}