blob: ffbb6cb89d06843fb5e0a5ad1add4bcfec3e9691 [file] [edit]
import org.gradle.jvm.toolchain.JavaLauncher
import org.jetbrains.kotlin.build.androidsdkprovisioner.ProvisioningType
import org.jetbrains.kotlin.testFederation.SmokeTestConfig
import org.jetbrains.kotlin.testFederation.TemporaryTestFederationApi
import org.jetbrains.kotlin.testFederation.smokeTestConfig
plugins {
id("common-configuration")
id("test-federation-convention")
id("com.autonomousapps.dependency-analysis")
kotlin("jvm")
id("android-sdk-provisioner")
id("project-tests-convention")
id("test-inputs-check-v2")
}
dependencies {
testImplementation(project(":core:descriptors.jvm"))
testImplementation(project(":compiler:util"))
testImplementation(project(":compiler:cli"))
testImplementation(project(":compiler:frontend"))
testImplementation(project(":compiler:backend"))
testImplementation(testFixtures(project(":compiler:tests-common")))
testImplementation(platform(libs.junit.bom))
testImplementation(libs.junit.jupiter.api)
testRuntimeOnly(libs.junit.jupiter.engine)
testRuntimeOnly(libs.junit.platform.launcher)
testImplementation(libs.kotlinx.coroutines.core)
testImplementation(libs.kotlinx.coroutines.core.jvm)
testImplementation(testFixtures(project(":compiler:test-infrastructure")))
testImplementation(testFixtures(project(":compiler:test-infrastructure-utils")))
testImplementation(testFixtures(project(":compiler:tests-compiler-utils")))
testImplementation(testFixtures(project(":compiler:tests-common-new")))
testRuntimeOnly(intellijCore())
testRuntimeOnly(commonDependency("org.jetbrains.intellij.deps.jna:jna"))
}
sourceSets {
"main" { }
"test" { projectDefault() }
}
optInToK1Deprecation()
val acceptAndroidSdkLicenses = with(androidSdkProvisioner) {
project.registerAcceptLicensesTask()
}
abstract class JdkHomeArgumentProvider : CommandLineArgumentProvider {
@get:Nested
abstract val javaLauncher: Property<JavaLauncher>
override fun asArguments(): Iterable<String> =
listOf("-Dorg.gradle.java.home=${javaLauncher.get().metadata.installationPath.asFile.absolutePath}")
}
projectTests {
testTask(
jUnitMode = JUnitMode.JUnit5,
javaLauncher = JdkMajorVersion.JDK_17_0,
) {
develocity {
testRetry.maxRetries.set(0)
}
testLogging {
showStandardStreams = true
}
dependsOn(acceptAndroidSdkLicenses)
environment("kotlin.tests.android.timeout", "45")
val jdkHomeProvider = objects.newInstance<JdkHomeArgumentProvider>()
jdkHomeProvider.javaLauncher.set(project.getToolchainLauncherFor(JdkMajorVersion.JDK_17_0))
jvmArgumentProviders.add(jdkHomeProvider)
if (project.hasProperty("teamcity") || project.hasProperty("kotlin.test.android.teamcity")) {
systemProperty("kotlin.test.android.teamcity", true)
}
project.findProperty("kotlin.test.android.path.filter")?.let {
systemProperty("kotlin.test.android.path.filter", it.toString())
}
androidSdkProvisioner {
provideToThisTaskAsSystemProperty(ProvisioningType.SDK_WITH_EMULATOR)
}
@OptIn(TemporaryTestFederationApi::class)
smokeTestConfig = SmokeTestConfig.Disabled
testData(project(":compiler").isolated, "testData/codegen/box")
testData(project(":compiler").isolated, "testData/codegen/boxJvm")
testData(project(":compiler").isolated, "testData/codegen/boxInline")
addDirectoryProperty(project.layout.projectDirectory.dir("android-module").asFile, "kotlin.test.android.androidModule")
addDirectoryProperty(rootProject.layout.projectDirectory.dir("gradle/wrapper").asFile, "kotlin.test.android.gradleWrapper")
addFileProperty(rootProject.layout.projectDirectory.file("gradlew"), "kotlin.test.android.gradlew")
addFileProperty(rootProject.layout.projectDirectory.file("gradlew.bat"), "kotlin.test.android.gradlewBat")
}
withJvmStdlibAndReflect()
withTestJar()
withScriptRuntime()
withMockJdkAnnotationsJar()
withMockJdkRuntime()
}
val generateAndroidTests by generator(
"org.jetbrains.kotlin.android.tests.CodegenTestsOnAndroidGenerator",
testSourceSet,
inputKind = GeneratorInputKind.RuntimeClasspath,
) {
}