Disable scripting plugin in JPS tests
JVM compiler loads scripting plugin by default,
which in turn performs script template discovery
in compile classpath.
Classloading and template discovery takes noticeable
amount of time in JPS tests, because of
relatively big number of short compilations.
Disabling scripting plugin in most JPS+JVM tests
speeds up JPS tests by ~8% compared to the result before all
optimizations.
Original commit: ea4fc0fb6b
This commit is contained in:
+1
-1
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.jps.targets.KotlinModuleBuildTarget
|
||||
/**
|
||||
* @see [jps-plugin/testData/incremental/cacheVersionChanged/README.md]
|
||||
*/
|
||||
abstract class AbstractIncrementalCacheVersionChangedTest : AbstractIncrementalJpsTest(allowNoFilesWithSuffixInTestData = true) {
|
||||
abstract class AbstractIncrementalCacheVersionChangedTest : AbstractIncrementalJvmJpsTest(allowNoFilesWithSuffixInTestData = true) {
|
||||
override fun performAdditionalModifications(modifications: List<Modification>) {
|
||||
val modifiedFiles = modifications.filterIsInstance<ModifyContent>().map { it.path }
|
||||
val targets = projectDescriptor.allModuleTargets
|
||||
|
||||
+3
@@ -44,6 +44,7 @@ import org.jetbrains.jps.model.java.JpsJavaExtensionService
|
||||
import org.jetbrains.jps.model.library.sdk.JpsSdk
|
||||
import org.jetbrains.jps.util.JpsPathUtil
|
||||
import org.jetbrains.kotlin.cli.common.KOTLIN_COMPILER_ENVIRONMENT_KEEPALIVE_PROPERTY
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2MetadataCompilerArguments
|
||||
import org.jetbrains.kotlin.config.IncrementalCompilation
|
||||
import org.jetbrains.kotlin.incremental.LookupSymbol
|
||||
@@ -510,6 +511,8 @@ abstract class AbstractIncrementalJpsTest(
|
||||
val out = getAbsolutePath("${module.name}/out")
|
||||
File(out).mkdirs()
|
||||
compilerArguments.destination = out
|
||||
} else if (compilerArguments is K2JVMCompilerArguments) {
|
||||
compilerArguments.disableDefaultScriptingPlugin = true
|
||||
}
|
||||
|
||||
module.jpsModule.container.setChild(
|
||||
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.jps.build
|
||||
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
|
||||
import org.jetbrains.kotlin.jps.model.k2JvmCompilerArguments
|
||||
|
||||
abstract class AbstractIncrementalJvmJpsTest(
|
||||
allowNoFilesWithSuffixInTestData: Boolean = false
|
||||
) : AbstractIncrementalJpsTest(allowNoFilesWithSuffixInTestData = allowNoFilesWithSuffixInTestData) {
|
||||
override fun overrideModuleSettings() {
|
||||
myProject.k2JvmCompilerArguments = K2JVMCompilerArguments().also {
|
||||
it.disableDefaultScriptingPlugin = true
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
@@ -88,6 +88,7 @@ abstract class AbstractJvmLookupTrackerTest : AbstractLookupTrackerTest() {
|
||||
)
|
||||
|
||||
val args = K2JVMCompilerArguments().apply {
|
||||
disableDefaultScriptingPlugin = true
|
||||
buildFile = moduleFile.canonicalPath
|
||||
reportOutputFiles = true
|
||||
}
|
||||
|
||||
+169
-169
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -28,7 +28,7 @@ import java.io.File
|
||||
|
||||
abstract class AbstractJvmProtoComparisonTest : AbstractProtoComparisonTest<LocalFileKotlinClass>() {
|
||||
override fun compileAndGetClasses(sourceDir: File, outputDir: File): Map<ClassId, LocalFileKotlinClass> {
|
||||
MockLibraryUtil.compileKotlin(sourceDir.path, outputDir)
|
||||
MockLibraryUtil.compileKotlin(sourceDir.path, outputDir, extraOptions = listOf("-Xdisable-default-scripting-plugin"))
|
||||
|
||||
val classFiles = outputDir.walkMatching { it.name.endsWith(".class") }
|
||||
val localClassFiles = classFiles.map { LocalFileKotlinClass.create(it)!! }
|
||||
|
||||
Reference in New Issue
Block a user