Skip to content

Commit 2815508

Browse files
authored
Merge branch 'master' into fix-196
2 parents f371e9c + 0ad415d commit 2815508

File tree

23 files changed

+78
-79
lines changed

23 files changed

+78
-79
lines changed

.travis.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ jdk:
77
- openjdk8
88

99
scala:
10-
- 2.10.7
1110
- 2.11.12
1211
- 2.12.10
1312
- 2.13.1

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ scoverage is available for sbt, maven, and gradle.
99
[![Maven Central](https://img.shields.io/maven-central/v/org.scoverage/scalac-scoverage-plugin_2.10.svg?label=latest%20release%20for%202.10)](http://search.maven.org/#search|ga|1|g%3A%22org.scoverage%22%20AND%20a%3A%22scalac-scoverage-plugin_2.10%22)
1010
[![Maven Central](https://img.shields.io/maven-central/v/org.scoverage/scalac-scoverage-plugin_2.11.svg?label=latest%20release%20for%202.11)](http://search.maven.org/#search|ga|1|g%3A%22org.scoverage%22%20AND%20a%3A%22scalac-scoverage-plugin_2.11%22)
1111
[![Maven Central](https://img.shields.io/maven-central/v/org.scoverage/scalac-scoverage-plugin_2.12.svg?label=latest%20release%20for%202.12)](http://search.maven.org/#search|ga|1|g%3A%22org.scoverage%22%20AND%20a%3A%22scalac-scoverage-plugin_2.12%22)
12+
[![Maven Central](https://img.shields.io/maven-central/v/org.scoverage/scalac-scoverage-plugin_2.13.svg?label=latest%20release%20for%202.13)](http://search.maven.org/#search|ga|1|g%3A%22org.scoverage%22%20AND%20a%3A%22scalac-scoverage-plugin_2.13%22)
1213

1314
Join the [scoverage](http://groups.google.com/group/scala-code-coverage-tool)
1415
google group for help, bug reports, feature requests, and general
@@ -20,7 +21,7 @@ To see scoverage in action check out the [samples](https://github.com/scoverage/
2021

2122
### Release History
2223

23-
##### (not released yet) - 1.4.0
24+
##### 12th June 2019 - 1.4.0
2425

2526
* Added Scala 2.13 support
2627

@@ -195,6 +196,7 @@ project you will need to use one of the build plugins:
195196
* [sbt-coveralls](https://github.com/scoverage/sbt-coveralls)
196197
* [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.10", "2.13.1"),
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-runtimeJS` % "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/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/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/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

scalac-scoverage-runtime/shared/src/main/scala/scoverage/Invoker.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import scoverage.Platform._
66
/** @author Stephen Samuel */
77
object Invoker {
88

9+
private val runtimeUUID = java.util.UUID.randomUUID()
10+
911
private val MeasurementsPrefix = "scoverage.measurements."
1012
private val threadFiles = new ThreadLocal[mutable.HashMap[String, FileWriter]]
1113

@@ -60,7 +62,7 @@ object Invoker {
6062
}
6163

6264
def measurementFile(dataDir: File): File = measurementFile(dataDir.getAbsolutePath)
63-
def measurementFile(dataDir: String): File = new File(dataDir, MeasurementsPrefix + Thread.currentThread.getId)
65+
def measurementFile(dataDir: String): File = new File(dataDir, MeasurementsPrefix + runtimeUUID + "." + Thread.currentThread.getId)
6466

6567
def findMeasurementFiles(dataDir: String): Array[File] = findMeasurementFiles(new File(dataDir))
6668
def findMeasurementFiles(dataDir: File): Array[File] = dataDir.listFiles(new FileFilter {

scalac-scoverage-runtime/shared/src/test/scala/scoverage/InvokerMultiModuleTest.scala

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

33
import scoverage.Platform.File
44

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

78
/**
89
* Verify that [[Invoker.invoked()]] can handle a multi-module project
910
*/
10-
class InvokerMultiModuleTest extends FunSuite with BeforeAndAfter {
11+
class InvokerMultiModuleTest extends AnyFunSuite with BeforeAndAfter {
1112

1213
val measurementDir = Array(
1314
new File("target/invoker-test.measurement0"),

0 commit comments

Comments
 (0)