diff --git a/src/main/scala/scoverage/IOUtils.scala b/src/main/scala/scoverage/IOUtils.scala index 0b41ad6d..2e681c51 100644 --- a/src/main/scala/scoverage/IOUtils.scala +++ b/src/main/scala/scoverage/IOUtils.scala @@ -2,6 +2,9 @@ package scoverage import java.io._ import scala.xml.{XML, Utility, Node} +import scala.collection.Set +import scala.collection.mutable +import scala.io.Source /** @author Stephen Samuel */ object IOUtils { @@ -28,14 +31,18 @@ object IOUtils { }) // loads all the invoked statement ids from the given files - def invoked(files: Seq[File]): Seq[Int] = { - files.flatMap { - file => - val reader = new BufferedReader(new FileReader(file)) - val line = reader.readLine() + def invoked(files: Seq[File]): Set[Int] = { + val acc = mutable.Set[Int]() + files.foreach { file => + val reader = Source.fromFile(file) + for (line <- reader.getLines()) { + if (!line.isEmpty) { + acc += line.toInt + } + } reader.close() - line.split(";").filterNot(_.isEmpty).map(_.toInt) } + acc } /** diff --git a/src/main/scala/scoverage/Invoker.scala b/src/main/scala/scoverage/Invoker.scala index cf870691..cee55f80 100644 --- a/src/main/scala/scoverage/Invoker.scala +++ b/src/main/scala/scoverage/Invoker.scala @@ -31,6 +31,6 @@ object Invoker { writer = new FileWriter(file, true) threadFile.set(writer) } - writer.append(id.toString + ';').flush() + writer.append(id.toString + '\n').flush() } } diff --git a/src/test/scala/scoverage/IOUtilsTest.scala b/src/test/scala/scoverage/IOUtilsTest.scala index 043a7e48..fa0ed097 100644 --- a/src/test/scala/scoverage/IOUtilsTest.scala +++ b/src/test/scala/scoverage/IOUtilsTest.scala @@ -46,7 +46,7 @@ class IOUtilsTest extends FunSuite with MockitoSugar with OneInstancePerTest { test("io utils should parse measurement file") { val file = File.createTempFile("scoveragemeasurementtest", "txt") val writer = new FileWriter(file) - writer.write("1;5;9;;10;") + writer.write("1\n5\n9\n\n10\n") writer.close() val invoked = IOUtils.invoked(Seq(file)) assert(invoked.toSet === Set(1, 5, 9, 10)) @@ -62,12 +62,12 @@ class IOUtilsTest extends FunSuite with MockitoSugar with OneInstancePerTest { val file1 = File.createTempFile("scoverage.measurements.1", "txt") val writer1 = new FileWriter(file1) - writer1.write("1;5;9;;10;") + writer1.write("1\n5\n9\n\n10\n") writer1.close() val file2 = File.createTempFile("scoverage.measurements.2", "txt") val writer2 = new FileWriter(file2) - writer2.write("1;7;14;;2;") + writer2.write("1\n7\n14\n\n2\n") writer2.close() val files = IOUtils.findMeasurementFiles(file1.getParent)