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 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")
|
||||
|
||||
+2
@@ -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,
|
||||
|
||||
+4
-2
@@ -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() {
|
||||
|
||||
+6
-4
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user