diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/generators/impl/TestGeneratorImpl.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/generators/impl/TestGeneratorImpl.kt index 52b66d8c717..0a613e6a15b 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/generators/impl/TestGeneratorImpl.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/generators/impl/TestGeneratorImpl.kt @@ -101,10 +101,10 @@ private class TestGeneratorImplInstance( val generatedCode = generate() val testSourceFile = File(testSourceFilePath) - val changed = - GeneratorsFileUtil.isFileContentChangedIgnoringLineSeparators(testSourceFile, generatedCode) - if (!dryRun) { + val changed = if (!dryRun) { GeneratorsFileUtil.writeFileIfContentChanged(testSourceFile, generatedCode, false) + } else { + GeneratorsFileUtil.isFileContentChangedIgnoringLineSeparators(testSourceFile, generatedCode) } return TestGenerator.GenerationResult(changed, testSourceFilePath) } diff --git a/generators/main/GeneratorsFileUtil.kt b/generators/main/GeneratorsFileUtil.kt index 56d63f7e70a..e717cabb5c8 100644 --- a/generators/main/GeneratorsFileUtil.kt +++ b/generators/main/GeneratorsFileUtil.kt @@ -24,11 +24,11 @@ object GeneratorsFileUtil { @JvmStatic @JvmOverloads @Throws(IOException::class) - fun writeFileIfContentChanged(file: File, newText: String, logNotChanged: Boolean = true, forbidGenerationOnTeamcity: Boolean = true) { + fun writeFileIfContentChanged(file: File, newText: String, logNotChanged: Boolean = true, forbidGenerationOnTeamcity: Boolean = true): Boolean { val parentFile = file.parentFile if (!parentFile.exists()) { if (forbidGenerationOnTeamcity) { - if (failOnTeamCity("Create dir `${parentFile.path}`")) return + if (failOnTeamCity("Create dir `${parentFile.path}`")) return false } if (parentFile.mkdirs()) { println("Directory created: " + parentFile.absolutePath) @@ -40,10 +40,10 @@ object GeneratorsFileUtil { if (logNotChanged) { println("Not changed: " + file.absolutePath) } - return + return false } if (forbidGenerationOnTeamcity) { - if (failOnTeamCity("Write file `${file.toPath()}`")) return + if (failOnTeamCity("Write file `${file.toPath()}`")) return false } val useTempFile = !SystemInfo.isWindows val targetFile = file.toPath() @@ -54,6 +54,7 @@ object GeneratorsFileUtil { tempFile.moveTo(targetFile, overwrite = true) } println("File written: ${targetFile.toAbsolutePath()}") + return true } private fun failOnTeamCity(message: String): Boolean { diff --git a/generators/test-generator/tests/org/jetbrains/kotlin/generators/NewTestGeneratorImpl.kt b/generators/test-generator/tests/org/jetbrains/kotlin/generators/NewTestGeneratorImpl.kt index d04a31ec5b9..7035b1735ef 100644 --- a/generators/test-generator/tests/org/jetbrains/kotlin/generators/NewTestGeneratorImpl.kt +++ b/generators/test-generator/tests/org/jetbrains/kotlin/generators/NewTestGeneratorImpl.kt @@ -112,10 +112,10 @@ class NewTestGeneratorImpl( val generatedCode = generate() val testSourceFile = File(testSourceFilePath) - val changed = - GeneratorsFileUtil.isFileContentChangedIgnoringLineSeparators(testSourceFile, generatedCode) - if (!dryRun) { + val changed = if (!dryRun) { GeneratorsFileUtil.writeFileIfContentChanged(testSourceFile, generatedCode, false) + } else { + GeneratorsFileUtil.isFileContentChangedIgnoringLineSeparators(testSourceFile, generatedCode) } return GenerationResult(changed, testSourceFilePath) }