Add possibility to use baseDir in AdditionalDiagnosticsSourceFilesProvider
In IJ infrastructure we have specific path prefix for compiler testData
This commit is contained in:
committed by
teamcityserver
parent
10f19c8f4a
commit
071ae301b4
+4
-2
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.test.runners
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.platform.jvm.JvmPlatforms
|
import org.jetbrains.kotlin.platform.jvm.JvmPlatforms
|
||||||
import org.jetbrains.kotlin.test.TestJdkKind
|
import org.jetbrains.kotlin.test.TestJdkKind
|
||||||
|
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.FirDiagnosticsDirectives.COMPARE_WITH_LIGHT_TREE
|
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.COMPARE_WITH_LIGHT_TREE
|
||||||
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.FIR_DUMP
|
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 {
|
globalDefaults {
|
||||||
frontend = FrontendKinds.FIR
|
frontend = FrontendKinds.FIR
|
||||||
targetPlatform = JvmPlatforms.defaultJvmPlatform
|
targetPlatform = JvmPlatforms.defaultJvmPlatform
|
||||||
@@ -59,7 +61,7 @@ fun TestConfigurationBuilder.baseFirDiagnosticTestConfiguration() {
|
|||||||
)
|
)
|
||||||
|
|
||||||
useAdditionalSourceProviders(
|
useAdditionalSourceProviders(
|
||||||
::AdditionalDiagnosticsSourceFilesProvider,
|
::AdditionalDiagnosticsSourceFilesProvider.bind(baseDir),
|
||||||
::CoroutineHelpersSourceFilesProvider,
|
::CoroutineHelpersSourceFilesProvider,
|
||||||
)
|
)
|
||||||
useFrontendFacades(::FirFrontendFacade)
|
useFrontendFacades(::FirFrontendFacade)
|
||||||
|
|||||||
+7
-9
@@ -17,14 +17,12 @@ 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 AdditionalDiagnosticsSourceFilesProvider(testServices: TestServices) : AdditionalSourceProvider(testServices) {
|
class AdditionalDiagnosticsSourceFilesProvider(testServices: TestServices, baseDir: String = ".") : AdditionalSourceProvider(testServices) {
|
||||||
companion object {
|
private val helpersPath = "$baseDir/compiler/testData/diagnostics/helpers"
|
||||||
private const val HELPERS_PATH = "./compiler/testData/diagnostics/helpers"
|
private val directiveToFileMap: Map<SimpleDirective, String> = mapOf(
|
||||||
private val DIRECTIVE_TO_FILE_MAP: Map<SimpleDirective, String> = mapOf(
|
CHECK_TYPE to "$helpersPath/types/checkType.kt",
|
||||||
CHECK_TYPE to "$HELPERS_PATH/types/checkType.kt",
|
INFERENCE_HELPERS to "$helpersPath/inference/inferenceUtils.kt"
|
||||||
INFERENCE_HELPERS to "$HELPERS_PATH/inference/inferenceUtils.kt"
|
)
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
override val directives: List<DirectivesContainer> =
|
override val directives: List<DirectivesContainer> =
|
||||||
listOf(AdditionalFilesDirectives)
|
listOf(AdditionalFilesDirectives)
|
||||||
@@ -32,7 +30,7 @@ class AdditionalDiagnosticsSourceFilesProvider(testServices: TestServices) : Add
|
|||||||
@OptIn(ExperimentalStdlibApi::class)
|
@OptIn(ExperimentalStdlibApi::class)
|
||||||
override fun produceAdditionalFiles(globalDirectives: RegisteredDirectives, module: TestModule): List<TestFile> {
|
override fun produceAdditionalFiles(globalDirectives: RegisteredDirectives, module: TestModule): List<TestFile> {
|
||||||
return buildList {
|
return buildList {
|
||||||
for ((directive, path) in DIRECTIVE_TO_FILE_MAP) {
|
for ((directive, path) in directiveToFileMap) {
|
||||||
if (directive in module.directives) {
|
if (directive in module.directives) {
|
||||||
add(File(path).toTestFile())
|
add(File(path).toTestFile())
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user