From 071ae301b45bd41506325554b8d72935bebb8d59 Mon Sep 17 00:00:00 2001 From: Nikita Bobko Date: Thu, 3 Jun 2021 15:26:47 +0200 Subject: [PATCH] Add possibility to use baseDir in `AdditionalDiagnosticsSourceFilesProvider` In IJ infrastructure we have specific path prefix for compiler testData --- .../test/runners/AbstractFirDiagnosticTest.kt | 6 ++++-- .../AdditionalDiagnosticsSourceFilesProvider.kt | 16 +++++++--------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractFirDiagnosticTest.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractFirDiagnosticTest.kt index 575a41cd9be..ea35fb54980 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractFirDiagnosticTest.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/AbstractFirDiagnosticTest.kt @@ -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) diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/sourceProviders/AdditionalDiagnosticsSourceFilesProvider.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/sourceProviders/AdditionalDiagnosticsSourceFilesProvider.kt index 760b062dae7..a9caf35b379 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/sourceProviders/AdditionalDiagnosticsSourceFilesProvider.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/services/sourceProviders/AdditionalDiagnosticsSourceFilesProvider.kt @@ -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 = 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 = mapOf( + CHECK_TYPE to "$helpersPath/types/checkType.kt", + INFERENCE_HELPERS to "$helpersPath/inference/inferenceUtils.kt" + ) override val directives: List = listOf(AdditionalFilesDirectives) @@ -32,7 +30,7 @@ class AdditionalDiagnosticsSourceFilesProvider(testServices: TestServices) : Add @OptIn(ExperimentalStdlibApi::class) override fun produceAdditionalFiles(globalDirectives: RegisteredDirectives, module: TestModule): List { return buildList { - for ((directive, path) in DIRECTIVE_TO_FILE_MAP) { + for ((directive, path) in directiveToFileMap) { if (directive in module.directives) { add(File(path).toTestFile()) }