Skip to content

Commit 590a6cb

Browse files
authored
Merge pull request #475 from codacy/fix-cobertura
fix: [Cobertura] Merge results on the same line instead of replacing
2 parents 5f6caf9 + 05a7290 commit 590a6cb

File tree

5 files changed

+20
-9
lines changed

5 files changed

+20
-9
lines changed

coverage-parser/src/main/scala/com/codacy/parsers/implementation/CoberturaParser.scala

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import com.codacy.parsers.util.MathUtils._
77
import com.codacy.parsers.util.TextUtils
88
import com.codacy.parsers.{CoverageParser, XmlReportParser}
99

10+
import scala.collection.mutable
1011
import scala.xml.{Elem, NodeSeq}
1112

1213
object CoberturaParser extends CoverageParser with XmlReportParser {
@@ -50,12 +51,18 @@ object CoberturaParser extends CoverageParser with XmlReportParser {
5051
}
5152
val fileHit = if (classHit.nonEmpty) { classHit.sum / classHit.length } else 0
5253

53-
val lineHitMap: Map[Int, Int] =
54-
(for {
55-
xClass <- classes
56-
line <- xClass \\ "line"
57-
} yield (line \@ "number").toInt -> (line \@ "hits").toIntOrMaxValue).toMap
54+
val map = mutable.Map.empty[Int, Int]
5855

59-
CoverageFileReport(sourceFilename, fileHit, lineHitMap)
56+
for {
57+
xClass <- classes
58+
line <- xClass \\ "line"
59+
} {
60+
val key = (line \@ "number").toInt
61+
val value = (line \@ "hits").toIntOrMaxValue
62+
63+
map(key) = map.get(key).getOrElse(0) + value
64+
}
65+
66+
CoverageFileReport(sourceFilename, fileHit, map.toMap)
6067
}
6168
}

coverage-parser/src/test/resources/test_cobertura.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
<line number="4" hits="1"/>
1010
<line number="5" hits="1"/>
1111
<line number="6" hits="2"/>
12+
<line number="7" hits="1"/>
13+
<line number="7" hits="0"/>
14+
<line number="8" hits="1"/>
15+
<line number="8" hits="2"/>
1216
</lines>
1317
</class>
1418
<class line-rate="0.87" name="TestSourceFile" filename="coverage-parser/src/test/resources/TestSourceFile.scala">

coverage-parser/src/test/scala/com/codacy/parsers/CoberturaParserTest.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class CoberturaParserTest extends WordSpec with BeforeAndAfterAll with Matchers
3636
CoverageFileReport(
3737
"coverage-parser/src/test/resources/TestSourceFile.scala",
3838
87,
39-
Map(5 -> 1, 10 -> 1, 6 -> 2, 9 -> 1, 3 -> 0, 4 -> 1)
39+
Map(5 -> 1, 10 -> 1, 6 -> 2, 9 -> 1, 3 -> 0, 4 -> 1, 7 -> 1, 8 -> 3)
4040
)
4141
)
4242
)

coverage-parser/src/test/scala/com/codacy/parsers/CoverageParserFactoryTest.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class CoverageParserFactoryTest extends WordSpec with BeforeAndAfterAll with Mat
2121
CoverageFileReport(
2222
"coverage-parser/src/test/resources/TestSourceFile.scala",
2323
87,
24-
Map(5 -> 1, 10 -> 1, 6 -> 2, 9 -> 1, 3 -> 0, 4 -> 1)
24+
Map(5 -> 1, 10 -> 1, 6 -> 2, 9 -> 1, 3 -> 0, 4 -> 1, 7 -> 1, 8 -> 3)
2525
)
2626
)
2727
)

graalvm/build-deps.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ export CC=$TOOLCHAIN_DIR/bin/gcc
1212

1313
zlib='zlib-1.2.13'
1414
zlibtargz=$zlib.tar.gz
15-
curl https://zlib.net/$zlibtargz --output $zlibtargz
15+
curl https://zlib.net/fossils/$zlibtargz --output $zlibtargz
1616
tar -xf $zlibtargz
1717

1818
(

0 commit comments

Comments
 (0)