[Gradle] Test commonize native distribution and compile task with GCC

It should be possible to commonize native distribution from clean state
and compile shared native code in the same gradle build with enabled
configuration cache.

^KT-61359 In Progress
This commit is contained in:
Anton Lakotka
2023-10-15 23:12:40 +02:00
committed by Space Team
parent 657dd31493
commit e16f03fc49
3 changed files with 49 additions and 0 deletions
@@ -90,6 +90,37 @@ open class CommonizerIT : KGPBaseTest() {
}
}
@DisplayName("KT-61359: commonize native distribution and compile with configuration cache")
@GradleTest
fun testCleanCommonizationWithConfigurationCache(gradleVersion: GradleVersion) {
project("commonizeNativeDistributionWithConfigurationCache", gradleVersion) {
val buildOptionsWithConfigurationCache = buildOptions.copy(configurationCache = true)
// Clean native distribution -> capture configuration cache state
build(":cleanNativeDistributionCommonization")
build(":compileNativeMainKotlinMetadata", buildOptions = buildOptionsWithConfigurationCache) {
assertTasksExecuted(":commonizeNativeDistribution")
assertTasksExecuted(":compileNativeMainKotlinMetadata")
assertConfigurationCacheStored()
}
// Clean task outputs -> reuse configuration cache
build(":clean")
build(":compileNativeMainKotlinMetadata", buildOptions = buildOptionsWithConfigurationCache) {
assertTasksUpToDate(":commonizeNativeDistribution")
assertTasksExecuted(":compileNativeMainKotlinMetadata")
assertConfigurationCacheReused()
}
// full clean -> reuse configuration cache
build("clean", ":cleanNativeDistributionCommonization")
build(":compileNativeMainKotlinMetadata", buildOptions = buildOptionsWithConfigurationCache) {
assertTasksExecuted(":commonizeNativeDistribution")
assertTasksExecuted(":compileNativeMainKotlinMetadata")
assertConfigurationCacheReused()
}
}
}
@DisplayName("Commonize Curl Interop UP-TO-DATE check")
@GradleTest
fun testCommonizeCurlInteropUTDCheck(gradleVersion: GradleVersion) {
@@ -0,0 +1,13 @@
plugins {
kotlin("multiplatform")
}
repositories {
mavenLocal()
mavenCentral()
}
kotlin {
linuxX64()
linuxArm64()
}