Skip to content

Commit 95b7b9a

Browse files
committed
Skip coverage line indexes which are out of bounds
1 parent 60ae0c7 commit 95b7b9a

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

clion-plugin/src/main/kotlin/org/utbot/cpp/clion/plugin/coverage/UTBotCoverageRunner.kt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,20 @@ class UTBotCoverageRunner : CoverageRunner() {
4444
log.warn("Skipping $localFilePath in coverage processing as it does not exist!")
4545
continue
4646
}
47-
val lines = arrayOfNulls<LineData>(getLineCount(localFilePath))
47+
val linesCount = getLineCount(localFilePath)
48+
val lines = arrayOfNulls<LineData>(linesCount)
4849
val classData = projectData.getOrCreateClassData(provideQualifiedNameForFile(localFilePath.toAbsolutePath().toString()))
4950
fun processRanges(rangesList: List<Testgen.SourceLine?>, status: Byte) {
50-
rangesList.filterNotNull().forEach {
51-
val lineData = LineData(it.line + 1, null)
51+
rangesList.filterNotNull().forEach { sourceLine ->
52+
val numberInFile = sourceLine.line - 1
53+
if (numberInFile >= linesCount) {
54+
log.warn("Skipping $localFilePath:${numberInFile} in coverage processing! Number of lines in file is $linesCount!")
55+
return@forEach
56+
}
57+
val lineData = LineData(sourceLine.line + 1, null)
5258
lineData.hits = status.toInt()
5359
lineData.setStatus(status)
54-
lines[it.line-1] = lineData
60+
lines[numberInFile] = lineData
5561
classData.registerMethodSignature(lineData)
5662
}
5763
}

0 commit comments

Comments
 (0)