diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt index 82dbae6bc51..944d60c7c9e 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt @@ -442,10 +442,10 @@ open class KotlinAndroid70GradleIT : KotlinAndroid36GradleIT() { get() = AGPVersion.v7_0_0 override val defaultGradleVersion: GradleVersionRequired - get() = GradleVersionRequired.AtLeast("6.8") + get() = GradleVersionRequired.AtLeast("7.0") override fun defaultBuildOptions(): BuildOptions { - val javaHome = File(System.getProperty("jdk11Home")!!) + val javaHome = File("/opt/openjdk-bin-11") Assume.assumeTrue("JDK 11 should be available", javaHome.isDirectory) return super.defaultBuildOptions().copy(javaHome = javaHome, warningMode = WarningMode.Summary) } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildCacheRelocationIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildCacheRelocationIT.kt index e4eba94e638..ffaca182b90 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildCacheRelocationIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildCacheRelocationIT.kt @@ -153,7 +153,7 @@ class BuildCacheRelocationIT : BaseGradleIT() { outputRootPaths = listOf("lib", "libJvm", "libJs").map { "$it/build" } ), TestCase("AndroidProject", - gradleVersionRequirement = GradleVersionRequired.AtLeast("6.6.1"), + gradleVersionRequirement = GradleVersionRequired.AtLeast("6.7.1"), taskToExecute = arrayOf("assembleDebug"), cacheableTaskNames = listOf("Lib", "Android").flatMap { module -> listOf("Flavor1", "Flavor2").flatMap { flavor -> @@ -166,7 +166,7 @@ class BuildCacheRelocationIT : BaseGradleIT() { androidGradlePluginVersion = AGPVersion.v4_2_0 ), TestCase("android-dagger", - gradleVersionRequirement = GradleVersionRequired.AtLeast("6.6.1"), + gradleVersionRequirement = GradleVersionRequired.AtLeast("6.7.1"), taskToExecute = arrayOf("assembleDebug"), projectDirectoryPrefix = "kapt2", cacheableTaskNames = listOf("Debug").flatMap { buildType -> diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationAvoidanceIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationAvoidanceIT.kt index 4036018fc20..e13494d9112 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationAvoidanceIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationAvoidanceIT.kt @@ -33,7 +33,7 @@ class ConfigurationAvoidanceIT : BaseGradleIT() { fun testAndroidUnrelatedTaskNotConfigured() = with( Project( "AndroidProject", - gradleVersionRequirement = GradleVersionRequired.AtLeast("6.6.1") + gradleVersionRequirement = GradleVersionRequired.AtLeast("6.7.1") ) ) { setupWorkingDir() diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationCacheForAndroidIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationCacheForAndroidIT.kt index e9b489e9077..4efe127dc44 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationCacheForAndroidIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationCacheForAndroidIT.kt @@ -8,12 +8,16 @@ package org.jetbrains.kotlin.gradle import org.gradle.api.logging.configuration.WarningMode import org.jetbrains.kotlin.gradle.util.AGPVersion import org.jetbrains.kotlin.test.util.KtTestUtil +import org.junit.Before import org.junit.Test class ConfigurationCacheForAndroidIT : AbstractConfigurationCacheIT() { private val androidGradlePluginVersion: AGPVersion get() = AGPVersion.v4_2_0 + override val defaultGradleVersion: GradleVersionRequired + get() = GradleVersionRequired.AtLeast("6.7.1") + override fun defaultBuildOptions() = super.defaultBuildOptions().copy( androidHome = KtTestUtil.findAndroidSdk(), @@ -24,53 +28,23 @@ class ConfigurationCacheForAndroidIT : AbstractConfigurationCacheIT() { @Test fun testAndroidKaptProject() = with(Project("android-dagger", directoryPrefix = "kapt2")) { - applyAndroid40Alpha4KotlinVersionWorkaround() + setupWorkingDir() projectDir.resolve("gradle.properties").appendText("\nkapt.incremental.apt=false") testConfigurationCacheOf(":app:compileDebugKotlin", ":app:kaptDebugKotlin", ":app:kaptGenerateStubsDebugKotlin") } @Test fun testKotlinAndroidProject() = with(Project("AndroidProject")) { - applyAndroid40Alpha4KotlinVersionWorkaround() + setupWorkingDir() testConfigurationCacheOf(":Lib:compileFlavor1DebugKotlin", ":Android:compileFlavor1DebugKotlin") } @Test fun testKotlinAndroidProjectTests() = with(Project("AndroidIncrementalMultiModule")) { - applyAndroid40Alpha4KotlinVersionWorkaround() + setupWorkingDir() testConfigurationCacheOf( ":app:compileDebugAndroidTestKotlin", ":app:compileDebugUnitTestKotlin", buildOptions = defaultBuildOptions().copy(warningMode = WarningMode.Summary) ) } - - /** - * Android Gradle plugin 4.0-alpha4 depends on the EAP versions of some o.j.k modules. - * Force the current Kotlin version, so the EAP versions are not queried from the - * test project's repositories, where there's no 'kotlin-eap' repo. - * TODO remove this workaround once an Android Gradle plugin version is used that depends on the stable Kotlin version - */ - private fun Project.applyAndroid40Alpha4KotlinVersionWorkaround() { - setupWorkingDir() - - val resolutionStrategyHack = """ - configurations.all { - resolutionStrategy.dependencySubstitution.all { dependency -> - def requested = dependency.requested - if (requested instanceof ModuleComponentSelector && requested.group == 'org.jetbrains.kotlin') { - dependency.useTarget requested.group + ':' + requested.module + ':' + '${defaultBuildOptions().kotlinVersion}' - } - } - } - """.trimIndent() - - gradleBuildScript().appendText( - "\n" + """ - buildscript { - $resolutionStrategyHack - } - $resolutionStrategyHack - """.trimIndent() - ) - } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt index e75c5736976..95ba58d0a15 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt @@ -76,7 +76,7 @@ class Kapt3Android70IT : Kapt3AndroidIT() { get() = AGPVersion.v7_0_0 override val defaultGradleVersion: GradleVersionRequired - get() = GradleVersionRequired.AtLeast("6.8") + get() = GradleVersionRequired.AtLeast("7.0") override fun defaultBuildOptions(): BuildOptions { val javaHome = File(System.getProperty("jdk11Home")!!) @@ -95,11 +95,48 @@ class Kapt3Android70IT : Kapt3AndroidIT() { @Ignore("KT-44350") override fun testButterKnife() = Unit + + @Test + override fun testInterProjectIC() { + with(Project("android-inter-project-ic", directoryPrefix = "kapt2")) { + setupWorkingDir() + // includeCompileClasspath was removed in AGP 7 + projectDir.resolve("app").getFileByName("build.gradle").modify { originalContent -> + originalContent + .lines() + .filter { !it.contains("javaCompileOptions") } + .joinToString(separator = "\n") + } + build("assembleDebug") { + assertSuccessful() + assertKaptSuccessful() + } + + fun modifyAndCheck(utilFileName: String, useUtilFileName: String) { + val utilKt = projectDir.getFileByName(utilFileName) + utilKt.modify { + it.checkedReplace("Int", "Number") + } + + build("assembleDebug") { + assertSuccessful() + val affectedFile = projectDir.getFileByName(useUtilFileName) + assertCompiledKotlinSources( + relativize(affectedFile), + tasks = listOf("app:kaptGenerateStubsDebugKotlin", "app:compileDebugKotlin") + ) + } + } + + modifyAndCheck("libAndroidUtil.kt", "useLibAndroidUtil.kt") + modifyAndCheck("libJvmUtil.kt", "useLibJvmUtil.kt") + } + } } class Kapt3Android42IT : Kapt3BaseIT() { override val defaultGradleVersion: GradleVersionRequired - get() = GradleVersionRequired.AtLeast("6.7") + get() = GradleVersionRequired.AtLeast("6.7.1") override fun defaultBuildOptions(): BuildOptions = super.defaultBuildOptions().copy(androidGradlePluginVersion = AGPVersion.v4_2_0) @@ -205,7 +242,7 @@ abstract class Kapt3AndroidIT : Kapt3BaseIT() { } @Test - fun testInterProjectIC() = with(Project("android-inter-project-ic", directoryPrefix = "kapt2")) { + open fun testInterProjectIC() = with(Project("android-inter-project-ic", directoryPrefix = "kapt2")) { build("assembleDebug") { assertSuccessful() assertKaptSuccessful() diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithIsolatingApt.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithIsolatingApt.kt index 2bb76bb6605..cf51d74e5ce 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithIsolatingApt.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KaptIncrementalWithIsolatingApt.kt @@ -266,7 +266,7 @@ class KaptIncrementalWithIsolatingApt : KaptIncrementalIT() { val project = Project( projectName = "kaptIncrementalWithParceler", - gradleVersionRequirement = GradleVersionRequired.AtLeast("6.6.1") + gradleVersionRequirement = GradleVersionRequired.AtLeast("6.7.1") ).apply { setupWorkingDir() } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt index dd4f01f6a6b..25238b61300 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt @@ -1164,7 +1164,7 @@ class KotlinGradleIT : BaseGradleIT() { fun testKtKt35942InternalsFromMainInTestViaTransitiveDepsAndroid() = with( Project( projectName = "kt-35942-android", - gradleVersionRequirement = GradleVersionRequired.AtLeast("6.6.1") + gradleVersionRequirement = GradleVersionRequired.AtLeast("6.7.1") ) ) { build( diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/util/AGPVersion.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/util/AGPVersion.kt index 99a26874e14..bb72845d2fb 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/util/AGPVersion.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/util/AGPVersion.kt @@ -18,10 +18,10 @@ class AGPVersion private constructor(private val versionNumber: VersionNumber) { fun fromString(versionString: String): AGPVersion = AGPVersion(VersionNumber.parse(versionString)) - val v3_4_1 = fromString("3.4.1") - val v3_6_0 = fromString("3.6.0") - val v4_1_0 = fromString("4.1.0-beta02") - val v4_2_0 = fromString("4.2.0-alpha10") - val v7_0_0 = fromString("7.0.0-alpha03") + val v3_4_1 = fromString("3.4.3") + val v3_6_0 = fromString("3.6.4") + val v4_1_0 = fromString("4.1.3") + val v4_2_0 = fromString("4.2.0") + val v7_0_0 = fromString("7.0.0-alpha15") } } \ No newline at end of file