summaryrefslogtreecommitdiff
path: root/contrib/scoverage/worker/1.4.0/src
diff options
context:
space:
mode:
authorFabian Heredia Montiel <fabianherediajr@gmail.com>2019-09-04 16:02:03 -0500
committerTobias Roeser <le.petit.fou@web.de>2019-09-04 23:02:03 +0200
commit67ba8651ab940c911f62ac6a3350c56a6917b830 (patch)
treed620fc81416a594f97233fa8a60bebc8fa9177de /contrib/scoverage/worker/1.4.0/src
parentbf99e9fee28b0c391eb89bb6d86a65eb7b6ef61a (diff)
downloadmill-67ba8651ab940c911f62ac6a3350c56a6917b830.tar.gz
mill-67ba8651ab940c911f62ac6a3350c56a6917b830.tar.bz2
mill-67ba8651ab940c911f62ac6a3350c56a6917b830.zip
Upgrade scoverage: 1.3.1 -> 1.4.0 (#687)
Diffstat (limited to 'contrib/scoverage/worker/1.4.0/src')
-rw-r--r--contrib/scoverage/worker/1.4.0/src/ScoverageReportWorkerImpl.scala37
1 files changed, 37 insertions, 0 deletions
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)
+ }
+}