diff options
author | Fabian Heredia Montiel <fabianherediajr@gmail.com> | 2019-09-04 16:02:03 -0500 |
---|---|---|
committer | Tobias Roeser <le.petit.fou@web.de> | 2019-09-04 23:02:03 +0200 |
commit | 67ba8651ab940c911f62ac6a3350c56a6917b830 (patch) | |
tree | d620fc81416a594f97233fa8a60bebc8fa9177de /contrib/scoverage/worker/1.4.0/src | |
parent | bf99e9fee28b0c391eb89bb6d86a65eb7b6ef61a (diff) | |
download | mill-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.scala | 37 |
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) + } +} |