diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildStatisticsWithKtorIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildStatisticsWithKtorIT.kt index eaf9c46974b..5a68ae82bdb 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildStatisticsWithKtorIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildStatisticsWithKtorIT.kt @@ -17,6 +17,7 @@ import io.ktor.server.engine.* import io.ktor.server.netty.* import io.ktor.util.* import io.ktor.util.collections.* +import org.gradle.api.logging.LogLevel import org.gradle.util.GradleVersion import org.jetbrains.kotlin.gradle.plugin.stat.* import org.jetbrains.kotlin.gradle.report.BuildReportType @@ -193,7 +194,7 @@ class BuildStatisticsWithKtorIT : KGPBaseTest() { @GradleTest fun testHttpRequest(gradleVersion: GradleVersion) { simpleTestHttpReport(gradleVersion) { taskData -> - assertContains(taskData.tags, "NON_INCREMENTAL") + assertContains(taskData.tags, StatTag.NON_INCREMENTAL) assertContains(taskData.nonIncrementalAttributes.map { it.name }, "UNKNOWN_CHANGES_IN_GRADLE_INPUTS") assertFalse(taskData.performanceMetrics.keys.isEmpty()) assertFalse(taskData.buildTimesMetrics.keys.isEmpty()) @@ -216,7 +217,7 @@ class BuildStatisticsWithKtorIT : KGPBaseTest() { """.trimMargin() ) }) { taskData -> - assertContains(taskData.tags, "NON_INCREMENTAL") + assertContains(taskData.tags, StatTag.NON_INCREMENTAL) assertContains(taskData.nonIncrementalAttributes.map { it.name }, "UNKNOWN_CHANGES_IN_GRADLE_INPUTS") assertFalse(taskData.performanceMetrics.keys.isEmpty()) assertFalse(taskData.buildTimesMetrics.keys.isEmpty()) @@ -246,15 +247,22 @@ class BuildStatisticsWithKtorIT : KGPBaseTest() { } validateTaskData(port) { taskData -> assertEquals(":lib:compileKotlin", taskData.taskName) - assertContentEquals(listOf("ARTIFACT_TRANSFORM", "CONFIGURATION_CACHE", "NON_INCREMENTAL"), taskData.tags.sorted(), ) + assertContentEquals( + listOf( + StatTag.ARTIFACT_TRANSFORM, + StatTag.NON_INCREMENTAL, + StatTag.CONFIGURATION_CACHE, + StatTag.KOTLIN_1, + ), taskData.tags.sorted(), + ) assertEquals( defaultBuildOptions.kotlinVersion, taskData.kotlinVersion, - "Unexpected kotlinVersion: ${taskData.kotlinVersion} instead of ${defaultBuildOptions.kotlinVersion}" + "Unexpected kotlinVersion: ${taskData.kotlinVersion} instead of ${defaultBuildOptions.kotlinVersion}" ) } validateTaskData(port) { taskData -> assertEquals(":app:compileKotlin", taskData.taskName) - assertContentEquals(taskData.tags.sorted(), listOf("ARTIFACT_TRANSFORM", "CONFIGURATION_CACHE", "NON_INCREMENTAL")) + assertContentEquals(listOf(StatTag.ARTIFACT_TRANSFORM, StatTag.NON_INCREMENTAL, StatTag.CONFIGURATION_CACHE, StatTag.KOTLIN_1), taskData.tags.sorted()) assertEquals( defaultBuildOptions.kotlinVersion, taskData.kotlinVersion, "Unexpected kotlinVersion: ${taskData.kotlinVersion} instead of ${defaultBuildOptions.kotlinVersion}" @@ -266,11 +274,11 @@ class BuildStatisticsWithKtorIT : KGPBaseTest() { //second build validateTaskData(port) { taskData -> assertEquals(":lib:compileKotlin", taskData.taskName) - assertContentEquals(taskData.tags.sorted(), listOf("ARTIFACT_TRANSFORM", "CONFIGURATION_CACHE", "INCREMENTAL")) + assertContentEquals(listOf(StatTag.ARTIFACT_TRANSFORM, StatTag.INCREMENTAL, StatTag.CONFIGURATION_CACHE, StatTag.KOTLIN_1), taskData.tags.sorted()) } validateTaskData(port) { taskData -> assertEquals(":app:compileKotlin", taskData.taskName) - assertContentEquals(taskData.tags.sorted(), listOf("ARTIFACT_TRANSFORM", "CONFIGURATION_CACHE", "INCREMENTAL")) + assertContentEquals(listOf(StatTag.ARTIFACT_TRANSFORM, StatTag.INCREMENTAL, StatTag.CONFIGURATION_CACHE, StatTag.KOTLIN_1), taskData.tags.sorted()) } } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/kotlinCompilerArgsPlugin.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/kotlinCompilerArgsPlugin.kt index 5ca26fe173b..dd520681e50 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/kotlinCompilerArgsPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/kotlinCompilerArgsPlugin.kt @@ -44,19 +44,13 @@ private fun File.updateSettingsGradle() { private fun File.updateBuildKtsGradle() { modify { - if (it.contains("buildscript {")) { - it.replaceFirst( - "dependencies {", "dependencies {\n" + - "classpath(\"org.jetbrains.kotlin:kotlin-compiler-args-properties:${'$'}test_fixes_version\")" - ) - } else { - it.replace( - "plugins {", - "plugins {\nid(\"org.jetbrains.kotlin.test.kotlin-compiler-args-properties\")" - ) - } + it.replace( + "plugins {", + "plugins {\nid(\"org.jetbrains.kotlin.test.kotlin-compiler-args-properties\")" + ) } } + private fun File.updateBuildGradle() { modify { if (it.contains("buildscript {")) { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt index d20415d25d2..20df0807e23 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt @@ -42,6 +42,8 @@ import org.jetbrains.kotlin.statistics.metrics.BooleanMetrics import org.jetbrains.kotlin.statistics.metrics.StringMetrics import java.io.File import java.lang.ref.WeakReference +import org.jetbrains.kotlin.gradle.dsl.KotlinVersion + const val CREATED_CLIENT_FILE_PREFIX = "Created client-is-alive flag file: " const val EXISTING_CLIENT_FILE_PREFIX = "Existing client-is-alive flag file: " @@ -194,7 +196,9 @@ internal open class GradleCompilerRunner( allWarningsAsErrors = compilerArgs.allWarningsAsErrors, compilerExecutionSettings = compilerExecutionSettings, errorsFile = errorsFile, - kotlinPluginVersion = getKotlinPluginVersion(loggerProvider) + kotlinPluginVersion = getKotlinPluginVersion(loggerProvider), + //no need to log warnings in MessageCollector hear it will be logged by compiler + kotlinLanguageVersion = parseLanguageVersion(compilerArgs.languageVersion, compilerArgs.useK2) ) TaskLoggers.put(pathProvider, loggerProvider) return runCompilerAsync( @@ -203,6 +207,12 @@ internal open class GradleCompilerRunner( ) } + //Copy of CommonCompilerArguments.parseOrConfigureLanguageVersion to avoid direct dependency + private fun parseLanguageVersion(languageVersion: String?, useK2: Boolean): KotlinVersion { + val explicitVersion = languageVersion?.let { KotlinVersion.fromVersion(languageVersion) } ?: KotlinVersion.DEFAULT + return if (useK2 && (explicitVersion < KotlinVersion.KOTLIN_2_0)) KotlinVersion.KOTLIN_2_0 else explicitVersion + } + protected open fun runCompilerAsync( workArgs: GradleKotlinCompilerWorkArguments, taskOutputsBackup: TaskOutputsBackup? diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerWork.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerWork.kt index 8faedbb6318..95f71103f26 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerWork.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerWork.kt @@ -11,6 +11,7 @@ import org.jetbrains.kotlin.cli.common.ExitCode import org.jetbrains.kotlin.cli.common.messages.MessageCollector import org.jetbrains.kotlin.config.Services import org.jetbrains.kotlin.daemon.common.* +import org.jetbrains.kotlin.gradle.dsl.KotlinVersion import org.jetbrains.kotlin.gradle.logging.* import org.jetbrains.kotlin.gradle.plugin.internal.state.TaskExecutionResults import org.jetbrains.kotlin.gradle.plugin.internal.state.TaskLoggers @@ -69,6 +70,7 @@ internal class GradleKotlinCompilerWorkArguments( val compilerExecutionSettings: CompilerExecutionSettings, val errorsFile: File?, val kotlinPluginVersion: String, + val kotlinLanguageVersion: KotlinVersion, ) : Serializable { companion object { const val serialVersionUID: Long = 1 @@ -106,6 +108,7 @@ internal class GradleKotlinCompilerWork @Inject constructor( private val compilerExecutionSettings = config.compilerExecutionSettings private val errorsFile = config.errorsFile private val kotlinPluginVersion = config.kotlinPluginVersion + private val kotlinLanguageVersion = config.kotlinLanguageVersion private val log: KotlinLogger = TaskLoggers.get(taskPath)?.let { GradleKotlinLogger(it).apply { debug("Using '$taskPath' logger") } } @@ -138,6 +141,7 @@ internal class GradleKotlinCompilerWork @Inject constructor( throwExceptionIfCompilationFailed(exitCode, executionStrategy) } finally { val taskInfo = TaskExecutionInfo( + kotlinLanguageVersion = kotlinLanguageVersion, changedFiles = incrementalCompilationEnvironment?.changedFiles, compilerArguments = if (reportingSettings.includeCompilerArguments) compilerArgs else emptyArray(), withAbiSnapshot = incrementalCompilationEnvironment?.withAbiSnapshot, diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/CompileStatisticsData.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/CompileStatisticsData.kt index 5bb11a2ffb0..a79c4fd07b0 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/CompileStatisticsData.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/statistics/CompileStatisticsData.kt @@ -10,6 +10,7 @@ import org.jetbrains.kotlin.build.report.metrics.BuildPerformanceMetric import org.jetbrains.kotlin.build.report.metrics.BuildTime import java.text.SimpleDateFormat import java.util.* +import org.jetbrains.kotlin.gradle.dsl.KotlinVersion //Sensitive data. This object is used directly for statistic via http private val formatter = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").also { it.timeZone = TimeZone.getTimeZone("UTC")} @@ -20,10 +21,11 @@ data class CompileStatisticsData( val taskName: String?, val taskResult: String, val durationMs: Long, - val tags: List, + val tags: List, val changes: List, val buildUuid: String = "Unset", val kotlinVersion: String, + val kotlinLanguageVersion: KotlinVersion?, val hostName: String? = "Unset", val finishTime: Long, val timestamp: String = formatter.format(finishTime), @@ -38,15 +40,19 @@ data class CompileStatisticsData( ) -enum class StatTag { - ABI_SNAPSHOT, - ARTIFACT_TRANSFORM, - INCREMENTAL, - NON_INCREMENTAL, - GRADLE_DEBUG, - KOTLIN_DEBUG, - CONFIGURATION_CACHE, - BUILD_CACHE, +enum class StatTag(val readableString: String) { + ABI_SNAPSHOT("ABI Snapshot"), + ARTIFACT_TRANSFORM("Classpath Snapshot"), + INCREMENTAL("Incremental compilation"), + NON_INCREMENTAL("Non incremental compilation"), + INCREMENTAL_AND_NON_INCREMENTAL("Incremental and Non incremental compilation"), + GRADLE_DEBUG("Gradle debug enabled"), + KOTLIN_DEBUG("Kotlin debug enabled"), + CONFIGURATION_CACHE("Configuration cache enabled"), + BUILD_CACHE("Build cache enabled"), + KOTLIN_1("Kotlin language version 1"), + KOTLIN_2("Kotlin language version 2"), + KOTLIN_1_AND_2("Kotlin language version 1 and 2"), } enum class BuildDataType { @@ -74,7 +80,7 @@ data class BuildFinishStatisticsData( val finishTime: Long, val timestamp: String = formatter.format(finishTime), val hostName: String? = "Unset", - val tags: List, + val tags: List, val gitBranch: String = "Unset" ) diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/BuildMetricsService.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/BuildMetricsService.kt index a1ada3401c1..0ca7694660e 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/BuildMetricsService.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/BuildMetricsService.kt @@ -33,6 +33,7 @@ import org.jetbrains.kotlin.statistics.metrics.NumericalMetrics import org.jetbrains.kotlin.statistics.metrics.BooleanMetrics import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.ConcurrentLinkedQueue +import org.jetbrains.kotlin.gradle.dsl.KotlinVersion internal interface UsesBuildMetricsService : Task { @get:Internal @@ -123,7 +124,8 @@ abstract class BuildMetricsService : BuildService, buildMetrics = buildMetrics, didWork = result is TaskExecutionResult, skipMessage = (result as? TaskSkippedResult)?.skipMessage, - icLogLines = taskExecutionResult?.icLogLines ?: emptyList() + icLogLines = taskExecutionResult?.icLogLines ?: emptyList(), + kotlinLanguageVersion = taskExecutionResult?.taskInfo?.kotlinLanguageVersion ) ) if (result is TaskFailureResult) { @@ -172,6 +174,7 @@ internal class TaskRecord( override val didWork: Boolean, override val skipMessage: String?, override val icLogLines: List, + val kotlinLanguageVersion: KotlinVersion? ) : BuildOperationRecord { override val isFromKotlinPlugin: Boolean = classFqName.startsWith("org.jetbrains.kotlin") } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/BuildReportsService.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/BuildReportsService.kt index c4dd3c7d2a9..beb58a3328b 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/BuildReportsService.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/BuildReportsService.kt @@ -54,7 +54,7 @@ abstract class BuildReportsService : BuildService() + private val tags = LinkedHashSet() private var customValues = 0 // doesn't need to be thread-safe init { @@ -201,13 +201,8 @@ abstract class BuildReportsService : BuildService { val readableString = StringBuilder() if (data.nonIncrementalAttributes.isEmpty()) { @@ -255,6 +245,10 @@ abstract class BuildReportsService : BuildService "${key.readableString}: ${value}ms" } //sometimes it is better to have separate variable to be able debug val perfData = data.performanceMetrics.map { (key, value) -> @@ -296,6 +290,32 @@ abstract class BuildReportsService : BuildService tags.add(combinedTag) + containsFirstTag -> tags.add(firstTag) + containsSecondTag -> tags.add(secondTag) + } + } + companion object { const val CUSTOM_VALUE_LENGTH_LIMIT = 100_000 @@ -342,19 +362,23 @@ abstract class BuildReportsService : BuildService if (reportingSettings.httpReportSettings != null) { - BuildEventsListenerRegistryHolder.getInstance(project).listenerRegistry.onTaskCompletion(it) + BuildEventsListenerRegistryHolder.getInstance(project).listenerRegistry.onTaskCompletion(buildServiceProvider) } val buildScanExtension = project.rootProject.extensions.findByName("buildScan") if (reportingSettings.buildScanReportSettings != null && buildScanExtension != null) { - it.get().initBuildScanTags(BuildScanExtensionHolder(buildScanExtension)) + val buildScan = BuildScanExtensionHolder(buildScanExtension) + buildServiceProvider.get().initBuildScanTags(buildScan) BuildEventsListenerRegistryHolder.getInstance(project).listenerRegistry.onTaskCompletion(project.provider { OperationCompletionListener { event -> - it.get().addBuildScanReport(event, BuildScanExtensionHolder(buildScanExtension)) + buildServiceProvider.get().addBuildScanReport(event, buildScan) } }) + buildScan.buildScan?.buildFinished { + buildServiceProvider.get().addCollectedTags(buildScan) + } } } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/TaskExecutionResult.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/TaskExecutionResult.kt index b2363d3d8af..eeed4ccef49 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/TaskExecutionResult.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/TaskExecutionResult.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.gradle.report import org.jetbrains.kotlin.build.report.metrics.BuildMetrics +import org.jetbrains.kotlin.gradle.dsl.KotlinVersion import org.jetbrains.kotlin.incremental.ChangedFiles internal class TaskExecutionResult( @@ -15,6 +16,7 @@ internal class TaskExecutionResult( ) internal class TaskExecutionInfo( + val kotlinLanguageVersion: KotlinVersion? = null, val changedFiles: ChangedFiles? = null, val compilerArguments: Array = emptyArray(), val withArtifactTransform: Boolean? = false, diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/reportDataUtil.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/reportDataUtil.kt index 25281ec0a9e..da1ae9c4dd4 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/reportDataUtil.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/reportDataUtil.kt @@ -19,6 +19,7 @@ import org.jetbrains.kotlin.utils.addToStdlib.ifTrue import java.lang.management.ManagementFactory import java.util.ArrayList import java.util.concurrent.TimeUnit +import org.jetbrains.kotlin.gradle.dsl.KotlinVersion private fun availableForStat(taskPath: String): Boolean { @@ -75,10 +76,11 @@ internal fun prepareData( projectName = projectName, taskName = taskPath, changes = changes, - tags = collectTags(taskExecutionResult, buildMetrics, additionalTags).map { it.name }, + tags = collectTags(taskExecutionResult, buildMetrics, additionalTags), nonIncrementalAttributes = buildAttributes, hostName = BuildReportsService.hostName, kotlinVersion = kotlinVersion, + kotlinLanguageVersion = taskExecutionResult?.taskInfo?.kotlinLanguageVersion, buildUuid = uuid, finishTime = System.currentTimeMillis(), compilerArguments = taskExecutionResult?.taskInfo?.compilerArguments?.asList() ?: emptyList(), @@ -156,7 +158,7 @@ private fun collectTags( private fun collectTags( taskExecutionResult: TaskExecutionResult?, additionalTags: List, -): MutableList{ +): MutableList { val tags = ArrayList(additionalTags) val taskInfo = taskExecutionResult?.taskInfo @@ -166,10 +168,20 @@ private fun collectTags( taskInfo?.withArtifactTransform?.ifTrue { tags.add(StatTag.ARTIFACT_TRANSFORM) } + taskInfo?.kotlinLanguageVersion?.also { + tags.add(getLanguageVersionTag(it)) + } val debugConfiguration = "-agentlib:" if (ManagementFactory.getRuntimeMXBean().inputArguments.firstOrNull { it.startsWith(debugConfiguration) } != null) { tags.add(StatTag.GRADLE_DEBUG) } return tags +} + +private fun getLanguageVersionTag(languageVersion: KotlinVersion): StatTag { + return when { + languageVersion < KotlinVersion.KOTLIN_2_0 -> StatTag.KOTLIN_1 + else -> StatTag.KOTLIN_2 + } } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/ReportDataTest.kt b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/ReportDataTest.kt index 56b5c28e70e..89bd86be495 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/ReportDataTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/functionalTest/kotlin/org/jetbrains/kotlin/gradle/unitTests/ReportDataTest.kt @@ -24,16 +24,18 @@ import kotlin.math.sign import kotlin.test.assertEquals import kotlin.test.assertNotNull import kotlin.test.assertTrue +import org.jetbrains.kotlin.gradle.dsl.KotlinVersion class ReportDataTest { private val kotlinTaskPath = "testKotlin" @Test + @Suppress("DEPRECATION") fun testTags() { TaskExecutionResults[kotlinTaskPath] = TaskExecutionResult( buildMetrics = BuildMetrics(buildAttributes = BuildAttributes()), - taskInfo = TaskExecutionInfo(), - icLogLines = emptyList() + taskInfo = TaskExecutionInfo(kotlinLanguageVersion = KotlinVersion.KOTLIN_1_4), + icLogLines = emptyList(), ) val buildOperationRecord = taskRecord(BuildMetrics(buildAttributes = BuildAttributes().also { it.add(BuildAttribute.CLASSPATH_SNAPSHOT_NOT_FOUND) })) @@ -48,8 +50,9 @@ class ReportDataTest { ) assertNotNull(statisticData) - assertTrue(statisticData.tags.contains(StatTag.KOTLIN_DEBUG.name)) - assertTrue(statisticData.tags.contains(StatTag.NON_INCREMENTAL.name)) + assertTrue(statisticData.tags.contains(StatTag.KOTLIN_DEBUG)) + assertTrue(statisticData.tags.contains(StatTag.NON_INCREMENTAL)) + assertTrue(statisticData.tags.contains(StatTag.KOTLIN_1)) } private fun taskRecord(buildMetrics: BuildMetrics) = TaskRecord( @@ -60,7 +63,8 @@ class ReportDataTest { buildMetrics = buildMetrics, didWork = true, skipMessage = null, - icLogLines = emptyList() + icLogLines = emptyList(), + kotlinLanguageVersion = KotlinVersion.KOTLIN_1_8 ) @Test