[Gradle][Tests][MPP] Bump AGP and Gradle version in MPP related tests

This commit is contained in:
Pavel Kargashinsky
2023-03-07 13:35:12 +01:00
committed by Space Team
parent 46ed6e5766
commit 7ae0e24bc7
29 changed files with 124 additions and 19 deletions
@@ -19,6 +19,7 @@ package org.jetbrains.kotlin.gradle
import org.gradle.util.GradleVersion
import org.jetbrains.kotlin.com.google.common.base.Objects
import org.jetbrains.kotlin.gradle.GradleVersionRequired.Companion.OLDEST_SUPPORTED
import org.jetbrains.kotlin.gradle.testbase.TestVersions
import org.jetbrains.kotlin.gradle.utils.minSupportedGradleVersion
import org.junit.Assume
@@ -26,7 +27,7 @@ sealed class GradleVersionRequired(val minVersion: String, val maxVersion: Strin
companion object {
const val OLDEST_SUPPORTED = minSupportedGradleVersion
val FOR_MPP_SUPPORT = AtLeast(OLDEST_SUPPORTED)
val FOR_MPP_SUPPORT = AtLeast(TestVersions.Gradle.MAX_SUPPORTED)
}
class Exact(version: String) : GradleVersionRequired(version, version) {
@@ -31,6 +31,10 @@ import kotlin.test.assertTrue
import kotlin.test.fail
@MppGradlePluginTests
@GradleTestVersions(
maxVersion = TestVersions.Gradle.NEXT_RELEASE,
additionalVersions = [TestVersions.Gradle.MAX_SUPPORTED]
)
@DisplayName("Hierarchical multiplatform")
open class HierarchicalMppIT : KGPBaseTest() {
@@ -20,7 +20,11 @@ import kotlin.test.fail
class MPPBuildReproducibilityIT : KGPBaseTest() {
@GradleTest
@GradleTestVersions(minVersion = TestVersions.Gradle.G_7_0)
@GradleTestVersions(
minVersion = TestVersions.Gradle.G_7_0,
maxVersion = TestVersions.Gradle.NEXT_RELEASE,
additionalVersions = [TestVersions.Gradle.MAX_SUPPORTED]
)
@DisplayName("Check if consecutive builds produce same binaries: Simple Multiplatform project")
fun `test simpleMultiplatformProject`(gradleVersion: GradleVersion) {
project("MPPBuildReproducibility/simpleMultiplatformProject", gradleVersion) {
@@ -30,6 +30,10 @@ import kotlin.test.assertEquals
import kotlin.test.fail
@MppGradlePluginTests
@GradleTestVersions(
maxVersion = TestVersions.Gradle.NEXT_RELEASE,
additionalVersions = [TestVersions.Gradle.MAX_SUPPORTED]
)
@DisplayName("Multiplatform IDE dependency resolution")
class MppIdeDependencyResolutionIT : KGPBaseTest() {
@GradleTest
@@ -26,6 +26,8 @@ import kotlin.test.*
@DisplayName("kotlin-android with mpp")
@AndroidGradlePluginTests
@AndroidTestVersions(additionalVersions = [TestVersions.AGP.NEXT_RELEASE])
@GradleTestVersions(maxVersion = TestVersions.Gradle.NEXT_RELEASE, additionalVersions = [TestVersions.Gradle.MAX_SUPPORTED])
class KotlinAndroidMppIT : KGPBaseTest() {
@DisplayName("KT-50736: whenEvaluated waits for AGP being applied later")
@GradleAndroidTest
@@ -71,6 +73,7 @@ class KotlinAndroidMppIT : KGPBaseTest() {
android {
compileSdkVersion 22
namespace 'org.jetbrains.kotlin.gradle.test.android.libalfa'
}
kotlin { android("android") { } }
@@ -129,7 +132,6 @@ class KotlinAndroidMppIT : KGPBaseTest() {
@DisplayName("mpp source sets are registered in AGP")
@GradleAndroidTest
@AndroidTestVersions(minVersion = TestVersions.AGP.AGP_42)
fun testAndroidMppSourceSets(
gradleVersion: GradleVersion,
agpVersion: String,
@@ -542,8 +544,6 @@ class KotlinAndroidMppIT : KGPBaseTest() {
// AGP max version is limited due to https://youtrack.jetbrains.com/issue/KT-51940/HMPP-resolves-configurations-during-configuration
@DisplayName("android app can depend on mpp lib")
@AndroidTestVersions(maxVersion = TestVersions.AGP.AGP_72)
@GradleTestVersions(maxVersion = TestVersions.Gradle.G_7_4) // due AGP version limit ^
@GradleAndroidTest
fun testAndroidWithNewMppApp(
gradleVersion: GradleVersion,
@@ -726,7 +726,10 @@ class KotlinAndroidMppIT : KGPBaseTest() {
appBuildScriptBackup +
//language=Gradle
"""
android {
namespace 'app.example.com.lib'
}
kotlin.targets.all {
compilations.all {
attributes.attribute(
@@ -741,7 +744,10 @@ class KotlinAndroidMppIT : KGPBaseTest() {
appBuildScriptBackup +
//language=Gradle
"""
android {
namespace 'app.example.com.app_sample'
}
kotlin.targets.androidApp.compilations.all {
attributes.attribute(
Attribute.of("com.example.compilation", String),
@@ -849,8 +855,11 @@ class KotlinAndroidMppIT : KGPBaseTest() {
@DisplayName("produced artifacts are consumable by projects with various AGP versions")
@GradleAndroidTest
@AndroidTestVersions(minVersion = TestVersions.AGP.AGP_71)
@GradleTestVersions(minVersion = TestVersions.Gradle.G_7_2) // due AGP version limit ^
@AndroidTestVersions(minVersion = TestVersions.AGP.AGP_71, additionalVersions = [TestVersions.AGP.NEXT_RELEASE])
@GradleTestVersions(
minVersion = TestVersions.Gradle.G_7_2, maxVersion = TestVersions.Gradle.NEXT_RELEASE,
additionalVersions = [TestVersions.Gradle.MAX_SUPPORTED]
) // due AGP version limit ^
fun testAndroidMultiplatformPublicationAGPCompatibility(
gradleVersion: GradleVersion,
agpVersion: String,
@@ -917,8 +926,11 @@ class KotlinAndroidMppIT : KGPBaseTest() {
@DisplayName("KT-49877, KT-35916: associate compilation dependencies are passed correctly to android test compilations")
@GradleAndroidTest
@AndroidTestVersions(minVersion = TestVersions.AGP.AGP_71)
@GradleTestVersions(minVersion = TestVersions.Gradle.G_7_2) // due AGP version limit ^
@AndroidTestVersions(minVersion = TestVersions.AGP.AGP_71, additionalVersions = [TestVersions.AGP.NEXT_RELEASE])
@GradleTestVersions(
minVersion = TestVersions.Gradle.G_7_2, maxVersion = TestVersions.Gradle.NEXT_RELEASE,
additionalVersions = [TestVersions.Gradle.MAX_SUPPORTED]
) // due AGP version limit ^
fun testAssociateCompilationDependenciesArePassedToAndroidTestCompilations(
gradleVersion: GradleVersion,
agpVersion: String,
@@ -17,8 +17,12 @@ class MultiplatformAndroidSourceSetLayoutV2IT : KGPBaseTest() {
@GradleAndroidTest
@DisplayName("test Android project with flavors")
@AndroidTestVersions(minVersion = "7.0.4")
@GradleTestVersions(minVersion = TestVersions.Gradle.G_7_0) // due AGP version limit ^
@AndroidTestVersions(minVersion = "7.0.4", additionalVersions = [TestVersions.AGP.NEXT_RELEASE])
@GradleTestVersions(
minVersion = TestVersions.Gradle.G_7_0,
maxVersion = TestVersions.Gradle.NEXT_RELEASE,
additionalVersions = [TestVersions.Gradle.MAX_SUPPORTED]
) // due AGP version limit ^
fun testProjectWithFlavors(gradleVersion: GradleVersion, agpVersion: String, jdkVersion: JdkVersions.ProvidedJdk) {
project(
"multiplatformAndroidSourceSetLayout2",
@@ -10,6 +10,10 @@ import org.jetbrains.kotlin.gradle.testbase.*
import org.junit.jupiter.api.DisplayName
@MppGradlePluginTests
@GradleTestVersions(
maxVersion = TestVersions.Gradle.NEXT_RELEASE,
additionalVersions = [TestVersions.Gradle.MAX_SUPPORTED]
)
@DisplayName("Broken task configuration avoidance doesn't lead to build failures at least with simple setups")
class BrokenLazyConfigurationIT : KGPBaseTest() {
@GradleTest
@@ -16,6 +16,10 @@ import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.condition.OS
@MppGradlePluginTests
@GradleTestVersions(
maxVersion = TestVersions.Gradle.NEXT_RELEASE,
additionalVersions = [TestVersions.Gradle.MAX_SUPPORTED]
)
@DisplayName("Tests for multiplatform with composite builds")
class MppCompositeBuildIT : KGPBaseTest() {
@GradleTest
@@ -14,6 +14,10 @@ import kotlin.test.assertFalse
import kotlin.test.assertTrue
@MppGradlePluginTests
@GradleTestVersions(
maxVersion = TestVersions.Gradle.NEXT_RELEASE,
additionalVersions = [TestVersions.Gradle.MAX_SUPPORTED]
)
class MppDiagnosticsIt : KGPBaseTest() {
@GradleTest
fun testDeprecatedProperties(gradleVersion: GradleVersion) {
@@ -15,6 +15,10 @@ import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.fail
@MppGradlePluginTests
@GradleTestVersions(
maxVersion = TestVersions.Gradle.NEXT_RELEASE,
additionalVersions = [TestVersions.Gradle.MAX_SUPPORTED]
)
@DisplayName("Tests for multiplatform | shared native compilations")
class MppSharedNativeCompileIT : KGPBaseTest() {
/**
@@ -14,7 +14,10 @@ import org.junit.jupiter.api.DisplayName
@DisplayName("Tests for multiplatform testing")
class MppTestsIT : KGPBaseTest() {
@DisplayName("KT-54634: MPP testing logic is compatible with API changes in Gradle 7.6")
@GradleTestVersions(additionalVersions = [TestVersions.Gradle.G_7_5, TestVersions.Gradle.G_7_6])
@GradleTestVersions(
maxVersion = TestVersions.Gradle.NEXT_RELEASE,
additionalVersions = [TestVersions.Gradle.G_7_5, TestVersions.Gradle.G_7_6]
)
@GradleTest
fun testKt54634(gradleVersion: GradleVersion) {
project(
@@ -28,7 +28,7 @@ class AppleFrameworkIT : BaseGradleIT() {
override val defaultGradleVersion = GradleVersionRequired.FOR_MPP_SUPPORT
override fun defaultBuildOptions() = super.defaultBuildOptions().copy(
androidHome = KtTestUtil.findAndroidSdk(),
androidGradlePluginVersion = AGPVersion.v4_2_0
androidGradlePluginVersion = AGPVersion.v7_4_0
)
@Test
@@ -9,6 +9,10 @@ import org.gradle.util.GradleVersion
import org.jetbrains.kotlin.gradle.testbase.*
@MppGradlePluginTests
@GradleTestVersions(
maxVersion = TestVersions.Gradle.NEXT_RELEASE,
additionalVersions = [TestVersions.Gradle.MAX_SUPPORTED]
)
class CinteropIT : KGPBaseTest() {
@GradleTest
@@ -28,7 +28,7 @@ class XCFrameworkIT : BaseGradleIT() {
override val defaultGradleVersion = GradleVersionRequired.FOR_MPP_SUPPORT
override fun defaultBuildOptions() = super.defaultBuildOptions().copy(
androidHome = KtTestUtil.findAndroidSdk(),
androidGradlePluginVersion = AGPVersion.v4_2_0
androidGradlePluginVersion = AGPVersion.v7_4_0
)
@Test
@@ -5,8 +5,13 @@ plugins {
id 'org.jetbrains.kotlin.android'
}
java {
toolchain.languageVersion.set(JavaLanguageVersion.of(8))
}
android {
compileSdkVersion 22
namespace 'org.jetbrains.kotlin.gradle.test.androidalfa'
sourceSets {
main.java.srcDirs += 'src/main/java2'
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.jetbrains.kotlin.gradle.test.androidalfa"
android:versionCode="1"
android:versionName="1.0" >
@@ -11,8 +11,13 @@ dependencies {
implementation 'com.loopj.android:android-async-http:1.4.9'
}
java {
toolchain.languageVersion.set(JavaLanguageVersion.of(8))
}
android {
compileSdkVersion 22
namespace "org.jetbrains.kotlin.gradle.test.android.libalfa"
defaultConfig {
minSdkVersion 7
@@ -9,8 +9,13 @@ dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
java {
toolchain.languageVersion.set(JavaLanguageVersion.of(8))
}
android {
compileSdkVersion 22
namespace 'org.jetbrains.kotlin.gradle.test.android.test'
defaultConfig {
minSdkVersion 7
@@ -1 +1 @@
<manifest package="org.jetbrains.kotlin.gradle.test.android.test"/>
<manifest/>
@@ -1 +0,0 @@
org.gradle.jvmargs=-XX:MaxPermSize=512m
@@ -11,6 +11,7 @@ repositories {
android {
compileSdkVersion(23)
namespace = "kotlin.multiplatform.projects"
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
@@ -9,8 +9,13 @@ repositories {
google()
}
java {
toolchain.languageVersion.set(JavaLanguageVersion.of(8))
}
android {
compileSdk = 30
namespace = "foo.bar"
}
kotlin {
@@ -7,6 +7,9 @@ plugins {
kotlin("multiplatform")
}
java {
toolchain.languageVersion.set(JavaLanguageVersion.of(8))
}
android {
compileSdk = 31
@@ -14,6 +17,7 @@ android {
minSdk = 31
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
namespace = "org.jetbrains.kotlin.sample"
android.flavorDimensions.add("market")
android.flavorDimensions.add("price")
@@ -8,8 +8,13 @@ repositories {
mavenCentral()
}
java {
toolchain.languageVersion.set(JavaLanguageVersion.of(8))
}
android {
compileSdkVersion(30)
namespace = "com.example.plainAndroidConsumer"
}
kotlin {
@@ -3,8 +3,13 @@ plugins {
kotlin("android")
}
java {
toolchain.languageVersion.set(JavaLanguageVersion.of(8))
}
android {
compileSdkVersion(30)
namespace = "com.example.plainAndroidConsumer"
}
repositories {
@@ -17,8 +17,13 @@ publishing {
}
}
java {
toolchain.languageVersion.set(JavaLanguageVersion.of(8))
}
android {
compileSdkVersion(30)
namespace = "com.example.producer"
}
kotlin {
@@ -3,8 +3,13 @@ plugins {
kotlin("multiplatform")
}
java {
toolchain.languageVersion.set(JavaLanguageVersion.of(8))
}
android {
compileSdkVersion(28)
namespace = "io.sellmair.mpp"
defaultConfig {
minSdkVersion(21)
targetSdkVersion(28)
@@ -4,8 +4,13 @@ apply plugin: 'kotlin-multiplatform'
group 'com.example'
version '1.0'
java {
toolchain.languageVersion.set(JavaLanguageVersion.of(8))
}
android {
compileSdkVersion 27
namespace 'app.example.com.app_sample'
defaultConfig {
applicationId "app.example.com.app_sample"
minSdkVersion 21
@@ -5,8 +5,13 @@ apply plugin: 'maven-publish'
group 'com.example'
version '1.0'
java {
toolchain.languageVersion.set(JavaLanguageVersion.of(8))
}
android {
compileSdkVersion 27
namespace 'app.example.com.lib'
defaultConfig {
minSdkVersion 21