Skip to content

Commit 02d976e

Browse files
committed
Merge pull request #73 from msulima/coverage-aggregation
Fix statement id overriding in CoverageAggregator
2 parents 0cb61ee + e4e7bc1 commit 02d976e

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

scalac-scoverage-plugin/src/main/scala/scoverage/report/CoverageAggregator.scala

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,16 @@ object CoverageAggregator {
1818
}
1919
}
2020

21-
def aggregatedCoverage(files: Seq[File]): Coverage = {
21+
def aggregatedCoverage(files: Seq[File]): Coverage = {
2222
var id = 0
2323
val coverage = Coverage()
24-
files foreach {
25-
case file =>
26-
val subcoverage = ScoverageXmlReader.read(file)
24+
files foreach { file =>
25+
val subcoverage = ScoverageXmlReader.read(file)
26+
subcoverage.statements foreach { stmt =>
2727
// need to ensure all the ids are unique otherwise the coverage object will have stmt collisions
2828
id = id + 1
29-
subcoverage.statements foreach { stmt => coverage add stmt.copy(id = id)}
29+
coverage add stmt.copy(id = id)
30+
}
3031
}
3132
coverage
3233
}

scalac-scoverage-plugin/src/test/scala/scoverage/CoverageAggregatorTest.scala

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import java.io.File
44
import java.util.UUID
55

66
import org.scalatest.{FreeSpec, Matchers}
7-
import scoverage.report.{ScoverageXmlWriter, CoverageAggregator}
7+
import scoverage.report.{CoverageAggregator, ScoverageXmlWriter}
88

99
class CoverageAggregatorTest extends FreeSpec with Matchers {
1010

@@ -20,7 +20,8 @@ class CoverageAggregatorTest extends FreeSpec with Matchers {
2020
source)
2121

2222
val coverage1 = Coverage()
23-
coverage1.add(Statement(source, location, 1, 155, 176, 4, "", "", "", true, 2))
23+
coverage1.add(Statement(source, location, 1, 155, 176, 4, "", "", "", true, 1))
24+
coverage1.add(Statement(source, location, 2, 200, 300, 5, "", "", "", false, 2))
2425
val dir1 = new File(IOUtils.getTempPath, UUID.randomUUID.toString)
2526
dir1.mkdir()
2627
new ScoverageXmlWriter(new File("/home/sam"), dir1, false).write(coverage1)
@@ -42,7 +43,7 @@ class CoverageAggregatorTest extends FreeSpec with Matchers {
4243
IOUtils.reportFile(dir2, debug = false),
4344
IOUtils.reportFile(dir3, debug = false))
4445
)
45-
aggregated.statements.toSet.size shouldBe 3
46+
aggregated.statements.toSet.size shouldBe 4
4647
aggregated.statements.map(_.copy(id = 0)).toSet shouldBe
4748
(coverage1.statements ++ coverage2.statements ++ coverage3.statements).map(_.copy(id = 0)).toSet
4849
}

0 commit comments

Comments
 (0)