[FIR] Configure language version for FP test via env properties
This commit is contained in:
+3
-1
@@ -7,12 +7,14 @@ package org.jetbrains.kotlin.fir
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
|
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
|
||||||
|
|
||||||
|
private val LANGUAGE_VERSION: String = System.getProperty("fir.bench.language.version", "1.4")
|
||||||
|
|
||||||
class FullPipelineModularizedTest : AbstractFullPipelineModularizedTest() {
|
class FullPipelineModularizedTest : AbstractFullPipelineModularizedTest() {
|
||||||
|
|
||||||
override fun configureArguments(args: K2JVMCompilerArguments, moduleData: ModuleData) {
|
override fun configureArguments(args: K2JVMCompilerArguments, moduleData: ModuleData) {
|
||||||
args.useFir = true
|
args.useFir = true
|
||||||
args.useIR = true
|
args.useIR = true
|
||||||
args.apiVersion = "1.4"
|
args.apiVersion = LANGUAGE_VERSION
|
||||||
}
|
}
|
||||||
|
|
||||||
fun testTotalKotlin() {
|
fun testTotalKotlin() {
|
||||||
|
|||||||
@@ -13,17 +13,18 @@ val ideaSandboxDir: File by extra
|
|||||||
val ideaSdkPath: String
|
val ideaSdkPath: String
|
||||||
get() = IntellijRootUtils.getIntellijRootDir(rootProject).absolutePath
|
get() = IntellijRootUtils.getIntellijRootDir(rootProject).absolutePath
|
||||||
|
|
||||||
fun MutableList<String>.addModularizedTestArgs(prefix: String, path: String, benchFilter: String?) {
|
fun MutableList<String>.addModularizedTestArgs(prefix: String, path: String, languageVersion: String, benchFilter: String?) {
|
||||||
add("-${prefix}fir.bench.prefix=$path")
|
add("-${prefix}fir.bench.prefix=$path")
|
||||||
add("-${prefix}fir.bench.jps.dir=$path/test-project-model-dump")
|
add("-${prefix}fir.bench.jps.dir=$path/test-project-model-dump")
|
||||||
add("-${prefix}fir.bench.passes=1")
|
add("-${prefix}fir.bench.passes=1")
|
||||||
add("-${prefix}fir.bench.dump=true")
|
add("-${prefix}fir.bench.dump=true")
|
||||||
|
add("-${prefix}fir.bench.language.version=$languageVersion")
|
||||||
if (benchFilter != null) {
|
if (benchFilter != null) {
|
||||||
add("-${prefix}fir.bench.filter=$benchFilter")
|
add("-${prefix}fir.bench.filter=$benchFilter")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun generateVmParametersForJpsConfiguration(path: String, benchFilter: String?): String {
|
fun generateVmParametersForJpsConfiguration(path: String, languageVersion: String, benchFilter: String?): String {
|
||||||
val vmParameters = mutableListOf(
|
val vmParameters = mutableListOf(
|
||||||
"-ea",
|
"-ea",
|
||||||
"-XX:+HeapDumpOnOutOfMemoryError",
|
"-XX:+HeapDumpOnOutOfMemoryError",
|
||||||
@@ -40,13 +41,13 @@ fun generateVmParametersForJpsConfiguration(path: String, benchFilter: String?):
|
|||||||
"-Duse.jps=true",
|
"-Duse.jps=true",
|
||||||
"-Djava.awt.headless=true"
|
"-Djava.awt.headless=true"
|
||||||
)
|
)
|
||||||
vmParameters.addModularizedTestArgs(prefix = "D", path = path, benchFilter = benchFilter)
|
vmParameters.addModularizedTestArgs(prefix = "D", path = path, languageVersion = languageVersion, benchFilter = benchFilter)
|
||||||
return vmParameters.joinToString(" ")
|
return vmParameters.joinToString(" ")
|
||||||
}
|
}
|
||||||
|
|
||||||
fun generateArgsForGradleConfiguration(benchFilter: String?, path: String): String {
|
fun generateArgsForGradleConfiguration(path: String, languageVersion: String, benchFilter: String?): String {
|
||||||
val args = mutableListOf<String>()
|
val args = mutableListOf<String>()
|
||||||
args.addModularizedTestArgs(prefix = "P", path = path, benchFilter = benchFilter)
|
args.addModularizedTestArgs(prefix = "P", path = path, languageVersion = languageVersion, benchFilter = benchFilter)
|
||||||
return args.joinToString(" ")
|
return args.joinToString(" ")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -111,8 +112,8 @@ fun String.convertNameToRunConfigurationFile(prefix: String = ""): File {
|
|||||||
return rootDir.resolve(".idea/runConfigurations/${fileName}")
|
return rootDir.resolve(".idea/runConfigurations/${fileName}")
|
||||||
}
|
}
|
||||||
|
|
||||||
fun generateJpsConfiguration(name: String, testClassName: String, path: String, benchFilter: String?) {
|
fun generateJpsConfiguration(name: String, testClassName: String, path: String, languageVersion: String, benchFilter: String?) {
|
||||||
val vmParameters = generateVmParametersForJpsConfiguration(path, benchFilter)
|
val vmParameters = generateVmParametersForJpsConfiguration(path, languageVersion, benchFilter)
|
||||||
val content = generateXmlContentForJpsConfiguration(
|
val content = generateXmlContentForJpsConfiguration(
|
||||||
name = name,
|
name = name,
|
||||||
testClassName = testClassName,
|
testClassName = testClassName,
|
||||||
@@ -121,8 +122,8 @@ fun generateJpsConfiguration(name: String, testClassName: String, path: String,
|
|||||||
name.convertNameToRunConfigurationFile("JPS").writeText(content)
|
name.convertNameToRunConfigurationFile("JPS").writeText(content)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun generateGradleConfiguration(name: String, testClassName: String, path: String, benchFilter: String?) {
|
fun generateGradleConfiguration(name: String, testClassName: String, path: String, languageVersion: String, benchFilter: String?) {
|
||||||
val vmParameters = generateArgsForGradleConfiguration(benchFilter, path)
|
val vmParameters = generateArgsForGradleConfiguration(path, languageVersion, benchFilter)
|
||||||
val content = generateXmlContentForGradleConfiguration(
|
val content = generateXmlContentForGradleConfiguration(
|
||||||
name = name,
|
name = name,
|
||||||
testClassName = testClassName,
|
testClassName = testClassName,
|
||||||
@@ -131,12 +132,18 @@ fun generateGradleConfiguration(name: String, testClassName: String, path: Strin
|
|||||||
name.convertNameToRunConfigurationFile().writeText(content)
|
name.convertNameToRunConfigurationFile().writeText(content)
|
||||||
}
|
}
|
||||||
|
|
||||||
infix fun <A : Any, B> A?.toNotNull(b: B): Pair<A, B>? = this?.to(b)
|
data class Configuration(val path: String, val name: String, val languageVersion: String) {
|
||||||
|
companion object {
|
||||||
|
operator fun invoke(path: String?, name: String, languageVersion: String): Configuration? {
|
||||||
|
return path?.let { Configuration(it, name, languageVersion) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
val testDataPathList = listOfNotNull(
|
val testDataPathList = listOfNotNull(
|
||||||
kotlinBuildProperties.pathToKotlinModularizedTestData toNotNull "Kotlin",
|
Configuration(kotlinBuildProperties.pathToKotlinModularizedTestData, "Kotlin", "1.4"),
|
||||||
kotlinBuildProperties.pathToIntellijModularizedTestData toNotNull "IntelliJ",
|
Configuration(kotlinBuildProperties.pathToIntellijModularizedTestData, "IntelliJ", "1.4"),
|
||||||
kotlinBuildProperties.pathToYoutrackModularizedTestData toNotNull "YouTrack"
|
Configuration(kotlinBuildProperties.pathToYoutrackModularizedTestData, "YouTrack", "1.5")
|
||||||
)
|
)
|
||||||
|
|
||||||
val additionalConfigurationsWithFilter = mapOf(
|
val additionalConfigurationsWithFilter = mapOf(
|
||||||
@@ -147,7 +154,7 @@ val additionalConfigurationsWithFilter = mapOf(
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
for ((path, projectName) in testDataPathList) {
|
for ((path, projectName, languageVersion) in testDataPathList) {
|
||||||
rootProject.afterEvaluate {
|
rootProject.afterEvaluate {
|
||||||
val configurations = mutableListOf<Pair<String, String?>>(
|
val configurations = mutableListOf<Pair<String, String?>>(
|
||||||
"Full $projectName" to null
|
"Full $projectName" to null
|
||||||
@@ -160,11 +167,11 @@ for ((path, projectName) in testDataPathList) {
|
|||||||
val jpsBuildEnabled = kotlinBuildProperties.isInJpsBuildIdeaSync
|
val jpsBuildEnabled = kotlinBuildProperties.isInJpsBuildIdeaSync
|
||||||
|
|
||||||
for ((name, benchFilter) in configurations) {
|
for ((name, benchFilter) in configurations) {
|
||||||
generateGradleConfiguration("[MT] $name", "FirResolveModularizedTotalKotlinTest", path, benchFilter)
|
generateGradleConfiguration("[MT] $name", "FirResolveModularizedTotalKotlinTest", path, languageVersion, benchFilter)
|
||||||
generateGradleConfiguration("[FP] $name", "FullPipelineModularizedTest", path, benchFilter)
|
generateGradleConfiguration("[FP] $name", "FullPipelineModularizedTest", path, languageVersion, benchFilter)
|
||||||
if (jpsBuildEnabled) {
|
if (jpsBuildEnabled) {
|
||||||
generateJpsConfiguration("[MT-JPS] $name", "FirResolveModularizedTotalKotlinTest", path, benchFilter)
|
generateJpsConfiguration("[MT-JPS] $name", "FirResolveModularizedTotalKotlinTest", path, languageVersion, benchFilter)
|
||||||
generateJpsConfiguration("[FP-JPS] $name", "FullPipelineModularizedTest", path, benchFilter)
|
generateJpsConfiguration("[FP-JPS] $name", "FullPipelineModularizedTest", path, languageVersion, benchFilter)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user