Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 1787b42

Browse files
Fix empty else-branch in parameterized test generation #518 (#908)
Add assertNotNull for actual in parameterized test generation
1 parent 1197115 commit 1787b42

File tree

3 files changed

+15
-5
lines changed

3 files changed

+15
-5
lines changed

‎utbot-framework/src/main/kotlin/org/utbot/framework/codegen/Domain.kt‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,8 @@ sealed class TestFramework(
219219

220220
val assertNull by lazy { assertionId("assertNull", objectClassId) }
221221

222+
val assertNotNull by lazy { assertionId("assertNotNull", objectClassId) }
223+
222224
val assertFalse by lazy { assertionId("assertFalse", booleanClassId) }
223225

224226
val assertTrue by lazy { assertionId("assertTrue", booleanClassId) }

‎utbot-framework/src/main/kotlin/org/utbot/framework/codegen/model/constructor/tree/CgMethodConstructor.kt‎

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1212,7 +1212,10 @@ internal class CgMethodConstructor(val context: CgContext) : CgContextOwner by c
12121212
else -> ifStatement(
12131213
CgEqualTo(expected, nullLiteral()),
12141214
trueBranch = { +testFrameworkManager.assertions[testFramework.assertNull](actual).toStatement() },
1215-
falseBranch = { generateDeepEqualsAssertion(expected, actual) }
1215+
falseBranch = {
1216+
+testFrameworkManager.assertions[testFrameworkManager.assertNotNull](actual).toStatement()
1217+
generateDeepEqualsAssertion(expected, actual)
1218+
}
12161219
)
12171220
}
12181221
}
@@ -1344,10 +1347,7 @@ internal class CgMethodConstructor(val context: CgContext) : CgContextOwner by c
13441347
fun createParameterizedTestMethod(testSet: CgMethodTestSet, dataProviderMethodName: String): CgTestMethod {
13451348
//TODO: orientation on generic execution may be misleading, but what is the alternative?
13461349
//may be a heuristic to select a model with minimal number of internal nulls should be used
1347-
val genericExecution = testSet.executions
1348-
.firstOrNull { it.result is UtExecutionSuccess && (it.result as UtExecutionSuccess).model !is UtNullModel }
1349-
?: testSet.executions
1350-
.firstOrNull { it.result is UtExecutionSuccess } ?: testSet.executions.first()
1350+
val genericExecution = chooseGenericExecution(testSet.executions)
13511351

13521352
val statics = genericExecution.stateBefore.statics
13531353

@@ -1415,6 +1415,13 @@ internal class CgMethodConstructor(val context: CgContext) : CgContextOwner by c
14151415
}
14161416
}
14171417

1418+
private fun chooseGenericExecution(executions: List<UtExecution>): UtExecution {
1419+
return executions
1420+
.firstOrNull { it.result is UtExecutionSuccess && (it.result as UtExecutionSuccess).model !is UtNullModel }
1421+
?: executions
1422+
.firstOrNull { it.result is UtExecutionSuccess } ?: executions.first()
1423+
}
1424+
14181425
private fun createParameterDeclarations(
14191426
testSet: CgMethodTestSet,
14201427
genericExecution: UtExecution,

‎utbot-framework/src/main/kotlin/org/utbot/framework/codegen/model/constructor/tree/TestFrameworkManager.kt‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ internal abstract class TestFrameworkManager(val context: CgContext)
6060
val assertDoubleEquals = context.testFramework.assertDoubleEquals
6161

6262
val assertNull = context.testFramework.assertNull
63+
val assertNotNull = context.testFramework.assertNotNull
6364
val assertTrue = context.testFramework.assertTrue
6465
val assertFalse = context.testFramework.assertFalse
6566

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /