134 lines
4.4 KiB
Groovy
134 lines
4.4 KiB
Groovy
/*
|
|
* Copyright 2016-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
|
|
*/
|
|
|
|
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
|
|
|
plugins {
|
|
id "org.jetbrains.kotlin.jvm"
|
|
}
|
|
|
|
repositories {
|
|
mavenLocal()
|
|
mavenCentral()
|
|
}
|
|
|
|
java {
|
|
sourceCompatibility = JavaVersion.VERSION_1_8
|
|
targetCompatibility = JavaVersion.VERSION_1_8
|
|
}
|
|
|
|
dependencies {
|
|
testImplementation "org.jetbrains.kotlin:kotlin-test:$kotlin_version"
|
|
}
|
|
|
|
sourceSets {
|
|
// Test that relies on Guava to reflectively check all Throwable subclasses in coroutines
|
|
withGuavaTest {
|
|
kotlin
|
|
compileClasspath += sourceSets.test.runtimeClasspath
|
|
runtimeClasspath += sourceSets.test.runtimeClasspath
|
|
|
|
dependencies {
|
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version"
|
|
implementation 'com.google.guava:guava:31.1-jre'
|
|
}
|
|
}
|
|
// Checks correctness of Maven publication (JAR resources) and absence of atomicfu symbols
|
|
mavenTest {
|
|
kotlin
|
|
compileClasspath += sourceSets.test.runtimeClasspath
|
|
runtimeClasspath += sourceSets.test.runtimeClasspath
|
|
|
|
dependencies {
|
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version"
|
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version"
|
|
}
|
|
}
|
|
// Checks that kotlinx-coroutines-debug can be used as -javaagent parameter
|
|
debugAgentTest {
|
|
kotlin
|
|
compileClasspath += sourceSets.test.runtimeClasspath
|
|
runtimeClasspath += sourceSets.test.runtimeClasspath
|
|
|
|
dependencies {
|
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version"
|
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-debug:$coroutines_version"
|
|
}
|
|
}
|
|
|
|
// Checks that kotlinx-coroutines-debug agent can self-attach dynamically to JVM as standalone dependency
|
|
debugDynamicAgentTest {
|
|
kotlin
|
|
compileClasspath += sourceSets.test.runtimeClasspath
|
|
runtimeClasspath += sourceSets.test.runtimeClasspath
|
|
|
|
dependencies {
|
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version"
|
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-debug:$coroutines_version"
|
|
}
|
|
}
|
|
|
|
// Checks that kotlinx-coroutines-core can be used as -javaagent parameter
|
|
coreAgentTest {
|
|
kotlin
|
|
compileClasspath += sourceSets.test.runtimeClasspath
|
|
runtimeClasspath += sourceSets.test.runtimeClasspath
|
|
|
|
dependencies {
|
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version"
|
|
}
|
|
}
|
|
}
|
|
|
|
compileDebugAgentTestKotlin {
|
|
kotlinOptions {
|
|
freeCompilerArgs += ["-Xallow-kotlin-package"]
|
|
}
|
|
}
|
|
|
|
task withGuavaTest(type: Test) {
|
|
environment "version", coroutines_version
|
|
def sourceSet = sourceSets.withGuavaTest
|
|
testClassesDirs = sourceSet.output.classesDirs
|
|
classpath = sourceSet.runtimeClasspath
|
|
}
|
|
|
|
task mavenTest(type: Test) {
|
|
environment "version", coroutines_version
|
|
def sourceSet = sourceSets.mavenTest
|
|
testClassesDirs = sourceSet.output.classesDirs
|
|
classpath = sourceSet.runtimeClasspath
|
|
}
|
|
|
|
task debugAgentTest(type: Test) {
|
|
def sourceSet = sourceSets.debugAgentTest
|
|
def coroutinesDebugJar = sourceSet.runtimeClasspath.filter {it.name == "kotlinx-coroutines-debug-${coroutines_version}.jar" }.singleFile
|
|
jvmArgs ('-javaagent:' + coroutinesDebugJar)
|
|
testClassesDirs = sourceSet.output.classesDirs
|
|
classpath = sourceSet.runtimeClasspath
|
|
systemProperties project.properties.subMap(["overwrite.probes"])
|
|
}
|
|
|
|
task debugDynamicAgentTest(type: Test) {
|
|
def sourceSet = sourceSets.debugDynamicAgentTest
|
|
testClassesDirs = sourceSet.output.classesDirs
|
|
classpath = sourceSet.runtimeClasspath
|
|
}
|
|
|
|
task coreAgentTest(type: Test) {
|
|
def sourceSet = sourceSets.coreAgentTest
|
|
def coroutinesCoreJar = sourceSet.runtimeClasspath.filter {it.name == "kotlinx-coroutines-core-jvm-${coroutines_version}.jar" }.singleFile
|
|
jvmArgs ('-javaagent:' + coroutinesCoreJar)
|
|
testClassesDirs = sourceSet.output.classesDirs
|
|
classpath = sourceSet.runtimeClasspath
|
|
}
|
|
|
|
compileTestKotlin {
|
|
kotlinOptions.jvmTarget = "1.8"
|
|
}
|
|
|
|
check {
|
|
dependsOn([withGuavaTest, debugDynamicAgentTest, mavenTest, debugAgentTest, coreAgentTest, 'smokeTest:build'])
|
|
}
|