[Gradle] Add tests for KT-52149, KT-55174, and KT-55741
This commit is contained in:
committed by
Space Team
parent
c8db20bd0b
commit
d360feb847
+90
@@ -0,0 +1,90 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* 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.gradle
|
||||||
|
|
||||||
|
import org.gradle.api.logging.configuration.WarningMode
|
||||||
|
import org.gradle.testkit.runner.BuildResult
|
||||||
|
import org.gradle.util.GradleVersion
|
||||||
|
import org.jetbrains.kotlin.gradle.testbase.*
|
||||||
|
import org.junit.jupiter.api.Disabled
|
||||||
|
import org.junit.jupiter.api.DisplayName
|
||||||
|
|
||||||
|
@DisplayName("Build services usages in tasks are declared with `usesService`")
|
||||||
|
@GradleTestVersions(minVersion = TestVersions.Gradle.G_7_5)
|
||||||
|
class BuildServiceDeclarationIT : KGPBaseTest() {
|
||||||
|
override val defaultBuildOptions = super.defaultBuildOptions.copy(
|
||||||
|
warningMode = WarningMode.All // we currently have other warnings when `STABLE_CONFIGURATION_CACHE` is enabled unrelated to build services declaration, so we check for this kind of warnings in the build output
|
||||||
|
)
|
||||||
|
|
||||||
|
@Disabled
|
||||||
|
@DisplayName("Build services are registered for Kotlin/JVM projects")
|
||||||
|
@GradleTest
|
||||||
|
@JvmGradlePluginTests
|
||||||
|
fun testJvmProject(gradleVersion: GradleVersion) {
|
||||||
|
project("kotlinJavaProject", gradleVersion) {
|
||||||
|
enableStableConfigurationCachePreview()
|
||||||
|
build("build") {
|
||||||
|
assertOutputDoesNotContainBuildServiceDeclarationWarnings()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Disabled
|
||||||
|
@DisplayName("Build services are registered for Kotlin/JS nodejs projects")
|
||||||
|
@GradleTest
|
||||||
|
@JsGradlePluginTests
|
||||||
|
fun testJsNodeJsProject(gradleVersion: GradleVersion) {
|
||||||
|
project("kotlin-js-browser-project", gradleVersion) {
|
||||||
|
enableStableConfigurationCachePreview()
|
||||||
|
build("build") {
|
||||||
|
assertOutputDoesNotContainBuildServiceDeclarationWarnings()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Disabled
|
||||||
|
@DisplayName("Build services are registered for Kotlin/JS browser projects")
|
||||||
|
@GradleTest
|
||||||
|
@JsGradlePluginTests
|
||||||
|
fun testJsBrowserProject(gradleVersion: GradleVersion) {
|
||||||
|
project("kotlin-js-nodejs-project", gradleVersion) {
|
||||||
|
enableStableConfigurationCachePreview()
|
||||||
|
build("build") {
|
||||||
|
assertOutputDoesNotContainBuildServiceDeclarationWarnings()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Disabled
|
||||||
|
@DisplayName("Build services are registered for Kotlin/MPP projects")
|
||||||
|
@GradleTest
|
||||||
|
@MppGradlePluginTests
|
||||||
|
fun testMppProject(gradleVersion: GradleVersion) {
|
||||||
|
project("new-mpp-lib-with-tests", gradleVersion) {
|
||||||
|
enableStableConfigurationCachePreview()
|
||||||
|
build("build") {
|
||||||
|
assertOutputDoesNotContainBuildServiceDeclarationWarnings()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Disabled
|
||||||
|
@DisplayName("Build services are registered for Kapt projects")
|
||||||
|
@GradleTest
|
||||||
|
@OtherGradlePluginTests
|
||||||
|
fun testKaptProject(gradleVersion: GradleVersion) {
|
||||||
|
project("kapt2/simple", gradleVersion) {
|
||||||
|
enableStableConfigurationCachePreview()
|
||||||
|
build("build") {
|
||||||
|
assertOutputDoesNotContainBuildServiceDeclarationWarnings()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun BuildResult.assertOutputDoesNotContainBuildServiceDeclarationWarnings() {
|
||||||
|
assertOutputDoesNotContain("without the corresponding declaration via 'Task#usesService'")
|
||||||
|
}
|
||||||
|
}
|
||||||
+14
-1
@@ -485,7 +485,6 @@ private fun TestProject.setupNonDefaultJdk(pathToJdk: File) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@OptIn(ExperimentalPathApi::class)
|
|
||||||
internal fun Path.enableAndroidSdk() {
|
internal fun Path.enableAndroidSdk() {
|
||||||
val androidSdk = KtTestUtil.findAndroidSdk()
|
val androidSdk = KtTestUtil.findAndroidSdk()
|
||||||
resolve("local.properties")
|
resolve("local.properties")
|
||||||
@@ -610,3 +609,17 @@ private fun TestProject.configureLocalRepository(localRepoDir: Path) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
internal fun TestProject.disableKotlinNativeCaches() = gradleProperties.toFile().disableKotlinNativeCaches()
|
internal fun TestProject.disableKotlinNativeCaches() = gradleProperties.toFile().disableKotlinNativeCaches()
|
||||||
|
|
||||||
|
internal fun TestProject.enableStableConfigurationCachePreview() {
|
||||||
|
val settingsFile = if (settingsGradleKts.exists()) {
|
||||||
|
settingsGradleKts
|
||||||
|
} else {
|
||||||
|
settingsGradle
|
||||||
|
}
|
||||||
|
settingsFile.append(
|
||||||
|
"""
|
||||||
|
|
|
||||||
|
|enableFeaturePreview("STABLE_CONFIGURATION_CACHE")
|
||||||
|
""".trimMargin()
|
||||||
|
)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user