From 6d5dc6ea9affa43bcc38124ccdeca5be64aca34f Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Fri, 18 Oct 2019 21:36:50 +0300 Subject: [PATCH] Allow to auto-generate files for asserting failures --- .../org/jetbrains/kotlin/test/muteWithFile.kt | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/test/muteWithFile.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/test/muteWithFile.kt index f1b18d2ce6a..54b7f9ac6e4 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/test/muteWithFile.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/test/muteWithFile.kt @@ -12,6 +12,7 @@ import java.io.File private val RUN_MUTED_TESTS = java.lang.Boolean.getBoolean("org.jetbrains.kotlin.run.muted.tests") private val AUTOMATICALLY_MUTE_FAILED_TESTS_WITH_CONTENT: String? = null +private val AUTOMATICALLY_GENERATE_FAIL_FILE_FOR_FAILED_TESTS: Boolean = false annotation class MuteExtraSuffix(val value: String = "") @@ -101,17 +102,27 @@ private fun failFile(testDataFile: File, extraSuffix: String): File? { return failFile } -private fun checkFailFile(failure: Throwable, testDataFile: File, extraSuffix: String): Boolean { - val failFile = failFile(testDataFile, extraSuffix) ?: return false +private fun failMessage(failure: Throwable): String { val cause = failure.cause - val muteMessage = failure.message + + return failure.message + if (cause != null) { "\n" + cause } else { "" } +} - KotlinTestUtils.assertEqualsToFile(failFile, muteMessage) +private fun checkFailFile(failure: Throwable, testDataFile: File, extraSuffix: String): Boolean { + val failFile = failFile(testDataFile, extraSuffix) + if (failFile == null) { + if (AUTOMATICALLY_GENERATE_FAIL_FILE_FOR_FAILED_TESTS) { + failFileNoCheck(testDataFile, extraSuffix).writeText(failMessage(failure)) + } + + return false + } + + KotlinTestUtils.assertEqualsToFile(failFile, failMessage(failure)) return true } \ No newline at end of file