From 041f9c47006e566170927bbb6847516519e1ac01 Mon Sep 17 00:00:00 2001 From: Ivan Kochurkin Date: Sun, 30 Oct 2022 20:57:08 +0100 Subject: [PATCH] [Testing] Simplify test functions --- .../AbstractAsmLikeInstructionListingTest.kt | 2 +- .../codegen/AbstractBytecodeListingTest.kt | 2 +- .../codegen/AbstractBytecodeTextTest.kt | 2 +- ...actCompileKotlinAgainstInlineKotlinTest.kt | 2 +- .../AbstractJvmBlackBoxCodegenTestBase.kt | 10 ++-- .../codegen/AbstractLocalVariableTestBase.kt | 4 +- .../codegen/AbstractSteppingTestBase.kt | 5 +- .../codegen/BaseCodegenConfiguration.kt | 47 ++++--------------- .../test/runners/AbstractParcelizeBoxTest.kt | 4 +- 9 files changed, 25 insertions(+), 53 deletions(-) diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractAsmLikeInstructionListingTest.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractAsmLikeInstructionListingTest.kt index 4356891990a..e6dde99b250 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractAsmLikeInstructionListingTest.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractAsmLikeInstructionListingTest.kt @@ -43,7 +43,7 @@ abstract class AbstractAsmLikeInstructionListingTestBase = IGNORE_BACKEND_MULTI_MODULE override fun TestConfigurationBuilder.configuration() { - commonConfigurationForCodegenTest(targetFrontend, frontendFacade, frontendToBackendConverter, backendFacade) + commonConfigurationForTest(targetFrontend, frontendFacade, frontendToBackendConverter, backendFacade) useInlineHandlers() configureCommonHandlersForBoxTest() useModuleStructureTransformers( diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractJvmBlackBoxCodegenTestBase.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractJvmBlackBoxCodegenTestBase.kt index d850570568d..c50fc680c52 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractJvmBlackBoxCodegenTestBase.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractJvmBlackBoxCodegenTestBase.kt @@ -17,17 +17,17 @@ import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.builders.configureClassicFrontendHandlersStep import org.jetbrains.kotlin.test.builders.configureFirHandlersStep import org.jetbrains.kotlin.test.builders.configureJvmArtifactsHandlersStep -import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives.DIAGNOSTICS import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.IGNORE_DEXING -import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives.REPORT_ONLY_EXPLICITLY_DEFINED_DEBUG_INFO import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.USE_JAVAC_BASED_ON_JVM_TARGET -import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.JDK_KIND -import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.JVM_TARGET import org.jetbrains.kotlin.test.directives.ConfigurationDirectives.WITH_STDLIB +import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives.DIAGNOSTICS +import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives.REPORT_ONLY_EXPLICITLY_DEFINED_DEBUG_INFO import org.jetbrains.kotlin.test.directives.ForeignAnnotationsDirectives import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.WITH_FOREIGN_ANNOTATIONS import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.ENABLE_DEBUG_MODE +import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.JDK_KIND +import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.JVM_TARGET import org.jetbrains.kotlin.test.frontend.classic.handlers.ClassicDiagnosticsHandler import org.jetbrains.kotlin.test.frontend.fir.handlers.FirDiagnosticsHandler import org.jetbrains.kotlin.test.model.* @@ -44,7 +44,7 @@ abstract class AbstractJvmBlackBoxCodegenTestBase> override fun TestConfigurationBuilder.configuration() { - commonConfigurationForCodegenTest(targetFrontend, frontendFacade, frontendToBackendConverter, backendFacade) + commonConfigurationForTest(targetFrontend, frontendFacade, frontendToBackendConverter, backendFacade) configureClassicFrontendHandlersStep { useHandlers( diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractLocalVariableTestBase.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractLocalVariableTestBase.kt index 81a9d6fb6cf..3787fd8de5d 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractLocalVariableTestBase.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractLocalVariableTestBase.kt @@ -23,7 +23,9 @@ abstract class AbstractLocalVariableTestBase> override fun TestConfigurationBuilder.configuration() { - commonConfigurationForDebugTest(targetFrontend, frontendFacade, frontendToBackendConverter, backendFacade) + commonConfigurationForTest(targetFrontend, frontendFacade, frontendToBackendConverter, backendFacade) { + commonServicesConfigurationForDebugTest(it) + } configureCommonHandlersForLocalVariableTest() diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractSteppingTestBase.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractSteppingTestBase.kt index 0f7832d159f..62617b51082 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractSteppingTestBase.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/AbstractSteppingTestBase.kt @@ -9,7 +9,6 @@ import org.jetbrains.kotlin.test.Constructor import org.jetbrains.kotlin.test.TargetBackend import org.jetbrains.kotlin.test.backend.BlackBoxCodegenSuppressor import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder -import org.jetbrains.kotlin.test.builders.configureFirHandlersStep import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.REQUIRES_SEPARATE_PROCESS import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives.REPORT_ONLY_EXPLICITLY_DEFINED_DEBUG_INFO import org.jetbrains.kotlin.test.model.* @@ -24,7 +23,9 @@ abstract class AbstractSteppingTestBase, abstract val backendFacade: Constructor> override fun TestConfigurationBuilder.configuration() { - commonConfigurationForDebugTest(targetFrontend, frontendFacade, frontendToBackendConverter, backendFacade) + commonConfigurationForTest(targetFrontend, frontendFacade, frontendToBackendConverter, backendFacade) { + commonServicesConfigurationForDebugTest(it) + } configureCommonHandlersForSteppingTest() diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/BaseCodegenConfiguration.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/BaseCodegenConfiguration.kt index 2d488911f22..a8a74c2c8f6 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/BaseCodegenConfiguration.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/codegen/BaseCodegenConfiguration.kt @@ -21,40 +21,21 @@ import org.jetbrains.kotlin.test.services.configuration.JvmEnvironmentConfigurat import org.jetbrains.kotlin.test.services.configuration.ScriptingEnvironmentConfigurator import org.jetbrains.kotlin.test.services.sourceProviders.* -fun , B : ResultingArtifact.BackendInput> TestConfigurationBuilder.commonConfigurationForCodegenAndDebugTest( +fun , B : ResultingArtifact.BackendInput> TestConfigurationBuilder.commonConfigurationForTest( + targetFrontend: FrontendKind, frontendFacade: Constructor>, frontendToBackendConverter: Constructor>, backendFacade: Constructor>, + commonServicesConfiguration: (FrontendKind<*>) -> Unit = { commonServicesConfigurationForCodegenTest(it) } ) { + commonServicesConfiguration(targetFrontend) facadeStep(frontendFacade) classicFrontendHandlersStep() firHandlersStep() - commonBackendStepsConfiguration( - frontendToBackendConverter, - irHandlersInit = {}, - backendFacade, - jvmHandlersInit = {} - ) -} - -fun , B : ResultingArtifact.BackendInput> TestConfigurationBuilder.commonConfigurationForCodegenTest( - targetFrontend: FrontendKind, - frontendFacade: Constructor>, - frontendToBackendConverter: Constructor>, - backendFacade: Constructor>, -) { - commonServicesConfigurationForCodegenTest(targetFrontend) - commonConfigurationForCodegenAndDebugTest(frontendFacade, frontendToBackendConverter, backendFacade) -} - -fun , B : ResultingArtifact.BackendInput> TestConfigurationBuilder.commonConfigurationForDebugTest( - targetFrontend: FrontendKind, - frontendFacade: Constructor>, - frontendToBackendConverter: Constructor>, - backendFacade: Constructor>, -) { - commonServicesConfigurationForDebugTest(targetFrontend) - commonConfigurationForCodegenAndDebugTest(frontendFacade, frontendToBackendConverter, backendFacade) + facadeStep(frontendToBackendConverter) + irHandlersStep(init = {}) + facadeStep(backendFacade) + jvmArtifactsHandlersStep(init = {}) } private fun TestConfigurationBuilder.commonServicesConfigurationForCodegenAndDebugTest(targetFrontend: FrontendKind<*>) { @@ -96,18 +77,6 @@ fun TestConfigurationBuilder.commonServicesConfigurationForDebugTest(targetFront ) } -inline fun , F : ResultingArtifact.FrontendOutput> TestConfigurationBuilder.commonBackendStepsConfiguration( - noinline frontendToBackendConverter: Constructor>, - irHandlersInit: HandlersStepBuilder.() -> Unit, - noinline backendFacade: Constructor>, - jvmHandlersInit: HandlersStepBuilder.() -> Unit, -) { - facadeStep(frontendToBackendConverter) - irHandlersStep(irHandlersInit) - facadeStep(backendFacade) - jvmArtifactsHandlersStep(jvmHandlersInit) -} - fun TestConfigurationBuilder.useInlineHandlers() { configureJvmArtifactsHandlersStep { inlineHandlers() diff --git a/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/runners/AbstractParcelizeBoxTest.kt b/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/runners/AbstractParcelizeBoxTest.kt index 6224d7f82dc..9397196550e 100644 --- a/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/runners/AbstractParcelizeBoxTest.kt +++ b/plugins/parcelize/parcelize-compiler/tests/org/jetbrains/kotlin/parcelize/test/runners/AbstractParcelizeBoxTest.kt @@ -35,7 +35,7 @@ import org.jetbrains.kotlin.test.frontend.fir.FirOutputArtifact import org.jetbrains.kotlin.test.frontend.fir.handlers.FirDiagnosticsHandler import org.jetbrains.kotlin.test.model.* import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerWithTargetBackendTest -import org.jetbrains.kotlin.test.runners.codegen.commonConfigurationForCodegenTest +import org.jetbrains.kotlin.test.runners.codegen.commonConfigurationForTest import org.jetbrains.kotlin.test.runners.codegen.configureCommonHandlersForBoxTest import org.jetbrains.kotlin.test.services.jvm.JvmBoxMainClassProvider import org.jetbrains.kotlin.test.services.service @@ -54,7 +54,7 @@ abstract class AbstractParcelizeBoxTestBase