Skip to content

Commit 0894dce

Browse files
authored
Merge branch 'master' into fix-release-documentation
2 parents 39ce38a + 12332eb commit 0894dce

28 files changed

+93
-86
lines changed

.travis.yml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,9 @@ jdk:
77
- openjdk8
88

99
scala:
10-
- 2.10.7
1110
- 2.11.12
12-
- 2.12.8
13-
- 2.13.0
11+
- 2.12.10
12+
- 2.13.1
1413

1514
before_cache:
1615
- find "$HOME/.sbt/" -name '*.lock' -print0 | xargs -0 rm

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,9 @@ project you will need to use one of the build plugins:
194194
* [sbt-scoverage](https://github.com/scoverage/sbt-scoverage)
195195
* [gradle-scoverage](https://github.com/scoverage/gradle-scoverage)
196196
* [sbt-coveralls](https://github.com/scoverage/sbt-coveralls)
197+
* [mill-contrib-scoverage](https://www.lihaoyi.com/mill/page/contrib-modules.html#scoverage)
197198
* Upload report to [Codecov](https://codecov.io): [Example Scala Repository](https://github.com/codecov/example-scala)
199+
* Upload report to [Codacy](https://www.codacy.com/): [Documentation](https://support.codacy.com/hc/en-us/articles/207279819-Coverage)
198200

199201
Scoverage support is available for the following tools:
200202

build.sbt

Lines changed: 15 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ import sbtcrossproject.CrossProject
66
import sbtcrossproject.CrossType
77

88
val Org = "org.scoverage"
9-
val ScalatestVersion = "3.0.8"
9+
val ScalatestVersion = "3.1.1"
1010

1111
val appSettings = Seq(
1212
organization := Org,
13-
scalaVersion := "2.12.8",
14-
crossScalaVersions := Seq("2.10.7", "2.11.12", "2.12.8", "2.13.0"),
13+
scalaVersion := "2.12.10",
14+
crossScalaVersions := Seq("2.11.12", "2.12.10", "2.13.1"),
1515
fork in Test := false,
1616
publishMavenStyle := true,
1717
publishArtifact in Test := false,
@@ -69,43 +69,31 @@ lazy val runtime = CrossProject("scalac-scoverage-runtime", file("scalac-scovera
6969
.crossType(CrossType.Full)
7070
.settings(name := "scalac-scoverage-runtime")
7171
.settings(appSettings: _*)
72+
.settings(
73+
libraryDependencies += "org.scalatest" %%% "scalatest" % ScalatestVersion % Test
74+
)
7275
.jvmSettings(
73-
fork in Test := true,
74-
libraryDependencies += "org.scalatest" %% "scalatest" % ScalatestVersion % "test"
76+
fork in Test := true
7577
)
7678
.jsSettings(
77-
libraryDependencies += "org.scalatest" %%% "scalatest" % ScalatestVersion % "test",
7879
scalaJSStage := FastOptStage
7980
)
8081

8182
lazy val `scalac-scoverage-runtimeJVM` = runtime.jvm
8283
lazy val `scalac-scoverage-runtimeJS` = runtime.js
8384

8485
lazy val plugin = Project("scalac-scoverage-plugin", file("scalac-scoverage-plugin"))
85-
.dependsOn(`scalac-scoverage-runtimeJVM` % "test")
86+
.dependsOn(`scalac-scoverage-runtimeJVM` % Test)
8687
.settings(name := "scalac-scoverage-plugin")
8788
.settings(appSettings: _*)
8889
.settings(
8990
libraryDependencies ++= Seq(
90-
"org.scalatest" %% "scalatest" % ScalatestVersion % "test",
91-
"org.scala-lang" % "scala-compiler" % scalaVersion.value % "provided"
91+
"org.scala-lang.modules" %% "scala-xml" % "1.2.0",
92+
"org.scalatest" %% "scalatest" % ScalatestVersion % Test,
93+
"org.scala-lang" % "scala-compiler" % scalaVersion.value % Provided
9294
)
9395
)
94-
.settings(
95-
unmanagedSourceDirectories in Test ++= {
96-
CrossVersion.partialVersion(scalaVersion.value) match {
97-
case Some((2, scalaMajor)) if scalaMajor > 10 =>
98-
Seq((sourceDirectory in Test).value / "scala-2.11+")
99-
case _ =>
100-
Seq()
101-
}
102-
},
103-
libraryDependencies ++= {
104-
CrossVersion.partialVersion(scalaVersion.value) match {
105-
case Some((2, scalaMajor)) if scalaMajor > 10 =>
106-
Seq("org.scala-lang.modules" %% "scala-xml" % "1.2.0")
107-
case _ =>
108-
Seq()
109-
}
110-
}
111-
)
96+
.settings(
97+
unmanagedSourceDirectories in Test += (sourceDirectory in Test).value / "scala-2.11+"
98+
)
99+

project/build.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
sbt.version=1.2.8
1+
sbt.version=1.3.8

project/plugins.sbt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.1.2")
44

55
addSbtPlugin("com.github.gseitz" % "sbt-release" % "1.0.11")
66

7-
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.28")
7+
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.0.0")
88

9-
addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "0.6.0")
9+
addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.0.0")

scalac-scoverage-plugin/src/main/scala/scoverage/plugin.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ class ScoveragePlugin(val global: Global) extends Plugin {
2626

2727
for (opt <- opts) {
2828
if (opt.startsWith("excludedPackages:")) {
29-
options.excludedPackages = parseExclusionEntry("excludedPackages", opt)
29+
options.excludedPackages = parseExclusionEntry("excludedPackages:", opt)
3030
} else if (opt.startsWith("excludedFiles:")) {
31-
options.excludedFiles = parseExclusionEntry("excludedFiles", opt)
31+
options.excludedFiles = parseExclusionEntry("excludedFiles:", opt)
3232
} else if (opt.startsWith("excludedSymbols:")) {
33-
options.excludedSymbols = parseExclusionEntry("excludedSymbols", opt)
33+
options.excludedSymbols = parseExclusionEntry("excludedSymbols:", opt)
3434
} else if (opt.startsWith("dataDir:")) {
3535
options.dataDir = opt.substring("dataDir:".length)
3636
} else if (opt.startsWith("extraAfterPhase:") || opt.startsWith("extraBeforePhase:")) {

scalac-scoverage-plugin/src/main/scala/scoverage/report/CoberturaXmlWriter.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class CoberturaXmlWriter(sourceDirectories: Seq[File], outputDir: File) extends
3131
<line
3232
number={stmt.line.toString}
3333
hits={stmt.count.toString}
34-
branch="false"/>
34+
branch={stmt.branch.toString}/>
3535
)}
3636
</lines>
3737
</method>
@@ -51,7 +51,7 @@ class CoberturaXmlWriter(sourceDirectories: Seq[File], outputDir: File) extends
5151
<line
5252
number={stmt.line.toString}
5353
hits={stmt.count.toString}
54-
branch="false"/>
54+
branch={stmt.branch.toString}/>
5555
)}
5656
</lines>
5757
</class>

scalac-scoverage-plugin/src/main/scala/scoverage/report/CoverageAggregator.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ object CoverageAggregator {
1111
aggregate(IOUtils.scoverageDataDirsSearch(baseDir))
1212
}
1313

14+
// to be used by gradle-scoverage plugin
15+
def aggregate(dataDirs: Array[File]): Option[Coverage] = aggregate(dataDirs.toSeq)
16+
1417
def aggregate(dataDirs: Seq[File]): Option[Coverage] = {
1518
println(s"[info] Found ${dataDirs.size} subproject scoverage data directories [${dataDirs.mkString(",")}]")
1619
if (dataDirs.size > 0) {

scalac-scoverage-plugin/src/main/scala/scoverage/report/ScoverageHtmlWriter.scala

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ import scala.xml.Node
1010
/** @author Stephen Samuel */
1111
class ScoverageHtmlWriter(sourceDirectories: Seq[File], outputDir: File, sourceEncoding: Option[String]) extends BaseReportWriter(sourceDirectories, outputDir) {
1212

13+
// to be used by gradle-scoverage plugin
14+
def this (sourceDirectories: Array[File], outputDir: File, sourceEncoding: Option[String]) {
15+
this (sourceDirectories.toSeq, outputDir, sourceEncoding)
16+
}
17+
1318
// for backward compatibility only
1419
def this (sourceDirectories: Seq[File], outputDir: File) {
1520
this(sourceDirectories, outputDir, None);

scalac-scoverage-plugin/src/test/scala-2.10/scoverage/macrosupport/TesterMacro.scala

Lines changed: 0 additions & 14 deletions
This file was deleted.

scalac-scoverage-plugin/src/test/scala/scoverage/CoberturaXmlWriterTest.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@ import java.io.File
44
import java.util.UUID
55
import javax.xml.parsers.DocumentBuilderFactory
66

7-
import org.scalatest.{BeforeAndAfter, FunSuite, OneInstancePerTest}
7+
import org.scalatest.{BeforeAndAfter, OneInstancePerTest}
88
import org.xml.sax.{ErrorHandler, SAXParseException}
99
import scoverage.report.CoberturaXmlWriter
1010

1111
import scala.xml.XML
12+
import org.scalatest.funsuite.AnyFunSuite
1213

1314
/** @author Stephen Samuel */
14-
class CoberturaXmlWriterTest extends FunSuite with BeforeAndAfter with OneInstancePerTest {
15+
class CoberturaXmlWriterTest extends AnyFunSuite with BeforeAndAfter with OneInstancePerTest {
1516

1617
def tempDir(): File = {
1718
val dir = new File(IOUtils.getTempDirectory, UUID.randomUUID.toString)

scalac-scoverage-plugin/src/test/scala/scoverage/CoverageAggregatorTest.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@ package scoverage
33
import java.io.{File, FileWriter}
44
import java.util.UUID
55

6-
import org.scalatest.{FreeSpec, Matchers}
76
import scoverage.report.CoverageAggregator
7+
import org.scalatest.freespec.AnyFreeSpec
8+
import org.scalatest.matchers.should.Matchers
89

9-
class CoverageAggregatorTest extends FreeSpec with Matchers {
10+
class CoverageAggregatorTest extends AnyFreeSpec with Matchers {
1011

1112
// Let current directory be our source root
1213
private val sourceRoot = new File(".")

scalac-scoverage-plugin/src/test/scala/scoverage/CoverageMetricsTest.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
package scoverage
22

3-
import org.scalatest.{FreeSpec, Matchers}
3+
import org.scalatest.freespec.AnyFreeSpec
4+
import org.scalatest.matchers.should.Matchers
45

5-
class CoverageMetricsTest extends FreeSpec with Matchers {
6+
class CoverageMetricsTest extends AnyFreeSpec with Matchers {
67

78
"no branches with at least one invoked statement should have 100% branch coverage" in {
89
val metrics = new CoverageMetrics {

scalac-scoverage-plugin/src/test/scala/scoverage/CoverageTest.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
package scoverage
22

3-
import org.scalatest.{BeforeAndAfter, FunSuite, OneInstancePerTest}
3+
import org.scalatest.{BeforeAndAfter, OneInstancePerTest}
4+
import org.scalatest.funsuite.AnyFunSuite
45

56
/** @author Stephen Samuel */
6-
class CoverageTest extends FunSuite with BeforeAndAfter with OneInstancePerTest {
7+
class CoverageTest extends AnyFunSuite with BeforeAndAfter with OneInstancePerTest {
78

89
test("coverage for no statements is 1") {
910
val coverage = Coverage()

scalac-scoverage-plugin/src/test/scala/scoverage/IOUtilsTest.scala

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@ package scoverage
33
import java.io.{File, FileWriter}
44
import java.util.UUID
55

6-
import org.scalatest.{FreeSpec, Matchers, OneInstancePerTest}
6+
import org.scalatest.OneInstancePerTest
7+
import org.scalatest.freespec.AnyFreeSpec
8+
import org.scalatest.matchers.should.Matchers
79

810
/** @author Stephen Samuel */
9-
class IOUtilsTest extends FreeSpec with OneInstancePerTest with Matchers {
11+
class IOUtilsTest extends AnyFreeSpec with OneInstancePerTest with Matchers {
1012

1113
"io utils" - {
1214
"should parse measurement files" in {

scalac-scoverage-plugin/src/test/scala/scoverage/LocationTest.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
package scoverage
22

3-
import org.scalatest.{FreeSpec, Matchers}
3+
import org.scalatest.freespec.AnyFreeSpec
4+
import org.scalatest.matchers.should.Matchers
45

5-
class LocationTest extends FreeSpec with Matchers {
6+
class LocationTest extends AnyFreeSpec with Matchers {
67

78
"location function" - {
89
"should correctly process top level types" - {

scalac-scoverage-plugin/src/test/scala/scoverage/PluginASTSupportTest.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
package scoverage
22

33
import org.scalatest._
4+
import org.scalatest.funsuite.AnyFunSuite
45

56
/** @author Stephen Samuel */
67
class PluginASTSupportTest
7-
extends FunSuite
8+
extends AnyFunSuite
89
with OneInstancePerTest
910
with BeforeAndAfterEachTestData
1011
with MacroSupport {

scalac-scoverage-plugin/src/test/scala/scoverage/PluginCoverageTest.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
package scoverage
22

3-
import org.scalatest.{BeforeAndAfterEachTestData, FunSuite, OneInstancePerTest}
3+
import org.scalatest.{BeforeAndAfterEachTestData, OneInstancePerTest}
4+
import org.scalatest.funsuite.AnyFunSuite
45

56
/** @author Stephen Samuel */
67
class PluginCoverageTest
7-
extends FunSuite
8+
extends AnyFunSuite
89
with OneInstancePerTest
910
with BeforeAndAfterEachTestData
1011
with MacroSupport {

scalac-scoverage-plugin/src/test/scala/scoverage/RegexCoverageFilterTest.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package scoverage
22

3-
import org.scalatest.{FreeSpec, Matchers}
43

54
import scala.reflect.internal.util.{BatchSourceFile, NoFile, SourceFile}
65
import scala.reflect.io.VirtualFile
6+
import org.scalatest.freespec.AnyFreeSpec
7+
import org.scalatest.matchers.should.Matchers
78

8-
class RegexCoverageFilterTest extends FreeSpec with Matchers {
9+
class RegexCoverageFilterTest extends AnyFreeSpec with Matchers {
910

1011
"isClassIncluded" - {
1112

scalac-scoverage-plugin/src/test/scala/scoverage/ScoverageCompiler.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ object ScoverageCompiler {
6969
}
7070
}
7171

72-
class ScoverageCompiler(settings: scala.tools.nsc.Settings, reporter: scala.tools.nsc.reporters.Reporter)
73-
extends scala.tools.nsc.Global(settings, reporter) {
72+
class ScoverageCompiler(settings: scala.tools.nsc.Settings, rep: scala.tools.nsc.reporters.Reporter)
73+
extends scala.tools.nsc.Global(settings, rep) {
7474

7575
def addToClassPath(file: File): Unit = {
7676
settings.classpath.value = settings.classpath.value + File.pathSeparator + file.getAbsolutePath

scalac-scoverage-plugin/src/test/scala/scoverage/ScoverageHtmlWriterTest.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ import scala.xml.XML
88

99
import scoverage.report.ScoverageHtmlWriter
1010

11-
import org.scalatest.FunSuite
11+
import org.scalatest.funsuite.AnyFunSuite
1212

13-
class ScoverageHtmlWriterTest extends FunSuite {
13+
class ScoverageHtmlWriterTest extends AnyFunSuite {
1414

1515
val rootDirForClasses = new File(getClass.getResource("forHtmlWriter/src/main/scala/").getFile)
1616

scalac-scoverage-plugin/src/test/scala/scoverage/SerializerTest.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@ package scoverage
22

33
import java.io.StringWriter
44

5-
import org.scalatest.{OneInstancePerTest, FunSuite}
5+
import org.scalatest.OneInstancePerTest
6+
import org.scalatest.funsuite.AnyFunSuite
67

7-
class SerializerTest extends FunSuite with OneInstancePerTest {
8+
class SerializerTest extends AnyFunSuite with OneInstancePerTest {
89

910
test("coverage should be serializable into plain text") {
1011
val coverage = Coverage()

scalac-scoverage-runtime/js/src/main/scala/scalajssupport/File.scala

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,20 @@ class File(path: String) {
5656
}
5757

5858
object File {
59-
val jsFile: JsFileObject = if (js.Dynamic.global.hasOwnProperty("Packages").asInstanceOf[Boolean])
59+
val globalObject: js.Dynamic = {
60+
import js.Dynamic.{global => g}
61+
if (js.typeOf(g.global) != "undefined" && (g.global.Object eq g.Object)) {
62+
// Node.js environment detected
63+
g.global
64+
} else {
65+
// In all other well-known environment, we can use the global `this`
66+
js.special.fileLevelThis.asInstanceOf[js.Dynamic]
67+
}
68+
}
69+
70+
val jsFile: JsFileObject = if (globalObject.hasOwnProperty("Packages").asInstanceOf[Boolean])
6071
RhinoFile
61-
else if (!js.Dynamic.global.hasOwnProperty("window").asInstanceOf[Boolean])
72+
else if (!globalObject.hasOwnProperty("window").asInstanceOf[Boolean])
6273
NodeFile
6374
else
6475
PhantomFile

scalac-scoverage-runtime/js/src/main/scala/scalajssupport/PhantomFile.scala

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,7 @@ private[scalajssupport] object PhantomFile extends JsFileObject {
7272
def removeDirectory(path: String): Boolean = fsCall("removeDirectory", path).asInstanceOf[Boolean]
7373
val separator: String = fsCall("separator").asInstanceOf[String]
7474
def write(path: String, content: String, mode: String): Unit = fsCallArray("write", js.Array(path, content, mode))
75-
def pathJoin(path: String, child: String): String = {
76-
return path + separator + child
77-
}
75+
def pathJoin(path: String, child: String): String = path + separator + child
7876

7977
def apply(path: String) = {
8078
new PhantomFile(path)

scalac-scoverage-runtime/jvm/src/test/scala/scoverage/InvokerConcurrencyTest.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,16 @@ package scoverage
33
import java.io.File
44
import java.util.concurrent.Executors
55

6-
import org.scalatest.{BeforeAndAfter, FunSuite}
6+
import org.scalatest.BeforeAndAfter
77

88
import scala.concurrent._
99
import scala.concurrent.duration._
10+
import org.scalatest.funsuite.AnyFunSuite
1011

1112
/**
1213
* Verify that [[Invoker.invoked()]] is thread-safe
1314
*/
14-
class InvokerConcurrencyTest extends FunSuite with BeforeAndAfter {
15+
class InvokerConcurrencyTest extends AnyFunSuite with BeforeAndAfter {
1516

1617
implicit val executor = ExecutionContext.fromExecutor(Executors.newFixedThreadPool(8))
1718

0 commit comments

Comments
 (0)