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) --- build.sc | 5 +-- contrib/scoverage/src/ScoverageModule.scala | 4 +-- contrib/scoverage/test/src/HelloWorldTests.scala | 20 ++++++------ .../1.4.0/src/ScoverageReportWorkerImpl.scala | 37 ++++++++++++++++++++++ docs/pages/9 - Contrib Modules.md | 6 ++-- 5 files changed, 55 insertions(+), 17 deletions(-) create mode 100644 contrib/scoverage/worker/1.4.0/src/ScoverageReportWorkerImpl.scala diff --git a/build.sc b/build.sc index e78d8947..02f06b07 100755 --- a/build.sc +++ b/build.sc @@ -361,7 +361,8 @@ object contrib extends MillModule { def testArgs = T { val mapping = Map( - "MILL_SCOVERAGE_REPORT_WORKER_1_3_1" -> worker("1.3.1").compile().classes.path + "MILL_SCOVERAGE_REPORT_WORKER_1_3_1" -> worker("1.3.1").compile().classes.path, + "MILL_SCOVERAGE_REPORT_WORKER_1_4_0" -> worker("1.4.0").compile().classes.path ) scalalib.worker.testArgs() ++ scalalib.backgroundwrapper.testArgs() ++ @@ -378,7 +379,7 @@ object contrib extends MillModule { def moduleDeps = Seq(scalalib) } - object worker extends Cross[WorkerModule]("1.3.1") + object worker extends Cross[WorkerModule]("1.3.1", "1.4.0") class WorkerModule(scoverageVersion: String) extends MillApiModule { def moduleDeps = Seq(scoverage.api) 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) + } +} diff --git a/docs/pages/9 - Contrib Modules.md b/docs/pages/9 - Contrib Modules.md index 44377462..d116357c 100644 --- a/docs/pages/9 - Contrib Modules.md +++ b/docs/pages/9 - Contrib Modules.md @@ -596,11 +596,11 @@ import $ivy.`com.lihaoyi::mill-contrib-scoverage:$MILL_VERSION` 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") + def ivyDeps = Agg(ivy"org.scalatest::scalatest:3.0.8") def testFrameworks = Seq("org.scalatest.tools.Framework") } } -- cgit v1.2.3