[Test] Pass CompilerConfiguration to AbstractEnvironmentConfigurator.registerCompilerExtensions

This is needed to provide ability to configure extensions depending on
  configuration of specific test
This commit is contained in:
Dmitriy Novozhilov
2022-04-07 15:05:54 +04:00
committed by teamcity
parent 400ad6a01e
commit afad6a564a
8 changed files with 18 additions and 15 deletions
@@ -22,7 +22,7 @@ abstract class AbstractEnvironmentConfigurator : ServicesAndDirectivesContainer
abstract fun provideAdditionalAnalysisFlags(directives: RegisteredDirectives, languageVersion: LanguageVersion): Map<AnalysisFlag<*>, Any?>
abstract fun registerCompilerExtensions(project: Project, module: TestModule)
abstract fun registerCompilerExtensions(project: Project, module: TestModule, configuration: CompilerConfiguration)
}
abstract class EnvironmentConfigurator(protected val testServices: TestServices) : AbstractEnvironmentConfigurator() {
@@ -50,7 +50,7 @@ abstract class EnvironmentConfigurator(protected val testServices: TestServices)
return emptyMap()
}
override fun registerCompilerExtensions(project: Project, module: TestModule) {}
override fun registerCompilerExtensions(project: Project, module: TestModule, configuration: CompilerConfiguration) {}
}
class DirectiveToConfigurationKeyExtractor {
@@ -91,14 +91,14 @@ open class CompilerConfigurationProviderImpl(
testServices.applicationDisposableProvider.getApplicationRootDisposable(),
CompilerConfiguration()
)
val initialConfiguration = createCompilerConfiguration(module)
val projectEnv = KotlinCoreEnvironment.ProjectEnvironment(testRootDisposable, applicationEnvironment, initialConfiguration)
val configuration = createCompilerConfiguration(module)
val projectEnv = KotlinCoreEnvironment.ProjectEnvironment(testRootDisposable, applicationEnvironment, configuration)
val project = projectEnv.project
return KotlinCoreEnvironment.createForTests(
projectEnv,
initialConfiguration,
configuration,
configFiles
).also { configurators.forEach { it.registerCompilerExtensions(project, module) } }
).also { configurators.forEach { it.registerCompilerExtensions(project, module, configuration) } }
}
@TestInfrastructureInternals