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 package org.jetbrains.kotlin.test.runners
import org.jetbrains.kotlin.test.bind
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
import org.jetbrains.kotlin.test.directives.AdditionalFilesDirectives.SPEC_HELPERS import org.jetbrains.kotlin.test.directives.AdditionalFilesDirectives.SPEC_HELPERS
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.WITH_STDLIB 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 { defaultDirectives {
+SPEC_HELPERS +SPEC_HELPERS
+WITH_STDLIB +WITH_STDLIB
} }
useAdditionalSourceProviders(::SpecHelpersSourceFilesProvider) useAdditionalSourceProviders(::SpecHelpersSourceFilesProvider.bind(baseDir))
useAfterAnalysisCheckers( useAfterAnalysisCheckers(
::FirIdenticalChecker, ::FirIdenticalChecker,
@@ -15,17 +15,15 @@ import org.jetbrains.kotlin.test.services.AdditionalSourceProvider
import org.jetbrains.kotlin.test.services.TestServices import org.jetbrains.kotlin.test.services.TestServices
import java.io.File import java.io.File
class SpecHelpersSourceFilesProvider(testServices: TestServices) : AdditionalSourceProvider(testServices) { class SpecHelpersSourceFilesProvider(testServices: TestServices, baseDir: String) : AdditionalSourceProvider(testServices) {
companion object { private val helpersDirPath = "$baseDir/compiler/tests-spec/testData/diagnostics/helpers"
const val HELPERS_DIR_PATH = "compiler/tests-spec/testData/diagnostics/helpers"
}
override val directives: List<DirectivesContainer> = override val directives: List<DirectivesContainer> =
listOf(AdditionalFilesDirectives) listOf(AdditionalFilesDirectives)
override fun produceAdditionalFiles(globalDirectives: RegisteredDirectives, module: TestModule): List<TestFile> { override fun produceAdditionalFiles(globalDirectives: RegisteredDirectives, module: TestModule): List<TestFile> {
if (SPEC_HELPERS !in module.directives) return emptyList() 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 if (it.isDirectory) return@mapNotNull null
it.toTestFile() it.toTestFile()
}.toList() }.toList()