[Test] Add ability to override some services in AbstractKotlinCompilerTest

This commit is contained in:
Dmitriy Novozhilov
2022-04-07 18:40:42 +04:00
committed by teamcity
parent 543675d99d
commit 38696a41bc
2 changed files with 14 additions and 4 deletions
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getOrBuildFirFile
import org.jetbrains.kotlin.analysis.low.level.api.fir.createResolveStateForNoCaching
import org.jetbrains.kotlin.analysis.low.level.api.fir.transformers.LLFirLazyTransformer
import org.jetbrains.kotlin.platform.jvm.JvmPlatforms
import org.jetbrains.kotlin.test.ExecutionListenerBasedDisposableProvider
import org.jetbrains.kotlin.test.bind
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
import org.jetbrains.kotlin.test.builders.firHandlersStep
@@ -25,8 +26,7 @@ import org.jetbrains.kotlin.test.model.DependencyKind
import org.jetbrains.kotlin.test.model.FrontendFacade
import org.jetbrains.kotlin.test.model.FrontendKinds
import org.jetbrains.kotlin.test.model.TestModule
import org.jetbrains.kotlin.test.services.TestServices
import org.jetbrains.kotlin.test.services.compilerConfigurationProvider
import org.jetbrains.kotlin.test.services.*
abstract class AbstractCompilerBasedTestForFir : AbstractCompilerBasedTest() {
final override fun TestConfigurationBuilder.configuration() {
@@ -39,6 +39,8 @@ abstract class AbstractCompilerBasedTestForFir : AbstractCompilerBasedTest() {
configureTest()
defaultConfiguration(this)
useAdditionalService<ApplicationDisposableProvider> { ExecutionListenerBasedDisposableProvider() }
useAdditionalService<KotlinStandardLibrariesPathProvider> { StandardLibrariesPathProviderForKotlinProject }
useAdditionalService(::TestKtModuleProvider)
usePreAnalysisHandlers(::ModuleRegistrarPreAnalysisHandler.bind(disposable, true))
@@ -42,8 +42,6 @@ abstract class AbstractKotlinCompilerTest {
val defaultConfiguration: TestConfigurationBuilder.() -> Unit = {
assertions = JUnit5Assertions
useAdditionalService<TemporaryDirectoryManager>(::TemporaryDirectoryManagerImpl)
useAdditionalService<ApplicationDisposableProvider> { ExecutionListenerBasedDisposableProvider() }
useAdditionalService<KotlinStandardLibrariesPathProvider> { StandardLibrariesPathProviderForKotlinProject }
useSourcePreprocessor(*defaultPreprocessors.toTypedArray())
useDirectives(*defaultDirectiveContainers.toTypedArray())
configureDebugFlags()
@@ -53,12 +51,22 @@ abstract class AbstractKotlinCompilerTest {
protected val configuration: TestConfigurationBuilder.() -> Unit = {
defaultConfiguration()
useAdditionalService { createApplicationDisposableProvider() }
useAdditionalService { createKotlinStandardLibrariesPathProvider() }
configure(this)
}
abstract fun TestConfigurationBuilder.configuration()
private lateinit var testInfo: KotlinTestInfo
open fun createApplicationDisposableProvider(): ApplicationDisposableProvider {
return ExecutionListenerBasedDisposableProvider()
}
open fun createKotlinStandardLibrariesPathProvider(): KotlinStandardLibrariesPathProvider {
return StandardLibrariesPathProviderForKotlinProject
}
@BeforeEach
fun initTestInfo(testInfo: TestInfo) {
initTestInfo(