From 8f4e4a4d404b386e5420583b15c3e738d89c119e Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Fri, 11 Dec 2020 13:53:47 +0300 Subject: [PATCH] Specify common sources for stdlib test compilation tasks Some multiplatform tests are compiled in single-platform projects: - in kotlin-stdlib-jdk7 - in kotlin-stdlib-jdk8 - in kotlin-stdlib-js-ir. The latter is technically MPP but with a single platform, so its common sources are not considered as common. Pass information about common sources to test compilation tasks in order to use OptionalExpectation annotations there. Co-authored-by: Svyatoslav Scherbina --- libraries/stdlib/jdk7/build.gradle | 1 + libraries/stdlib/jdk8/build.gradle | 1 + libraries/stdlib/js-ir/build.gradle.kts | 9 +++++++++ 3 files changed, 11 insertions(+) diff --git a/libraries/stdlib/jdk7/build.gradle b/libraries/stdlib/jdk7/build.gradle index 1e56622188d..361e0fda382 100644 --- a/libraries/stdlib/jdk7/build.gradle +++ b/libraries/stdlib/jdk7/build.gradle @@ -90,6 +90,7 @@ compileTestKotlin { "-Xopt-in=kotlin.ExperimentalUnsignedTypes", "-Xopt-in=kotlin.ExperimentalStdlibApi", "-Xopt-in=kotlin.io.path.ExperimentalPathApi", + "-Xcommon-sources=${fileTree('../test').join(',')}", ] } diff --git a/libraries/stdlib/jdk8/build.gradle b/libraries/stdlib/jdk8/build.gradle index e59fbc30e3b..a5e45269b44 100644 --- a/libraries/stdlib/jdk8/build.gradle +++ b/libraries/stdlib/jdk8/build.gradle @@ -82,6 +82,7 @@ compileTestKotlin { "-Xopt-in=kotlin.ExperimentalUnsignedTypes", "-Xopt-in=kotlin.ExperimentalStdlibApi", "-Xopt-in=kotlin.io.path.ExperimentalPathApi", + "-Xcommon-sources=${fileTree('../test').join(',')}", ] } diff --git a/libraries/stdlib/js-ir/build.gradle.kts b/libraries/stdlib/js-ir/build.gradle.kts index 47ee64c00ba..1d0629ebff2 100644 --- a/libraries/stdlib/js-ir/build.gradle.kts +++ b/libraries/stdlib/js-ir/build.gradle.kts @@ -149,6 +149,15 @@ val compileKotlinJs by tasks.existing(KotlinCompile::class) { kotlinOptions.freeCompilerArgs += "-Xir-module-name=kotlin" } + +val compileTestKotlinJs by tasks.existing(KotlinCompile::class) { + doFirst { + // Note: common test sources are copied to the actual source directory by commonMainSources task, + // so can't do this at configuration time: + kotlinOptions.freeCompilerArgs += "-Xcommon-sources=${kotlin.sourceSets["commonTest"].kotlin.joinToString(",")}" + } +} + val packFullRuntimeKLib by tasks.registering(Jar::class) { dependsOn(compileKotlinJs) from(buildDir.resolve("classes/kotlin/js/main"))