blob: 1399877843f1849e8da6273ee05531ef1bdcf79f [file] [log] [blame] [edit]
import com.google.devtools.ksp.RelativizingInternalPathProvider
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import kotlin.math.max
val junitVersion: String by project
val kotlinBaseVersion: String by project
val agpBaseVersion: String by project
val aaCoroutinesVersion: String by project
plugins {
kotlin("jvm")
}
dependencies {
testImplementation("junit:junit:$junitVersion")
testImplementation(gradleTestKit())
testImplementation("org.jetbrains.kotlin:kotlin-compiler:$kotlinBaseVersion")
testImplementation(project(":api"))
testImplementation(project(":gradle-plugin"))
testImplementation(project(":symbol-processing"))
testImplementation(project(":symbol-processing-cmdline"))
testImplementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3")
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:$aaCoroutinesVersion")
}
fun Test.configureCommonSettings() {
systemProperty("kotlinVersion", kotlinBaseVersion)
systemProperty("kspVersion", version)
systemProperty("agpVersion", agpBaseVersion)
jvmArgumentProviders.add(
RelativizingInternalPathProvider(
"testRepo",
rootProject.layout.buildDirectory.dir("repos/test").get().asFile
)
)
dependsOn(":api:publishAllPublicationsToTestRepository")
dependsOn(":gradle-plugin:publishAllPublicationsToTestRepository")
dependsOn(":common-deps:publishAllPublicationsToTestRepository")
dependsOn(":symbol-processing:publishAllPublicationsToTestRepository")
dependsOn(":symbol-processing-cmdline:publishAllPublicationsToTestRepository")
dependsOn(":symbol-processing-aa-embeddable:publishAllPublicationsToTestRepository")
}
val agpCompatibilityTestClasses = listOf(
"**/AGP812IT.class", "**/AGP810IT.class", "**/AGP890IT.class", "**/AGP900IT.class", "**/BuiltInKotlinAGP900IT.class"
)
// Create a new test task for the AGP compatibility tests
val agpCompatibilityTest by tasks.registering(Test::class) {
description = "Runs AGP compatibility tests with maxParallelForks = 1"
group = "verification"
// Include only the AGP compatibility tests
include(agpCompatibilityTestClasses)
// Set maxParallelForks to 1 to avoid race conditions when downloading SDKs with old AGPs
maxParallelForks = 1
// Apply common settings
configureCommonSettings()
}
tasks.test {
maxParallelForks = max(1, Runtime.getRuntime().availableProcessors() / 2)
// Exclude test classes from agpCompatibilityTest
exclude(agpCompatibilityTestClasses)
// Apply common settings
configureCommonSettings()
// Ensure that 'test' runs after 'compatibilityTest'
mustRunAfter(agpCompatibilityTest)
}
tasks.check {
dependsOn(agpCompatibilityTest)
}
java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
kotlin {
compilerOptions {
jvmTarget.set(JvmTarget.JVM_11)
}
}