Skip to content

Commit 0bb97ff

Browse files
authored
Made more consistent tests produced from Fuzzed and Symbolic executions based on UtSummarySettings. (#1316)
* Added a solution * Added a solution
1 parent 95623c0 commit 0bb97ff

File tree

4 files changed

+20
-12
lines changed

4 files changed

+20
-12
lines changed

utbot-summary/src/main/kotlin/org/utbot/summary/Summarization.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,14 +80,14 @@ class Summarization(val sourceFile: File?, val invokeDescriptions: List<InvokeDe
8080
return listOf(UtExecutionCluster(UtClusterInfo(), testSet.executions))
8181
}
8282

83-
val clustersToReturn = mutableListOf<UtExecutionCluster>()
83+
val executionClusters = mutableListOf<UtExecutionCluster>()
8484

85-
clustersToReturn += generateSummariesForTestsWithNonEmptyPathsProducedBySymbolicExecutor(testSet)
86-
clustersToReturn += generateSummariesForTestsProducedByFuzzer(testSet)
87-
clustersToReturn += generateSummariesForTestsWithEmptyPathsProducedBySymbolicExecutor(testSet)
85+
executionClusters += generateSummariesForTestsWithNonEmptyPathsProducedBySymbolicExecutor(testSet)
86+
executionClusters += generateSummariesForTestsProducedByFuzzer(testSet)
87+
executionClusters += generateSummariesForTestsWithEmptyPathsProducedBySymbolicExecutor(testSet)
8888

89-
return if (clustersToReturn.size > 0)
90-
clustersToReturn
89+
return if (GENERATE_CLUSTER_COMMENTS && executionClusters.size > 0)
90+
executionClusters
9191
else
9292
listOf(UtExecutionCluster(UtClusterInfo(), testSet.executions))
9393
}

utbot-summary/src/main/kotlin/org/utbot/summary/UtSummarySettings.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ object SummarySentenceConstants {
6363
const val CARRIAGE_RETURN = "\r"
6464

6565
const val FROM_TO_NAMES_TRANSITION = "->"
66+
const val FROM_TO_NAMES_COLON = ":"
6667
const val AT_CODE = "@code"
6768
const val OPEN_BRACKET = "{"
6869
const val CLOSE_BRACKET = "}"

utbot-summary/src/main/kotlin/org/utbot/summary/fuzzer/names/ModelBasedNameSuggester.kt

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import org.utbot.framework.plugin.api.*
55
import org.utbot.framework.plugin.api.util.voidClassId
66
import org.utbot.fuzzer.FuzzedMethodDescription
77
import org.utbot.fuzzer.FuzzedValue
8+
import org.utbot.summary.SummarySentenceConstants.FROM_TO_NAMES_COLON
9+
import org.utbot.summary.SummarySentenceConstants.FROM_TO_NAMES_TRANSITION
810
import org.utbot.summary.UtSummarySettings
911
import org.utbot.summary.comment.classic.fuzzer.SimpleCommentForTestProducedByFuzzerBuilder
1012
import org.utbot.summary.comment.customtags.fuzzer.CommentWithCustomTagForTestProducedByFuzzerBuilder
@@ -33,8 +35,8 @@ class ModelBasedNameSuggester(
3335

3436
return sequenceOf(
3537
TestSuggestedInfo(
36-
testName = createTestName(description, values, result),
37-
displayName = createDisplayName(description, values, result),
38+
testName = if (UtSummarySettings.GENERATE_NAMES) createTestName(description, values, result) else null,
39+
displayName = if (UtSummarySettings.GENERATE_DISPLAY_NAMES) createDisplayName(description, values, result) else null,
3840
javaDoc = if (UtSummarySettings.GENERATE_COMMENTS) createJavaDoc(description, values, result) else null
3941
)
4042
)
@@ -104,12 +106,17 @@ class ModelBasedNameSuggester(
104106
* Result example:
105107
* 1. **Full name**: `firstArg = 12, secondArg < 100.0, thirdArg = empty string -> throw IllegalArgumentException`
106108
* 2. **Name without appropriate information**: `arg_0 = 0 and others -> return 0`
109+
*
110+
* NOTE: The ```:``` symbol is used as a separator instead
111+
* of ```->``` if the [UtSummarySettings.GENERATE_DISPLAYNAME_FROM_TO_STYLE] is false.
107112
*/
108113
private fun createDisplayName(
109114
description: FuzzedMethodDescription,
110115
values: List<FuzzedValue>,
111116
result: UtExecutionResult?
112117
): String {
118+
val displayNameSeparator = if (UtSummarySettings.GENERATE_DISPLAYNAME_FROM_TO_STYLE) FROM_TO_NAMES_TRANSITION else FROM_TO_NAMES_COLON
119+
113120
val summaries = values.asSequence()
114121
.mapIndexed { index, value ->
115122
value.summary?.replace("%var%", description.parameterNameMap(index) ?: "arg_$index")
@@ -127,13 +134,13 @@ class ModelBasedNameSuggester(
127134
val returnValue = when (result) {
128135
is UtExecutionSuccess -> result.model.let { m ->
129136
when {
130-
m is UtPrimitiveModel && m.classId != voidClassId -> "-> return " + m.value
131-
m is UtNullModel -> "-> return null"
137+
m is UtPrimitiveModel && m.classId != voidClassId -> "$displayNameSeparator return " + m.value
138+
m is UtNullModel -> "$displayNameSeparator return null"
132139
else -> null
133140
}
134141
}
135142

136-
is UtExplicitlyThrownException, is UtImplicitlyThrownException -> "-> throw ${(result as UtExecutionFailure).exception::class.java.simpleName}"
143+
is UtExplicitlyThrownException, is UtImplicitlyThrownException -> "$displayNameSeparator throw ${(result as UtExecutionFailure).exception::class.java.simpleName}"
137144
else -> null
138145
}
139146

utbot-summary/src/main/kotlin/org/utbot/summary/fuzzer/names/TestSuggestedInfo.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import org.utbot.framework.plugin.api.DocStatement
66
* Information that can be used to generate test meta-information, including name, display name and JavaDoc.
77
*/
88
class TestSuggestedInfo(
9-
val testName: String,
9+
val testName: String? = null,
1010
val displayName: String? = null,
1111
val javaDoc: List<DocStatement>? = null
1212
)

0 commit comments

Comments
 (0)