Skip to content

Commit

Permalink
Tidy reporting helpers
Browse files Browse the repository at this point in the history
  • Loading branch information
stringbean committed Sep 18, 2017
1 parent d6f4de9 commit 33d8516
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 29 deletions.
6 changes: 3 additions & 3 deletions src/main/scala/org/scalasbt/jacoco/BaseJacocoPlugin.scala
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import java.io.File
import org.jacoco.core.runtime.{IRuntime, LoggerRuntime, RuntimeData}
import org.scalasbt.jacoco.build.BuildInfo
import org.scalasbt.jacoco.data.{ExecutionDataUtils, InstrumentationUtils}
import org.scalasbt.jacoco.report.Reporting
import org.scalasbt.jacoco.report.ReportUtils
import sbt.Keys._
import sbt.plugins.JvmPlugin
import sbt.{Def, _}
Expand Down Expand Up @@ -71,7 +71,7 @@ private[jacoco] abstract class BaseJacocoPlugin extends AutoPlugin with JacocoKe
.task(ExecutionDataUtils.saveRuntimeData(runtimeData, jacocoDataFile.value, fork.value, streams.value))
.dependsOn(test)
.value,
jacocoReport := Reporting.reportAction(
jacocoReport := ReportUtils.generateReport(
jacocoReportDirectory.value,
jacocoDataFile.value,
jacocoReportSettings.value,
Expand All @@ -80,7 +80,7 @@ private[jacoco] abstract class BaseJacocoPlugin extends AutoPlugin with JacocoKe
jacocoSourceSettings.value,
streams.value
),
jacocoAggregateReport := Reporting.aggregateReportAction(
jacocoAggregateReport := ReportUtils.generateAggregateReport(
jacocoReportDirectory.value / "aggregate",
aggregateExecutionDataFiles.value,
jacocoAggregateReportSettings.value,
Expand Down
4 changes: 2 additions & 2 deletions src/main/scala/org/scalasbt/jacoco/JacocoItPlugin.scala
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
package org.scalasbt.jacoco

import org.scalasbt.jacoco.data.ExecutionDataUtils
import org.scalasbt.jacoco.report.{JacocoReportSettings, Reporting}
import org.scalasbt.jacoco.report.{JacocoReportSettings, ReportUtils}
import sbt.Keys._
import sbt.plugins.JvmPlugin
import sbt.{Def, _}
Expand Down Expand Up @@ -74,7 +74,7 @@ object JacocoItPlugin extends BaseJacocoPlugin {
jacocoMergedReportSettings := JacocoReportSettings("Jacoco Merged Coverage Report"),
jacocoMergedReport := Def
.task(
Reporting.reportAction(
ReportUtils.generateReport(
jacocoDirectory.value / "report" / "merged",
jacocoMergedDataFile.value,
jacocoMergedReportSettings.value,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,12 @@ import sbt.Keys.TaskStreams
import sbt._

object ExecutionDataUtils {
def saveRuntimeData(data: RuntimeData, dest: File, forked: Boolean, streams: TaskStreams): Unit = {

def saveRuntimeData(data: RuntimeData, destination: File, forked: Boolean, streams: TaskStreams): Unit = {
if (!forked) {
streams.log.debug(s"writing execution data to $dest")
IO.createDirectory(dest.getParentFile)
streams.log.debug(s"writing execution data to $destination")
IO.createDirectory(destination.getParentFile)

for (os <- managed(new FileOutputStream(dest))) {
for (os <- managed(new FileOutputStream(destination))) {
val executionDataWriter = new ExecutionDataWriter(os)
data.collect(executionDataWriter, executionDataWriter, true)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,19 @@ package org.scalasbt.jacoco.report
import sbt.Keys._
import sbt._

import scala.language.implicitConversions

private[jacoco] object Reporting {
def reportAction(
reportDirectory: File,
executionDataFile: File,
object ReportUtils {
def generateReport(
destinationDirectory: File,
executionData: File,
reportSettings: JacocoReportSettings,
sourceDirectories: Seq[File],
classDirectories: Seq[File],
sourceSettings: JacocoSourceSettings,
streams: TaskStreams): Unit = {

val report = new Report(
reportDirectory = reportDirectory,
executionDataFiles = Seq(executionDataFile),
reportDirectory = destinationDirectory,
executionDataFiles = Seq(executionData),
classDirectories = classDirectories,
sourceDirectories = sourceDirectories,
sourceSettings = sourceSettings,
Expand All @@ -40,8 +38,8 @@ private[jacoco] object Reporting {
report.generate()
}

def aggregateReportAction(
reportDirectory: File,
def generateAggregateReport(
destinationDirectory: File,
executionDataFiles: Seq[File],
reportSettings: JacocoReportSettings,
sourceDirectories: Seq[File],
Expand All @@ -50,7 +48,7 @@ private[jacoco] object Reporting {
streams: TaskStreams): Unit = {

val report = new Report(
reportDirectory = reportDirectory,
reportDirectory = destinationDirectory,
executionDataFiles = executionDataFiles,
classDirectories = classDirectories,
sourceDirectories = sourceDirectories,
Expand All @@ -61,9 +59,4 @@ private[jacoco] object Reporting {

report.generate()
}

class FileWithOrElse(file: File) {
def orElse(otherFileName: String): File = if (file.exists) file else new File(file.getParent, otherFileName)
}
implicit def fileToFileWithOrElse(f: File): FileWithOrElse = new FileWithOrElse(f)
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import org.jacoco.report.html.HTMLFormatter
import org.jacoco.report.internal.html.resources.Styles
import org.jacoco.report.internal.html.table._
import org.jacoco.report.{FileMultiReportOutput, IReportVisitor}
import org.scalasbt.jacoco.ScalaLanguageNames

class ScalaHTMLReportFormat(withBranchCoverage: Boolean = true) extends JacocoReportFormat {
override def createVisitor(directory: File, encoding: String): IReportVisitor = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@
* http://www.eclipse.org/legal/epl-v10.html
*/

package org.scalasbt.jacoco
package org.scalasbt.jacoco.report.formats

import org.jacoco.report.JavaNames
import org.scalasbt.jacoco.filter.ScalaForwarderDetector

import scala.reflect.NameTransformer._

class ScalaLanguageNames extends JavaNames {
private[formats] class ScalaLanguageNames extends JavaNames {
override def getPackageName(vmname: String): String =
super.getPackageName(decode(vmname))

Expand Down

0 comments on commit 33d8516

Please sign in to comment.