From 67ba8651ab940c911f62ac6a3350c56a6917b830 Mon Sep 17 00:00:00 2001 From: Fabian Heredia Montiel Date: Wed, 4 Sep 2019 16:02:03 -0500 Subject: Upgrade scoverage: 1.3.1 -> 1.4.0 (#687) --- contrib/scoverage/src/ScoverageModule.scala | 4 +-- contrib/scoverage/test/src/HelloWorldTests.scala | 20 ++++++------ .../1.4.0/src/ScoverageReportWorkerImpl.scala | 37 ++++++++++++++++++++++ 3 files changed, 49 insertions(+), 12 deletions(-) create mode 100644 contrib/scoverage/worker/1.4.0/src/ScoverageReportWorkerImpl.scala (limited to 'contrib') diff --git a/contrib/scoverage/src/ScoverageModule.scala b/contrib/scoverage/src/ScoverageModule.scala index 734c317f..a4637e1a 100644 --- a/contrib/scoverage/src/ScoverageModule.scala +++ b/contrib/scoverage/src/ScoverageModule.scala @@ -27,8 +27,8 @@ import mill.moduledefs.Cacher * import mill.contrib.scoverage.ScoverageModule * * Object foo extends ScoverageModule { - * def scalaVersion = "2.11.8" - * def scoverageVersion = "1.3.1" + * def scalaVersion = "2.12.9" + * def scoverageVersion = "1.4.0" * * object test extends ScoverageTests { * def ivyDeps = Agg(ivy"org.scalatest::scalatest:3.0.5") diff --git a/contrib/scoverage/test/src/HelloWorldTests.scala b/contrib/scoverage/test/src/HelloWorldTests.scala index 66f7a50e..62ca4b77 100644 --- a/contrib/scoverage/test/src/HelloWorldTests.scala +++ b/contrib/scoverage/test/src/HelloWorldTests.scala @@ -17,12 +17,12 @@ object HelloWorldTests extends utest.TestSuite { object HelloWorld extends HelloBase { object other extends ScalaModule { - def scalaVersion = "2.12.4" + def scalaVersion = "2.12.9" } object core extends ScoverageModule with BuildInfo { - def scalaVersion = "2.12.4" - def scoverageVersion = "1.3.1" + def scalaVersion = "2.12.9" + def scoverageVersion = "1.4.0" def moduleDeps = Seq(other) @@ -31,7 +31,7 @@ object HelloWorldTests extends utest.TestSuite { } object test extends ScoverageTests { - override def ivyDeps = Agg(ivy"org.scalatest::scalatest:3.0.5") + override def ivyDeps = Agg(ivy"org.scalatest::scalatest:3.0.8") def testFrameworks = Seq("org.scalatest.tools.Framework") } } @@ -39,8 +39,8 @@ object HelloWorldTests extends utest.TestSuite { object HelloWorldSbt extends HelloBase { outer => object core extends ScoverageModule { - def scalaVersion = "2.12.4" - def scoverageVersion = "1.3.1" + def scalaVersion = "2.12.9" + def scoverageVersion = "1.4.0" override def sources = T.sources( millSourcePath / 'src / 'main / 'scala, millSourcePath / 'src / 'main / 'java @@ -48,7 +48,7 @@ object HelloWorldTests extends utest.TestSuite { override def resources = T.sources{ millSourcePath / 'src / 'main / 'resources } object test extends ScoverageTests { - override def ivyDeps = Agg(ivy"org.scalatest::scalatest:3.0.5") + override def ivyDeps = Agg(ivy"org.scalatest::scalatest:3.0.8") def testFrameworks = Seq("org.scalatest.tools.Framework") override def millSourcePath = outer.millSourcePath override def intellijModulePath = outer.millSourcePath / 'src / 'test @@ -74,7 +74,7 @@ object HelloWorldTests extends utest.TestSuite { val Right((result, evalCount)) = eval.apply(HelloWorld.core.scoverageVersion) assert( - result == "1.3.1", + result == "1.4.0", evalCount > 0 ) } @@ -84,7 +84,7 @@ object HelloWorldTests extends utest.TestSuite { eval.apply(HelloWorld.core.scoverage.ivyDeps) assert( - result == Agg(ivy"org.scoverage::scalac-scoverage-runtime:1.3.1"), + result == Agg(ivy"org.scoverage::scalac-scoverage-runtime:1.4.0"), evalCount > 0 ) } @@ -93,7 +93,7 @@ object HelloWorldTests extends utest.TestSuite { eval.apply(HelloWorld.core.scoverage.scalacPluginIvyDeps) assert( - result == Agg(ivy"org.scoverage::scalac-scoverage-plugin:1.3.1"), + result == Agg(ivy"org.scoverage::scalac-scoverage-plugin:1.4.0"), evalCount > 0 ) } diff --git a/contrib/scoverage/worker/1.4.0/src/ScoverageReportWorkerImpl.scala b/contrib/scoverage/worker/1.4.0/src/ScoverageReportWorkerImpl.scala new file mode 100644 index 00000000..63fdd693 --- /dev/null +++ b/contrib/scoverage/worker/1.4.0/src/ScoverageReportWorkerImpl.scala @@ -0,0 +1,37 @@ +package mill.contrib.scoverage.worker + +import mill.contrib.scoverage.api.ScoverageReportWorkerApi +import mill.eval.PathRef +import _root_.scoverage.Serializer.{ coverageFile, deserialize } +import _root_.scoverage.IOUtils.{ findMeasurementFiles, invoked } +import _root_.scoverage.report.ScoverageHtmlWriter +import _root_.scoverage.report.ScoverageXmlWriter + +private sealed trait ReportType { def folderName: String } +private case object Html extends ReportType { val folderName: String = "htmlReport" } +private case object Xml extends ReportType { val folderName: String = "xmlReport" } + +class ScoverageReportWorkerImpl extends ScoverageReportWorkerApi { + private def buildReport(sources: Seq[PathRef], dataDir: String, selfDir: String, reportType: ReportType) = { + val coverageFileObj = coverageFile(dataDir) + val coverage = deserialize(coverageFileObj) + coverage(invoked(findMeasurementFiles(dataDir))) + val sourceFolders = sources.map(_.path.toIO) + val folder = new java.io.File(s"${selfDir}/${reportType.folderName}") + folder.mkdir() + reportType match { + case Html => + new ScoverageHtmlWriter(sourceFolders, folder, None) + .write(coverage) + case Xml => + new ScoverageXmlWriter(sourceFolders, folder, false) + .write(coverage) + } + } + def htmlReport(sources: Seq[PathRef], dataDir: String, selfDir: String) = { + buildReport(sources, dataDir, selfDir, Html) + } + def xmlReport(sources: Seq[PathRef], dataDir: String, selfDir: String) = { + buildReport(sources, dataDir, selfDir, Xml) + } +} -- cgit v1.2.3