From e7a2743dcfa47e270e5f211aef75e7e1937dd710 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Thu, 15 Feb 2018 23:40:11 +0300 Subject: [PATCH] Pill: Add "Generate All Tests" run configuration --- buildSrc/src/main/kotlin/pill/parser.kt | 7 +- buildSrc/src/main/kotlin/pill/plugin.kt | 5 +- .../JPS_Generate_All_Tests.xml | 8 + gradle/project-schema.json | 222 ++++++++++++++++-- .../pill/generate-all-tests/build.gradle.kts | 15 ++ .../kotlin/pill/generateAllTests/Main.java | 20 ++ settings.gradle | 2 + 7 files changed, 261 insertions(+), 18 deletions(-) create mode 100644 buildSrc/src/main/kotlin/pill/runConfigurations/JPS_Generate_All_Tests.xml create mode 100644 plugins/pill/generate-all-tests/build.gradle.kts create mode 100644 plugins/pill/generate-all-tests/test/org/jetbrains/kotlin/pill/generateAllTests/Main.java diff --git a/buildSrc/src/main/kotlin/pill/parser.kt b/buildSrc/src/main/kotlin/pill/parser.kt index 634aade6b1f..066a618a057 100644 --- a/buildSrc/src/main/kotlin/pill/parser.kt +++ b/buildSrc/src/main/kotlin/pill/parser.kt @@ -99,7 +99,8 @@ private val CONFIGURATION_MAPPING = mapOf( private val TEST_CONFIGURATION_MAPPING = mapOf( listOf("runtime", "testRuntime") to Scope.RUNTIME, listOf("compile", "testCompile") to Scope.COMPILE, - listOf("compileOnly", "testCompileOnly") to Scope.PROVIDED + listOf("compileOnly", "testCompileOnly") to Scope.PROVIDED, + listOf("jpsTest") to Scope.TEST ) private val SOURCE_SET_MAPPING = mapOf( @@ -273,9 +274,9 @@ private fun ParserContext.parseDependencies(project: Project, forTests: Boolean) } } - if (dependency.configuration == "runtimeElements") { + if (dependency.configuration == "runtimeElements" && scope != Scope.TEST) { mainRoots += POrderRoot(PDependency.Module(dependency.moduleName + ".src"), scope) - } else if (dependency.configuration == "tests-jar") { + } else if (dependency.configuration == "tests-jar" || dependency.configuration == "jpsTest") { mainRoots += POrderRoot( PDependency.Module(dependency.moduleName + ".test"), scope, diff --git a/buildSrc/src/main/kotlin/pill/plugin.kt b/buildSrc/src/main/kotlin/pill/plugin.kt index e70c1fec6e3..bbfa061c268 100644 --- a/buildSrc/src/main/kotlin/pill/plugin.kt +++ b/buildSrc/src/main/kotlin/pill/plugin.kt @@ -14,7 +14,10 @@ import java.io.FileOutputStream import javax.xml.transform.stream.StreamResult class JpsCompatiblePlugin : Plugin { - override fun apply(project: Project) {} + override fun apply(project: Project) { + // 'jpsTest' does not require the 'tests-jar' artifact + project.configurations.create("jpsTest") + } } class JpsCompatibleRootPlugin : Plugin { diff --git a/buildSrc/src/main/kotlin/pill/runConfigurations/JPS_Generate_All_Tests.xml b/buildSrc/src/main/kotlin/pill/runConfigurations/JPS_Generate_All_Tests.xml new file mode 100644 index 00000000000..ee11b91c9d6 --- /dev/null +++ b/buildSrc/src/main/kotlin/pill/runConfigurations/JPS_Generate_All_Tests.xml @@ -0,0 +1,8 @@ + + + + \ No newline at end of file diff --git a/gradle/project-schema.json b/gradle/project-schema.json index 51666cb7789..d2c4b243069 100644 --- a/gradle/project-schema.json +++ b/gradle/project-schema.json @@ -4,7 +4,8 @@ }, "configurations": [ - "bootstrapCompile" + "bootstrapCompile", + "jpsTest" ], "extensions": { "ext": "org.gradle.api.plugins.ExtraPropertiesExtension", @@ -25,6 +26,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -78,6 +80,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -136,6 +139,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -182,6 +186,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -194,7 +199,8 @@ "testImplementation", "testRuntime", "testRuntimeClasspath", - "testRuntimeOnly" + "testRuntimeOnly", + "tests-jar" ], "extensions": { "ext": "org.gradle.api.plugins.ExtraPropertiesExtension", @@ -219,6 +225,7 @@ "default", "implementation", "instrumentationClasspath", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -255,6 +262,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -290,6 +298,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -326,6 +335,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -374,7 +384,6 @@ "compileOnly", "compilerDummyJar", "default", - "distJar", "implementation", "kapt", "kaptTest", @@ -416,6 +425,7 @@ "default", "distJar", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -495,6 +505,7 @@ "default", "distJar", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -535,6 +546,7 @@ "default", "distJar", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -636,6 +648,7 @@ "default", "distJar", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -791,6 +804,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -955,6 +969,7 @@ "compilerDummyJar", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -996,6 +1011,7 @@ "distJar", "fatJarContents", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -1042,7 +1058,6 @@ "compileOnly", "compilerDummyJar", "default", - "distJar", "implementation", "kapt", "kaptAgp25", @@ -1086,7 +1101,6 @@ "compileClasspath", "compileOnly", "default", - "distJar", "implementation", "kapt", "kaptTest", @@ -1148,6 +1162,40 @@ "reporting": "org.gradle.api.reporting.ReportingExtension" } }, + ":kotlin-gradle-plugin-test-utils-embeddable": { + "conventions": { + "base": "org.gradle.api.plugins.BasePluginConvention", + "java": "org.gradle.api.plugins.JavaPluginConvention" + }, + "configurations": [ + "apiElements", + "archives", + "compile", + "compileClasspath", + "compileOnly", + "compilerDummyJar", + "default", + "implementation", + "packedJars", + "runtime", + "runtimeClasspath", + "runtimeElements", + "runtimeJar", + "runtimeOnly", + "testCompile", + "testCompileClasspath", + "testCompileOnly", + "testImplementation", + "testRuntime", + "testRuntimeClasspath", + "testRuntimeOnly" + ], + "extensions": { + "ext": "org.gradle.api.plugins.ExtraPropertiesExtension", + "defaultArtifacts": "org.gradle.api.internal.plugins.DefaultArtifactPublicationSet", + "reporting": "org.gradle.api.reporting.ReportingExtension" + } + }, ":kotlin-gradle-subplugin-example": { "conventions": { "base": "org.gradle.api.plugins.BasePluginConvention", @@ -1160,6 +1208,7 @@ "compile", "compileClasspath", "compileOnly", + "compilerDummyJar", "default", "implementation", "kapt", @@ -1167,6 +1216,7 @@ "runtime", "runtimeClasspath", "runtimeElements", + "runtimeJar", "runtimeOnly", "testCompile", "testCompileClasspath", @@ -1215,7 +1265,6 @@ "compileOnly", "compilerDummyJar", "default", - "distJar", "implementation", "kapt", "kaptTest", @@ -1257,6 +1306,7 @@ "default", "distJar", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -1295,6 +1345,7 @@ "default", "distJar", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -1405,6 +1456,7 @@ "default", "distJar", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -1481,7 +1533,6 @@ "compileOnly", "compilerDummyJar", "default", - "distJar", "implementation", "kapt", "kaptTest", @@ -1523,6 +1574,7 @@ "default", "distJar", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -1603,6 +1655,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -1643,6 +1696,7 @@ "default", "distJar", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -1989,6 +2043,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -2012,6 +2067,17 @@ "reporting": "org.gradle.api.reporting.ReportingExtension" } }, + ":pill": { + "conventions": { + + }, + "configurations": [ + + ], + "extensions": { + "ext": "org.gradle.api.plugins.ExtraPropertiesExtension" + } + }, ":plugins": { "conventions": { @@ -2047,6 +2113,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -2166,6 +2233,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -2201,6 +2269,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -2236,6 +2305,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -2271,6 +2341,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -2307,6 +2378,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -2342,6 +2414,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -2377,6 +2450,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -2413,6 +2487,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -2448,6 +2523,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -2484,6 +2560,7 @@ "default", "implementation", "jflexPath", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -2519,6 +2596,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -2554,6 +2632,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -2589,6 +2668,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -2625,6 +2705,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -2660,6 +2741,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -2695,6 +2777,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -2730,6 +2813,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -2765,6 +2849,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -2800,6 +2885,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -2835,6 +2921,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -2870,6 +2957,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -2882,8 +2970,7 @@ "testImplementation", "testRuntime", "testRuntimeClasspath", - "testRuntimeOnly", - "tests-jar" + "testRuntimeOnly" ], "extensions": { "ext": "org.gradle.api.plugins.ExtraPropertiesExtension", @@ -2906,6 +2993,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -2918,8 +3006,7 @@ "testImplementation", "testRuntime", "testRuntimeClasspath", - "testRuntimeOnly", - "tests-jar" + "testRuntimeOnly" ], "extensions": { "ext": "org.gradle.api.plugins.ExtraPropertiesExtension", @@ -2942,6 +3029,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -2977,6 +3065,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -3012,6 +3101,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -3058,6 +3148,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -3093,6 +3184,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -3163,6 +3255,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -3198,6 +3291,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -3389,6 +3483,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -3425,6 +3520,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -3460,6 +3556,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -3496,6 +3593,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -3567,6 +3665,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -3604,6 +3703,7 @@ "default", "implementation", "instrumentationClasspath", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -3640,6 +3740,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -3676,6 +3777,7 @@ "default", "implementation", "instrumentationClasspath", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -3711,6 +3813,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -3747,6 +3850,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -3782,6 +3886,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -3818,6 +3923,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -3853,6 +3959,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -3888,6 +3995,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -3923,6 +4031,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -3958,6 +4067,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -3994,6 +4104,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -4031,6 +4142,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -4067,7 +4179,6 @@ "compileClasspath", "compileOnly", "default", - "distJar", "implementation", "runtime", "runtimeClasspath", @@ -4102,7 +4213,6 @@ "compileClasspath", "compileOnly", "default", - "distJar", "implementation", "runtime", "runtimeClasspath", @@ -4137,7 +4247,6 @@ "compileClasspath", "compileOnly", "default", - "distJar", "implementation", "runtime", "runtimeClasspath", @@ -4386,6 +4495,83 @@ "signing": "org.gradle.plugins.signing.SigningExtension" } }, + ":kotlin-test:kotlin-test-testng": { + "conventions": { + "base": "org.gradle.api.plugins.BasePluginConvention", + "java": "org.gradle.api.plugins.JavaPluginConvention", + "maven": "org.gradle.api.plugins.MavenPluginConvention" + }, + "configurations": [ + "apiElements", + "archives", + "compile", + "compileClasspath", + "compileOnly", + "default", + "distJar", + "expectedBy", + "implement", + "implementation", + "kapt", + "kaptTest", + "runtime", + "runtimeClasspath", + "runtimeElements", + "runtimeOnly", + "signatures", + "testCompile", + "testCompileClasspath", + "testCompileOnly", + "testImplementation", + "testRuntime", + "testRuntimeClasspath", + "testRuntimeOnly" + ], + "extensions": { + "ext": "org.gradle.api.plugins.ExtraPropertiesExtension", + "kotlin": "org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension", + "kapt": "org.jetbrains.kotlin.gradle.plugin.KaptExtension", + "defaultArtifacts": "org.gradle.api.internal.plugins.DefaultArtifactPublicationSet", + "reporting": "org.gradle.api.reporting.ReportingExtension", + "signing": "org.gradle.plugins.signing.SigningExtension" + } + }, + ":pill:generate-all-tests": { + "conventions": { + "base": "org.gradle.api.plugins.BasePluginConvention", + "java": "org.gradle.api.plugins.JavaPluginConvention" + }, + "configurations": [ + "apiElements", + "archives", + "compile", + "compileClasspath", + "compileOnly", + "default", + "implementation", + "jpsTest", + "kapt", + "kaptTest", + "runtime", + "runtimeClasspath", + "runtimeElements", + "runtimeOnly", + "testCompile", + "testCompileClasspath", + "testCompileOnly", + "testImplementation", + "testRuntime", + "testRuntimeClasspath", + "testRuntimeOnly" + ], + "extensions": { + "ext": "org.gradle.api.plugins.ExtraPropertiesExtension", + "kotlin": "org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension", + "kapt": "org.jetbrains.kotlin.gradle.plugin.KaptExtension", + "defaultArtifacts": "org.gradle.api.internal.plugins.DefaultArtifactPublicationSet", + "reporting": "org.gradle.api.reporting.ReportingExtension" + } + }, ":plugins:android-extensions-compiler": { "conventions": { "base": "org.gradle.api.plugins.BasePluginConvention", @@ -4401,6 +4587,7 @@ "default", "distJar", "implementation", + "jpsTest", "kapt", "kaptTest", "robolectricClasspath", @@ -4441,6 +4628,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -4479,6 +4667,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -4515,6 +4704,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -4550,6 +4740,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -4586,6 +4777,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -4621,6 +4813,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", @@ -4657,6 +4850,7 @@ "compileOnly", "default", "implementation", + "jpsTest", "kapt", "kaptTest", "runtime", diff --git a/plugins/pill/generate-all-tests/build.gradle.kts b/plugins/pill/generate-all-tests/build.gradle.kts new file mode 100644 index 00000000000..ad54c28bfd9 --- /dev/null +++ b/plugins/pill/generate-all-tests/build.gradle.kts @@ -0,0 +1,15 @@ + +apply { plugin("kotlin") } +apply { plugin("jps-compatible") } + +dependencies { + jpsTest(project(":generators", configuration = "jpsTest")) + jpsTest(project(":compiler", configuration = "jpsTest")) + jpsTest(project(":js:js.tests", configuration = "jpsTest")) + jpsTest(project(":compiler:tests-java8", configuration = "jpsTest")) +} + +sourceSets { + "main" { } + "test" { projectDefault() } +} \ No newline at end of file diff --git a/plugins/pill/generate-all-tests/test/org/jetbrains/kotlin/pill/generateAllTests/Main.java b/plugins/pill/generate-all-tests/test/org/jetbrains/kotlin/pill/generateAllTests/Main.java new file mode 100644 index 00000000000..5c41f33a528 --- /dev/null +++ b/plugins/pill/generate-all-tests/test/org/jetbrains/kotlin/pill/generateAllTests/Main.java @@ -0,0 +1,20 @@ +/* + * Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.pill.generateAllTests; + +import org.jetbrains.kotlin.generators.tests.GenerateCompilerTestsKt; +import org.jetbrains.kotlin.generators.tests.GenerateJava8TestsKt; +import org.jetbrains.kotlin.generators.tests.GenerateJsTestsKt; +import org.jetbrains.kotlin.generators.tests.GenerateTestsKt; + +public class Main { + public static void main(String[] args) { + GenerateCompilerTestsKt.main(args); + GenerateTestsKt.main(args); + GenerateJsTestsKt.main(args); + GenerateJava8TestsKt.main(args); + } +} diff --git a/settings.gradle b/settings.gradle index 0fb07ec5a3d..30cda7ab9de 100644 --- a/settings.gradle +++ b/settings.gradle @@ -149,6 +149,7 @@ include ":kotlin-build-common", ":ultimate:ultimate-runner", ":kotlin-annotations-jvm", ":kotlin-annotations-android", + ":pill:generate-all-tests", // plugin markers: ':kotlin-gradle-plugin:plugin-marker', @@ -231,6 +232,7 @@ project(':examples:kotlin-jsr223-local-example').projectDir = "$rootDir/librarie project(':examples:kotlin-jsr223-daemon-local-eval-example').projectDir = "$rootDir/libraries/examples/kotlin-jsr223-daemon-local-eval-example" as File project(':kotlin-annotations-jvm').projectDir = "$rootDir/libraries/tools/kotlin-annotations-jvm" as File project(':kotlin-annotations-android').projectDir = "$rootDir/libraries/tools/kotlin-annotations-android" as File +project(':pill:generate-all-tests').projectDir = "$rootDir/plugins/pill/generate-all-tests" as File // plugin markers: project(':kotlin-gradle-plugin:plugin-marker').projectDir = file("$rootDir/libraries/tools/kotlin-gradle-plugin/plugin-marker")