Add possibility to use baseDir in SpecHelpersSourceFilesProvider

In IJ infrastructure we have specific path prefix for compiler testData
This commit is contained in:
Roman Golyshev
2021-06-10 14:31:33 +03:00
committed by TeamCityServer
parent 2c8d583d8b
commit d781902626
2 changed files with 6 additions and 7 deletions
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.test.runners
import org.jetbrains.kotlin.test.bind
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
import org.jetbrains.kotlin.test.directives.AdditionalFilesDirectives.SPEC_HELPERS
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.WITH_STDLIB
@@ -22,13 +23,13 @@ abstract class AbstractFirDiagnosticTestSpec : AbstractFirDiagnosticTest() {
}
}
fun TestConfigurationBuilder.baseFirSpecDiagnosticTestConfiguration() {
fun TestConfigurationBuilder.baseFirSpecDiagnosticTestConfiguration(baseDir: String = ".") {
defaultDirectives {
+SPEC_HELPERS
+WITH_STDLIB
}
useAdditionalSourceProviders(::SpecHelpersSourceFilesProvider)
useAdditionalSourceProviders(::SpecHelpersSourceFilesProvider.bind(baseDir))
useAfterAnalysisCheckers(
::FirIdenticalChecker,
@@ -15,17 +15,15 @@ import org.jetbrains.kotlin.test.services.AdditionalSourceProvider
import org.jetbrains.kotlin.test.services.TestServices
import java.io.File
class SpecHelpersSourceFilesProvider(testServices: TestServices) : AdditionalSourceProvider(testServices) {
companion object {
const val HELPERS_DIR_PATH = "compiler/tests-spec/testData/diagnostics/helpers"
}
class SpecHelpersSourceFilesProvider(testServices: TestServices, baseDir: String) : AdditionalSourceProvider(testServices) {
private val helpersDirPath = "$baseDir/compiler/tests-spec/testData/diagnostics/helpers"
override val directives: List<DirectivesContainer> =
listOf(AdditionalFilesDirectives)
override fun produceAdditionalFiles(globalDirectives: RegisteredDirectives, module: TestModule): List<TestFile> {
if (SPEC_HELPERS !in module.directives) return emptyList()
return File(HELPERS_DIR_PATH).walkTopDown().mapNotNull {
return File(helpersDirPath).walkTopDown().mapNotNull {
if (it.isDirectory) return@mapNotNull null
it.toTestFile()
}.toList()