[Build] Add ability to choose which run configurations for modularized tests should be generated

This commit is contained in:
Dmitriy Novozhilov
2022-01-21 17:55:08 +03:00
parent b8e728f0cb
commit b9c22a5e5e
3 changed files with 60 additions and 7 deletions
@@ -22,6 +22,15 @@ val KotlinBuildProperties.ignoreTestFailures: Boolean get() = getBoolean("ignore
val KotlinBuildProperties.disableWerror: Boolean
get() = getBoolean("kotlin.build.disable.werror") || useFir || isInJpsBuildIdeaSync || getBoolean("test.progressive.mode")
val KotlinBuildProperties.generateModularizedConfigurations: Boolean
get() = getBoolean("kotlin.fir.modularized.mt.configurations", false)
val KotlinBuildProperties.generateFullPipelineConfigurations: Boolean
get() = getBoolean("kotlin.fir.modularized.fp.configurations", false)
val KotlinBuildProperties.generateAdditionalConfigurations: Boolean
get() = getBoolean("kotlin.fir.modularized.additional.configurations", false)
val KotlinBuildProperties.pathToKotlinModularizedTestData: String?
get() = getOrNull("kotlin.fir.modularized.testdata.kotlin") as? String
+7
View File
@@ -74,6 +74,13 @@ org.gradle.vfs.watch=true
# Those properties are used to automatically generate run configurations for modularized
# and full pipeline tests for different sets of test data
# Generate ModularizedTest configurations
#kotlin.fir.modularized.mt.configurations=true
# Generate FullPipeline configurations
#kotlin.fir.modularized.fp.configurations=true
# Generate additional configurations for Kotlin project
#kotlin.fir.modularized.additional.configurations
# Specify paths to projects for modularized tests
#kotlin.fir.modularized.testdata.kotlin=/path/to/kotlin/project/testdata
#kotlin.fir.modularized.testdata.intellij=/path/to/intellij/project/testdata
#kotlin.fir.modularized.testdata.youtrack=/path/to/youtrack/project/testdata
@@ -159,24 +159,61 @@ val additionalConfigurationsWithFilter = mapOf(
)
)
val generateMT = kotlinBuildProperties.generateModularizedConfigurations
val generateFP = kotlinBuildProperties.generateFullPipelineConfigurations
val generateAdditionalConfigurations = kotlinBuildProperties.generateAdditionalConfigurations
for ((path, projectName, additionalParameters) in testDataPathList) {
rootProject.afterEvaluate {
val configurations = mutableListOf<Pair<String, String?>>(
"Full $projectName" to null
)
additionalConfigurationsWithFilter[projectName]?.let {
configurations.addAll(it)
if (generateAdditionalConfigurations) {
additionalConfigurationsWithFilter[projectName]?.let {
configurations.addAll(it)
}
}
val jpsBuildEnabled = kotlinBuildProperties.isInJpsBuildIdeaSync
for ((name, benchFilter) in configurations) {
generateGradleConfiguration("[MT] $name", "FirResolveModularizedTotalKotlinTest", path, additionalParameters, benchFilter)
generateGradleConfiguration("[FP] $name", "FullPipelineModularizedTest", path, additionalParameters, benchFilter)
if (generateMT) {
generateGradleConfiguration(
"[MT] $name",
"FirResolveModularizedTotalKotlinTest",
path,
additionalParameters,
benchFilter
)
}
if (generateFP) {
generateGradleConfiguration(
"[FP] $name",
"FullPipelineModularizedTest",
path,
additionalParameters,
benchFilter
)
}
if (jpsBuildEnabled) {
generateJpsConfiguration("[MT-JPS] $name", "FirResolveModularizedTotalKotlinTest", path, additionalParameters, benchFilter)
generateJpsConfiguration("[FP-JPS] $name", "FullPipelineModularizedTest", path, additionalParameters, benchFilter)
if (generateMT) {
generateJpsConfiguration(
"[MT-JPS] $name",
"FirResolveModularizedTotalKotlinTest",
path,
additionalParameters,
benchFilter
)
}
if (generateFP) {
generateJpsConfiguration(
"[FP-JPS] $name",
"FullPipelineModularizedTest",
path,
additionalParameters,
benchFilter
)
}
}
}
}