[LL FIR] AbstractLLFirBlackBoxCodegenBasedTestBase: unify logic

^KT-66232
This commit is contained in:
Dmitrii Gridin
2024-03-01 16:09:53 +01:00
committed by Space Team
parent dd0d2168fc
commit 204465132f
3 changed files with 43 additions and 36 deletions
@@ -7,15 +7,15 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostic.compiler.base
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirOnlyNonReversedTestSuppressor
import org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostic.compiler.based.facades.LLFirAnalyzerFacadeFactoryWithoutPreresolve
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
import org.jetbrains.kotlin.test.Constructor
import org.jetbrains.kotlin.test.model.AfterAnalysisChecker
import org.jetbrains.kotlin.test.services.TestServices
import org.jetbrains.kotlin.utils.bind
abstract class AbstractLLFirBlackBoxCodegenBasedTest : AbstractLLFirBlackBoxCodegenBasedTestBase() {
override fun configureTest(builder: TestConfigurationBuilder) {
with(builder) {
facadeStep(::LowLevelFirFrontendFacade.bind(LLFirAnalyzerFacadeFactoryWithoutPreresolve))
baseConfiguration()
useAfterAnalysisCheckers(::LLFirOnlyNonReversedTestSuppressor)
}
override fun facade(): Constructor<LowLevelFirFrontendFacade> {
return ::LowLevelFirFrontendFacade.bind(LLFirAnalyzerFacadeFactoryWithoutPreresolve)
}
override fun facadeSpecificSuppressor(): (TestServices) -> AfterAnalysisChecker = ::LLFirOnlyNonReversedTestSuppressor
}
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostic.compiler.based
import org.jetbrains.kotlin.analysis.low.level.api.fir.compiler.based.AbstractLowLevelCompilerBasedTest
import org.jetbrains.kotlin.test.Constructor
import org.jetbrains.kotlin.test.InTextDirectivesUtils
import org.jetbrains.kotlin.test.TargetBackend
import org.jetbrains.kotlin.test.TestConfiguration
@@ -17,6 +18,7 @@ import org.jetbrains.kotlin.test.frontend.fir.handlers.FirDiagnosticsHandler
import org.jetbrains.kotlin.test.frontend.fir.handlers.FirDumpHandler
import org.jetbrains.kotlin.test.frontend.fir.handlers.FirResolvedTypesVerifier
import org.jetbrains.kotlin.test.frontend.fir.handlers.FirScopeDumpHandler
import org.jetbrains.kotlin.test.model.AfterAnalysisChecker
import org.jetbrains.kotlin.test.runners.codegen.baseFirBlackBoxCodegenTestDirectivesConfiguration
import org.jetbrains.kotlin.test.runners.codegen.configureModernJavaWhenNeeded
import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigurator
@@ -32,31 +34,37 @@ import java.io.File
* This test case does not interact with the backend at all.
*/
abstract class AbstractLLFirBlackBoxCodegenBasedTestBase : AbstractLowLevelCompilerBasedTest() {
protected fun TestConfigurationBuilder.baseConfiguration() {
baseFirBlackBoxCodegenTestDirectivesConfiguration()
configureModernJavaWhenNeeded()
useConfigurators(
::CommonEnvironmentConfigurator,
::JvmEnvironmentConfigurator,
)
abstract fun facade(): Constructor<LowLevelFirFrontendFacade>
abstract fun facadeSpecificSuppressor(): Constructor<AfterAnalysisChecker>
useAdditionalSourceProviders(
::AdditionalDiagnosticsSourceFilesProvider,
::CoroutineHelpersSourceFilesProvider,
::CodegenHelpersSourceFilesProvider,
)
firHandlersStep {
useHandlers(
::FirDiagnosticsHandler,
::FirDumpHandler,
::FirScopeDumpHandler,
::FirCfgDumpHandler,
::FirResolvedTypesVerifier,
override fun configureTest(builder: TestConfigurationBuilder) {
with(builder) {
facadeStep(facade())
baseFirBlackBoxCodegenTestDirectivesConfiguration()
configureModernJavaWhenNeeded()
useConfigurators(
::CommonEnvironmentConfigurator,
::JvmEnvironmentConfigurator,
)
}
useAfterAnalysisCheckers(::BlackBoxCodegenSuppressor)
useAdditionalSourceProviders(
::AdditionalDiagnosticsSourceFilesProvider,
::CoroutineHelpersSourceFilesProvider,
::CodegenHelpersSourceFilesProvider,
)
firHandlersStep {
useHandlers(
::FirDiagnosticsHandler,
::FirDumpHandler,
::FirScopeDumpHandler,
::FirCfgDumpHandler,
::FirResolvedTypesVerifier,
)
}
useAfterAnalysisCheckers(::BlackBoxCodegenSuppressor, facadeSpecificSuppressor())
}
}
override fun shouldSkipTest(filePath: String, configuration: TestConfiguration): Boolean {
@@ -7,15 +7,14 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostic.compiler.base
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirOnlyReversedTestSuppressor
import org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostic.compiler.based.facades.LLFirAnalyzerFacadeFactoryWithPreresolveInReversedOrder
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
import org.jetbrains.kotlin.test.Constructor
import org.jetbrains.kotlin.test.model.AfterAnalysisChecker
import org.jetbrains.kotlin.utils.bind
abstract class AbstractLLFirReversedBlackBoxCodegenBasedTest : AbstractLLFirBlackBoxCodegenBasedTestBase() {
override fun configureTest(builder: TestConfigurationBuilder) {
with(builder) {
facadeStep(::LowLevelFirFrontendFacade.bind(LLFirAnalyzerFacadeFactoryWithPreresolveInReversedOrder))
baseConfiguration()
useAfterAnalysisCheckers(::LLFirOnlyReversedTestSuppressor)
}
override fun facade(): Constructor<LowLevelFirFrontendFacade> {
return ::LowLevelFirFrontendFacade.bind(LLFirAnalyzerFacadeFactoryWithPreresolveInReversedOrder)
}
override fun facadeSpecificSuppressor(): Constructor<AfterAnalysisChecker> = ::LLFirOnlyReversedTestSuppressor
}