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>
) {
environment = createEnvironment(wholeFile)
setupEnvironment(environment)
analyzeAndCheck(wholeFile, files)
}
@@ -93,6 +93,10 @@ public abstract class KotlinMultiFileTestWithJava<M extends KotlinBaseTest.TestM
}
protected void setupEnvironment(@NotNull KotlinCoreEnvironment environment) {
}
@NotNull
protected ConfigurationKind getConfigurationKind() {
return ConfigurationKind.JDK_ONLY;
@@ -54,12 +54,10 @@ abstract class AbstractFirBaseDiagnosticsTest : BaseDiagnosticsTest() {
}
}
override fun createEnvironment(file: File): KotlinCoreEnvironment {
return super.createEnvironment(file).apply {
Extensions.getArea(this.project)
.getExtensionPoint(PsiElementFinder.EP_NAME)
.unregisterExtension(JavaElementFinder::class.java)
}
override fun setupEnvironment(environment: KotlinCoreEnvironment) {
Extensions.getArea(environment.project)
.getExtensionPoint(PsiElementFinder.EP_NAME)
.unregisterExtension(JavaElementFinder::class.java)
}
open fun analyzeAndCheckUnhandled(testDataFile: File, files: List<TestFile>, useLightTree: Boolean = false) {
@@ -6,15 +6,15 @@
package org.jetbrains.kotlinx.serialization
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.kotlinx.serialization.compiler.extensions.SerializationComponentRegistrar
import java.io.File
abstract class AbstractSerializationPluginDiagnosticTest : AbstractDiagnosticsTest() {
private val runtimeLibraryPath = getSerializationLibraryRuntimeJar()
override fun createEnvironment(file: File) = super.createEnvironment(file).apply {
SerializationComponentRegistrar.registerExtensions(this.project)
updateClasspath(listOf(JvmClasspathRoot(runtimeLibraryPath!!)))
override fun setupEnvironment(environment: KotlinCoreEnvironment) {
SerializationComponentRegistrar.registerExtensions(environment.project)
environment.updateClasspath(listOf(JvmClasspathRoot(runtimeLibraryPath!!)))
}
}
@@ -17,27 +17,24 @@
package org.jetbrains.kotlin.samWithReceiver
import org.jetbrains.kotlin.checkers.AbstractDiagnosticsTest
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.extensions.StorageComponentContainerContributor
import org.jetbrains.kotlin.scripting.configuration.ScriptingConfigurationKeys
import org.jetbrains.kotlin.scripting.definitions.ScriptDefinition
import org.jetbrains.kotlin.scripting.resolve.KotlinScriptDefinitionFromAnnotatedTemplate
import java.io.File
import kotlin.script.experimental.jvm.defaultJvmScriptingHostConfiguration
import kotlin.script.extensions.SamWithReceiverAnnotations
import kotlin.script.templates.ScriptTemplateDefinition
abstract class AbstractSamWithReceiverScriptTest : AbstractDiagnosticsTest() {
private companion object {
private val TEST_ANNOTATIONS = emptyList<String>()
}
override fun createEnvironment(file: File) = super.createEnvironment(file).apply {
StorageComponentContainerContributor.registerExtension(project, CliSamWithReceiverComponentContributor(TEST_ANNOTATIONS))
override fun setupEnvironment(environment: KotlinCoreEnvironment) {
StorageComponentContainerContributor.registerExtension(environment.project, CliSamWithReceiverComponentContributor(emptyList()))
val def = ScriptDefinition.FromLegacy(
defaultJvmScriptingHostConfiguration,
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
import org.jetbrains.kotlin.checkers.AbstractDiagnosticsTest
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.extensions.StorageComponentContainerContributor
import java.io.File
abstract class AbstractSamWithReceiverTest : AbstractDiagnosticsTest() {
private companion object {
private val TEST_ANNOTATIONS = listOf("SamWithReceiver")
}
override fun createEnvironment(file: File) = super.createEnvironment(file).apply {
StorageComponentContainerContributor.registerExtension(project, CliSamWithReceiverComponentContributor(TEST_ANNOTATIONS))
override fun setupEnvironment(environment: KotlinCoreEnvironment) {
StorageComponentContainerContributor.registerExtension(
environment.project,
CliSamWithReceiverComponentContributor(TEST_ANNOTATIONS)
)
}
}