Introduce configureEnvironment, avoid 'createEnvironment' calls

This commit is contained in:
Mikhael Bogdanov
2020-02-25 10:03:10 +01:00
parent a795c38eb7
commit 9052ef06a7
6 changed files with 23 additions and 21 deletions
@@ -91,7 +91,7 @@ abstract class BaseDiagnosticsTest : KotlinMultiFileTestWithJava<TestModule, Tes
files: List<TestFile> files: List<TestFile>
) { ) {
environment = createEnvironment(wholeFile) environment = createEnvironment(wholeFile)
setupEnvironment(environment)
analyzeAndCheck(wholeFile, files) analyzeAndCheck(wholeFile, files)
} }
@@ -93,6 +93,10 @@ public abstract class KotlinMultiFileTestWithJava<M extends KotlinBaseTest.TestM
} }
protected void setupEnvironment(@NotNull KotlinCoreEnvironment environment) {
}
@NotNull @NotNull
protected ConfigurationKind getConfigurationKind() { protected ConfigurationKind getConfigurationKind() {
return ConfigurationKind.JDK_ONLY; return ConfigurationKind.JDK_ONLY;
@@ -54,12 +54,10 @@ abstract class AbstractFirBaseDiagnosticsTest : BaseDiagnosticsTest() {
} }
} }
override fun createEnvironment(file: File): KotlinCoreEnvironment { override fun setupEnvironment(environment: KotlinCoreEnvironment) {
return super.createEnvironment(file).apply { Extensions.getArea(environment.project)
Extensions.getArea(this.project) .getExtensionPoint(PsiElementFinder.EP_NAME)
.getExtensionPoint(PsiElementFinder.EP_NAME) .unregisterExtension(JavaElementFinder::class.java)
.unregisterExtension(JavaElementFinder::class.java)
}
} }
open fun analyzeAndCheckUnhandled(testDataFile: File, files: List<TestFile>, useLightTree: Boolean = false) { open fun analyzeAndCheckUnhandled(testDataFile: File, files: List<TestFile>, useLightTree: Boolean = false) {
@@ -6,15 +6,15 @@
package org.jetbrains.kotlinx.serialization package org.jetbrains.kotlinx.serialization
import org.jetbrains.kotlin.checkers.AbstractDiagnosticsTest import org.jetbrains.kotlin.checkers.AbstractDiagnosticsTest
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.cli.jvm.config.JvmClasspathRoot import org.jetbrains.kotlin.cli.jvm.config.JvmClasspathRoot
import org.jetbrains.kotlinx.serialization.compiler.extensions.SerializationComponentRegistrar import org.jetbrains.kotlinx.serialization.compiler.extensions.SerializationComponentRegistrar
import java.io.File
abstract class AbstractSerializationPluginDiagnosticTest : AbstractDiagnosticsTest() { abstract class AbstractSerializationPluginDiagnosticTest : AbstractDiagnosticsTest() {
private val runtimeLibraryPath = getSerializationLibraryRuntimeJar() private val runtimeLibraryPath = getSerializationLibraryRuntimeJar()
override fun createEnvironment(file: File) = super.createEnvironment(file).apply { override fun setupEnvironment(environment: KotlinCoreEnvironment) {
SerializationComponentRegistrar.registerExtensions(this.project) SerializationComponentRegistrar.registerExtensions(environment.project)
updateClasspath(listOf(JvmClasspathRoot(runtimeLibraryPath!!))) environment.updateClasspath(listOf(JvmClasspathRoot(runtimeLibraryPath!!)))
} }
} }
@@ -17,27 +17,24 @@
package org.jetbrains.kotlin.samWithReceiver package org.jetbrains.kotlin.samWithReceiver
import org.jetbrains.kotlin.checkers.AbstractDiagnosticsTest import org.jetbrains.kotlin.checkers.AbstractDiagnosticsTest
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.extensions.StorageComponentContainerContributor import org.jetbrains.kotlin.extensions.StorageComponentContainerContributor
import org.jetbrains.kotlin.scripting.configuration.ScriptingConfigurationKeys import org.jetbrains.kotlin.scripting.configuration.ScriptingConfigurationKeys
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
import org.jetbrains.kotlin.scripting.resolve.KotlinScriptDefinitionFromAnnotatedTemplate import org.jetbrains.kotlin.scripting.resolve.KotlinScriptDefinitionFromAnnotatedTemplate
import java.io.File
import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
import kotlin.script.extensions.SamWithReceiverAnnotations import kotlin.script.extensions.SamWithReceiverAnnotations
import kotlin.script.templates.ScriptTemplateDefinition import kotlin.script.templates.ScriptTemplateDefinition
abstract class AbstractSamWithReceiverScriptTest : AbstractDiagnosticsTest() { abstract class AbstractSamWithReceiverScriptTest : AbstractDiagnosticsTest() {
private companion object {
private val TEST_ANNOTATIONS = emptyList<String>()
}
override fun createEnvironment(file: File) = super.createEnvironment(file).apply { override fun setupEnvironment(environment: KotlinCoreEnvironment) {
StorageComponentContainerContributor.registerExtension(project, CliSamWithReceiverComponentContributor(TEST_ANNOTATIONS)) StorageComponentContainerContributor.registerExtension(environment.project, CliSamWithReceiverComponentContributor(emptyList()))
val def = ScriptDefinition.FromLegacy( val def = ScriptDefinition.FromLegacy(
defaultJvmScriptingHostConfiguration, defaultJvmScriptingHostConfiguration,
KotlinScriptDefinitionFromAnnotatedTemplate(ScriptForSamWithReceivers::class, emptyMap()) KotlinScriptDefinitionFromAnnotatedTemplate(ScriptForSamWithReceivers::class, emptyMap())
) )
configuration.add(ScriptingConfigurationKeys.SCRIPT_DEFINITIONS, def) environment.configuration.add(ScriptingConfigurationKeys.SCRIPT_DEFINITIONS, def)
} }
} }
@@ -17,15 +17,18 @@
package org.jetbrains.kotlin.samWithReceiver package org.jetbrains.kotlin.samWithReceiver
import org.jetbrains.kotlin.checkers.AbstractDiagnosticsTest import org.jetbrains.kotlin.checkers.AbstractDiagnosticsTest
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.extensions.StorageComponentContainerContributor import org.jetbrains.kotlin.extensions.StorageComponentContainerContributor
import java.io.File
abstract class AbstractSamWithReceiverTest : AbstractDiagnosticsTest() { abstract class AbstractSamWithReceiverTest : AbstractDiagnosticsTest() {
private companion object { private companion object {
private val TEST_ANNOTATIONS = listOf("SamWithReceiver") private val TEST_ANNOTATIONS = listOf("SamWithReceiver")
} }
override fun createEnvironment(file: File) = super.createEnvironment(file).apply { override fun setupEnvironment(environment: KotlinCoreEnvironment) {
StorageComponentContainerContributor.registerExtension(project, CliSamWithReceiverComponentContributor(TEST_ANNOTATIONS)) StorageComponentContainerContributor.registerExtension(
environment.project,
CliSamWithReceiverComponentContributor(TEST_ANNOTATIONS)
)
} }
} }