From 843829116d10c6bfffa69b2a68bb9299e6a4eba0 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Thu, 23 Apr 2020 00:55:52 +0300 Subject: [PATCH] Add module-info to kotlin-test-* framework adapter artifacts #KT-21266 --- libraries/kotlin.test/junit/build.gradle | 17 +++++++++++++++- .../junit/src/java9/java/module-info.java | 10 ++++++++++ libraries/kotlin.test/junit5/build.gradle | 17 +++++++++++++++- .../junit5/src/java9/java/module-info.java | 11 ++++++++++ libraries/kotlin.test/testng/build.gradle | 20 ++++++++++++++++++- .../testng/src/java9/java/module-info.java | 11 ++++++++++ 6 files changed, 83 insertions(+), 3 deletions(-) create mode 100644 libraries/kotlin.test/junit/src/java9/java/module-info.java create mode 100644 libraries/kotlin.test/junit5/src/java9/java/module-info.java create mode 100644 libraries/kotlin.test/testng/src/java9/java/module-info.java diff --git a/libraries/kotlin.test/junit/build.gradle b/libraries/kotlin.test/junit/build.gradle index 1d2bb4e72fc..cac83e13e0d 100644 --- a/libraries/kotlin.test/junit/build.gradle +++ b/libraries/kotlin.test/junit/build.gradle @@ -5,6 +5,14 @@ apply plugin: 'kotlin-platform-jvm' configureJvm6Project(project) configurePublishing(project) +def includeJava9 = BuildPropertiesExtKt.getIncludeJava9(project.kotlinBuildProperties) + +sourceSets { + if (includeJava9) { + java9 + } +} + dependencies { expectedBy project(':kotlin-test:kotlin-test-annotations-common') compile project(':kotlin-test:kotlin-test-jvm') @@ -13,7 +21,10 @@ dependencies { jar { - manifestAttributes(manifest, project, 'Test') + manifestAttributes(manifest, project, 'Test', true) + if (includeJava9) { + from sourceSets.java9.output + } } artifacts { @@ -30,3 +41,7 @@ compileKotlin { compileTestKotlin { kotlinOptions.freeCompilerArgs = ["-Xallow-kotlin-package"] } + +if (includeJava9) { + compileJava9Sources(project, 'kotlin.test.junit') +} diff --git a/libraries/kotlin.test/junit/src/java9/java/module-info.java b/libraries/kotlin.test/junit/src/java9/java/module-info.java new file mode 100644 index 00000000000..a64fccfd19c --- /dev/null +++ b/libraries/kotlin.test/junit/src/java9/java/module-info.java @@ -0,0 +1,10 @@ +module kotlin.test.junit { + requires transitive kotlin.stdlib; + requires transitive kotlin.test; + + requires junit; + + exports kotlin.test.junit; + + provides kotlin.test.AsserterContributor with kotlin.test.junit.JUnitContributor; +} diff --git a/libraries/kotlin.test/junit5/build.gradle b/libraries/kotlin.test/junit5/build.gradle index 53b8f77bdab..4886849c6b8 100644 --- a/libraries/kotlin.test/junit5/build.gradle +++ b/libraries/kotlin.test/junit5/build.gradle @@ -7,6 +7,14 @@ configurePublishing(project) ext.javaHome = JDK_18 ext.jvmTarget = "1.8" +def includeJava9 = BuildPropertiesExtKt.getIncludeJava9(project.kotlinBuildProperties) + +sourceSets { + if (includeJava9) { + java9 + } +} + project.ext["jpsLibraryPath"] = rootProject.distLibDir dependencies { @@ -18,7 +26,10 @@ dependencies { } jar { - manifestAttributes(manifest, project, 'Test') + manifestAttributes(manifest, project, 'Test', true) + if (includeJava9) { + from sourceSets.java9.output + } } artifacts { @@ -41,6 +52,10 @@ compileTestKotlin { kotlinOptions.freeCompilerArgs = ["-Xallow-kotlin-package"] } +if (includeJava9) { + compileJava9Sources(project, 'kotlin.test.junit5') +} + test { useJUnitPlatform() executable = "$JDK_18/bin/java" diff --git a/libraries/kotlin.test/junit5/src/java9/java/module-info.java b/libraries/kotlin.test/junit5/src/java9/java/module-info.java new file mode 100644 index 00000000000..92b5b9f3b18 --- /dev/null +++ b/libraries/kotlin.test/junit5/src/java9/java/module-info.java @@ -0,0 +1,11 @@ +@SuppressWarnings("module") // suppress warning about terminal digit +module kotlin.test.junit5 { + requires transitive kotlin.stdlib; + requires transitive kotlin.test; + + requires org.junit.jupiter.api; + + exports kotlin.test.junit5; + + provides kotlin.test.AsserterContributor with kotlin.test.junit5.JUnit5Contributor; +} diff --git a/libraries/kotlin.test/testng/build.gradle b/libraries/kotlin.test/testng/build.gradle index 52e85f516ca..e845c7f955b 100644 --- a/libraries/kotlin.test/testng/build.gradle +++ b/libraries/kotlin.test/testng/build.gradle @@ -6,14 +6,28 @@ configureJvm6Project(project) configurePublishing(project) ext.javaHome = JDK_17 +def includeJava9 = BuildPropertiesExtKt.getIncludeJava9(project.kotlinBuildProperties) + +sourceSets { + if (includeJava9) { + java9 + } +} + dependencies { expectedBy project(':kotlin-test:kotlin-test-annotations-common') compile project(':kotlin-test:kotlin-test-jvm') compile('org.testng:testng:6.13.1') + if (includeJava9) { + java9CompileOnly('org.testng:testng:7.0.0') + } } jar { - manifestAttributes(manifest, project, 'Test') + manifestAttributes(manifest, project, 'Test', true) + if (includeJava9) { + from sourceSets.java9.output + } } artifacts { @@ -31,6 +45,10 @@ compileTestKotlin { kotlinOptions.freeCompilerArgs = ["-Xallow-kotlin-package"] } +if (includeJava9) { + compileJava9Sources(project, 'kotlin.test.testng') +} + test { useTestNG() } diff --git a/libraries/kotlin.test/testng/src/java9/java/module-info.java b/libraries/kotlin.test/testng/src/java9/java/module-info.java new file mode 100644 index 00000000000..682d0c24523 --- /dev/null +++ b/libraries/kotlin.test/testng/src/java9/java/module-info.java @@ -0,0 +1,11 @@ +module kotlin.test.testng { + requires transitive kotlin.stdlib; + requires transitive kotlin.test; + + requires org.testng; // automatic module name in testng manifest since 7.0.0 + // won't work with earlier versions, where just 'testng' name was inferred from the artifact name + + exports kotlin.test.testng; + + provides kotlin.test.AsserterContributor with kotlin.test.testng.TestNGContributor; +}