Skip to content

Commit 35221de

Browse files
committed
Refine one test structure
1 parent 3ad7a15 commit 35221de

File tree

1 file changed

+25
-28
lines changed

1 file changed

+25
-28
lines changed

usvm-ts/src/test/kotlin/org/usvm/reachability/InheritanceReachabilityTest.kt

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -261,33 +261,30 @@ class InheritanceReachabilityTest {
261261

262262
// Test ConcreteA.process() method directly
263263
val concreteAMethods = scene.projectClasses
264-
.find { it.name.contains("ConcreteA") }
265-
?.methods?.filter { it.name == "process" }
266-
267-
if (!concreteAMethods.isNullOrEmpty()) {
268-
val method = concreteAMethods.first()
269-
val initialTarget = TsReachabilityTarget.InitialPoint(method.cfg.stmts.first())
270-
var target: TsTarget = initialTarget
271-
272-
// if (this.value > 10)
273-
val valueCheck = method.cfg.stmts.filterIsInstance<EtsIfStmt>()[0]
274-
target = target.addChild(TsReachabilityTarget.IntermediatePoint(valueCheck))
275-
276-
// return this.commonMethod() or similar
277-
val returnStmt = method.cfg.stmts.filterIsInstance<EtsReturnStmt>()[0]
278-
target.addChild(TsReachabilityTarget.FinalPoint(returnStmt))
279-
280-
val results = machine.analyze(listOf(method), listOf(initialTarget))
281-
assertTrue(
282-
results.isNotEmpty(),
283-
"Expected at least one result for abstract method implementation reachability"
284-
)
285-
286-
val reachedStatements = results.flatMap { it.pathNode.allStatements }.toSet()
287-
assertTrue(
288-
returnStmt in reachedStatements,
289-
"Expected return statement to be reached when value > 10"
290-
)
291-
}
264+
.first { it.name.contains("ConcreteA") }
265+
.methods.filter { it.name == "process" }
266+
267+
val method = concreteAMethods.first()
268+
val target = TsReachabilityTarget.InitialPoint(method.cfg.stmts.first())
269+
270+
// if (this.value > 10)
271+
// return this.commonMethod() or similar
272+
val ifStmt = method.cfg.stmts.filterIsInstance<EtsIfStmt>()[0]
273+
val returnStmt = method.cfg.stmts.filterIsInstance<EtsReturnStmt>()[0]
274+
target
275+
.addChild(TsReachabilityTarget.IntermediatePoint(ifStmt))
276+
.addChild(TsReachabilityTarget.FinalPoint(returnStmt))
277+
278+
val results = machine.analyze(listOf(method), listOf(target))
279+
assertTrue(
280+
results.isNotEmpty(),
281+
"Expected at least one result for abstract method implementation reachability"
282+
)
283+
284+
val reachedStatements = results.flatMap { it.pathNode.allStatements }.toSet()
285+
assertTrue(
286+
returnStmt in reachedStatements,
287+
"Expected return statement to be reached when value > 10"
288+
)
292289
}
293290
}

0 commit comments

Comments
 (0)