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