[Test] Add ability to provide additional analysis flags in EnvironmentConfigurator

This commit is contained in:
Dmitriy Novozhilov
2020-12-22 12:20:39 +03:00
committed by TeamCityServer
parent c4691de72d
commit e287742842
4 changed files with 27 additions and 14 deletions
@@ -49,11 +49,20 @@ class TestConfigurationImpl(
}
}
private val environmentConfigurators: List<EnvironmentConfigurator> =
environmentConfigurators.map { it.invoke(testServices) }.also { configurators ->
configurators.flatMapTo(allDirectives) { it.directivesContainers }
for (configurator in configurators) {
configurator.additionalServices.forEach { testServices.register(it) }
}
}
override val moduleStructureExtractor: ModuleStructureExtractor = ModuleStructureExtractorImpl(
testServices,
additionalSourceProviders.map { it.invoke(testServices) }.also {
it.flatMapTo(allDirectives) { provider -> provider.directives }
}
},
this.environmentConfigurators
)
override val metaTestConfigurators: List<MetaTestConfigurator> = metaTestConfigurators.map {
@@ -75,15 +84,7 @@ class TestConfigurationImpl(
val sourceFileProvider = SourceFileProviderImpl(sourceFilePreprocessors)
register(SourceFileProvider::class, sourceFileProvider)
val configurators = environmentConfigurators.map { it.invoke(this) }
configurators.flatMapTo(allDirectives) { it.directivesContainers }
for (configurator in configurators) {
configurator.additionalServices.forEach { register(it) }
}
val environmentProvider = CompilerConfigurationProviderImpl(
rootDisposable,
configurators
)
val environmentProvider = CompilerConfigurationProviderImpl(rootDisposable, this@TestConfigurationImpl.environmentConfigurators)
register(CompilerConfigurationProvider::class, environmentProvider)
register(AssertionsService::class, assertions)
@@ -24,7 +24,8 @@ import java.io.File
class ModuleStructureExtractorImpl(
testServices: TestServices,
additionalSourceProviders: List<AdditionalSourceProvider>
additionalSourceProviders: List<AdditionalSourceProvider>,
private val environmentConfigurators: List<EnvironmentConfigurator>
) : ModuleStructureExtractor(testServices, additionalSourceProviders) {
companion object {
private val allowedExtensionsForFiles = listOf(".kt", ".kts", ".java")
@@ -210,7 +211,7 @@ class ModuleStructureExtractorImpl(
private fun finishModule() {
finishFile()
val moduleDirectives = directivesBuilder.build() + testServices.defaultDirectives + globalDirectives
currentModuleLanguageVersionSettingsBuilder.configureUsingDirectives(moduleDirectives)
currentModuleLanguageVersionSettingsBuilder.configureUsingDirectives(moduleDirectives, environmentConfigurators)
val moduleName = currentModuleName ?: defaultModuleName
val testModule = TestModule(
name = moduleName,