Browse Source

Update the gradle plugin tests after kotlin 2.1.0 (#5210)

pull/5211/head
Oleksandr Karpovich 11 months ago committed by GitHub
parent
commit
1e1810c969
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 23
      gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/KotlinCompatibilityTest.kt
  2. 2
      gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/ResourcesTest.kt
  3. 1
      gradle-plugins/compose/src/test/test-projects/application/jsMpp/build.gradle
  4. 3
      gradle-plugins/compose/src/test/test-projects/application/jsMpp/settings.gradle
  5. 0
      gradle-plugins/compose/src/test/test-projects/application/jsMpp/src/commonMain/kotlin/platform.kt
  6. 0
      gradle-plugins/compose/src/test/test-projects/application/jsMpp/src/jsMain/kotlin/platform.kt
  7. 0
      gradle-plugins/compose/src/test/test-projects/application/jsMpp/src/jvmMain/kotlin/platform.kt
  8. 50
      gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler-args/build.gradle
  9. BIN
      gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler-args/main-image.expected.png
  10. 76
      gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler-args/src/desktopMain/kotlin/Main.kt
  11. 7
      gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler-args/src/jsMain/kotlin/Main.js.kt
  12. 26
      gradle-plugins/compose/src/test/test-projects/beforeKotlin2/jsMpp/settings.gradle

23
gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/KotlinCompatibilityTest.kt

@ -12,21 +12,17 @@ import org.jetbrains.compose.test.utils.checks @@ -12,21 +12,17 @@ import org.jetbrains.compose.test.utils.checks
import org.junit.jupiter.api.Test
class KotlinCompatibilityTest : GradlePluginTestBase() {
@Test
fun testKotlinMpp_1_9_10() = testMpp("1.9.10")
@Test
fun testKotlinJsMpp_1_9_24() = testJsMpp("1.9.24")
// Note: we can't test non-jvm targets with Kotlin older than 2.1.0, because of klib abi version bump in 2.1.0
@Test
fun testKotlinMpp_1_9_20() = testMpp("1.9.20")
fun testKotlinMpp_2_1_0() = testMpp("2.1.0")
@Test
fun testKotlinJsMpp_1_9_20() = testJsMpp("1.9.20")
fun testKotlinJsMpp_2_1_0() = testJsMpp("2.1.0")
private fun testMpp(kotlinVersion: String) = with(
testProject(
"beforeKotlin2/mpp",
"application/mpp",
testEnvironment = defaultTestEnvironment.copy(kotlinVersion = kotlinVersion)
)
) {
@ -39,7 +35,7 @@ class KotlinCompatibilityTest : GradlePluginTestBase() { @@ -39,7 +35,7 @@ class KotlinCompatibilityTest : GradlePluginTestBase() {
private fun testJsMpp(kotlinVersion: String) = with(
testProject(
"beforeKotlin2/jsMpp",
"application/jsMpp",
testEnvironment = defaultTestEnvironment.copy(kotlinVersion = kotlinVersion)
)
) {
@ -87,15 +83,6 @@ class KotlinCompatibilityTest : GradlePluginTestBase() { @@ -87,15 +83,6 @@ class KotlinCompatibilityTest : GradlePluginTestBase() {
)
).checkCustomComposeCompiler()
@Test
fun testKotlinCheckDisabled() = testProject(
"beforeKotlin2/custom-compiler-args", defaultTestEnvironment.copy(
kotlinVersion = "1.9.21",
composeCompilerPlugin = "dependencies.compiler.forKotlin(\"1.9.20\")",
composeCompilerArgs = "\"suppressKotlinVersionCompatibilityCheck=1.9.21\""
)
).checkCustomComposeCompiler(checkKJS = true)
private fun TestProject.checkCustomComposeCompiler(checkKJS: Boolean = false) {
gradle(":runDistributable").checks {
val actualMainImage = file("main-image.actual.png")

2
gradle-plugins/compose/src/test/kotlin/org/jetbrains/compose/test/tests/integration/ResourcesTest.kt

@ -243,7 +243,7 @@ class ResourcesTest : GradlePluginTestBase() { @@ -243,7 +243,7 @@ class ResourcesTest : GradlePluginTestBase() {
@Test
fun testMultiModuleResources() {
val environment = defaultTestEnvironment.copy(kotlinVersion = "2.0.0")
val environment = defaultTestEnvironment
with(
testProject("misc/kmpResourcePublication", environment)
) {

1
gradle-plugins/compose/src/test/test-projects/beforeKotlin2/jsMpp/build.gradle → gradle-plugins/compose/src/test/test-projects/application/jsMpp/build.gradle

@ -1,6 +1,7 @@ @@ -1,6 +1,7 @@
plugins {
id "org.jetbrains.kotlin.multiplatform"
id "org.jetbrains.compose"
id "org.jetbrains.kotlin.plugin.compose"
}
kotlin {

3
gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler-args/settings.gradle → gradle-plugins/compose/src/test/test-projects/application/jsMpp/settings.gradle

@ -1,6 +1,7 @@ @@ -1,6 +1,7 @@
pluginManagement {
plugins {
id 'org.jetbrains.kotlin.multiplatform' version 'KOTLIN_VERSION_PLACEHOLDER'
id 'org.jetbrains.kotlin.plugin.compose' version 'KOTLIN_VERSION_PLACEHOLDER'
id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER'
}
repositories {
@ -23,4 +24,4 @@ dependencyResolutionManagement { @@ -23,4 +24,4 @@ dependencyResolutionManagement {
mavenLocal()
}
}
rootProject.name = "simple"
rootProject.name = "jsMpp"

0
gradle-plugins/compose/src/test/test-projects/beforeKotlin2/jsMpp/src/commonMain/kotlin/platform.kt → gradle-plugins/compose/src/test/test-projects/application/jsMpp/src/commonMain/kotlin/platform.kt

0
gradle-plugins/compose/src/test/test-projects/beforeKotlin2/jsMpp/src/jsMain/kotlin/platform.kt → gradle-plugins/compose/src/test/test-projects/application/jsMpp/src/jsMain/kotlin/platform.kt

0
gradle-plugins/compose/src/test/test-projects/beforeKotlin2/jsMpp/src/jvmMain/kotlin/platform.kt → gradle-plugins/compose/src/test/test-projects/application/jsMpp/src/jvmMain/kotlin/platform.kt

50
gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler-args/build.gradle

@ -1,50 +0,0 @@ @@ -1,50 +0,0 @@
import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
plugins {
id "org.jetbrains.kotlin.multiplatform"
id "org.jetbrains.compose"
}
kotlin {
jvm("desktop")
js(IR) {
browser()
binaries.executable()
}
sourceSets {
desktopMain {
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib"
implementation compose.desktop.currentOs
}
}
jsMain {
dependencies {
implementation compose.runtime
implementation compose.web.core
}
}
}
}
compose {
kotlinCompilerPlugin.set(COMPOSE_COMPILER_PLUGIN_PLACEHOLDER)
kotlinCompilerPluginArgs.add(COMPOSE_COMPILER_PLUGIN_ARGS_PLACEHOLDER)
desktop {
application {
mainClass = "Main"
nativeDistributions {
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
}
def projectPath = project.projectDir.absolutePath
if (DefaultNativePlatform.currentOperatingSystem.isWindows()) {
projectPath = projectPath.replace("\\", "\\\\")
}
args(projectPath)
}
}
}

BIN
gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler-args/main-image.expected.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 B

76
gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler-args/src/desktopMain/kotlin/Main.kt

@ -1,76 +0,0 @@ @@ -1,76 +0,0 @@
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.GenericShape
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.Shape
import androidx.compose.ui.renderComposeScene
import org.jetbrains.skia.EncodedImageFormat
import java.io.File
import java.util.*
object Main {
@JvmStatic
@OptIn(ExperimentalComposeUiApi::class)
fun main(args: Array<String>) {
val workingDir = args.getOrNull(0)?.let { File(it) }
workingDir?.mkdirs()
if (workingDir == null || !workingDir.isDirectory) {
error("Working directory must be passes as the first argument. '$workingDir' is not a directory")
}
val image = renderComposeScene(height = 10, width = 10) {
mainShape()
}
val encodedImage = image.encodeToData(EncodedImageFormat.PNG) ?: error("Could not encode image as png")
workingDir.resolve("main-image.actual.png").writeBytes(encodedImage.bytes)
val mainMethods = this.javaClass.declaredMethods
.mapTo(TreeSet()) { it.name }
.joinToString("\n")
workingDir.resolve("main-methods.actual.txt").writeText(mainMethods)
}
@Composable
fun mainShape() {
triangle(Color.Magenta)
}
@Composable
fun unused() {
transitivelyUnused()
}
@Composable
fun transitivelyUnused() {
triangle(Color.Gray)
}
@Composable
fun keptByKeepRule() {
fillShape(Color.Blue, CircleShape)
}
}
@Composable
fun triangle(color: Color) {
fillShape(color, GenericShape { size, _ ->
moveTo(size.width / 2f, 0f)
lineTo(size.width, size.height)
lineTo(0f, size.height)
})
}
@Composable
fun fillShape(color: Color, shape: Shape){
Column(modifier = Modifier.fillMaxWidth().wrapContentSize(Alignment.Center)) {
Box(
modifier = Modifier.clip(shape).fillMaxSize().background(color)
)
}
}

7
gradle-plugins/compose/src/test/test-projects/beforeKotlin2/custom-compiler-args/src/jsMain/kotlin/Main.js.kt

@ -1,7 +0,0 @@ @@ -1,7 +0,0 @@
import org.jetbrains.compose.web.*
import org.jetbrains.compose.web.dom.*
fun main() {
renderComposableInBody {
Div { }
}
}

26
gradle-plugins/compose/src/test/test-projects/beforeKotlin2/jsMpp/settings.gradle

@ -1,26 +0,0 @@ @@ -1,26 +0,0 @@
pluginManagement {
plugins {
id 'org.jetbrains.kotlin.multiplatform' version 'KOTLIN_VERSION_PLACEHOLDER'
id 'org.jetbrains.compose' version 'COMPOSE_GRADLE_PLUGIN_VERSION_PLACEHOLDER'
}
repositories {
mavenLocal()
gradlePluginPortal()
mavenCentral()
google()
maven {
url 'https://maven.pkg.jetbrains.space/public/p/compose/dev'
}
}
}
dependencyResolutionManagement {
repositories {
mavenCentral()
google()
maven {
url 'https://maven.pkg.jetbrains.space/public/p/compose/dev'
}
mavenLocal()
}
}
rootProject.name = "jsMpp"
Loading…
Cancel
Save