Add tests for kotlin.incremental.useClasspathSnapshot feature

This ensures we don't regress when developing the feature.

Bug: KT-45777
Test: New IncrementalCompilationClasspathSnapshotJvmMultiProjectIT
      and IncrementalJavaChangeClasspathSnapshotIT
This commit is contained in:
Hung Nguyen
2021-05-17 11:47:08 +01:00
committed by nataliya.valtman
parent d44a2f6fd3
commit a0e003ac5d
4 changed files with 14 additions and 6 deletions
@@ -241,6 +241,7 @@ abstract class BaseGradleIT {
val kotlinVersion: String = KOTLIN_VERSION,
val kotlinDaemonDebugPort: Int? = null,
val usePreciseJavaTracking: Boolean? = null,
val useClasspathSnapshot: Boolean? = null,
val withBuildCache: Boolean = false,
val kaptOptions: KaptOptions? = null,
val parallelTasksInProject: Boolean = false,
@@ -913,6 +914,7 @@ Finished executing task ':$taskName'|
options.incrementalJsKlib?.let { add("-Pkotlin.incremental.js.klib=$it") }
options.jsIrBackend?.let { add("-Pkotlin.js.useIrBackend=$it") }
options.usePreciseJavaTracking?.let { add("-Pkotlin.incremental.usePreciseJavaTracking=$it") }
options.useClasspathSnapshot?.let { add("-Pkotlin.incremental.useClasspathSnapshot=$it") }
options.androidGradlePluginVersion?.let { add("-Pandroid_tools_version=$it") }
if (options.debug) {
add("-Dorg.gradle.debug=true")
@@ -13,6 +13,8 @@ abstract class IncrementalCompilationBaseIT : BaseGradleIT() {
protected abstract fun defaultProject(): Project
override fun defaultBuildOptions() = super.defaultBuildOptions().copy(incremental = true)
protected fun doTest(
fileToModify: String,
modifyFileContents: (String) -> String,
@@ -145,9 +145,11 @@ class IncrementalCompilationFirJvmMultiProjectIT : IncrementalCompilationJvmMult
}
}
class IncrementalCompilationClasspathSnapshotJvmMultiProjectIT : IncrementalCompilationJvmMultiProjectIT() {
override fun defaultBuildOptions() = super.defaultBuildOptions().copy(useClasspathSnapshot = true)
}
abstract class BaseIncrementalCompilationMultiProjectIT : IncrementalCompilationBaseIT() {
override fun defaultBuildOptions(): BuildOptions =
super.defaultBuildOptions().copy(withDaemon = true, incremental = true)
@Test
fun testAbiChangeInLib_changeMethodSignature() {
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.gradle
import org.junit.Test
class IncrementalJavaChangeDefaultIT : IncrementalCompilationJavaChangesBase(usePreciseJavaTracking = null) {
open class IncrementalJavaChangeDefaultIT : IncrementalCompilationJavaChangesBase(usePreciseJavaTracking = null) {
@Test
override fun testAbiChangeInLib_changeMethodSignature_tracked() {
doTest(trackedJavaClass, changeSignature, expectedAffectedFileNames = listOf("TrackedJavaClassChild.kt", "useTrackedJavaClass.kt"))
@@ -19,6 +19,10 @@ class IncrementalJavaChangeDefaultIT : IncrementalCompilationJavaChangesBase(use
}
}
class IncrementalJavaChangeClasspathSnapshotIT : IncrementalJavaChangeDefaultIT() {
override fun defaultBuildOptions() = super.defaultBuildOptions().copy(useClasspathSnapshot = true)
}
class IncrementalJavaChangePreciseIT : IncrementalCompilationJavaChangesBase(usePreciseJavaTracking = true) {
@Test
override fun testAbiChangeInLib_changeMethodSignature_tracked() {
@@ -63,9 +67,7 @@ class IncrementalFirJavaChangeDisablePreciseIT : IncrementalJavaChangeDisablePre
abstract class IncrementalCompilationJavaChangesBase(val usePreciseJavaTracking: Boolean?) : IncrementalCompilationBaseIT() {
override fun defaultProject() = Project("incrementalMultiproject")
override fun defaultBuildOptions(): BuildOptions =
super.defaultBuildOptions().copy(withDaemon = true, incremental = true, usePreciseJavaTracking = usePreciseJavaTracking)
override fun defaultBuildOptions() = super.defaultBuildOptions().copy(usePreciseJavaTracking = usePreciseJavaTracking)
protected val trackedJavaClass = "TrackedJavaClass.java"
private val javaClass = "JavaClass.java"