From 40b8e3ce4b480b9021c11f90071057937a51787d Mon Sep 17 00:00:00 2001 From: Alexander Likhachev Date: Tue, 19 Jul 2022 22:43:56 +0200 Subject: [PATCH] [Gradle] Format build report path as URI #KT-34464 Fixed --- .../kotlin/org/jetbrains/kotlin/gradle/BuildReportsIT.kt | 8 ++++---- .../org/jetbrains/kotlin/gradle/ConfigurationCacheIT.kt | 4 ++-- .../jetbrains/kotlin/gradle/testbase/outputAssertions.kt | 4 ++++ .../kotlin/gradle/report/PlainTextBuildReportWriter.kt | 5 +++-- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildReportsIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildReportsIT.kt index 5817d8af865..d414ac9e9d8 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildReportsIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildReportsIT.kt @@ -28,11 +28,11 @@ class BuildReportsIT : KGPBaseTest() { fun testBuildReportSmokeTest(gradleVersion: GradleVersion) { project("simpleProject", gradleVersion) { build("assemble") { - assertOutputContains("Kotlin build report is written to") + assertBuildReportPathIsPrinted() } build("clean", "assemble") { - assertOutputContains("Kotlin build report is written to") + assertBuildReportPathIsPrinted() } } } @@ -52,7 +52,7 @@ class BuildReportsIT : KGPBaseTest() { fun testBuildMetricsSmokeTest(gradleVersion: GradleVersion) { project("simpleProject", gradleVersion) { build("assemble") { - assertOutputContains("Kotlin build report is written to") + assertBuildReportPathIsPrinted() } val reportFolder = projectPath.resolve("build/reports/kotlin-build").toFile() val reports = reportFolder.listFiles() @@ -79,7 +79,7 @@ class BuildReportsIT : KGPBaseTest() { fun testCompilerBuildMetricsSmokeTest(gradleVersion: GradleVersion) { project("simpleProject", gradleVersion) { build("assemble") { - assertOutputContains("Kotlin build report is written to") + assertBuildReportPathIsPrinted() } val reportFolder = projectPath.resolve("build/reports/kotlin-build").toFile() val reports = reportFolder.listFiles() diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationCacheIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationCacheIT.kt index 9d47bb6606c..59bbda6c079 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationCacheIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ConfigurationCacheIT.kt @@ -190,11 +190,11 @@ class ConfigurationCacheIT : AbstractConfigurationCacheIT() { project("simpleProject", gradleVersion) { val buildOptions = defaultBuildOptions.copy(buildReport = listOf(BuildReportType.FILE)) build("assemble", buildOptions = buildOptions) { - assertOutputContains("Kotlin build report is written to") + assertBuildReportPathIsPrinted() } build("assemble", buildOptions = buildOptions) { - assertOutputContains("Kotlin build report is written to") + assertBuildReportPathIsPrinted() } } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/outputAssertions.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/outputAssertions.kt index 6abbabeb6d1..4f98ef291d3 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/outputAssertions.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/outputAssertions.kt @@ -174,3 +174,7 @@ fun BuildResult.assertKotlinDaemonJvmOptions( "${argsStrings.toList()} does not contain expected args: $expectedJvmArgs" } } + +fun BuildResult.assertBuildReportPathIsPrinted() { + assertOutputContains("Kotlin build report is written to file://") +} \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/PlainTextBuildReportWriter.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/PlainTextBuildReportWriter.kt index 8a7149a7220..9d1a8ccfc54 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/PlainTextBuildReportWriter.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/report/PlainTextBuildReportWriter.kt @@ -43,6 +43,7 @@ internal class PlainTextBuildReportWriter( private lateinit var p: Printer fun process(build: BuildExecutionData, log: Logger) { + val buildReportPath = outputFile.toPath().toUri().toString() try { outputFile.parentFile.mkdirs() if (!(outputFile.parentFile.exists() && outputFile.parentFile.isDirectory)) { @@ -55,9 +56,9 @@ internal class PlainTextBuildReportWriter( printBuildReport(build) } - log.lifecycle("Kotlin build report is written to ${outputFile.canonicalPath}") + log.lifecycle("Kotlin build report is written to $buildReportPath") } catch (e: Exception) { - log.error("Could not write Kotlin build report to ${outputFile.canonicalPath}", e) + log.error("Could not write Kotlin build report to $buildReportPath", e) } }