diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts index 6c622d7070d..f3afedbd81f 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts @@ -15,6 +15,7 @@ val kotlinGradlePluginTest = project(":kotlin-gradle-plugin").sourceSets.named(" dependencies { testImplementation(project(":kotlin-gradle-plugin")) testImplementation(project(":kotlin-gradle-plugin-model")) + testImplementation(project(":kotlin-gradle-build-metrics")) testImplementation(project(":kotlin-project-model")) testImplementation(project(":kotlin-tooling-metadata")) testImplementation(kotlinGradlePluginTest) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt index 8945bf614ae..cf5ee55499a 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt @@ -19,6 +19,7 @@ package org.jetbrains.kotlin.gradle import org.gradle.api.logging.LogLevel import org.gradle.api.logging.configuration.WarningMode import org.gradle.util.GradleVersion +import org.jetbrains.kotlin.gradle.internal.build.metrics.GradleBuildMetricsData import org.jetbrains.kotlin.gradle.plugin.MULTIPLE_KOTLIN_PLUGINS_LOADED_WARNING import org.jetbrains.kotlin.gradle.plugin.MULTIPLE_KOTLIN_PLUGINS_SPECIFIC_PROJECTS_WARNING import org.jetbrains.kotlin.gradle.scripting.internal.ScriptingGradleSubplugin @@ -28,6 +29,7 @@ import org.jetbrains.kotlin.gradle.util.* import org.jetbrains.kotlin.test.util.KtTestUtil import org.junit.Test import java.io.File +import java.io.ObjectInputStream import java.nio.file.FileSystemException import java.nio.file.Files import java.util.* @@ -960,6 +962,21 @@ class KotlinGradleIT : BaseGradleIT() { } } + @Test + fun testSingleBuildMetricsFileSmoke() { + with(Project("simpleProject")) { + val metricsFile = projectDir.resolve("metrics.bin") + assertFalse { metricsFile.exists() } + build("compileKotlin", "-Pkotlin.internal.single.build.metrics.file=${metricsFile.absolutePath}") { + assertSuccessful() + } + assertTrue { metricsFile.exists() } + // test whether we can deserialize data from the file + ObjectInputStream(metricsFile.inputStream().buffered()).use { input -> + input.readObject() as GradleBuildMetricsData + } + } + } @Test fun testKt29971() = with(Project("kt-29971", GradleVersionRequired.FOR_MPP_SUPPORT)) {