From 988d36cfcabaaea461203bfe76b1cf0ffd9d2d9a Mon Sep 17 00:00:00 2001 From: "Vassiliy.Kudryashov" Date: Mon, 1 Aug 2022 19:35:34 +0300 Subject: [PATCH] Stacktraces in comments should be escaped #609 --- .../codegen/model/constructor/tree/CgMethodConstructor.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/utbot-framework/src/main/kotlin/org/utbot/framework/codegen/model/constructor/tree/CgMethodConstructor.kt b/utbot-framework/src/main/kotlin/org/utbot/framework/codegen/model/constructor/tree/CgMethodConstructor.kt index 3c1f25fe80..2ae9c13195 100644 --- a/utbot-framework/src/main/kotlin/org/utbot/framework/codegen/model/constructor/tree/CgMethodConstructor.kt +++ b/utbot-framework/src/main/kotlin/org/utbot/framework/codegen/model/constructor/tree/CgMethodConstructor.kt @@ -1,7 +1,6 @@ package org.utbot.framework.codegen.model.constructor.tree import org.utbot.common.PathUtil -import org.utbot.common.packageName import org.utbot.framework.assemble.assemble import org.utbot.framework.codegen.ForceStaticMocking import org.utbot.framework.codegen.Junit4 @@ -402,7 +401,7 @@ internal class CgMethodConstructor(val context: CgContext) : CgContextOwner by c val executableName = "${currentExecutable!!.classId.name}.${currentExecutable!!.name}" val warningLine = mutableListOf( - "This test fails because method [$executableName] produces [$exception]" + "This test fails because method [$executableName] produces [$exception]".escapeControlChars() ) val neededStackTraceLines = mutableListOf() @@ -420,6 +419,10 @@ internal class CgMethodConstructor(val context: CgContext) : CgContextOwner by c +CgMultilineComment(warningLine + neededStackTraceLines.reversed()) } + private fun String.escapeControlChars() : String { + return this.replace("\b", "\\b").replace("\n", "\\n").replace("\t", "\\t").replace("\r", "\\r") + } + private fun writeWarningAboutCrash() { +CgSingleLineComment("This invocation possibly crashes JVM") }