Add possibility to use baseDir in AdditionalDiagnosticsSourceFilesProvider

In IJ infrastructure we have specific path prefix for compiler testData
This commit is contained in:
Nikita Bobko
2021-06-03 15:26:47 +02:00
committed by teamcityserver
parent 10f19c8f4a
commit 071ae301b4
2 changed files with 11 additions and 11 deletions
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.test.runners
import org.jetbrains.kotlin.platform.jvm.JvmPlatforms
import org.jetbrains.kotlin.test.TestJdkKind
import org.jetbrains.kotlin.test.bind
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.COMPARE_WITH_LIGHT_TREE
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.FIR_DUMP
@@ -44,7 +45,8 @@ abstract class AbstractFirDiagnosticsWithLightTreeTest : AbstractFirDiagnosticTe
}
fun TestConfigurationBuilder.baseFirDiagnosticTestConfiguration() {
// `baseDir` is used in Kotlin plugin from IJ infra
fun TestConfigurationBuilder.baseFirDiagnosticTestConfiguration(baseDir: String = ".") {
globalDefaults {
frontend = FrontendKinds.FIR
targetPlatform = JvmPlatforms.defaultJvmPlatform
@@ -59,7 +61,7 @@ fun TestConfigurationBuilder.baseFirDiagnosticTestConfiguration() {
)
useAdditionalSourceProviders(
::AdditionalDiagnosticsSourceFilesProvider,
::AdditionalDiagnosticsSourceFilesProvider.bind(baseDir),
::CoroutineHelpersSourceFilesProvider,
)
useFrontendFacades(::FirFrontendFacade)
@@ -17,14 +17,12 @@ import org.jetbrains.kotlin.test.services.AdditionalSourceProvider
import org.jetbrains.kotlin.test.services.TestServices
import java.io.File
class AdditionalDiagnosticsSourceFilesProvider(testServices: TestServices) : AdditionalSourceProvider(testServices) {
companion object {
private const val HELPERS_PATH = "./compiler/testData/diagnostics/helpers"
private val DIRECTIVE_TO_FILE_MAP: Map<SimpleDirective, String> = mapOf(
CHECK_TYPE to "$HELPERS_PATH/types/checkType.kt",
INFERENCE_HELPERS to "$HELPERS_PATH/inference/inferenceUtils.kt"
)
}
class AdditionalDiagnosticsSourceFilesProvider(testServices: TestServices, baseDir: String = ".") : AdditionalSourceProvider(testServices) {
private val helpersPath = "$baseDir/compiler/testData/diagnostics/helpers"
private val directiveToFileMap: Map<SimpleDirective, String> = mapOf(
CHECK_TYPE to "$helpersPath/types/checkType.kt",
INFERENCE_HELPERS to "$helpersPath/inference/inferenceUtils.kt"
)
override val directives: List<DirectivesContainer> =
listOf(AdditionalFilesDirectives)
@@ -32,7 +30,7 @@ class AdditionalDiagnosticsSourceFilesProvider(testServices: TestServices) : Add
@OptIn(ExperimentalStdlibApi::class)
override fun produceAdditionalFiles(globalDirectives: RegisteredDirectives, module: TestModule): List<TestFile> {
return buildList {
for ((directive, path) in DIRECTIVE_TO_FILE_MAP) {
for ((directive, path) in directiveToFileMap) {
if (directive in module.directives) {
add(File(path).toTestFile())
}