From 7da7c4e0bb15a5a572359c74de8bef35366f8d81 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Mon, 26 Sep 2022 10:53:24 +0200 Subject: [PATCH] Distinguishable output and failure reports for gradle integrations tests --- .../kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt | 8 ++++++-- .../kotlin/org/jetbrains/kotlin/gradle/KlibBasedMppIT.kt | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt index 6eccc2c10ad..64b21d71612 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt @@ -427,12 +427,16 @@ abstract class BaseGradleIT { result = runProcess(cmd, projectDir, env, buildOptions) CompiledProject(this, result.output, result.exitCode).check() } catch (t: Throwable) { - println("<=== Test build: ${this.projectName} $cmd ===>") + println("<=== Test build: $projectName $cmd ===>") // to prevent duplication of output if (!options.forceOutputToStdout && result != null) { - println(result.output) + result.output + .split("\n") + .map { " |test output $projectName|$it" } + .forEach(::println) } + throw t } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KlibBasedMppIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KlibBasedMppIT.kt index 1397b29096b..b685507139b 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KlibBasedMppIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KlibBasedMppIT.kt @@ -359,8 +359,12 @@ class KlibBasedMppIT : BaseGradleIT() { val itemsLine = output.lines().single { "###$printingTaskName" in it }.substringAfter(printingTaskName) // NOTE: This does not work for commonized libraries, they may contain the ',' naturally val items = itemsLine.removeSurrounding("[", "]").split(", ").toSet() - checkAnyItemsContains.forEach { pattern -> assertTrue { items.any { pattern in it } } } - checkNoItemContains.forEach { pattern -> assertFalse { items.any { pattern in it } } } + checkAnyItemsContains.forEach { pattern -> + assertTrue(items.any { pattern in it }, "Couldn't find pattern `$pattern` in the output") + } + checkNoItemContains.forEach { pattern -> + assertFalse(items.any { pattern in it }, "Pattern '$pattern' should NOT be present in the output") + } } } } \ No newline at end of file