[Gradle, BT] Add IC integration tests for the build tools API mode

#KT-61865 Fixed
This commit is contained in:
Alexander.Likhachev
2023-10-18 01:01:11 +02:00
committed by Space Team
parent 3eaaed8e7f
commit 664b54de5f
3 changed files with 77 additions and 1 deletions
@@ -338,6 +338,22 @@ abstract class IncrementalCompilationJvmMultiProjectWithPreciseBackupIT : Increm
override val defaultBuildOptions = super.defaultBuildOptions.copy(usePreciseOutputsBackup = true, keepIncrementalCompilationCachesInMemory = true)
}
class IncrementalCompilationK2JvmMultiProjectBuildToolsApiDaemonIT : IncrementalCompilationJvmMultiProjectWithPreciseBackupIT() {
override val defaultBuildOptions = super.defaultBuildOptions.copy(runViaBuildToolsApi = true, compilerExecutionStrategy = KotlinCompilerExecutionStrategy.DAEMON)
@Disabled("Doesn't make sense since Build Tools API supports incremental compilation for the in-process mode")
override fun testMissingIncrementalState(gradleVersion: GradleVersion) {
}
}
class IncrementalCompilationK2JvmMultiProjectBuildToolsApiInProcessIT : IncrementalCompilationJvmMultiProjectWithPreciseBackupIT() {
override val defaultBuildOptions = super.defaultBuildOptions.copy(runViaBuildToolsApi = true, compilerExecutionStrategy = KotlinCompilerExecutionStrategy.IN_PROCESS)
@Disabled("Doesn't make sense since Build Tools API supports incremental compilation for the in-process mode")
override fun testMissingIncrementalState(gradleVersion: GradleVersion) {
}
}
class IncrementalCompilationK1JvmMultiProjectWithPreciseBackupIT : IncrementalCompilationJvmMultiProjectWithPreciseBackupIT() {
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK1()
}
@@ -897,7 +913,7 @@ abstract class BaseIncrementalCompilationMultiProjectIT : IncrementalCompilation
@DisplayName("Test compilation when incremental state is missing")
@GradleTest
fun testMissingIncrementalState(gradleVersion: GradleVersion) {
open fun testMissingIncrementalState(gradleVersion: GradleVersion) {
defaultProject(gradleVersion) {
// Perform the first non-incremental build without using Kotlin daemon so that incremental state is not produced
build(
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.gradle
import org.gradle.util.GradleVersion
import org.jetbrains.kotlin.gradle.tasks.KotlinCompilerExecutionStrategy
import org.jetbrains.kotlin.gradle.testbase.*
import org.junit.jupiter.api.Disabled
import org.junit.jupiter.api.DisplayName
@@ -122,6 +123,56 @@ class IncrementalK2JavaChangeDefaultIT : IncrementalJavaChangeDefaultIT() {
}
}
@DisplayName("Default incremental compilation via Build Tools API")
class IncrementalK2JavaChangeBuildToolsApiDaemonIT : IncrementalJavaChangeDefaultIT() {
override val defaultBuildOptions = super.defaultBuildOptions.copy(runViaBuildToolsApi = true, compilerExecutionStrategy = KotlinCompilerExecutionStrategy.DAEMON)
@Disabled("KT-57147")
override fun testAbiChangeInLib_changeMethodSignature_tracked(gradleVersion: GradleVersion) {
super.testAbiChangeInLib_changeMethodSignature_tracked(gradleVersion)
}
@Disabled("KT-57147")
override fun testNonAbiChangeInLib_changeMethodBody_tracked(gradleVersion: GradleVersion) {
super.testNonAbiChangeInLib_changeMethodBody_tracked(gradleVersion)
}
@Disabled("KT-57147")
override fun testAbiChangeInLib_changeMethodSignature(gradleVersion: GradleVersion) {
super.testAbiChangeInLib_changeMethodSignature(gradleVersion)
}
@Disabled("KT-57147")
override fun testNonAbiChangeInLib_changeMethodBody(gradleVersion: GradleVersion) {
super.testNonAbiChangeInLib_changeMethodBody(gradleVersion)
}
}
@DisplayName("Incremental compilation via Build Tools API using in-process strategy")
class IncrementalK2JavaChangeBuildToolsApiInProcessIT : IncrementalJavaChangeDefaultIT() {
override val defaultBuildOptions = super.defaultBuildOptions.copy(runViaBuildToolsApi = true, compilerExecutionStrategy = KotlinCompilerExecutionStrategy.IN_PROCESS)
@Disabled("KT-57147")
override fun testAbiChangeInLib_changeMethodSignature_tracked(gradleVersion: GradleVersion) {
super.testAbiChangeInLib_changeMethodSignature_tracked(gradleVersion)
}
@Disabled("KT-57147")
override fun testNonAbiChangeInLib_changeMethodBody_tracked(gradleVersion: GradleVersion) {
super.testNonAbiChangeInLib_changeMethodBody_tracked(gradleVersion)
}
@Disabled("KT-57147")
override fun testAbiChangeInLib_changeMethodSignature(gradleVersion: GradleVersion) {
super.testAbiChangeInLib_changeMethodSignature(gradleVersion)
}
@Disabled("KT-57147")
override fun testNonAbiChangeInLib_changeMethodBody(gradleVersion: GradleVersion) {
super.testNonAbiChangeInLib_changeMethodBody(gradleVersion)
}
}
@DisplayName("Default incremental compilation with precise compilation outputs backup")
abstract class IncrementalJavaChangePreciseCompilationBackupIT : IncrementalJavaChangeDefaultIT() {
override val defaultBuildOptions = super.defaultBuildOptions.copy(usePreciseOutputsBackup = true, keepIncrementalCompilationCachesInMemory = true)
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle.android
import org.gradle.api.logging.LogLevel
import org.gradle.util.GradleVersion
import org.jetbrains.kotlin.gradle.tasks.KotlinCompilerExecutionStrategy
import org.jetbrains.kotlin.gradle.testbase.*
import org.junit.jupiter.api.DisplayName
import kotlin.io.path.appendText
@@ -181,4 +182,12 @@ open class KotlinAndroidIncrementalIT : KGPBaseTest() {
class KotlinAndroidIncrementalWithPreciseBackupIT : KotlinAndroidIncrementalIT() {
override val defaultBuildOptions = super.defaultBuildOptions.copy(usePreciseOutputsBackup = true, keepIncrementalCompilationCachesInMemory = true)
}
class KotlinAndroidIncrementalBuildToolsApiDaemonIT : KotlinAndroidIncrementalIT() {
override val defaultBuildOptions = super.defaultBuildOptions.copy(runViaBuildToolsApi = true, compilerExecutionStrategy = KotlinCompilerExecutionStrategy.DAEMON)
}
class KotlinAndroidIncrementalBuildToolsApiInProcessIT : KotlinAndroidIncrementalIT() {
override val defaultBuildOptions = super.defaultBuildOptions.copy(runViaBuildToolsApi = true, compilerExecutionStrategy = KotlinCompilerExecutionStrategy.IN_PROCESS)
}