From f483456f43dd9a9e572b6f1cad56b29f61697358 Mon Sep 17 00:00:00 2001 From: Zarina Kurbatova Date: Tue, 4 Oct 2022 18:08:40 +0300 Subject: [PATCH] Include information about triggered recursion to javadocs --- .../kotlin/examples/recursion/SummaryRecursionTest.kt | 4 ++++ .../summary/comment/CustomJavaDocCommentBuilder.kt | 10 +++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/utbot-summary-tests/src/test/kotlin/examples/recursion/SummaryRecursionTest.kt b/utbot-summary-tests/src/test/kotlin/examples/recursion/SummaryRecursionTest.kt index eeba46cc16..283d49141a 100644 --- a/utbot-summary-tests/src/test/kotlin/examples/recursion/SummaryRecursionTest.kt +++ b/utbot-summary-tests/src/test/kotlin/examples/recursion/SummaryRecursionTest.kt @@ -26,6 +26,9 @@ class SummaryRecursionTest : SummaryTestCaseGeneratorTest( val summary3 = "@utbot.classUnderTest {@link Recursion}\n" + "@utbot.methodUnderTest {@link org.utbot.examples.recursion.Recursion#fib(int)}\n" + "@utbot.executesCondition {@code (n == 1): False}\n" + + "@utbot.triggersRecursion fib, where the test execute conditions:\n" + + " {@code (n == 1): True}\n" + + "return from: {@code return 1;}" + "@utbot.returnsFrom {@code return fib(n - 1) + fib(n - 2);}" val summary4 = "@utbot.classUnderTest {@link Recursion}\n" + "@utbot.methodUnderTest {@link org.utbot.examples.recursion.Recursion#fib(int)}\n" + @@ -81,6 +84,7 @@ class SummaryRecursionTest : SummaryTestCaseGeneratorTest( val summary2 = "@utbot.classUnderTest {@link Recursion}\n" + "@utbot.methodUnderTest {@link org.utbot.examples.recursion.Recursion#factorial(int)}\n" + "@utbot.executesCondition {@code (n == 0): False}\n" + + "@utbot.triggersRecursion factorial, where the test return from: {@code return 1;}" + "@utbot.returnsFrom {@code return n * factorial(n - 1);}" val summary3 = "@utbot.classUnderTest {@link Recursion}\n" + "@utbot.methodUnderTest {@link org.utbot.examples.recursion.Recursion#factorial(int)}\n" + diff --git a/utbot-summary/src/main/kotlin/org/utbot/summary/comment/CustomJavaDocCommentBuilder.kt b/utbot-summary/src/main/kotlin/org/utbot/summary/comment/CustomJavaDocCommentBuilder.kt index 62eb0e1d29..db6a0249f9 100644 --- a/utbot-summary/src/main/kotlin/org/utbot/summary/comment/CustomJavaDocCommentBuilder.kt +++ b/utbot-summary/src/main/kotlin/org/utbot/summary/comment/CustomJavaDocCommentBuilder.kt @@ -3,7 +3,6 @@ package org.utbot.summary.comment import org.utbot.framework.plugin.api.DocCustomTagStatement import org.utbot.framework.plugin.api.DocStatement import org.utbot.framework.plugin.api.exceptionOrNull -import org.utbot.summary.SummarySentenceConstants import org.utbot.summary.SummarySentenceConstants.CARRIAGE_RETURN import org.utbot.summary.ast.JimpleToASTMap import org.utbot.summary.tag.TraceTagWithoutExecution @@ -54,6 +53,15 @@ class CustomJavaDocCommentBuilder( comment.throwsException = "{@link $exceptionName} $reason".replace(CARRIAGE_RETURN, "") } + if (rootSentenceBlock.recursion != null) { + comment.recursion += rootSentenceBlock.recursion?.first + val insideRecursionSentence = rootSentenceBlock.recursion?.second?.toSentence() + if (!insideRecursionSentence.isNullOrEmpty()) { + comment.recursion += stringTemplates.insideRecursionSentence.format(insideRecursionSentence) + .replace(CARRIAGE_RETURN, "").trim() + } + } + generateSequence(rootSentenceBlock) { it.nextBlock }.forEach { it.stmtTexts.forEach { statement -> processStatement(statement, comment)