From 4e4508de2bfc09c3372017748340d5d72fb8e19d Mon Sep 17 00:00:00 2001 From: Ivan Gavrilovic Date: Tue, 3 May 2022 20:19:42 +0200 Subject: [PATCH] KT-52243: Fix cacheability of CInteropProcess Remove manual up-to-date checks that were preventing task from being retrieved from the build cache. When outputs are not present, task would always run because of https://github.com/gradle/gradle/issues/9095. Test: CommonizerIT --- .../jetbrains/kotlin/gradle/CommonizerIT.kt | 23 +++++++++++++++++++ .../targets/native/tasks/KotlinNativeTasks.kt | 4 ---- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/CommonizerIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/CommonizerIT.kt index 524673652b4..4a05d217913 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/CommonizerIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/CommonizerIT.kt @@ -675,6 +675,29 @@ class CommonizerIT : BaseGradleIT() { } } + @Test + fun `test cinterop caching`() { + with(preparedProject("commonizeCurlInterop")) { + val localBuildCacheDir = projectDir.resolve("local-build-cache-dir").also { assertTrue(it.mkdirs()) } + gradleSettingsScript().appendText(""" + + buildCache { + local { + directory = "$localBuildCacheDir" + } + } + """.trimIndent() + ) + build(":commonize", options = defaultBuildOptions().copy(withBuildCache = true)) { + assertTasksExecuted(":cinteropCurlTargetA", ":cinteropCurlTargetB") + } + build(":clean") {} + build(":commonize", options = defaultBuildOptions().copy(withBuildCache = true)) { + assertTasksRetrievedFromCache(":cinteropCurlTargetA", ":cinteropCurlTargetB") + } + } + } + private fun preparedProject(name: String): Project { return Project(name).apply { setupWorkingDir() diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt index 784cf077647..aee31a19e9b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/tasks/KotlinNativeTasks.kt @@ -1094,10 +1094,6 @@ open class CInteropProcess @Inject constructor(@get:Internal val settings: Defau val outputFile: File get() = outputFileProvider.get() - init { - outputs.upToDateWhen { outputFile.exists() } - } - // Inputs and outputs. @OutputFile