Skip to content

Commit 9f7c0b2

Browse files
authored
Go. Fix bug with missing or empty parameter name (#2286)
Fix bug with empty or blank parameter name
1 parent 5c15b95 commit 9f7c0b2

File tree

1 file changed

+31
-8
lines changed

1 file changed

+31
-8
lines changed

utbot-go/src/main/kotlin/org/utbot/go/simplecodegeneration/GoTestCasesCodeGenerator.kt

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import org.utbot.go.imports.GoImportsResolver
1313

1414
object GoTestCasesCodeGenerator {
1515

16+
private const val prefixOfVariableNames = "arg"
17+
1618
private val alwaysRequiredImports = setOf(
1719
GoImport(GoPackage("assert", "github.com/stretchr/testify/assert")),
1820
GoImport(GoPackage("testing", "testing"))
@@ -300,17 +302,38 @@ object GoTestCasesCodeGenerator {
300302
}
301303

302304
private fun generateVariables(fuzzedFunction: GoUtFuzzedFunction): List<Variable> {
303-
val function = fuzzedFunction.function
304-
val parameters = if (function.isMethod) {
305-
listOf(function.receiver!!) + function.parameters
306-
} else {
307-
function.parameters
305+
val parameters = fuzzedFunction.function.let { function ->
306+
if (function.isMethod) {
307+
listOf(function.receiver!!) + function.parameters
308+
} else {
309+
function.parameters
310+
}
308311
}
309-
val parametersValues = fuzzedFunction.parametersValues
310-
return parameters.map { it.name }.zip(parameters.map { it.type }).zip(parametersValues)
312+
val parameterNames = parameters.map { it.name }
313+
val parameterValues = fuzzedFunction.parametersValues
314+
val parametersTypes = parameters.map { it.type }
315+
316+
val busyVariableNames = parameterNames.filter { it != "" && it != "_" }.toMutableSet()
317+
val variablesNumber = parameterNames.filter { it == "" || it == "_" }.size
318+
var variablesIndex = 1
319+
320+
return parameterNames.zip(parametersTypes).zip(parameterValues)
311321
.map { (nameAndType, value) ->
312322
val (name, type) = nameAndType
313-
Variable(name, type, value)
323+
val variableName = if (name == "" || name == "_") {
324+
if (variablesNumber == 1 && prefixOfVariableNames !in busyVariableNames) {
325+
prefixOfVariableNames
326+
} else {
327+
while ("$prefixOfVariableNames$variablesIndex" in busyVariableNames) {
328+
variablesIndex++
329+
}
330+
"$prefixOfVariableNames$variablesIndex"
331+
}
332+
} else {
333+
name
334+
}
335+
busyVariableNames.add(variableName)
336+
Variable(variableName, type, value)
314337
}
315338
}
316339

0 commit comments

Comments
 (0)