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:
committed by
nataliya.valtman
parent
d44a2f6fd3
commit
a0e003ac5d
+2
@@ -241,6 +241,7 @@ abstract class BaseGradleIT {
|
|||||||
val kotlinVersion: String = KOTLIN_VERSION,
|
val kotlinVersion: String = KOTLIN_VERSION,
|
||||||
val kotlinDaemonDebugPort: Int? = null,
|
val kotlinDaemonDebugPort: Int? = null,
|
||||||
val usePreciseJavaTracking: Boolean? = null,
|
val usePreciseJavaTracking: Boolean? = null,
|
||||||
|
val useClasspathSnapshot: Boolean? = null,
|
||||||
val withBuildCache: Boolean = false,
|
val withBuildCache: Boolean = false,
|
||||||
val kaptOptions: KaptOptions? = null,
|
val kaptOptions: KaptOptions? = null,
|
||||||
val parallelTasksInProject: Boolean = false,
|
val parallelTasksInProject: Boolean = false,
|
||||||
@@ -913,6 +914,7 @@ Finished executing task ':$taskName'|
|
|||||||
options.incrementalJsKlib?.let { add("-Pkotlin.incremental.js.klib=$it") }
|
options.incrementalJsKlib?.let { add("-Pkotlin.incremental.js.klib=$it") }
|
||||||
options.jsIrBackend?.let { add("-Pkotlin.js.useIrBackend=$it") }
|
options.jsIrBackend?.let { add("-Pkotlin.js.useIrBackend=$it") }
|
||||||
options.usePreciseJavaTracking?.let { add("-Pkotlin.incremental.usePreciseJavaTracking=$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") }
|
options.androidGradlePluginVersion?.let { add("-Pandroid_tools_version=$it") }
|
||||||
if (options.debug) {
|
if (options.debug) {
|
||||||
add("-Dorg.gradle.debug=true")
|
add("-Dorg.gradle.debug=true")
|
||||||
|
|||||||
+2
@@ -13,6 +13,8 @@ abstract class IncrementalCompilationBaseIT : BaseGradleIT() {
|
|||||||
|
|
||||||
protected abstract fun defaultProject(): Project
|
protected abstract fun defaultProject(): Project
|
||||||
|
|
||||||
|
override fun defaultBuildOptions() = super.defaultBuildOptions().copy(incremental = true)
|
||||||
|
|
||||||
protected fun doTest(
|
protected fun doTest(
|
||||||
fileToModify: String,
|
fileToModify: String,
|
||||||
modifyFileContents: (String) -> String,
|
modifyFileContents: (String) -> String,
|
||||||
|
|||||||
+4
-2
@@ -145,9 +145,11 @@ class IncrementalCompilationFirJvmMultiProjectIT : IncrementalCompilationJvmMult
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class IncrementalCompilationClasspathSnapshotJvmMultiProjectIT : IncrementalCompilationJvmMultiProjectIT() {
|
||||||
|
override fun defaultBuildOptions() = super.defaultBuildOptions().copy(useClasspathSnapshot = true)
|
||||||
|
}
|
||||||
|
|
||||||
abstract class BaseIncrementalCompilationMultiProjectIT : IncrementalCompilationBaseIT() {
|
abstract class BaseIncrementalCompilationMultiProjectIT : IncrementalCompilationBaseIT() {
|
||||||
override fun defaultBuildOptions(): BuildOptions =
|
|
||||||
super.defaultBuildOptions().copy(withDaemon = true, incremental = true)
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun testAbiChangeInLib_changeMethodSignature() {
|
fun testAbiChangeInLib_changeMethodSignature() {
|
||||||
|
|||||||
+6
-4
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.gradle
|
|||||||
|
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
class IncrementalJavaChangeDefaultIT : IncrementalCompilationJavaChangesBase(usePreciseJavaTracking = null) {
|
open class IncrementalJavaChangeDefaultIT : IncrementalCompilationJavaChangesBase(usePreciseJavaTracking = null) {
|
||||||
@Test
|
@Test
|
||||||
override fun testAbiChangeInLib_changeMethodSignature_tracked() {
|
override fun testAbiChangeInLib_changeMethodSignature_tracked() {
|
||||||
doTest(trackedJavaClass, changeSignature, expectedAffectedFileNames = listOf("TrackedJavaClassChild.kt", "useTrackedJavaClass.kt"))
|
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) {
|
class IncrementalJavaChangePreciseIT : IncrementalCompilationJavaChangesBase(usePreciseJavaTracking = true) {
|
||||||
@Test
|
@Test
|
||||||
override fun testAbiChangeInLib_changeMethodSignature_tracked() {
|
override fun testAbiChangeInLib_changeMethodSignature_tracked() {
|
||||||
@@ -63,9 +67,7 @@ class IncrementalFirJavaChangeDisablePreciseIT : IncrementalJavaChangeDisablePre
|
|||||||
|
|
||||||
abstract class IncrementalCompilationJavaChangesBase(val usePreciseJavaTracking: Boolean?) : IncrementalCompilationBaseIT() {
|
abstract class IncrementalCompilationJavaChangesBase(val usePreciseJavaTracking: Boolean?) : IncrementalCompilationBaseIT() {
|
||||||
override fun defaultProject() = Project("incrementalMultiproject")
|
override fun defaultProject() = Project("incrementalMultiproject")
|
||||||
|
override fun defaultBuildOptions() = super.defaultBuildOptions().copy(usePreciseJavaTracking = usePreciseJavaTracking)
|
||||||
override fun defaultBuildOptions(): BuildOptions =
|
|
||||||
super.defaultBuildOptions().copy(withDaemon = true, incremental = true, usePreciseJavaTracking = usePreciseJavaTracking)
|
|
||||||
|
|
||||||
protected val trackedJavaClass = "TrackedJavaClass.java"
|
protected val trackedJavaClass = "TrackedJavaClass.java"
|
||||||
private val javaClass = "JavaClass.java"
|
private val javaClass = "JavaClass.java"
|
||||||
|
|||||||
Reference in New Issue
Block a user