[Gradle] Add test for KT-55323
This commit is contained in:
committed by
Space Team
parent
ded0bb760f
commit
bef34e9cbf
+48
-25
@@ -20,7 +20,6 @@ import org.gradle.util.GradleVersion
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.stat.*
|
import org.jetbrains.kotlin.gradle.plugin.stat.*
|
||||||
import org.jetbrains.kotlin.gradle.report.BuildReportType
|
import org.jetbrains.kotlin.gradle.report.BuildReportType
|
||||||
import org.jetbrains.kotlin.gradle.testbase.*
|
import org.jetbrains.kotlin.gradle.testbase.*
|
||||||
import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase.assertNotEmpty
|
|
||||||
import org.junit.jupiter.api.DisplayName
|
import org.junit.jupiter.api.DisplayName
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.net.HttpURLConnection
|
import java.net.HttpURLConnection
|
||||||
@@ -29,11 +28,7 @@ import java.net.URL
|
|||||||
import java.util.*
|
import java.util.*
|
||||||
import java.util.concurrent.ArrayBlockingQueue
|
import java.util.concurrent.ArrayBlockingQueue
|
||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
import kotlin.test.assertContains
|
import kotlin.test.*
|
||||||
import kotlin.test.assertContentEquals
|
|
||||||
import kotlin.test.assertEquals
|
|
||||||
import kotlin.test.assertFails
|
|
||||||
import kotlin.test.assertTrue
|
|
||||||
|
|
||||||
@DisplayName("Build statistics")
|
@DisplayName("Build statistics")
|
||||||
@JvmGradlePluginTests
|
@JvmGradlePluginTests
|
||||||
@@ -159,11 +154,14 @@ class BuildStatisticsWithKtorIT : KGPBaseTest() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@DisplayName("Validate mandatory field for http request body")
|
private fun simpleTestHttpReport(
|
||||||
@GradleTest
|
gradleVersion: GradleVersion,
|
||||||
fun testHttpRequest(gradleVersion: GradleVersion) {
|
additionalProjectSetup: (TestProject) -> Unit = {},
|
||||||
|
compileTaskAssertions: (CompileStatisticsData) -> Unit,
|
||||||
|
) {
|
||||||
runWithKtorService { port ->
|
runWithKtorService { port ->
|
||||||
project("incrementalMultiproject", gradleVersion) {
|
project("incrementalMultiproject", gradleVersion) {
|
||||||
|
additionalProjectSetup(this)
|
||||||
setProjectForTest(port)
|
setProjectForTest(port)
|
||||||
build("clean", "assemble") {
|
build("clean", "assemble") {
|
||||||
assertOutputDoesNotContain("Failed to send statistic to")
|
assertOutputDoesNotContain("Failed to send statistic to")
|
||||||
@@ -171,25 +169,11 @@ class BuildStatisticsWithKtorIT : KGPBaseTest() {
|
|||||||
}
|
}
|
||||||
validateTaskData(port) { taskData ->
|
validateTaskData(port) { taskData ->
|
||||||
assertEquals(":lib:compileKotlin", taskData.taskName)
|
assertEquals(":lib:compileKotlin", taskData.taskName)
|
||||||
assertContains(taskData.tags, "NON_INCREMENTAL")
|
compileTaskAssertions(taskData)
|
||||||
assertContains(taskData.nonIncrementalAttributes.map { it.name }, "UNKNOWN_CHANGES_IN_GRADLE_INPUTS")
|
|
||||||
assertTrue(taskData.performanceMetrics.keys.isNotEmpty())
|
|
||||||
assertTrue(taskData.buildTimesMetrics.keys.isNotEmpty())
|
|
||||||
assertEquals(
|
|
||||||
defaultBuildOptions.kotlinVersion, taskData.kotlinVersion,
|
|
||||||
"Unexpected kotlinVersion: ${taskData.kotlinVersion} instead of ${defaultBuildOptions.kotlinVersion}"
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
validateTaskData(port) { taskData ->
|
validateTaskData(port) { taskData ->
|
||||||
assertEquals(":app:compileKotlin", taskData.taskName)
|
assertEquals(":app:compileKotlin", taskData.taskName)
|
||||||
assertContains(taskData.tags, "NON_INCREMENTAL")
|
compileTaskAssertions(taskData)
|
||||||
assertContains(taskData.nonIncrementalAttributes.map { it.name }, "UNKNOWN_CHANGES_IN_GRADLE_INPUTS")
|
|
||||||
assertTrue(taskData.performanceMetrics.keys.isNotEmpty())
|
|
||||||
assertTrue(taskData.buildTimesMetrics.keys.isNotEmpty())
|
|
||||||
assertEquals(
|
|
||||||
defaultBuildOptions.kotlinVersion, taskData.kotlinVersion,
|
|
||||||
"Unexpected kotlinVersion: ${taskData.kotlinVersion} instead of ${defaultBuildOptions.kotlinVersion}"
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
validateBuildData(port) { buildData ->
|
validateBuildData(port) { buildData ->
|
||||||
assertContains(buildData.startParameters.tasks, "assemble")
|
assertContains(buildData.startParameters.tasks, "assemble")
|
||||||
@@ -197,6 +181,45 @@ class BuildStatisticsWithKtorIT : KGPBaseTest() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@DisplayName("Validate mandatory field for http request body")
|
||||||
|
@GradleTest
|
||||||
|
fun testHttpRequest(gradleVersion: GradleVersion) {
|
||||||
|
simpleTestHttpReport(gradleVersion) { taskData ->
|
||||||
|
assertContains(taskData.tags, "NON_INCREMENTAL")
|
||||||
|
assertContains(taskData.nonIncrementalAttributes.map { it.name }, "UNKNOWN_CHANGES_IN_GRADLE_INPUTS")
|
||||||
|
assertFalse(taskData.performanceMetrics.keys.isEmpty())
|
||||||
|
assertFalse(taskData.buildTimesMetrics.keys.isEmpty())
|
||||||
|
assertFalse(taskData.compilerArguments.isEmpty())
|
||||||
|
assertEquals(
|
||||||
|
defaultBuildOptions.kotlinVersion, taskData.kotlinVersion,
|
||||||
|
"Unexpected kotlinVersion: ${taskData.kotlinVersion} instead of ${defaultBuildOptions.kotlinVersion}"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@DisplayName("Compiler arguments reporting can be disabled")
|
||||||
|
@GradleTest
|
||||||
|
fun testDisablingCompilerArgumentsReporting(gradleVersion: GradleVersion) {
|
||||||
|
simpleTestHttpReport(gradleVersion, { project ->
|
||||||
|
project.gradleProperties.append(
|
||||||
|
"""
|
||||||
|
|
|
||||||
|
|kotlin.build.report.include_compiler_arguments=false
|
||||||
|
""".trimMargin()
|
||||||
|
)
|
||||||
|
}) { taskData ->
|
||||||
|
assertContains(taskData.tags, "NON_INCREMENTAL")
|
||||||
|
assertContains(taskData.nonIncrementalAttributes.map { it.name }, "UNKNOWN_CHANGES_IN_GRADLE_INPUTS")
|
||||||
|
assertFalse(taskData.performanceMetrics.keys.isEmpty())
|
||||||
|
assertFalse(taskData.buildTimesMetrics.keys.isEmpty())
|
||||||
|
assertTrue(taskData.compilerArguments.isEmpty())
|
||||||
|
assertEquals(
|
||||||
|
defaultBuildOptions.kotlinVersion, taskData.kotlinVersion,
|
||||||
|
"Unexpected kotlinVersion: ${taskData.kotlinVersion} instead of ${defaultBuildOptions.kotlinVersion}"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@DisplayName("Validate configuration cache tag")
|
@DisplayName("Validate configuration cache tag")
|
||||||
@GradleTest
|
@GradleTest
|
||||||
fun testConfigurationCache(gradleVersion: GradleVersion) {
|
fun testConfigurationCache(gradleVersion: GradleVersion) {
|
||||||
|
|||||||
Reference in New Issue
Block a user