| /* |
| * 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']) |
| } |