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
@@ -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)
)
}
}