From 00df2c4a9e2e6f82a0102b8489c09bffc8c37d73 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Mon, 29 Mar 2021 15:05:26 +0200 Subject: [PATCH] Fix failing non-JUnit5 tests. They have failed due to migration to new plugin api in test projects. ^KT-45744 Fixed --- .../org/jetbrains/kotlin/gradle/Kapt3IT.kt | 2 +- .../kotlin/gradle/KotlinGradlePluginIT.kt | 20 ++++++----- .../gradle/KotlinSpecificDependenciesIT.kt | 30 +++++++++-------- .../org/jetbrains/kotlin/gradle/UpToDateIT.kt | 3 +- .../testProject/kapt2/simple/settings.gradle | 10 ++++++ .../testProject/kotlinProject/build.gradle | 1 + .../testProject/kotlinProject/settings.gradle | 2 ++ .../testProject/simpleProject/settings.gradle | 10 ++++++ .../simpleProjectClasspath/build.gradle | 33 +++++++++++++++++++ .../src/deploy/kotlin/kotlinSrc.kt | 12 +++++++ .../src/main/java/demo/Greeter.java | 17 ++++++++++ .../src/main/java/demo/HelloWorld.java | 18 ++++++++++ .../src/main/kotlin/helloWorld.kt | 20 +++++++++++ .../src/test/kotlin/tests.kt | 21 ++++++++++++ 14 files changed, 174 insertions(+), 25 deletions(-) create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/simple/settings.gradle create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProject/settings.gradle create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/build.gradle create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/deploy/kotlin/kotlinSrc.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/main/java/demo/Greeter.java create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/main/java/demo/HelloWorld.java create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/main/kotlin/helloWorld.kt create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/test/kotlin/tests.kt diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3IT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3IT.kt index 0e879ef8fc9..c42ec42b075 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3IT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3IT.kt @@ -615,7 +615,7 @@ open class Kapt3IT : Kapt3BaseIT() { val kaptProject = Project("simple", directoryPrefix = "kapt2").apply { setupWorkingDir() } kaptProject.projectDir.copyRecursively(projectDir.resolve("simple")) - projectDir.resolve("settings.gradle").writeText("include 'simple'") + projectDir.resolve("settings.gradle").appendText("include 'simple'") gradleBuildScript().appendText("\ndependencies { implementation project(':simple') }") testResolveAllConfigurations() diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt index 287da368cda..f3fa5587838 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt @@ -413,8 +413,10 @@ class KotlinGradleIT : BaseGradleIT() { val project = Project("kotlinProject") project.setupWorkingDir() File(project.projectDir, "build.gradle").modify { - it.replace("kotlin-stdlib:\$kotlin_version", "kotlin-stdlib").apply { check(!equals(it)) } + "\n" + """ - apply plugin: 'maven-publish' + """ + $it + + plugins.apply('maven-publish') group = "com.example" version = "1.0" @@ -442,7 +444,7 @@ class KotlinGradleIT : BaseGradleIT() { assertSuccessful() assertTasksExecuted(":compileKotlin", ":compileTestKotlin") val pomLines = File(project.projectDir, "build/publications/myLibrary/pom-default.xml").readLines() - val stdlibVersionLineNumber = pomLines.indexOfFirst { "kotlin-stdlib" in it } + 1 + val stdlibVersionLineNumber = pomLines.indexOfFirst { "kotlin-stdlib-jdk8" in it } + 1 val versionLine = pomLines[stdlibVersionLineNumber] assertTrue { "${defaultBuildOptions().kotlinVersion}" in versionLine } } @@ -1116,14 +1118,16 @@ class KotlinGradleIT : BaseGradleIT() { } @Test - fun testLoadCompilerEmbeddableAfterOtherKotlinArtifacts() = with(Project("simpleProject")) { + fun testLoadCompilerEmbeddableAfterOtherKotlinArtifacts() = with(Project("simpleProjectClasspath")) { setupWorkingDir() val buildscriptClasspathPrefix = "buildscript-classpath = " - gradleBuildScript().appendText( - "\n" + """ + gradleBuildScript() + .appendText( + """ + println "$buildscriptClasspathPrefix" + Arrays.toString(buildscript.classLoader.getURLs()) - """.trimIndent() - ) + """.trimIndent() + ) // get the classpath, then reorder it so that kotlin-compiler-embeddable is loaded after all other JARs lateinit var classpath: List diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinSpecificDependenciesIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinSpecificDependenciesIT.kt index bf543a1c4a8..e52c6caf889 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinSpecificDependenciesIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinSpecificDependenciesIT.kt @@ -256,22 +256,24 @@ class KotlinSpecificDependenciesIT : BaseGradleIT() { @Test fun testNoFailureIfConfigurationIsObserved() = with(jvmProject()) { - lateinit var originalScript: String - try { - gradleBuildScript().modify { - originalScript = it - """ - configurations.create("api") - dependencies { - api("org.jetbrains.kotlin:kotlin-reflect") - } - println(configurations.api.incoming.dependencies.toList()) - """.trimIndent() + "\n" + it + gradleBuildScript().modify { + //language=Groovy + """ + $it + + configurations { + apiTest + api.extendsFrom(apiTest) } - checkTaskCompileClasspath("compileKotlin", listOf("kotlin-reflect")) - } finally { - gradleBuildScript().writeText(originalScript) + + dependencies { + apiTest("org.jetbrains.kotlin:kotlin-reflect") + } + println(configurations.apiTest.incoming.resolutionResult.allDependencies) + println(configurations.apiTest.incoming.dependencies.toList()) + """.trimIndent() } + checkTaskCompileClasspath("compileKotlin", listOf("kotlin-reflect")) } private fun Project.checkConfigurationContent( diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/UpToDateIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/UpToDateIT.kt index 4dbf47c60c1..c14bac16d4e 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/UpToDateIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/UpToDateIT.kt @@ -115,8 +115,7 @@ class UpToDateIT : BaseGradleIT() { override fun initProject(project: Project) = with(project) { buildGradle.appendText( "\n" + """ - buildscript { dependencies { classpath "org.jetbrains.kotlin:kotlin-allopen:${'$'}kotlin_version" } } - apply plugin: "kotlin-allopen" + plugins.apply("org.jetbrains.kotlin.plugin.allopen") allOpen { annotation("allopen.Foo"); annotation("allopen.Bar") } """.trimIndent() ) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/simple/settings.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/simple/settings.gradle new file mode 100644 index 00000000000..3d37bf0b81c --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/simple/settings.gradle @@ -0,0 +1,10 @@ +pluginManagement { + repositories { + mavenLocal() + mavenCentral() + } + + plugins { + id "org.jetbrains.kotlin.jvm" version "$kotlin_version" + } +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinProject/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinProject/build.gradle index 96f923ba4c2..541a22b92c5 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinProject/build.gradle +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinProject/build.gradle @@ -1,5 +1,6 @@ plugins { id "org.jetbrains.kotlin.jvm" + id "org.jetbrains.kotlin.plugin.allopen" apply false } repositories { diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinProject/settings.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinProject/settings.gradle index 30321765924..3934435f618 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinProject/settings.gradle +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlinProject/settings.gradle @@ -4,9 +4,11 @@ pluginManagement { repositories { mavenLocal() mavenCentral() + gradlePluginPortal() } plugins { id "org.jetbrains.kotlin.jvm" version "$kotlin_version" + id "org.jetbrains.kotlin.plugin.allopen" version "$kotlin_version" } } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProject/settings.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProject/settings.gradle new file mode 100644 index 00000000000..3d37bf0b81c --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProject/settings.gradle @@ -0,0 +1,10 @@ +pluginManagement { + repositories { + mavenLocal() + mavenCentral() + } + + plugins { + id "org.jetbrains.kotlin.jvm" version "$kotlin_version" + } +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/build.gradle b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/build.gradle new file mode 100644 index 00000000000..48160614dc4 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/build.gradle @@ -0,0 +1,33 @@ +buildscript { + repositories { + mavenLocal() + mavenCentral() + } + dependencies { + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +apply plugin: "kotlin" +apply plugin: "java" + +sourceSets { + deploy +} + +repositories { + mavenLocal() + mavenCentral() +} + +dependencies { + implementation 'com.google.guava:guava:12.0' + deployImplementation 'com.google.guava:guava:12.0' + testImplementation 'org.testng:testng:6.8' + implementation "org.jetbrains.kotlin:kotlin-stdlib" + deployImplementation "org.jetbrains.kotlin:kotlin-stdlib" +} + +test { + useTestNG() +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/deploy/kotlin/kotlinSrc.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/deploy/kotlin/kotlinSrc.kt new file mode 100644 index 00000000000..eec86b34406 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/deploy/kotlin/kotlinSrc.kt @@ -0,0 +1,12 @@ +package demo + +import com.google.common.primitives.Ints +import com.google.common.base.Joiner + +class ExampleSource(param : Int) { + val property = param + fun f() : String? { + return "Hello World" + } +} + diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/main/java/demo/Greeter.java b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/main/java/demo/Greeter.java new file mode 100644 index 00000000000..ec2831d8d21 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/main/java/demo/Greeter.java @@ -0,0 +1,17 @@ +package demo; + +/** + * Created by Nikita.Skvortsov + * Date: 3/1/13, 10:53 AM + */ +public class Greeter { + private final String myGreeting; + + public Greeter(String greeting) { + myGreeting = greeting; + } + + public String getGreeting() { + return myGreeting; + } +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/main/java/demo/HelloWorld.java b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/main/java/demo/HelloWorld.java new file mode 100644 index 00000000000..2bc6463319b --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/main/java/demo/HelloWorld.java @@ -0,0 +1,18 @@ +package demo; + +/** + * Created by Nikita.Skvortsov + * Date: 3/1/13, 10:50 AM + */ +public class HelloWorld { + public static void main(String[] args) { + final KotlinGreetingJoiner example = new KotlinGreetingJoiner(new Greeter("Hi")); + + example.addName("Harry"); + example.addName("Ron"); + example.addName(null); + example.addName("Hermione"); + + System.out.println(example.getJoinedGreeting()); + } +} diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/main/kotlin/helloWorld.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/main/kotlin/helloWorld.kt new file mode 100644 index 00000000000..b3e99bbdd59 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/main/kotlin/helloWorld.kt @@ -0,0 +1,20 @@ +package demo + +import com.google.common.primitives.Ints +import com.google.common.base.Joiner +import java.util.ArrayList + +class KotlinGreetingJoiner(val greeter : Greeter) { + + val names = ArrayList() + + fun addName(name : String?): Unit{ + names.add(name) + } + + fun getJoinedGreeting() : String? { + val joiner = Joiner.on(" and ").skipNulls(); + return "${greeter.getGreeting()} ${joiner.join(names)}" + } +} + diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/test/kotlin/tests.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/test/kotlin/tests.kt new file mode 100644 index 00000000000..1a7a3a23b80 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/simpleProjectClasspath/src/test/kotlin/tests.kt @@ -0,0 +1,21 @@ +package demo + +import com.google.common.primitives.Ints +import com.google.common.base.Joiner +import org.testng.Assert.* +import org.testng.annotations.AfterMethod +import org.testng.annotations.BeforeMethod +import org.testng.annotations.Test as test + +class TestSource() { + @test fun f() { + val example : KotlinGreetingJoiner = KotlinGreetingJoiner(Greeter("Hi")) + example.addName("Harry") + example.addName("Ron") + example.addName(null) + example.addName("Hermione") + + assertEquals(example.getJoinedGreeting(), "Hi Harry and Ron and Hermione") + } +} +