From 50b892f2f155565b16a4fe9deb5a7f2a9663234b Mon Sep 17 00:00:00 2001 From: Anton Lakotka Date: Tue, 11 Oct 2022 09:55:30 +0200 Subject: [PATCH] [Gradle] Update Configuration Cache test for Native tasks Exclude Metadata Processing tasks that are not compatible yet ^KT-54339 Verification Pending --- .../kotlin/gradle/ConfigurationCacheIT.kt | 62 ++++++++++++------- .../lib/src/commonMain/kotlin/Foo.kt | 2 +- .../lib/src/commonTest/kotlin/CommonTest.kt | 2 +- 3 files changed, 40 insertions(+), 26 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationCacheIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationCacheIT.kt index f7cf97c7506..188853332be 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationCacheIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationCacheIT.kt @@ -11,6 +11,7 @@ import org.gradle.util.GradleVersion import org.jetbrains.kotlin.gradle.report.BuildReportType import org.jetbrains.kotlin.gradle.targets.js.dukat.ExternalsOutputFormat import org.jetbrains.kotlin.gradle.testbase.* +import org.jetbrains.kotlin.konan.target.HostManager import org.junit.jupiter.api.DisplayName @DisplayName("Configuration cache") @@ -81,32 +82,45 @@ class ConfigurationCacheIT : AbstractConfigurationCacheIT() { @GradleTestVersions(minVersion = TestVersions.Gradle.G_7_4) @GradleTest fun testNativeTasks(gradleVersion: GradleVersion) { + val expectedTasks = mutableListOf( + ":lib:cinteropMyCinteropLinuxX64", + ":lib:commonizeCInterop", + ":lib:compileKotlinLinuxX64", + ":lib:copyCinteropMyCinteropLinuxX64", + ":lib:linkExecutableDebugExecutableLinuxX64", + ":lib:linkSharedDebugSharedLinuxX64", + ":lib:linkStaticDebugStaticLinuxX64", + ":lib:linkDebugTestLinuxX64", + ) + + if (HostManager.hostIsMac) { + expectedTasks += listOf( + ":lib:cinteropMyCinteropIosX64", + ":lib:compileKotlinIosX64", + ":lib:copyCinteropMyCinteropIosX64", + ":lib:assembleMyframeDebugFrameworkIosArm64", + ":lib:assembleMyfatframeDebugFatFramework", + ":lib:assembleLibDebugXCFramework", + ":lib:compileTestKotlinIosX64", + ":lib:linkDebugTestIosX64", + ) + } + project("native-configuration-cache", gradleVersion) { - val buildOptions = defaultBuildOptions.copy( - configurationCacheProblems = BaseGradleIT.ConfigurationCacheProblems.FAIL, - warningMode = WarningMode.All - ) - // These tasks currently don't support Configuration Cache and marked as [Task::notCompatibleWithConfigurationCache] - val configCacheIncompatibleTaskTypes = listOf( - "CInteropMetadataDependencyTransformationTask", - "MetadataDependencyTransformationTask" - ) - - build("build", buildOptions = buildOptions) { - // Reduce the problem numbers when a Task become compatible with GCC. - // When all tasks support GCC, replace these assertions with `testConfigurationCacheOf` - assertOutputContains("4 problems were found storing the configuration cache, 2 of which seem unique.") - configCacheIncompatibleTaskTypes.forEach { taskType -> - assertOutputContains( - """Task `\S+` of type `[\w.]+$taskType`: .+(at execution time is unsupported)|(not supported with the configuration cache)""" - .toRegex() + testConfigurationCacheOf( + "build", + executedTaskNames = expectedTasks, + checkConfigurationCacheFileReport = false, + buildOptions = defaultBuildOptions.copy( + configurationCacheProblems = BaseGradleIT.ConfigurationCacheProblems.FAIL, + warningMode = WarningMode.All, + freeArgs = listOf( + // remove after KT-49933 is fixed + "-x", ":lib:transformCommonMainDependenciesMetadata", + "-x", ":lib:transformCommonMainCInteropDependenciesMetadata", ) - } - - // TODO: Enable `warningMode = Fail` back and remove these asserts when KGP supports Gradle 8.0 - assertOutputContains("The TestReport.destinationDir property has been deprecated.") - assertOutputContains("The TestReport.reportOn(Object...) method has been deprecated.") - } + ) + ) } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-configuration-cache/lib/src/commonMain/kotlin/Foo.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-configuration-cache/lib/src/commonMain/kotlin/Foo.kt index c205262c51d..7aceec515dd 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-configuration-cache/lib/src/commonMain/kotlin/Foo.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-configuration-cache/lib/src/commonMain/kotlin/Foo.kt @@ -1,3 +1,3 @@ -fun foo() = "bar" + my.cinterop.foo() +fun foo() = "bar" //+ my.cinterop.foo() fun main() = println(foo()) \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-configuration-cache/lib/src/commonTest/kotlin/CommonTest.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-configuration-cache/lib/src/commonTest/kotlin/CommonTest.kt index f04a599c9df..b5a44e69918 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-configuration-cache/lib/src/commonTest/kotlin/CommonTest.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/native-configuration-cache/lib/src/commonTest/kotlin/CommonTest.kt @@ -5,6 +5,6 @@ class CommonTest { @Test fun sampleTest() { - assertEquals("bar42", foo()) + assertEquals("bar", foo()) } } \ No newline at end of file