[Test] Save TargetBackend instead of BackendKind in TestModule
This commit is contained in:
@@ -6,14 +6,11 @@
|
||||
package org.jetbrains.kotlin.test
|
||||
|
||||
import com.intellij.openapi.Disposable
|
||||
import org.jetbrains.kotlin.test.directives.ConfigurationDirectives
|
||||
import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives
|
||||
import org.jetbrains.kotlin.test.directives.model.DirectivesContainer
|
||||
import org.jetbrains.kotlin.test.directives.model.RegisteredDirectives
|
||||
import org.jetbrains.kotlin.test.model.*
|
||||
import org.jetbrains.kotlin.test.services.MetaTestConfigurator
|
||||
import org.jetbrains.kotlin.test.services.ModuleStructureExtractor
|
||||
import org.jetbrains.kotlin.test.services.SourceFilePreprocessor
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
|
||||
typealias Constructor<T> = (TestServices) -> T
|
||||
|
||||
@@ -49,7 +49,7 @@ class TestRunner(private val testConfiguration: TestConfiguration) {
|
||||
var failedException: Throwable? = null
|
||||
try {
|
||||
for (module in modules) {
|
||||
processModule(module, dependencyProvider, moduleStructure)
|
||||
processModule(services, module, dependencyProvider, moduleStructure)
|
||||
}
|
||||
} catch (e: Throwable) {
|
||||
failedException = e
|
||||
@@ -81,6 +81,7 @@ class TestRunner(private val testConfiguration: TestConfiguration) {
|
||||
}
|
||||
|
||||
private fun processModule(
|
||||
services: TestServices,
|
||||
module: TestModule,
|
||||
dependencyProvider: DependencyProviderImpl,
|
||||
moduleStructure: TestModuleStructure
|
||||
@@ -99,7 +100,7 @@ class TestRunner(private val testConfiguration: TestConfiguration) {
|
||||
}
|
||||
}
|
||||
|
||||
val backendKind = module.backendKind
|
||||
val backendKind = services.backendKindExtractor.backendKind(module.targetBackend)
|
||||
if (!backendKind.shouldRunAnalysis) return
|
||||
|
||||
val backendInputInfo = testConfiguration.getFacade(frontendKind, backendKind)
|
||||
|
||||
+2
-1
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.test.directives
|
||||
|
||||
import org.jetbrains.kotlin.test.TargetBackend
|
||||
import org.jetbrains.kotlin.test.directives.model.SimpleDirectivesContainer
|
||||
|
||||
object ModuleStructureDirectives : SimpleDirectivesContainer() {
|
||||
@@ -45,7 +46,7 @@ object ModuleStructureDirectives : SimpleDirectivesContainer() {
|
||||
""".trimIndent()
|
||||
)
|
||||
|
||||
val TARGET_BACKEND_KIND by stringDirective(
|
||||
val TARGET_BACKEND_KIND by enumDirective<TargetBackend>(
|
||||
"""
|
||||
Usage: // TARGET_BACKEND: {Backend}
|
||||
Declares backend for analyzing current module
|
||||
|
||||
@@ -7,14 +7,15 @@ package org.jetbrains.kotlin.test.model
|
||||
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||
import org.jetbrains.kotlin.test.TargetBackend
|
||||
import org.jetbrains.kotlin.test.directives.model.RegisteredDirectives
|
||||
import java.io.File
|
||||
|
||||
data class TestModule(
|
||||
val name: String,
|
||||
val targetPlatform: TargetPlatform,
|
||||
val targetBackend: TargetBackend?,
|
||||
val frontendKind: FrontendKind<*>,
|
||||
val backendKind: BackendKind<*>,
|
||||
val files: List<TestFile>,
|
||||
val dependencies: List<DependencyDescription>,
|
||||
val directives: RegisteredDirectives,
|
||||
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.test.services
|
||||
|
||||
import org.jetbrains.kotlin.test.TargetBackend
|
||||
import org.jetbrains.kotlin.test.model.BackendKind
|
||||
|
||||
abstract class BackendKindExtractor(protected val testServices: TestServices) : TestService {
|
||||
abstract fun backendKind(targetBackend: TargetBackend?): BackendKind<*>
|
||||
}
|
||||
|
||||
val TestServices.backendKindExtractor: BackendKindExtractor by TestServices.testServiceAccessor()
|
||||
+2
-2
@@ -7,8 +7,8 @@ package org.jetbrains.kotlin.test.services
|
||||
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.platform.TargetPlatform
|
||||
import org.jetbrains.kotlin.test.TargetBackend
|
||||
import org.jetbrains.kotlin.test.builders.LanguageVersionSettingsBuilder
|
||||
import org.jetbrains.kotlin.test.model.BackendKind
|
||||
import org.jetbrains.kotlin.test.model.DependencyKind
|
||||
import org.jetbrains.kotlin.test.model.FrontendKind
|
||||
|
||||
@@ -18,11 +18,11 @@ import org.jetbrains.kotlin.test.model.FrontendKind
|
||||
* - default libraries
|
||||
*/
|
||||
class DefaultsProvider(
|
||||
val defaultBackend: BackendKind<*>,
|
||||
val defaultFrontend: FrontendKind<*>,
|
||||
val defaultLanguageSettings: LanguageVersionSettings,
|
||||
private val defaultLanguageSettingsBuilder: LanguageVersionSettingsBuilder,
|
||||
val defaultPlatform: TargetPlatform,
|
||||
val defaultTargetBackend: TargetBackend?,
|
||||
val defaultDependencyKind: DependencyKind
|
||||
) : TestService {
|
||||
fun newLanguageSettingsBuilder(): LanguageVersionSettingsBuilder {
|
||||
|
||||
Reference in New Issue
Block a user