Skip to content

Commit 541bc06

Browse files
committed
Add Kotlin K2 and Gradle 8.7 test case
1 parent 0fd665e commit 541bc06

3 files changed

Lines changed: 44 additions & 4 deletions

File tree

tests/buildTools/src/test/scala/tests/GradleBuildToolSuite.scala

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -360,11 +360,40 @@ abstract class GradleBuildToolSuite(gradle: Tool.Gradle)
360360
gradleVersions = List(Gradle8, Gradle7, Gradle6),
361361
tools = List(Scala2_12_12)
362362
)
363+
363364
checkGradleBuild(
364365
"kotlin",
365-
"""|/build.gradle
366+
s"""|/build.gradle
366367
|plugins {
367-
| id 'org.jetbrains.kotlin.jvm' version '1.8.0'
368+
| id 'org.jetbrains.kotlin.jvm' version '${Kotlin18.version}'
369+
|}
370+
|repositories {
371+
| mavenCentral()
372+
|}
373+
|/src/main/java/foo/JExample.java
374+
|package foo;
375+
||public class JExample {}
376+
|/src/main/kotlin/foo/Example.kt
377+
|package foo
378+
|object Example {}
379+
|/src/test/java/foo/JExampleSuite.java
380+
|package foo;
381+
|public class JExampleSuite {}
382+
|/src/test/kotlin/foo/ExampleSuite.kt
383+
|package foo
384+
|class ExampleSuite {}
385+
|""".stripMargin,
386+
expectedSemanticdbFiles = 4,
387+
gradleVersions = List(Gradle6, Gradle7, Gradle8),
388+
tools = List(Kotlin18)
389+
)
390+
391+
checkGradleBuild(
392+
"kotlin-k2",
393+
s"""|/build.gradle.kts
394+
|plugins {
395+
| `kotlin-dsl`
396+
| kotlin("jvm") version "${Kotlin192.version}"
368397
|}
369398
|repositories {
370399
| mavenCentral()
@@ -383,9 +412,11 @@ abstract class GradleBuildToolSuite(gradle: Tool.Gradle)
383412
|class ExampleSuite {}
384413
|""".stripMargin,
385414
expectedSemanticdbFiles = 4,
386-
gradleVersions = List(Gradle6, Gradle7)
415+
gradleVersions = List(Gradle8),
416+
tools = List(Kotlin192)
387417
)
388418

419+
389420
checkGradleBuild(
390421
"implementation-deps",
391422
"""|/settings.gradle

tests/buildTools/src/test/scala/tests/GradleBuildToolSuiteBase.scala

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@ abstract class GradleBuildToolSuiteBase(gradle: Tool.Gradle)
1414
}
1515

1616
def createEmptyBuildScript(): Unit = {
17-
val script = workingDirectory.resolve("build.gradle")
17+
// We're using settings.gradle instead of build.gradle because it's enough for
18+
// gradle to create a wrapper, and doesn't conflict if the test case uses build.gradle.kts.
19+
// Turns out gradle produces a very confusing error message if you have both build.gradle and build.gradle.kts
20+
val script = workingDirectory.resolve("settings.gradle")
1821
Files.createDirectories(script.getParent)
1922
Files.write(
2023
script,

tests/buildTools/src/test/scala/tests/Tool.scala

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,12 @@ object Tool {
5757
case object Scala211 extends Scala("2.11.9", atMostJava(11))
5858
case object Scala3 extends Scala("3.3.3", noRestrictions)
5959

60+
sealed abstract class Kotlin(version: String, support: JVMSupport)
61+
extends Tool("kotlin", version, support)
62+
// See https://stackoverflow.com/a/77179226
63+
case object Kotlin18 extends Kotlin("1.8.0", atMostJava(19))
64+
case object Kotlin192 extends Kotlin("1.9.20", atMostJava(21))
65+
6066
sealed abstract class Mill(version: String, support: JVMSupport)
6167
extends Tool("mill", version, support)
6268
// See https://docs.scala-lang.org/overviews/jdk-compatibility/overview.html#build-tool-compatibility-table

0 commit comments

Comments
 (0)