From 7d208d09d3cf1374f3732ad3b7664e8bd71b1781 Mon Sep 17 00:00:00 2001 From: Chris Kipp Date: Fri, 5 Nov 2021 11:24:09 +0100 Subject: [PATCH] fix: ensure passed in encoding is being used and make some things private --- .../scala/scoverage/LocationCompiler.scala | 4 ++-- .../scala/scoverage/ScoverageCompiler.scala | 4 ++-- .../reporter/CoberturaXmlWriter.scala | 3 ++- .../scala/scoverage/reporter/IOUtils.scala | 4 ++-- .../reporter/ScoverageHtmlWriter.scala | 20 +++++++++++++------ .../reporter/ScoverageXmlWriter.scala | 6 +++++- 6 files changed, 27 insertions(+), 14 deletions(-) diff --git a/plugin/src/test/scala/scoverage/LocationCompiler.scala b/plugin/src/test/scala/scoverage/LocationCompiler.scala index 7d8766a8..962ac391 100644 --- a/plugin/src/test/scala/scoverage/LocationCompiler.scala +++ b/plugin/src/test/scala/scoverage/LocationCompiler.scala @@ -9,7 +9,7 @@ import scala.tools.nsc.transform.TypingTransformers import scoverage.reporter.IOUtils -class LocationCompiler( +private[scoverage] class LocationCompiler( settings: scala.tools.nsc.Settings, reporter: scala.tools.nsc.reporters.Reporter ) extends scala.tools.nsc.Global(settings, reporter) { @@ -26,7 +26,7 @@ class LocationCompiler( def writeCodeSnippetToTempFile(code: String): File = { val file = File.createTempFile("code_snippet", ".scala") - IOUtils.writeToFile(file, code) + IOUtils.writeToFile(file, code, None) file.deleteOnExit() file } diff --git a/plugin/src/test/scala/scoverage/ScoverageCompiler.scala b/plugin/src/test/scala/scoverage/ScoverageCompiler.scala index e52e60c5..0bf79338 100644 --- a/plugin/src/test/scala/scoverage/ScoverageCompiler.scala +++ b/plugin/src/test/scala/scoverage/ScoverageCompiler.scala @@ -13,7 +13,7 @@ import scala.tools.nsc.transform.TypingTransformers import scoverage.reporter.IOUtils -object ScoverageCompiler { +private[scoverage] object ScoverageCompiler { val ScalaVersion: String = scala.util.Properties.versionNumberString val ShortScalaVersion: String = (ScalaVersion split "[.]").toList match { @@ -142,7 +142,7 @@ class ScoverageCompiler( def writeCodeSnippetToTempFile(code: String): File = { val file = File.createTempFile("scoverage_snippet", ".scala") - IOUtils.writeToFile(file, code) + IOUtils.writeToFile(file, code, None) file.deleteOnExit() file } diff --git a/reporter/src/main/scala/scoverage/reporter/CoberturaXmlWriter.scala b/reporter/src/main/scala/scoverage/reporter/CoberturaXmlWriter.scala index 327e4ddc..7ad3a775 100644 --- a/reporter/src/main/scala/scoverage/reporter/CoberturaXmlWriter.scala +++ b/reporter/src/main/scala/scoverage/reporter/CoberturaXmlWriter.scala @@ -27,7 +27,8 @@ class CoberturaXmlWriter( IOUtils.writeToFile( file, "\n\n" + - new PrettyPrinter(120, 4).format(xml(coverage)) + new PrettyPrinter(120, 4).format(xml(coverage)), + sourceEncoding ) } diff --git a/reporter/src/main/scala/scoverage/reporter/IOUtils.scala b/reporter/src/main/scala/scoverage/reporter/IOUtils.scala index aae159ab..854d548a 100644 --- a/reporter/src/main/scala/scoverage/reporter/IOUtils.scala +++ b/reporter/src/main/scala/scoverage/reporter/IOUtils.scala @@ -42,12 +42,12 @@ object IOUtils { def writeToFile( file: File, str: String, - encoding: String = Codec.UTF8.name + encoding: Option[String] ) = { val writer = new BufferedWriter( new OutputStreamWriter( new FileOutputStream(file), - encoding + encoding.getOrElse(Codec.UTF8.name) ) ) try { diff --git a/reporter/src/main/scala/scoverage/reporter/ScoverageHtmlWriter.scala b/reporter/src/main/scala/scoverage/reporter/ScoverageHtmlWriter.scala index 849e7663..e93bf48e 100644 --- a/reporter/src/main/scala/scoverage/reporter/ScoverageHtmlWriter.scala +++ b/reporter/src/main/scala/scoverage/reporter/ScoverageHtmlWriter.scala @@ -53,10 +53,18 @@ class ScoverageHtmlWriter( try IOUtils.readStreamAsString(in) finally in.close() } - IOUtils.writeToFile(indexFile, index) - IOUtils.writeToFile(cssFile, css) - IOUtils.writeToFile(packageFile, packageList(coverage).toString()) - IOUtils.writeToFile(overviewFile, overview(coverage).toString()) + IOUtils.writeToFile(indexFile, index, sourceEncoding) + IOUtils.writeToFile(cssFile, css, sourceEncoding) + IOUtils.writeToFile( + packageFile, + packageList(coverage).toString(), + sourceEncoding + ) + IOUtils.writeToFile( + overviewFile, + overview(coverage).toString(), + sourceEncoding + ) coverage.packages.foreach(writePackage) } @@ -67,7 +75,7 @@ class ScoverageHtmlWriter( // to com.example.html val file = new File(outputDir, packageOverviewRelativePath(pkg)) file.getParentFile.mkdirs() - IOUtils.writeToFile(file, packageOverview(pkg).toString()) + IOUtils.writeToFile(file, packageOverview(pkg).toString(), sourceEncoding) pkg.files.foreach(writeFile) } @@ -75,7 +83,7 @@ class ScoverageHtmlWriter( // each highlighted file is written out using the same structure as the original file. val file = new File(outputDir, relativeSource(mfile.source) + ".html") file.getParentFile.mkdirs() - IOUtils.writeToFile(file, filePage(mfile).toString()) + IOUtils.writeToFile(file, filePage(mfile).toString(), sourceEncoding) } private def packageOverviewRelativePath(pkg: MeasuredPackage) = diff --git a/reporter/src/main/scala/scoverage/reporter/ScoverageXmlWriter.scala b/reporter/src/main/scala/scoverage/reporter/ScoverageXmlWriter.scala index 49b4eebf..bb5f8153 100644 --- a/reporter/src/main/scala/scoverage/reporter/ScoverageXmlWriter.scala +++ b/reporter/src/main/scala/scoverage/reporter/ScoverageXmlWriter.scala @@ -30,7 +30,11 @@ class ScoverageXmlWriter( def write(coverage: Coverage): Unit = { val file = IOUtils.reportFile(outputDir, debug) - IOUtils.writeToFile(file, new PrettyPrinter(120, 4).format(xml(coverage))) + IOUtils.writeToFile( + file, + new PrettyPrinter(120, 4).format(xml(coverage)), + sourceEncoding + ) } private def xml(coverage: Coverage): Node = {