[Gradle] Split K1/K2 integration tests
#KT-60588 In Progress
This commit is contained in:
committed by
Space Team
parent
0a612e4268
commit
196fb3e5f1
+20
-3
@@ -14,7 +14,7 @@ import kotlin.io.path.exists
|
||||
|
||||
@DisplayName("Compiler plugin incremental compilation")
|
||||
@OtherGradlePluginTests
|
||||
open class CompilerPluginsIncrementalIT : KGPBaseTest() {
|
||||
abstract class CompilerPluginsIncrementalIT : KGPBaseTest() {
|
||||
override val defaultBuildOptions: BuildOptions
|
||||
get() = super.defaultBuildOptions.copy(
|
||||
incremental = true
|
||||
@@ -23,7 +23,7 @@ open class CompilerPluginsIncrementalIT : KGPBaseTest() {
|
||||
@DisabledOnOs(OS.WINDOWS, disabledReason = "Kotlin compiler holds an open file descriptor to plugin jar file")
|
||||
@DisplayName("KT-38570: After changing compiler plugin code, next incremental build picks it up")
|
||||
@GradleTest
|
||||
internal fun afterChangeInPluginBuildDoesIncrementalProcessing(gradleVersion: GradleVersion) {
|
||||
fun afterChangeInPluginBuildDoesIncrementalProcessing(gradleVersion: GradleVersion) {
|
||||
project("incrementalChangeInPlugin".prefix, gradleVersion) {
|
||||
build("assemble")
|
||||
|
||||
@@ -69,7 +69,24 @@ open class CompilerPluginsIncrementalIT : KGPBaseTest() {
|
||||
private val String.prefix get() = "compilerPlugins/$this"
|
||||
}
|
||||
|
||||
class CompilerPluginsK1IncrementalIT : CompilerPluginsIncrementalIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK1()
|
||||
}
|
||||
|
||||
class CompilerPluginsK2IncrementalIT : CompilerPluginsIncrementalIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK2()
|
||||
}
|
||||
|
||||
@DisplayName("Compiler plugin incremental compilation with precise compilation outputs backup")
|
||||
class CompilerPluginsIncrementalWithPreciseBackupIT : CompilerPluginsIncrementalIT() {
|
||||
abstract class CompilerPluginsIncrementalWithPreciseBackupIT : CompilerPluginsIncrementalIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copy(usePreciseOutputsBackup = true, keepIncrementalCompilationCachesInMemory = true)
|
||||
}
|
||||
|
||||
@DisplayName("Compiler plugin incremental compilation with precise compilation outputs backup")
|
||||
class CompilerPluginsK1IncrementalWithPreciseBackupIT : CompilerPluginsIncrementalWithPreciseBackupIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK1()
|
||||
}
|
||||
|
||||
class CompilerPluginsK2IncrementalWithPreciseBackupIT : CompilerPluginsIncrementalWithPreciseBackupIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK2()
|
||||
}
|
||||
+30
-14
@@ -13,7 +13,7 @@ import java.nio.file.Path
|
||||
import kotlin.io.path.*
|
||||
|
||||
@JsGradlePluginTests
|
||||
open class IncrementalCompilationJsMultiProjectIT : BaseIncrementalCompilationMultiProjectIT() {
|
||||
abstract class IncrementalCompilationJsMultiProjectIT : BaseIncrementalCompilationMultiProjectIT() {
|
||||
override val defaultProjectName: String = "incrementalMultiproject"
|
||||
|
||||
override fun defaultProject(
|
||||
@@ -151,24 +151,28 @@ open class IncrementalCompilationJsMultiProjectIT : BaseIncrementalCompilationMu
|
||||
}
|
||||
}
|
||||
|
||||
open class IncrementalCompilationJsMultiProjectWithPreciseBackupIT : IncrementalCompilationJsMultiProjectIT() {
|
||||
abstract class IncrementalCompilationJsMultiProjectWithPreciseBackupIT : IncrementalCompilationJsMultiProjectIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copy(usePreciseOutputsBackup = true, keepIncrementalCompilationCachesInMemory = true)
|
||||
}
|
||||
|
||||
class IncrementalCompilationFirJsMultiProject : IncrementalCompilationJsMultiProjectIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copy(
|
||||
languageVersion = "2.0"
|
||||
)
|
||||
class IncrementalCompilationK1JsMultiProject : IncrementalCompilationJsMultiProjectIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK1()
|
||||
}
|
||||
|
||||
class IncrementalCompilationFirJsMultiProjectWithPreciseBackupIT : IncrementalCompilationJsMultiProjectWithPreciseBackupIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copy(
|
||||
languageVersion = "2.0"
|
||||
)
|
||||
class IncrementalCompilationK2JsMultiProject : IncrementalCompilationJsMultiProjectIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK2()
|
||||
}
|
||||
|
||||
class IncrementalCompilationK1JsMultiProjectWithPreciseBackupIT : IncrementalCompilationJsMultiProjectWithPreciseBackupIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK1()
|
||||
}
|
||||
|
||||
class IncrementalCompilationK2JsMultiProjectWithPreciseBackupIT : IncrementalCompilationJsMultiProjectWithPreciseBackupIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK2()
|
||||
}
|
||||
|
||||
@JvmGradlePluginTests
|
||||
open class IncrementalCompilationJvmMultiProjectIT : BaseIncrementalCompilationMultiProjectIT() {
|
||||
abstract class IncrementalCompilationJvmMultiProjectIT : BaseIncrementalCompilationMultiProjectIT() {
|
||||
override val additionalLibDependencies: String =
|
||||
"implementation \"org.jetbrains.kotlin:kotlin-test:${'$'}kotlin_version\""
|
||||
|
||||
@@ -324,12 +328,24 @@ open class IncrementalCompilationJvmMultiProjectIT : BaseIncrementalCompilationM
|
||||
}
|
||||
}
|
||||
|
||||
class IncrementalCompilationJvmMultiProjectWithPreciseBackupIT : IncrementalCompilationJvmMultiProjectIT() {
|
||||
abstract class IncrementalCompilationJvmMultiProjectWithPreciseBackupIT : IncrementalCompilationJvmMultiProjectIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copy(usePreciseOutputsBackup = true, keepIncrementalCompilationCachesInMemory = true)
|
||||
}
|
||||
|
||||
class IncrementalCompilationFirJvmMultiProjectIT : IncrementalCompilationJvmMultiProjectIT() {
|
||||
override val defaultBuildOptions: BuildOptions = super.defaultBuildOptions.copy(languageVersion = "2.0")
|
||||
class IncrementalCompilationK1JvmMultiProjectWithPreciseBackupIT : IncrementalCompilationJvmMultiProjectWithPreciseBackupIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK1()
|
||||
}
|
||||
|
||||
class IncrementalCompilationK2JvmMultiProjectWithPreciseBackupIT : IncrementalCompilationJvmMultiProjectWithPreciseBackupIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK2()
|
||||
}
|
||||
|
||||
class IncrementalCompilationK1JvmMultiProjectIT : IncrementalCompilationJvmMultiProjectIT() {
|
||||
override val defaultBuildOptions: BuildOptions = super.defaultBuildOptions.copyEnsuringK1()
|
||||
}
|
||||
|
||||
class IncrementalCompilationK2JvmMultiProjectIT : IncrementalCompilationJvmMultiProjectIT() {
|
||||
override val defaultBuildOptions: BuildOptions = super.defaultBuildOptions.copyEnsuringK2()
|
||||
}
|
||||
|
||||
open class IncrementalCompilationOldICJvmMultiProjectIT : IncrementalCompilationJvmMultiProjectIT() {
|
||||
|
||||
+43
-8
@@ -13,7 +13,7 @@ import kotlin.io.path.*
|
||||
import kotlin.test.assertTrue
|
||||
|
||||
@DisplayName("Default incremental compilation with default precise java tracking")
|
||||
open class IncrementalJavaChangeDefaultIT : IncrementalCompilationJavaChangesBase(usePreciseJavaTracking = null) {
|
||||
abstract class IncrementalJavaChangeDefaultIT : IncrementalCompilationJavaChangesBase(usePreciseJavaTracking = null) {
|
||||
|
||||
@DisplayName("Lib: tracked method signature ABI change")
|
||||
@GradleTest
|
||||
@@ -91,13 +91,33 @@ open class IncrementalJavaChangeDefaultIT : IncrementalCompilationJavaChangesBas
|
||||
}
|
||||
}
|
||||
|
||||
@DisplayName("Default incremental compilation with default precise java tracking on K1")
|
||||
class IncrementalK1JavaChangeDefaultIT : IncrementalJavaChangeDefaultIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK1()
|
||||
}
|
||||
|
||||
@DisplayName("Default incremental compilation with default precise java tracking on K2")
|
||||
class IncrementalK2JavaChangeDefaultIT : IncrementalJavaChangeDefaultIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK2()
|
||||
}
|
||||
|
||||
@DisplayName("Default incremental compilation with precise compilation outputs backup")
|
||||
open class IncrementalJavaChangePreciseCompilationBackupIT : IncrementalJavaChangeDefaultIT() {
|
||||
abstract class IncrementalJavaChangePreciseCompilationBackupIT : IncrementalJavaChangeDefaultIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copy(usePreciseOutputsBackup = true, keepIncrementalCompilationCachesInMemory = true)
|
||||
}
|
||||
|
||||
@DisplayName("Incremental compilation via classpath snapshots with default precise java tracking")
|
||||
class IncrementalJavaChangeOldICIT : IncrementalJavaChangeDefaultIT() {
|
||||
@DisplayName("Default incremental compilation with precise compilation outputs backup on K1")
|
||||
class IncrementalK1JavaChangePreciseCompilationBackupIT : IncrementalJavaChangePreciseCompilationBackupIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK1()
|
||||
}
|
||||
|
||||
@DisplayName("Default incremental compilation with precise compilation outputs backup on K2")
|
||||
class IncrementalK2JavaChangePreciseCompilationBackupIT : IncrementalJavaChangePreciseCompilationBackupIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK2()
|
||||
}
|
||||
|
||||
@DisplayName("Incremental compilation via history files with default precise java tracking")
|
||||
abstract class IncrementalJavaChangeOldICIT : IncrementalJavaChangeDefaultIT() {
|
||||
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copy(useGradleClasspathSnapshot = false)
|
||||
|
||||
@@ -153,6 +173,16 @@ class IncrementalJavaChangeOldICIT : IncrementalJavaChangeDefaultIT() {
|
||||
}
|
||||
}
|
||||
|
||||
@DisplayName("Incremental compilation via history files with default precise java tracking with K1")
|
||||
class IncrementalK1JavaChangeOldICIT : IncrementalJavaChangeOldICIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK1()
|
||||
}
|
||||
|
||||
@DisplayName("Incremental compilation via history files with default precise java tracking with K2")
|
||||
class IncrementalK2JavaChangeOldICIT : IncrementalJavaChangeOldICIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK2()
|
||||
}
|
||||
|
||||
@DisplayName("Default incremental compilation with enabled precise java tracking")
|
||||
class IncrementalJavaChangePreciseIT : IncrementalCompilationJavaChangesBase(
|
||||
usePreciseJavaTracking = true
|
||||
@@ -191,7 +221,7 @@ class IncrementalJavaChangePreciseIT : IncrementalCompilationJavaChangesBase(
|
||||
}
|
||||
|
||||
@DisplayName("Default incremental compilation with disabled precise java tracking")
|
||||
open class IncrementalJavaChangeDisablePreciseIT : IncrementalCompilationJavaChangesBase(
|
||||
abstract class IncrementalJavaChangeDisablePreciseIT : IncrementalCompilationJavaChangesBase(
|
||||
usePreciseJavaTracking = false
|
||||
) {
|
||||
@DisplayName("Lib: tracked method signature ABI change")
|
||||
@@ -237,9 +267,14 @@ open class IncrementalJavaChangeDisablePreciseIT : IncrementalCompilationJavaCha
|
||||
}
|
||||
}
|
||||
|
||||
@DisplayName("Default incremental compilation with disabled precise java tracking and enabled FIR")
|
||||
class IncrementalFirJavaChangeDisablePreciseIT : IncrementalJavaChangeDisablePreciseIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copy(languageVersion = "2.0")
|
||||
@DisplayName("Default incremental compilation with disabled precise java tracking and enabled K1")
|
||||
class IncrementalK1JavaChangeDisablePreciseIT : IncrementalJavaChangeDisablePreciseIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK1()
|
||||
}
|
||||
|
||||
@DisplayName("Default incremental compilation with disabled precise java tracking and enabled K2")
|
||||
class IncrementalK2JavaChangeDisablePreciseIT : IncrementalJavaChangeDisablePreciseIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK2()
|
||||
}
|
||||
|
||||
@JvmGradlePluginTests
|
||||
|
||||
+11
-6
@@ -18,13 +18,18 @@ import kotlin.test.assertFalse
|
||||
import kotlin.test.assertNotEquals
|
||||
import kotlin.test.assertTrue
|
||||
|
||||
@DisplayName("Incremental compilation tests for Kotlin JS IR backend with 2.0")
|
||||
@DisplayName("Incremental compilation tests for Kotlin JS IR backend with K1")
|
||||
@JsGradlePluginTests
|
||||
class Kotlin2FirJsIrBeIncrementalCompilationIT : Kotlin2JsIrBeIncrementalCompilationIT() {
|
||||
class Kotlin2JsK1IrBeIncrementalCompilationIT : Kotlin2JsIrBeIncrementalCompilationIT() {
|
||||
override val defaultBuildOptions: BuildOptions
|
||||
get() = super.defaultBuildOptions.copy(
|
||||
languageVersion = "2.0"
|
||||
)
|
||||
get() = super.defaultBuildOptions.copyEnsuringK1()
|
||||
}
|
||||
|
||||
@DisplayName("Incremental compilation tests for Kotlin JS IR backend with K2")
|
||||
@JsGradlePluginTests
|
||||
class Kotlin2JsK2IrBeIncrementalCompilationIT : Kotlin2JsIrBeIncrementalCompilationIT() {
|
||||
override val defaultBuildOptions: BuildOptions
|
||||
get() = super.defaultBuildOptions.copyEnsuringK2()
|
||||
|
||||
@Disabled("Not found way to fail BE compilation with successful FE 2.0 compilation")
|
||||
override fun testRebuildAfterError(gradleVersion: GradleVersion) {
|
||||
@@ -34,7 +39,7 @@ class Kotlin2FirJsIrBeIncrementalCompilationIT : Kotlin2JsIrBeIncrementalCompila
|
||||
|
||||
@DisplayName("Incremental compilation tests for Kotlin JS IR backend")
|
||||
@JsGradlePluginTests
|
||||
open class Kotlin2JsIrBeIncrementalCompilationIT : KGPBaseTest() {
|
||||
abstract class Kotlin2JsIrBeIncrementalCompilationIT : KGPBaseTest() {
|
||||
override val defaultBuildOptions = BuildOptions(
|
||||
jsOptions = BuildOptions.JsOptions(
|
||||
incrementalJsKlib = true,
|
||||
|
||||
+7
-10
@@ -13,17 +13,14 @@ import org.jetbrains.kotlin.gradle.tasks.USING_JS_IR_BACKEND_MESSAGE
|
||||
import org.jetbrains.kotlin.gradle.testbase.*
|
||||
import org.junit.jupiter.api.DisplayName
|
||||
|
||||
@JsGradlePluginTests
|
||||
open class KotlinJsIr10IncrementalGradlePluginIT : AbstractKotlinJsIncrementalGradlePluginIT(
|
||||
irBackend = true
|
||||
)
|
||||
|
||||
@JsGradlePluginTests
|
||||
class KotlinJsFirIncrementalGradlePluginIT : KotlinJsIr10IncrementalGradlePluginIT() {
|
||||
class KotlinJsIrK1IncrementalGradlePluginIT : AbstractKotlinJsIncrementalGradlePluginIT(irBackend = true) {
|
||||
override val defaultBuildOptions: BuildOptions
|
||||
get() = super.defaultBuildOptions.copy(
|
||||
languageVersion = "2.0"
|
||||
)
|
||||
get() = super.defaultBuildOptions.copyEnsuringK1()
|
||||
}
|
||||
|
||||
class KotlinJsIrK2IncrementalGradlePluginIT : AbstractKotlinJsIncrementalGradlePluginIT(irBackend = true) {
|
||||
override val defaultBuildOptions: BuildOptions
|
||||
get() = super.defaultBuildOptions.copyEnsuringK2()
|
||||
}
|
||||
|
||||
@JsGradlePluginTests
|
||||
|
||||
+2
-2
@@ -74,12 +74,12 @@ abstract class KotlinJsIrLibraryGradlePluginITBase : KGPBaseTest() {
|
||||
@DisplayName("Kotlin/JS K1 IR library")
|
||||
@JsGradlePluginTests
|
||||
class KotlinK1JsIrLibraryGradlePluginIT : KotlinJsIrLibraryGradlePluginITBase() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copy(languageVersion = null)
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK1()
|
||||
}
|
||||
|
||||
@GradleTestVersions(minVersion = TestVersions.Gradle.G_7_0)
|
||||
@DisplayName("Kotlin/JS K2 IR library")
|
||||
@JsGradlePluginTests
|
||||
class KotlinK2JsIrLibraryGradlePluginIT : KotlinJsIrLibraryGradlePluginITBase() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copy(languageVersion = "2.0")
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK2()
|
||||
}
|
||||
|
||||
+11
-1
@@ -21,7 +21,7 @@ import kotlin.io.path.relativeTo
|
||||
@DisplayName("Scripting plugin")
|
||||
@OtherGradlePluginTests
|
||||
@GradleTestVersions(maxVersion = TestVersions.Gradle.G_7_3) // workaround for a Gradle synchronization bug: https://github.com/gradle/gradle/issues/23450
|
||||
class ScriptingIT : KGPBaseTest() {
|
||||
abstract class ScriptingIT : KGPBaseTest() {
|
||||
|
||||
@DisplayName("basic script is working")
|
||||
@GradleTest
|
||||
@@ -110,4 +110,14 @@ class ScriptingIT : KGPBaseTest() {
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@DisplayName("K1 Scripting plugin")
|
||||
class ScriptingK1IT : ScriptingIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK1()
|
||||
}
|
||||
|
||||
@DisplayName("K2 Scripting plugin")
|
||||
class ScriptingK2IT : ScriptingIT() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copyEnsuringK2()
|
||||
}
|
||||
+10
@@ -11,6 +11,7 @@ import org.gradle.internal.logging.LoggingConfigurationBuildOptions.StacktraceOp
|
||||
import org.gradle.util.GradleVersion
|
||||
import org.jetbrains.kotlin.cli.common.CompilerSystemProperties.COMPILE_INCREMENTAL_WITH_ARTIFACT_TRANSFORM
|
||||
import org.jetbrains.kotlin.gradle.BaseGradleIT
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
|
||||
import org.jetbrains.kotlin.gradle.dsl.NativeCacheKind
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompilerExecutionStrategy
|
||||
import org.jetbrains.kotlin.gradle.report.BuildReportType
|
||||
@@ -51,6 +52,15 @@ data class BuildOptions(
|
||||
val compilerExecutionStrategy: KotlinCompilerExecutionStrategy? = null,
|
||||
val runViaBuildToolsApi: Boolean? = null,
|
||||
) {
|
||||
val isK2ByDefault
|
||||
get() = KotlinVersion.DEFAULT >= KotlinVersion.KOTLIN_2_0
|
||||
|
||||
fun copyEnsuringK1(): BuildOptions =
|
||||
copy(languageVersion = if (isK2ByDefault) "1.9" else null)
|
||||
|
||||
fun copyEnsuringK2(): BuildOptions =
|
||||
copy(languageVersion = if (isK2ByDefault) null else "2.0")
|
||||
|
||||
val safeAndroidVersion: String
|
||||
get() = androidVersion ?: error("AGP version is expected to be set")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user