mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-03-10 08:31:29 +00:00
[Test] Get rid of BackendKindExtractor
This commit is contained in:
committed by
teamcityserver
parent
d43d0071a4
commit
ca40cbede5
@@ -15,7 +15,10 @@ import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||
import org.jetbrains.kotlin.codegen.CodegenTestFiles
|
||||
import org.jetbrains.kotlin.codegen.GenerationUtils
|
||||
import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime
|
||||
import org.jetbrains.kotlin.config.*
|
||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.config.JvmTarget
|
||||
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||
import org.jetbrains.kotlin.platform.jvm.JvmPlatforms
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
@@ -28,7 +31,6 @@ import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerTest
|
||||
import org.jetbrains.kotlin.test.services.*
|
||||
import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigurator
|
||||
import org.jetbrains.kotlin.test.services.configuration.JvmEnvironmentConfigurator
|
||||
import org.jetbrains.kotlin.test.services.impl.BackendKindExtractorImpl
|
||||
import org.jetbrains.kotlin.test.services.impl.TemporaryDirectoryManagerImpl
|
||||
import org.jetbrains.kotlin.test.services.sourceProviders.AdditionalDiagnosticsSourceFilesProvider
|
||||
import org.jetbrains.kotlin.test.services.sourceProviders.CodegenHelpersSourceFilesProvider
|
||||
@@ -408,7 +410,6 @@ class CodegenTestsOnAndroidGenerator private constructor(private val pathManager
|
||||
|
||||
assertions = JUnit5Assertions
|
||||
useAdditionalService<TemporaryDirectoryManager>(::TemporaryDirectoryManagerImpl)
|
||||
useAdditionalService<BackendKindExtractor>(::BackendKindExtractorImpl)
|
||||
useSourcePreprocessor(*AbstractKotlinCompilerTest.defaultPreprocessors.toTypedArray())
|
||||
useDirectives(*AbstractKotlinCompilerTest.defaultDirectiveContainers.toTypedArray())
|
||||
}
|
||||
|
||||
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.test.model
|
||||
import org.jetbrains.kotlin.test.directives.model.DirectivesContainer
|
||||
import org.jetbrains.kotlin.test.services.ServiceRegistrationData
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
import org.jetbrains.kotlin.test.services.backendKindExtractor
|
||||
|
||||
interface ServicesAndDirectivesContainer {
|
||||
val additionalServices: List<ServiceRegistrationData>
|
||||
@@ -51,7 +50,7 @@ abstract class Frontend2BackendConverter<R : ResultingArtifact.FrontendOutput<R>
|
||||
final override val outputKind: BackendKind<I>
|
||||
) : AbstractTestFacade<R, I>() {
|
||||
override fun shouldRunAnalysis(module: TestModule): Boolean {
|
||||
return testServices.backendKindExtractor.backendKind(module.targetBackend) == outputKind
|
||||
return module.backendKind == outputKind
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,6 +60,6 @@ abstract class BackendFacade<I : ResultingArtifact.BackendInput<I>, A : Resultin
|
||||
final override val outputKind: BinaryKind<A>
|
||||
) : AbstractTestFacade<I, A>() {
|
||||
override fun shouldRunAnalysis(module: TestModule): Boolean {
|
||||
return testServices.backendKindExtractor.backendKind(module.targetBackend) == inputKind && module.binaryKind == outputKind
|
||||
return module.backendKind == inputKind && module.binaryKind == outputKind
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@ data class TestModule(
|
||||
val targetPlatform: TargetPlatform,
|
||||
val targetBackend: TargetBackend?,
|
||||
val frontendKind: FrontendKind<*>,
|
||||
val backendKind: BackendKind<*>,
|
||||
val binaryKind: BinaryKind<*>,
|
||||
val files: List<TestFile>,
|
||||
val allDependencies: List<DependencyDescription>,
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
/*
|
||||
* 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()
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.test.model
|
||||
|
||||
import org.jetbrains.kotlin.test.TargetBackend
|
||||
import org.jetbrains.kotlin.test.backend.classic.ClassicBackendInput
|
||||
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
|
||||
import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact
|
||||
@@ -34,6 +35,12 @@ object BackendKinds {
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
|
||||
fun fromTargetBackend(targetBackend: TargetBackend?): BackendKind<*> {
|
||||
if (targetBackend == null) return BackendKind.NoBackend
|
||||
return if (targetBackend.isIR) IrBackend
|
||||
else ClassicBackend
|
||||
}
|
||||
}
|
||||
|
||||
object ArtifactKinds {
|
||||
|
||||
@@ -13,13 +13,11 @@ import org.jetbrains.kotlin.test.directives.ConfigurationDirectives
|
||||
import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives
|
||||
import org.jetbrains.kotlin.test.model.ResultingArtifact
|
||||
import org.jetbrains.kotlin.test.preprocessors.MetaInfosCleanupPreprocessor
|
||||
import org.jetbrains.kotlin.test.services.*
|
||||
import org.jetbrains.kotlin.test.services.impl.TemporaryDirectoryManagerImpl
|
||||
import org.jetbrains.kotlin.test.services.BackendKindExtractor
|
||||
import org.jetbrains.kotlin.test.services.JUnit5Assertions
|
||||
import org.jetbrains.kotlin.test.services.SourceFilePreprocessor
|
||||
import org.jetbrains.kotlin.test.services.KotlinTestInfo
|
||||
import org.jetbrains.kotlin.test.services.impl.BackendKindExtractorImpl
|
||||
import org.jetbrains.kotlin.test.services.SourceFilePreprocessor
|
||||
import org.jetbrains.kotlin.test.services.TemporaryDirectoryManager
|
||||
import org.jetbrains.kotlin.test.services.impl.TemporaryDirectoryManagerImpl
|
||||
import org.jetbrains.kotlin.types.AbstractTypeChecker
|
||||
import org.jetbrains.kotlin.types.FlexibleTypeImpl
|
||||
import org.junit.jupiter.api.BeforeEach
|
||||
@@ -43,7 +41,6 @@ abstract class AbstractKotlinCompilerTest {
|
||||
|
||||
val defaultConfiguration: TestConfigurationBuilder.() -> Unit = {
|
||||
useAdditionalService<TemporaryDirectoryManager>(::TemporaryDirectoryManagerImpl)
|
||||
useAdditionalService<BackendKindExtractor>(::BackendKindExtractorImpl)
|
||||
useSourcePreprocessor(*defaultPreprocessors.toTypedArray())
|
||||
useDirectives(*defaultDirectiveContainers.toTypedArray())
|
||||
configureDebugFlags()
|
||||
|
||||
@@ -7,10 +7,7 @@ package org.jetbrains.kotlin.test.services
|
||||
|
||||
import org.jetbrains.kotlin.test.TargetBackend
|
||||
import org.jetbrains.kotlin.test.TestInfrastructureInternals
|
||||
import org.jetbrains.kotlin.test.model.DependencyDescription
|
||||
import org.jetbrains.kotlin.test.model.DependencyKind
|
||||
import org.jetbrains.kotlin.test.model.DependencyRelation
|
||||
import org.jetbrains.kotlin.test.model.TestModule
|
||||
import org.jetbrains.kotlin.test.model.*
|
||||
import org.jetbrains.kotlin.test.services.impl.TestModuleStructureImpl
|
||||
|
||||
/**
|
||||
@@ -28,8 +25,8 @@ class ModuleTransformerForSwitchingBackend(
|
||||
|
||||
return TestModuleStructureImpl(
|
||||
listOf(
|
||||
first.copy(targetBackend = backendForLib),
|
||||
second.copy(targetBackend = backendForMain)
|
||||
first.copy(targetBackend = backendForLib, backendKind = BackendKinds.fromTargetBackend(backendForLib)),
|
||||
second.copy(targetBackend = backendForMain, backendKind = BackendKinds.fromTargetBackend(backendForMain))
|
||||
),
|
||||
moduleStructure.originalTestDataFiles
|
||||
)
|
||||
|
||||
@@ -32,6 +32,7 @@ class ModuleTransformerForTwoFilesBoxTests : ModuleStructureTransformer() {
|
||||
module.targetPlatform,
|
||||
module.targetBackend,
|
||||
module.frontendKind,
|
||||
module.backendKind,
|
||||
module.binaryKind,
|
||||
files = listOf(first) + additionalFiles,
|
||||
allDependencies = emptyList(),
|
||||
@@ -44,6 +45,7 @@ class ModuleTransformerForTwoFilesBoxTests : ModuleStructureTransformer() {
|
||||
module.targetPlatform,
|
||||
module.targetBackend,
|
||||
module.frontendKind,
|
||||
module.backendKind,
|
||||
module.binaryKind,
|
||||
files = listOf(second) + additionalFiles,
|
||||
allDependencies = listOf(DependencyDescription("lib", DependencyKind.Binary, DependencyRelation.FriendDependency)),
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
/*
|
||||
* 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.impl
|
||||
|
||||
import org.jetbrains.kotlin.test.TargetBackend
|
||||
import org.jetbrains.kotlin.test.model.BackendKind
|
||||
import org.jetbrains.kotlin.test.model.BackendKinds
|
||||
import org.jetbrains.kotlin.test.services.BackendKindExtractor
|
||||
import org.jetbrains.kotlin.test.services.TestServices
|
||||
|
||||
class BackendKindExtractorImpl(testServices: TestServices) : BackendKindExtractor(testServices) {
|
||||
override fun backendKind(targetBackend: TargetBackend?): BackendKind<*> {
|
||||
if (targetBackend == null) return BackendKind.NoBackend
|
||||
return if (targetBackend.isIR) BackendKinds.IrBackend
|
||||
else BackendKinds.ClassicBackend
|
||||
}
|
||||
}
|
||||
@@ -307,6 +307,7 @@ class ModuleStructureExtractorImpl(
|
||||
targetPlatform = targetPlatform,
|
||||
targetBackend = targetBackend,
|
||||
frontendKind = currentModuleFrontendKind ?: defaultsProvider.defaultFrontend,
|
||||
backendKind = BackendKinds.fromTargetBackend(targetBackend),
|
||||
binaryKind = defaultsProvider.defaultArtifactKind ?: targetPlatform.toArtifactKind(),
|
||||
files = filesOfCurrentModule,
|
||||
allDependencies = dependenciesOfCurrentModule,
|
||||
|
||||
@@ -20,7 +20,6 @@ import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerTest
|
||||
import org.jetbrains.kotlin.test.services.*
|
||||
import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigurator
|
||||
import org.jetbrains.kotlin.test.services.configuration.JvmEnvironmentConfigurator
|
||||
import org.jetbrains.kotlin.test.services.impl.BackendKindExtractorImpl
|
||||
import org.jetbrains.kotlin.test.services.impl.TemporaryDirectoryManagerImpl
|
||||
import org.jetbrains.kotlin.test.services.sourceProviders.AdditionalDiagnosticsSourceFilesProvider
|
||||
import org.jetbrains.kotlin.test.services.sourceProviders.CodegenHelpersSourceFilesProvider
|
||||
@@ -37,7 +36,6 @@ abstract class AbstractVisualizerBlackBoxTest {
|
||||
startingArtifactFactory = { ResultingArtifact.Source() }
|
||||
|
||||
useAdditionalService<TemporaryDirectoryManager>(::TemporaryDirectoryManagerImpl)
|
||||
useAdditionalService<BackendKindExtractor>(::BackendKindExtractorImpl)
|
||||
useSourcePreprocessor(*AbstractKotlinCompilerTest.defaultPreprocessors.toTypedArray())
|
||||
useDirectives(*AbstractKotlinCompilerTest.defaultDirectiveContainers.toTypedArray())
|
||||
|
||||
|
||||
Reference in New Issue
Block a user