[LL FIR] generate resolution tests over codegen/box testData

Such testData can contain contract violations and other resolution
problems, so we should check them as well

^KT-62776
^KT-62832
^KT-62834
^KT-62836
This commit is contained in:
Dmitrii Gridin
2023-10-23 17:06:34 +02:00
committed by Space Team
parent 052b9f01af
commit 2eb761adae
15 changed files with 112335 additions and 32 deletions
@@ -6,18 +6,18 @@
package org.jetbrains.kotlin.test.runners.codegen
import org.jetbrains.kotlin.test.Constructor
import org.jetbrains.kotlin.test.FirParser
import org.jetbrains.kotlin.test.TargetBackend
import org.jetbrains.kotlin.test.backend.ir.CodegenWithIrFakeOverrideGeneratorSuppressor
import org.jetbrains.kotlin.test.backend.ir.IrBackendInput
import org.jetbrains.kotlin.test.backend.ir.IrDiagnosticsHandler
import org.jetbrains.kotlin.test.backend.ir.JvmIrBackendFacade
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
import org.jetbrains.kotlin.test.builders.configureFirHandlersStep
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.USE_PSI_CLASS_FILES_READING
import org.jetbrains.kotlin.test.directives.ConfigurationDirectives.WITH_STDLIB
import org.jetbrains.kotlin.test.FirParser
import org.jetbrains.kotlin.test.backend.ir.CodegenWithIrFakeOverrideGeneratorSuppressor
import org.jetbrains.kotlin.test.backend.ir.IrDiagnosticsHandler
import org.jetbrains.kotlin.test.builders.configureIrHandlersStep
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.ENABLE_IR_FAKE_OVERRIDE_GENERATION
import org.jetbrains.kotlin.test.directives.ConfigurationDirectives.WITH_STDLIB
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.USE_PSI_CLASS_FILES_READING
import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives
import org.jetbrains.kotlin.test.directives.configureFirParser
import org.jetbrains.kotlin.test.frontend.fir.Fir2IrResultsConverter
@@ -54,12 +54,6 @@ abstract class AbstractFirBlackBoxCodegenTestBase(
-USE_PSI_CLASS_FILES_READING
}
forTestsMatching("*WithStdLib/*") {
defaultDirectives {
+WITH_STDLIB
}
}
configureFirHandlersStep {
useHandlersAtFirst(
::FirDumpHandler,
@@ -79,11 +73,21 @@ abstract class AbstractFirBlackBoxCodegenTestBase(
configureDumpHandlersForCodegenTest()
forTestsMatching("compiler/testData/codegen/box/properties/backingField/*") {
defaultDirectives {
LanguageSettingsDirectives.LANGUAGE with "+ExplicitBackingFields"
}
}
baseFirBlackBoxCodegenTestDirectivesConfiguration()
}
}
}
fun TestConfigurationBuilder.baseFirBlackBoxCodegenTestDirectivesConfiguration() {
forTestsMatching("*WithStdLib/*") {
defaultDirectives {
+WITH_STDLIB
}
}
forTestsMatching("compiler/testData/codegen/box/properties/backingField/*") {
defaultDirectives {
LanguageSettingsDirectives.LANGUAGE with "+ExplicitBackingFields"
}
}
}
@@ -1,5 +1,5 @@
/*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Copyright 2010-2023 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.
*/
@@ -19,15 +19,10 @@ 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.CodegenTestDirectives.IGNORE_DEXING
import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.USE_JAVAC_BASED_ON_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.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.*
@@ -82,13 +77,7 @@ abstract class AbstractJvmBlackBoxCodegenTestBase<R : ResultingArtifact.Frontend
}
}
forTestsMatching("compiler/testData/codegen/boxModernJdk/testsWithJava11/*") {
configureModernJavaTest(TestJdkKind.FULL_JDK_11, JvmTarget.JVM_11)
}
forTestsMatching("compiler/testData/codegen/boxModernJdk/testsWithJava17/*") {
configureModernJavaTest(TestJdkKind.FULL_JDK_17, JvmTarget.JVM_17)
}
configureModernJavaWhenNeeded()
forTestsMatching("compiler/testData/codegen/box/coroutines/varSpilling/debugMode/*") {
defaultDirectives {
@@ -112,3 +101,13 @@ abstract class AbstractJvmBlackBoxCodegenTestBase<R : ResultingArtifact.Frontend
enableMetaInfoHandler()
}
}
fun TestConfigurationBuilder.configureModernJavaWhenNeeded() {
forTestsMatching("compiler/testData/codegen/boxModernJdk/testsWithJava11/*") {
configureModernJavaTest(TestJdkKind.FULL_JDK_11, JvmTarget.JVM_11)
}
forTestsMatching("compiler/testData/codegen/boxModernJdk/testsWithJava17/*") {
configureModernJavaTest(TestJdkKind.FULL_JDK_17, JvmTarget.JVM_17)
}
}