From f6e49776f87886940f3cab8d648a3054571b9905 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Mon, 23 Aug 2021 13:33:12 +0300 Subject: [PATCH] [Test] Add fir.bench.use.build.file flag to FP intellij configurations --- .../modularizedTestConfigurations.gradle.kts | 47 ++++++++++--------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/gradle/modularizedTestConfigurations.gradle.kts b/gradle/modularizedTestConfigurations.gradle.kts index deb316cfd06..120eceb6e1c 100644 --- a/gradle/modularizedTestConfigurations.gradle.kts +++ b/gradle/modularizedTestConfigurations.gradle.kts @@ -13,18 +13,20 @@ val ideaSandboxDir: File by extra val ideaSdkPath: String get() = IntellijRootUtils.getIntellijRootDir(rootProject).absolutePath -fun MutableList.addModularizedTestArgs(prefix: String, path: String, languageVersion: String, benchFilter: String?) { +fun MutableList.addModularizedTestArgs(prefix: String, path: String, additionalParameters: Map, benchFilter: String?) { add("-${prefix}fir.bench.prefix=$path") add("-${prefix}fir.bench.jps.dir=$path/test-project-model-dump") add("-${prefix}fir.bench.passes=1") add("-${prefix}fir.bench.dump=true") - add("-${prefix}fir.bench.language.version=$languageVersion") + for ((name, value) in additionalParameters) { + add("-$prefix$name=$value") + } if (benchFilter != null) { add("-${prefix}fir.bench.filter=$benchFilter") } } -fun generateVmParametersForJpsConfiguration(path: String, languageVersion: String, benchFilter: String?): String { +fun generateVmParametersForJpsConfiguration(path: String, additionalParameters: Map, benchFilter: String?): String { val vmParameters = mutableListOf( "-ea", "-XX:+HeapDumpOnOutOfMemoryError", @@ -41,13 +43,13 @@ fun generateVmParametersForJpsConfiguration(path: String, languageVersion: Strin "-Duse.jps=true", "-Djava.awt.headless=true" ) - vmParameters.addModularizedTestArgs(prefix = "D", path = path, languageVersion = languageVersion, benchFilter = benchFilter) + vmParameters.addModularizedTestArgs(prefix = "D", path = path, additionalParameters = additionalParameters, benchFilter = benchFilter) return vmParameters.joinToString(" ") } -fun generateArgsForGradleConfiguration(path: String, languageVersion: String, benchFilter: String?): String { +fun generateArgsForGradleConfiguration(path: String, additionalParameters: Map, benchFilter: String?): String { val args = mutableListOf() - args.addModularizedTestArgs(prefix = "P", path = path, languageVersion = languageVersion, benchFilter = benchFilter) + args.addModularizedTestArgs(prefix = "P", path = path, additionalParameters = additionalParameters, benchFilter = benchFilter) return args.joinToString(" ") } @@ -112,8 +114,8 @@ fun String.convertNameToRunConfigurationFile(prefix: String = ""): File { return rootDir.resolve(".idea/runConfigurations/${fileName}") } -fun generateJpsConfiguration(name: String, testClassName: String, path: String, languageVersion: String, benchFilter: String?) { - val vmParameters = generateVmParametersForJpsConfiguration(path, languageVersion, benchFilter) +fun generateJpsConfiguration(name: String, testClassName: String, path: String, additionalParameters: Map, benchFilter: String?) { + val vmParameters = generateVmParametersForJpsConfiguration(path, additionalParameters, benchFilter) val content = generateXmlContentForJpsConfiguration( name = name, testClassName = testClassName, @@ -122,8 +124,8 @@ fun generateJpsConfiguration(name: String, testClassName: String, path: String, name.convertNameToRunConfigurationFile("JPS").writeText(content) } -fun generateGradleConfiguration(name: String, testClassName: String, path: String, languageVersion: String, benchFilter: String?) { - val vmParameters = generateArgsForGradleConfiguration(path, languageVersion, benchFilter) +fun generateGradleConfiguration(name: String, testClassName: String, path: String, additionalParameters: Map, benchFilter: String?) { + val vmParameters = generateArgsForGradleConfiguration(path, additionalParameters, benchFilter) val content = generateXmlContentForGradleConfiguration( name = name, testClassName = testClassName, @@ -132,18 +134,21 @@ fun generateGradleConfiguration(name: String, testClassName: String, path: Strin name.convertNameToRunConfigurationFile().writeText(content) } -data class Configuration(val path: String, val name: String, val languageVersion: String) { +data class Configuration(val path: String, val name: String, val additionalParameters: Map = emptyMap()) { companion object { - operator fun invoke(path: String?, name: String, languageVersion: String): Configuration? { - return path?.let { Configuration(it, name, languageVersion) } + operator fun invoke(path: String?, name: String, additionalParameters: Map = emptyMap()): Configuration? { + return path?.let { Configuration(it, name, additionalParameters) } } } } +val languageVersionKey = "fir.bench.language.version" +val useBuildFileKey = "fir.bench.use.build.file" + val testDataPathList = listOfNotNull( - Configuration(kotlinBuildProperties.pathToKotlinModularizedTestData, "Kotlin", "1.4"), - Configuration(kotlinBuildProperties.pathToIntellijModularizedTestData, "IntelliJ", "1.4"), - Configuration(kotlinBuildProperties.pathToYoutrackModularizedTestData, "YouTrack", "1.5") + Configuration(kotlinBuildProperties.pathToKotlinModularizedTestData, "Kotlin"), + Configuration(kotlinBuildProperties.pathToIntellijModularizedTestData, "IntelliJ", mapOf(useBuildFileKey to "true")), + Configuration(kotlinBuildProperties.pathToYoutrackModularizedTestData, "YouTrack", mapOf(languageVersionKey to "1.5")) ) val additionalConfigurationsWithFilter = mapOf( @@ -154,7 +159,7 @@ val additionalConfigurationsWithFilter = mapOf( ) ) -for ((path, projectName, languageVersion) in testDataPathList) { +for ((path, projectName, additionalParameters) in testDataPathList) { rootProject.afterEvaluate { val configurations = mutableListOf>( "Full $projectName" to null @@ -167,11 +172,11 @@ for ((path, projectName, languageVersion) in testDataPathList) { val jpsBuildEnabled = kotlinBuildProperties.isInJpsBuildIdeaSync for ((name, benchFilter) in configurations) { - generateGradleConfiguration("[MT] $name", "FirResolveModularizedTotalKotlinTest", path, languageVersion, benchFilter) - generateGradleConfiguration("[FP] $name", "FullPipelineModularizedTest", path, languageVersion, benchFilter) + generateGradleConfiguration("[MT] $name", "FirResolveModularizedTotalKotlinTest", path, additionalParameters, benchFilter) + generateGradleConfiguration("[FP] $name", "FullPipelineModularizedTest", path, additionalParameters, benchFilter) if (jpsBuildEnabled) { - generateJpsConfiguration("[MT-JPS] $name", "FirResolveModularizedTotalKotlinTest", path, languageVersion, benchFilter) - generateJpsConfiguration("[FP-JPS] $name", "FullPipelineModularizedTest", path, languageVersion, benchFilter) + generateJpsConfiguration("[MT-JPS] $name", "FirResolveModularizedTotalKotlinTest", path, additionalParameters, benchFilter) + generateJpsConfiguration("[FP-JPS] $name", "FullPipelineModularizedTest", path, additionalParameters, benchFilter) } } }