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.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)
|
||||
|
||||
+7
-9
@@ -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())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user