From 93230d72f53bf74a7d8351bde0c07bcc0e57057a Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Fri, 26 Mar 2021 15:20:22 +0100 Subject: [PATCH] Add build option to control Gradle parallelism. Limit workers count, so when running tests parallel, they will not compete over CPU usage. ^KT-45744 In Progress --- .../jetbrains/kotlin/gradle/testbase/KGPBaseTest.kt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/KGPBaseTest.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/KGPBaseTest.kt index a8ff41a7b64..e8bb3e3ab38 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/KGPBaseTest.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/KGPBaseTest.kt @@ -42,7 +42,9 @@ abstract class KGPBaseTest { val kotlinVersion: String = KOTLIN_VERSION, val warningMode: WarningMode = WarningMode.Fail, val configurationCache: Boolean = false, - val configurationCacheProblems: BaseGradleIT.ConfigurationCacheProblems = BaseGradleIT.ConfigurationCacheProblems.FAIL + val configurationCacheProblems: BaseGradleIT.ConfigurationCacheProblems = BaseGradleIT.ConfigurationCacheProblems.FAIL, + val parallel: Boolean = true, + val maxWorkers: Int = (Runtime.getRuntime().availableProcessors() / 4 - 1).coerceAtLeast(2), ) { fun toArguments( gradleVersion: GradleVersion @@ -67,6 +69,12 @@ abstract class KGPBaseTest { arguments.add("-Dorg.gradle.unsafe.configuration-cache=$configurationCache") arguments.add("-Dorg.gradle.unsafe.configuration-cache-problems=${configurationCacheProblems.name.toLowerCase()}") } + if (parallel) { + arguments.add("--parallel") + arguments.add("--max-workers=$maxWorkers") + } else { + arguments.add("--no-parallel") + } return arguments.toList() }