[Gradle][K/N] Don't use Gradle daemon <= 6.9 on macOS arm64

Native Apple Silicon support was added in 6.9. Older versions suffer
from inability to set environment variables in the daemon process
This commit is contained in:
Pavel Punegov
2022-02-03 19:37:41 +03:00
committed by Space
parent da3f81c5da
commit 1ce7286c86
2 changed files with 14 additions and 5 deletions
@@ -24,6 +24,8 @@ import org.jetbrains.kotlin.gradle.testbase.readAndCleanupTestResults
import org.jetbrains.kotlin.gradle.testbase.addPluginManagementToSettings
import org.jetbrains.kotlin.gradle.util.*
import org.jetbrains.kotlin.gradle.util.modify
import org.jetbrains.kotlin.konan.target.HostManager
import org.jetbrains.kotlin.konan.target.KonanTarget
import org.jetbrains.kotlin.test.RunnerWithMuteInDatabase
import org.jetbrains.kotlin.test.util.trimTrailingWhitespaces
import org.junit.After
@@ -418,10 +420,17 @@ abstract class BaseGradleIT {
) {
val wrapperVersion = chooseWrapperVersionOrFinishTest()
val env = createEnvironmentVariablesMap(options)
// TODO: remove this when the minimal Gradle version is >= 6.9
val buildOptions = if (HostManager.host == KonanTarget.MACOS_ARM64) {
val minSupportedMacAArch64Version = GradleVersion.version("6.9")
val withDaemon = (GradleVersion.version(wrapperVersion) >= minSupportedMacAArch64Version)
options.copy(withDaemon = withDaemon && options.withDaemon)
} else options
val env = createEnvironmentVariablesMap(buildOptions)
val wrapperDir = prepareWrapper(wrapperVersion, env)
val cmd = createBuildCommand(wrapperDir, params, options)
val cmd = createBuildCommand(wrapperDir, params, buildOptions)
if (!projectDir.exists()) {
setupWorkingDir()
@@ -431,7 +440,7 @@ abstract class BaseGradleIT {
var result: ProcessRunResult? = null
try {
result = runProcess(cmd, projectDir, env, options)
result = runProcess(cmd, projectDir, env, buildOptions)
CompiledProject(this, result.output, result.exitCode).check()
} catch (t: Throwable) {
println("<=== Test build: ${this.projectName} $cmd ===>")
@@ -667,14 +667,14 @@ class GeneralNativeIT : BaseGradleIT() {
}
// Check that setting new value to tracked environment variable triggers tests rerun
build("check", options = defaultBuildOptions().copy(withDaemon = false, androidHome = projectDir)) {
build("check", options = defaultBuildOptions().copy(androidHome = projectDir)) {
assertSuccessful()
assertTasksExecuted(*testsToExecute.toTypedArray())
assertTasksSkipped(*testsToSkip.toTypedArray())
}
build("check", options = defaultBuildOptions().copy(withDaemon = false, androidHome = projectDir)) {
build("check", options = defaultBuildOptions().copy(androidHome = projectDir)) {
assertSuccessful()
assertTasksUpToDate(*testsToExecute.toTypedArray())