[Test] Introduce single interface for all entities which provides directive containers and test services

This commit is contained in:
Dmitriy Novozhilov
2021-07-20 12:47:55 +03:00
committed by teamcityserver
parent b42d6a3e85
commit ba48f80e53
43 changed files with 79 additions and 93 deletions
@@ -6,13 +6,9 @@
package org.jetbrains.kotlin.test.model
import org.jetbrains.kotlin.test.WrappedException
import org.jetbrains.kotlin.test.directives.model.DirectivesContainer
import org.jetbrains.kotlin.test.services.TestServices
abstract class AfterAnalysisChecker(protected val testServices: TestServices) {
open val directives: List<DirectivesContainer>
get() = emptyList()
abstract class AfterAnalysisChecker(protected val testServices: TestServices) : ServicesAndDirectivesContainer {
open fun check(failedAssertions: List<WrappedException>) {}
open fun suppressIfNeeded(failedAssertions: List<WrappedException>): List<WrappedException> = failedAssertions
@@ -6,8 +6,6 @@
package org.jetbrains.kotlin.test.model
import org.jetbrains.kotlin.test.Assertions
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.assertions
@@ -15,16 +13,10 @@ abstract class AnalysisHandler<A : ResultingArtifact<A>>(
val testServices: TestServices,
val failureDisablesNextSteps: Boolean,
val doNotRunIfThereWerePreviousFailures: Boolean
) {
) : ServicesAndDirectivesContainer {
protected val assertions: Assertions
get() = testServices.assertions
open val directivesContainers: List<DirectivesContainer>
get() = emptyList()
open val additionalServices: List<ServiceRegistrationData>
get() = emptyList()
abstract val artifactKind: TestArtifactKind<A>
abstract fun processModule(module: TestModule, info: A)
@@ -9,17 +9,19 @@ import org.jetbrains.kotlin.test.directives.model.DirectivesContainer
import org.jetbrains.kotlin.test.services.ServiceRegistrationData
import org.jetbrains.kotlin.test.services.TestServices
abstract class AbstractTestFacade<I : ResultingArtifact<I>, O : ResultingArtifact<O>> {
interface ServicesAndDirectivesContainer {
val additionalServices: List<ServiceRegistrationData>
get() = emptyList()
val directiveContainers: List<DirectivesContainer>
get() = emptyList()
}
abstract class AbstractTestFacade<I : ResultingArtifact<I>, O : ResultingArtifact<O>> : ServicesAndDirectivesContainer {
abstract val inputKind: TestArtifactKind<I>
abstract val outputKind: TestArtifactKind<O>
abstract fun transform(module: TestModule, inputArtifact: I): O?
open val additionalServices: List<ServiceRegistrationData>
get() = emptyList()
open val additionalDirectives: List<DirectivesContainer>
get() = emptyList()
}
abstract class FrontendFacade<R : ResultingArtifact.FrontendOutput<R>>(
@@ -5,17 +5,14 @@
package org.jetbrains.kotlin.test.services
import org.jetbrains.kotlin.test.directives.model.DirectivesContainer
import org.jetbrains.kotlin.test.directives.model.RegisteredDirectives
import org.jetbrains.kotlin.test.directives.model.SimpleDirective
import org.jetbrains.kotlin.test.model.ServicesAndDirectivesContainer
import org.jetbrains.kotlin.test.model.TestFile
import org.jetbrains.kotlin.test.model.TestModule
import java.io.File
abstract class AdditionalSourceProvider(val testServices: TestServices) {
open val directives: List<DirectivesContainer>
get() = emptyList()
abstract class AdditionalSourceProvider(val testServices: TestServices) : ServicesAndDirectivesContainer {
/**
* Note that you can not use [testServices.moduleStructure] here because it's not initialized yet
*/
@@ -10,16 +10,14 @@ import org.jetbrains.kotlin.config.AnalysisFlag
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.config.CompilerConfigurationKey
import org.jetbrains.kotlin.config.LanguageVersion
import org.jetbrains.kotlin.test.directives.model.*
import org.jetbrains.kotlin.test.directives.model.RegisteredDirectives
import org.jetbrains.kotlin.test.directives.model.SimpleDirective
import org.jetbrains.kotlin.test.directives.model.ValueDirective
import org.jetbrains.kotlin.test.directives.model.singleOrZeroValue
import org.jetbrains.kotlin.test.model.ServicesAndDirectivesContainer
import org.jetbrains.kotlin.test.model.TestModule
abstract class EnvironmentConfigurator(protected val testServices: TestServices) {
open val directivesContainers: List<DirectivesContainer>
get() = emptyList()
open val additionalServices: List<ServiceRegistrationData>
get() = emptyList()
abstract class EnvironmentConfigurator(protected val testServices: TestServices) : ServicesAndDirectivesContainer {
protected val moduleStructure: TestModuleStructure
get() = testServices.moduleStructure
@@ -5,12 +5,9 @@
package org.jetbrains.kotlin.test.services
import org.jetbrains.kotlin.test.directives.model.DirectivesContainer
abstract class MetaTestConfigurator(protected val testServices: TestServices) {
open val directives: List<DirectivesContainer>
get() = emptyList()
import org.jetbrains.kotlin.test.model.ServicesAndDirectivesContainer
abstract class MetaTestConfigurator(protected val testServices: TestServices) : ServicesAndDirectivesContainer {
open fun transformTestDataPath(testDataFileName: String): String = testDataFileName
open fun shouldSkipTest(): Boolean = false
@@ -14,14 +14,17 @@ import org.jetbrains.kotlin.test.directives.model.DirectivesContainer
import org.jetbrains.kotlin.test.directives.model.ValueDirective
import org.jetbrains.kotlin.test.model.AfterAnalysisChecker
import org.jetbrains.kotlin.test.model.FrontendKinds
import org.jetbrains.kotlin.test.services.*
import org.jetbrains.kotlin.test.services.TestModuleStructure
import org.jetbrains.kotlin.test.services.TestServices
import org.jetbrains.kotlin.test.services.defaultsProvider
import org.jetbrains.kotlin.test.services.moduleStructure
import org.jetbrains.kotlin.test.util.joinToArrayString
class BlackBoxCodegenSuppressor(
testServices: TestServices,
val customIgnoreDirective: ValueDirective<TargetBackend>? = null
) : AfterAnalysisChecker(testServices) {
override val directives: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(CodegenTestDirectives)
@OptIn(ExperimentalStdlibApi::class)
@@ -22,7 +22,7 @@ class ClassicJvmBackendFacade(
) : ClassicBackendFacade<BinaryArtifacts.Jvm>(testServices, ArtifactKinds.Jvm) {
private val javaCompilerFacade = JavaCompilerFacade(testServices)
override val additionalDirectives: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(CodegenTestDirectives)
override fun transform(
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.test.services.dependencyProvider
import org.jetbrains.kotlin.test.services.moduleStructure
class BytecodeInliningHandler(testServices: TestServices) : JvmBinaryArtifactHandler(testServices) {
override val directivesContainers: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(CodegenTestDirectives)
override fun processModule(module: TestModule, info: BinaryArtifacts.Jvm) {}
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.test.utils.withSuffixAndExtension
import java.io.File
class BytecodeListingHandler(testServices: TestServices) : JvmBinaryArtifactHandler(testServices) {
override val directivesContainers: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(CodegenTestDirectives)
private val multiModuleInfoDumper = MultiModuleInfoDumperImpl()
@@ -16,7 +16,6 @@ import org.jetbrains.kotlin.test.model.TestFile
import org.jetbrains.kotlin.test.model.TestModule
import org.jetbrains.kotlin.test.services.TestServices
import org.jetbrains.kotlin.test.services.isKtFile
import java.util.LinkedHashMap
class BytecodeTextHandler(testServices: TestServices, private val shouldEnableExplicitly: Boolean = false) :
JvmBinaryArtifactHandler(testServices) {
@@ -25,7 +24,7 @@ class BytecodeTextHandler(testServices: TestServices, private val shouldEnableEx
private const val IGNORED_PREFIX = "helpers/"
}
override val directivesContainers: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(CodegenTestDirectives)
override fun processModule(module: TestModule, info: BinaryArtifacts.Jvm) {
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.test.services.TestServices
import org.jetbrains.kotlin.test.services.jvm.compiledClassesManager
class DxCheckerHandler(testServices: TestServices) : JvmBinaryArtifactHandler(testServices) {
override val directivesContainers: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(CodegenTestDirectives)
override fun processModule(module: TestModule, info: BinaryArtifacts.Jvm) {
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.test.utils.withExtension
import java.io.File
class FirIrDumpIdenticalChecker(testServices: TestServices) : AfterAnalysisChecker(testServices) {
override val directives: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(FirDiagnosticsDirectives)
private val simpleDumpChecker = object : FirIdenticalCheckerHelper(testServices) {
@@ -30,7 +30,7 @@ class IrPrettyKotlinDumpHandler(testServices: TestServices) : AbstractIrHandler(
private val dumper = MultiModuleInfoDumperImpl("// MODULE: %s")
override val directivesContainers: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(CodegenTestDirectives, FirDiagnosticsDirectives)
override fun processModule(module: TestModule, info: IrBackendInput) {
@@ -12,7 +12,10 @@ import org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.JsManglerDesc
import org.jetbrains.kotlin.ir.declarations.IrClass
import org.jetbrains.kotlin.ir.declarations.IrFile
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
import org.jetbrains.kotlin.ir.util.*
import org.jetbrains.kotlin.ir.util.DeclarationStubGenerator
import org.jetbrains.kotlin.ir.util.SymbolTable
import org.jetbrains.kotlin.ir.util.dump
import org.jetbrains.kotlin.ir.util.dumpTreesFromLineNumber
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi2ir.generators.DeclarationStubGeneratorImpl
@@ -33,7 +36,6 @@ import org.jetbrains.kotlin.test.utils.MultiModuleInfoDumperImpl
import org.jetbrains.kotlin.test.utils.withExtension
import org.jetbrains.kotlin.test.utils.withSuffixAndExtension
import java.io.File
import java.io.PrintStream
class IrTextDumpHandler(testServices: TestServices) : AbstractIrHandler(testServices) {
companion object {
@@ -51,7 +53,7 @@ class IrTextDumpHandler(testServices: TestServices) : AbstractIrHandler(testServ
}
}
override val directivesContainers: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(CodegenTestDirectives, FirDiagnosticsDirectives)
private val baseDumper = MultiModuleInfoDumperImpl()
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.test.model.TestModule
import org.jetbrains.kotlin.test.services.TestServices
class IrTreeVerifierHandler(testServices: TestServices) : AbstractIrHandler(testServices) {
override val directivesContainers: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(CodegenTestDirectives)
override fun processModule(module: TestModule, info: IrBackendInput) {
@@ -18,7 +18,7 @@ class NoCompilationErrorsHandler(testServices: TestServices) : ClassicFrontendAn
testServices,
failureDisablesNextSteps = true
) {
override val directivesContainers: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(CodegenTestDirectives)
override fun processModule(module: TestModule, info: ClassicFrontendOutputArtifact) {
@@ -18,7 +18,7 @@ import org.jetbrains.kotlin.test.model.TestModule
import org.jetbrains.kotlin.test.services.TestServices
class NoFirCompilationErrorsHandler(testServices: TestServices) : FirAnalysisHandler(testServices, failureDisablesNextSteps = true) {
override val directivesContainers: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(CodegenTestDirectives)
override fun processModule(module: TestModule, info: FirOutputArtifact) {
@@ -27,7 +27,7 @@ class SMAPDumpHandler(testServices: TestServices) : JvmBinaryArtifactHandler(tes
const val SMAP_NON_SEP_EXT = "smap-nonseparate-compilation"
}
override val directivesContainers: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(CodegenTestDirectives)
private val dumper = MultiModuleInfoDumperImpl(moduleHeaderTemplate = null)
@@ -29,10 +29,9 @@ import org.jetbrains.kotlin.test.frontend.classic.ClassicFrontendOutputArtifact
import org.jetbrains.kotlin.test.model.TestFile
import org.jetbrains.kotlin.test.model.TestModule
import org.jetbrains.kotlin.test.services.*
import java.util.*
class ClassicDiagnosticsHandler(testServices: TestServices) : ClassicFrontendAnalysisHandler(testServices) {
override val directivesContainers: List<DirectivesContainer> =
override val directiveContainers: List<DirectivesContainer> =
listOf(DiagnosticsDirectives)
override val additionalServices: List<ServiceRegistrationData> =
@@ -48,7 +48,7 @@ class ConstantValuesHandler(testServices: TestServices) : ClassicFrontendAnalysi
UsesVariableAsConstant
}
override val directivesContainers: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(DiagnosticsDirectives)
private val metaInfoHandler = testServices.globalMetadataInfoHandler
@@ -42,7 +42,7 @@ class DeclarationsDumpHandler(
private val JAVA_PACKAGE_PATTERN = Pattern.compile("^\\s*package [.\\w\\d]*", Pattern.MULTILINE)
}
override val directivesContainers: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(DiagnosticsDirectives)
private val dumper: MultiModuleInfoDumper = MultiModuleInfoDumperImpl(moduleHeaderTemplate = "// -- Module: <%s> --")
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.test.services.TestServices
import org.jetbrains.kotlin.test.services.moduleStructure
class DiagnosticTestWithJavacSkipConfigurator(testServices: TestServices) : MetaTestConfigurator(testServices) {
override val directives: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(DiagnosticsDirectives)
override fun shouldSkipTest(): Boolean {
@@ -26,7 +26,7 @@ class DynamicCallsDumpHandler(testServices: TestServices) : ClassicFrontendAnaly
private const val DYNAMIC_PREFIX = ".dynamic.txt"
}
override val directivesContainers: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(DiagnosticsDirectives)
private val dumper: MultiModuleInfoDumper = MultiModuleInfoDumperImpl(moduleHeaderTemplate = "// -- Module: <%s> --")
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.test.utils.firTestDataFile
import java.io.File
class FirTestDataConsistencyHandler(testServices: TestServices) : AfterAnalysisChecker(testServices) {
override val directives: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(FirDiagnosticsDirectives)
override fun check(failedAssertions: List<WrappedException>) {
@@ -39,7 +39,7 @@ class FirFrontendFacade(
override val additionalServices: List<ServiceRegistrationData>
get() = listOf(service(::FirModuleInfoProvider))
override val additionalDirectives: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(FirDiagnosticsDirectives)
override fun analyze(module: TestModule): FirOutputArtifact {
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.test.services.TestServices
import org.jetbrains.kotlin.test.services.moduleStructure
class FirMetaInfoDiffSuppressor(testServices: TestServices) : AfterAnalysisChecker(testServices) {
override val directives: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(CodegenTestDirectives)
override fun suppressIfNeeded(failedAssertions: List<WrappedException>): List<WrappedException> {
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.test.services.moduleStructure
// TODO: adapt to multifile and multimodule tests
class FirCfgDumpHandler(testServices: TestServices) : FirAnalysisHandler(testServices) {
override val directivesContainers: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(FirDiagnosticsDirectives)
private val builder = StringBuilder()
@@ -61,7 +61,7 @@ class FirDiagnosticsHandler(testServices: TestServices) : FirAnalysisHandler(tes
private val diagnosticsService: DiagnosticsService
get() = testServices.diagnosticsService
override val directivesContainers: List<DirectivesContainer> =
override val directiveContainers: List<DirectivesContainer> =
listOf(DiagnosticsDirectives)
override val additionalServices: List<ServiceRegistrationData> =
@@ -20,7 +20,7 @@ class FirDumpHandler(
) : FirAnalysisHandler(testServices) {
private val dumper: MultiModuleInfoDumper = MultiModuleInfoDumperImpl()
override val directivesContainers: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(FirDiagnosticsDirectives)
override fun processModule(module: TestModule, info: FirOutputArtifact) {
@@ -36,7 +36,7 @@ import org.jetbrains.kotlin.util.withIndent
class FirScopeDumpHandler(testServices: TestServices) : FirAnalysisHandler(testServices) {
private val dumper = MultiModuleInfoDumperImpl()
override val directivesContainers: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(FirDiagnosticsDirectives)
override fun processModule(module: TestModule, info: FirOutputArtifact) {
@@ -68,7 +68,7 @@ class TestConfigurationImpl(
private val environmentConfigurators: List<EnvironmentConfigurator> =
environmentConfigurators.map { it.invoke(testServices) }.also { configurators ->
configurators.flatMapTo(allDirectives) { it.directivesContainers }
configurators.flatMapTo(allDirectives) { it.directiveContainers }
for (configurator in configurators) {
configurator.additionalServices.forEach { testServices.register(it) }
}
@@ -80,7 +80,7 @@ class TestConfigurationImpl(
override val moduleStructureExtractor: ModuleStructureExtractor = ModuleStructureExtractorImpl(
testServices,
additionalSourceProviders.map { it.invoke(testServices) }.also {
it.flatMapTo(allDirectives) { provider -> provider.directives }
it.flatMapTo(allDirectives) { provider -> provider.directiveContainers }
},
moduleStructureTransformers,
this.environmentConfigurators
@@ -88,13 +88,13 @@ class TestConfigurationImpl(
override val metaTestConfigurators: List<MetaTestConfigurator> = metaTestConfigurators.map {
it.invoke(testServices).also { configurator ->
allDirectives += configurator.directives
allDirectives += configurator.directiveContainers
}
}
override val afterAnalysisCheckers: List<AfterAnalysisChecker> = afterAnalysisCheckers.map {
it.invoke(testServices).also { checker ->
allDirectives += checker.directives
allDirectives += checker.directiveContainers
}
}
@@ -141,7 +141,7 @@ class TestConfigurationImpl(
}
private fun registerDirectivesAndServices(handler: AnalysisHandler<*>) {
allDirectives += handler.directivesContainers
allDirectives += handler.directiveContainers
testServices.register(handler.additionalServices)
}
@@ -150,7 +150,7 @@ class TestConfigurationImpl(
this@TestConfigurationImpl.facades.values.forEach {
it.values.forEach { facade ->
register(facade.additionalServices)
allDirectives += facade.additionalDirectives
allDirectives += facade.directiveContainers
}
}
}
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.test.services.EnvironmentConfigurator
import org.jetbrains.kotlin.test.services.TestServices
class CommonEnvironmentConfigurator(testServices: TestServices) : EnvironmentConfigurator(testServices) {
override val directivesContainers: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(ConfigurationDirectives)
override fun configureCompilerConfiguration(configuration: CompilerConfiguration, module: TestModule) {
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.test.services.TestServices
import org.jetbrains.kotlin.test.util.joinToArrayString
class JsEnvironmentConfigurator(testServices: TestServices) : EnvironmentConfigurator(testServices) {
override val directivesContainers: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(JsEnvironmentConfigurationDirectives)
override fun configureCompilerConfiguration(configuration: CompilerConfiguration, module: TestModule) {
@@ -124,7 +124,7 @@ class JvmEnvironmentConfigurator(testServices: TestServices) : EnvironmentConfig
}
}
override val directivesContainers: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(JvmEnvironmentConfigurationDirectives)
override val additionalServices: List<ServiceRegistrationData>
@@ -11,6 +11,7 @@ import org.jetbrains.kotlin.cli.jvm.config.jvmClasspathRoots
import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime
import org.jetbrains.kotlin.config.*
import org.jetbrains.kotlin.load.java.*
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.test.MockLibraryUtil
import org.jetbrains.kotlin.test.TestJavacVersion
import org.jetbrains.kotlin.test.directives.ForeignAnnotationsDirectives
@@ -23,9 +24,10 @@ import org.jetbrains.kotlin.test.directives.model.DirectivesContainer
import org.jetbrains.kotlin.test.directives.model.RegisteredDirectives
import org.jetbrains.kotlin.test.directives.model.singleOrZeroValue
import org.jetbrains.kotlin.test.model.TestModule
import org.jetbrains.kotlin.test.services.*
import org.jetbrains.kotlin.test.services.EnvironmentConfigurator
import org.jetbrains.kotlin.test.services.JUnit5Assertions
import org.jetbrains.kotlin.test.services.TestServices
import org.jetbrains.kotlin.test.util.KtTestUtil
import org.jetbrains.kotlin.name.FqName
import java.io.File
import kotlin.io.path.createTempDirectory
@@ -40,7 +42,7 @@ open class JvmForeignAnnotationsConfigurator(testServices: TestServices) : Envir
const val JSR_305_TEST_ANNOTATIONS_PATH = "compiler/testData/diagnostics/helpers/jsr305_test_annotations"
}
override val directivesContainers: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(ForeignAnnotationsDirectives)
@OptIn(ExperimentalStdlibApi::class)
@@ -24,7 +24,7 @@ class AdditionalDiagnosticsSourceFilesProvider(testServices: TestServices, baseD
INFERENCE_HELPERS to "$helpersPath/inference/inferenceUtils.kt"
)
override val directives: List<DirectivesContainer> =
override val directiveContainers: List<DirectivesContainer> =
listOf(AdditionalFilesDirectives)
@OptIn(ExperimentalStdlibApi::class)
@@ -21,7 +21,7 @@ class CodegenHelpersSourceFilesProvider(testServices: TestServices) : Additional
private const val IR_BACKEND_PATH = "$HELPERS_PATH/CodegenTestHelpersIR.kt"
}
override val directives: List<DirectivesContainer> =
override val directiveContainers: List<DirectivesContainer> =
listOf(CodegenTestDirectives)
@OptIn(ExperimentalStdlibApi::class)
@@ -24,7 +24,7 @@ class CoroutineHelpersSourceFilesProvider(testServices: TestServices, testDataPa
private val stateMachineCheckerPath = "$helpersPath/StateMachineChecker.kt"
private val tailCallOptimizationCheckerPath = "$helpersPath/TailCallOptimizationChecker.kt"
override val directives: List<DirectivesContainer> =
override val directiveContainers: List<DirectivesContainer> =
listOf(AdditionalFilesDirectives)
@OptIn(ExperimentalStdlibApi::class)
@@ -38,7 +38,7 @@ class IrInterpreterHelpersSourceFilesProvider(testServices: TestServices) : Addi
)
}
override val directives: List<DirectivesContainer> =
override val directiveContainers: List<DirectivesContainer> =
listOf(AdditionalFilesDirectives)
private fun getTestFilesForEachDirectory(vararg directories: String): List<TestFile> {
@@ -55,4 +55,4 @@ class IrInterpreterHelpersSourceFilesProvider(testServices: TestServices) : Addi
override fun produceAdditionalFiles(globalDirectives: RegisteredDirectives, module: TestModule): List<TestFile> {
return getTestFilesForEachDirectory(HELPERS_PATH, UNSIGNED_PATH, *RUNTIME_PATHS, *ANNOTATIONS_PATHS, REFLECT_PATH)
}
}
}
@@ -18,7 +18,7 @@ import java.io.File
class SpecHelpersSourceFilesProvider(testServices: TestServices, baseDir: String) : AdditionalSourceProvider(testServices) {
private val helpersDirPath = "$baseDir/compiler/tests-spec/testData/diagnostics/helpers"
override val directives: List<DirectivesContainer> =
override val directiveContainers: List<DirectivesContainer> =
listOf(AdditionalFilesDirectives)
override fun produceAdditionalFiles(globalDirectives: RegisteredDirectives, module: TestModule): List<TestFile> {
@@ -96,7 +96,7 @@ abstract class AbstractCompilerBasedTest : AbstractKotlinCompilerTest() {
testServices: TestServices
) : FrontendFacade<FirOutputArtifact>(testServices, FrontendKinds.FIR) {
override val additionalDirectives: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(FirDiagnosticsDirectives)
override fun analyze(module: TestModule): FirOutputArtifact {
@@ -330,4 +330,4 @@ private fun reRegisterJavaElementFinder(project: Project) {
)
}
PsiElementFinder.EP.getPoint(project).registerExtension(JavaElementFinder(project))
}
}
@@ -7,10 +7,9 @@ package org.jetbrains.kotlin.idea.fir.low.level.api.compiler.based
import org.jetbrains.kotlin.test.WrappedException
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
import org.jetbrains.kotlin.test.model.AfterAnalysisChecker
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives
import org.jetbrains.kotlin.test.services.TestServices
import org.jetbrains.kotlin.test.directives.model.DirectivesContainer
import org.jetbrains.kotlin.test.model.AfterAnalysisChecker
import org.jetbrains.kotlin.test.services.TestServices
import org.jetbrains.kotlin.test.services.moduleStructure
import org.jetbrains.kotlin.test.utils.removeDirectiveFromFile
@@ -19,7 +18,7 @@ class IdeTestIgnoreHandler(testServices: TestServices) : AfterAnalysisChecker(te
private val isTeamCityBuild: Boolean = System.getenv("TEAMCITY_VERSION") != null
}
override val directives: List<DirectivesContainer>
override val directiveContainers: List<DirectivesContainer>
get() = listOf(FirIdeDirectives)
override fun check(failedAssertions: List<WrappedException>) {