summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNik Vanderhoof <nikolasrvanderhoof@gmail.com>2019-07-04 02:56:56 -0400
committerTobias Roeser <le.petit.fou@web.de>2019-07-04 08:56:56 +0200
commit0a7d68737e89ab9471c7177ecfdf706e06a7cad8 (patch)
tree4f3a9bd955866de79b2d94677a7c904943a9542a
parenta4a49e90037c7acf456b62a8e65fee55a5f857c4 (diff)
downloadmill-0a7d68737e89ab9471c7177ecfdf706e06a7cad8.tar.gz
mill-0a7d68737e89ab9471c7177ecfdf706e06a7cad8.tar.bz2
mill-0a7d68737e89ab9471c7177ecfdf706e06a7cad8.zip
Scoverage buildinfo support (#647)
* Add test case for scoverage/buildinfo * Take generatedSources from outer + pass allSources to scoverage reports
-rwxr-xr-xbuild.sc6
-rw-r--r--contrib/scoverage/src/ScoverageModule.scala6
-rw-r--r--contrib/scoverage/test/resources/hello-world/core/src/Greet.scala2
-rw-r--r--contrib/scoverage/test/src/HelloWorldTests.scala7
4 files changed, 18 insertions, 3 deletions
diff --git a/build.sc b/build.sc
index 5a08960b..ce02aa95 100755
--- a/build.sc
+++ b/build.sc
@@ -310,6 +310,12 @@ object contrib extends MillModule {
(for ((k, v) <- mapping) yield s"-D$k=$v")
}
+ // So we can test with buildinfo in the classpath
+ val test = new Tests(implicitly)
+ class Tests(ctx0: mill.define.Ctx) extends super.Tests(ctx0) {
+ override def moduleDeps = super.moduleDeps :+ contrib.buildinfo
+ }
+
object api extends MillApiModule {
def moduleDeps = Seq(scalalib)
}
diff --git a/contrib/scoverage/src/ScoverageModule.scala b/contrib/scoverage/src/ScoverageModule.scala
index d34b5615..734c317f 100644
--- a/contrib/scoverage/src/ScoverageModule.scala
+++ b/contrib/scoverage/src/ScoverageModule.scala
@@ -87,6 +87,8 @@ trait ScoverageModule extends ScalaModule { outer: ScalaModule =>
def selfDir = T { T.ctx().dest / os.up / os.up }
def dataDir = T { selfDir() / "data" }
+ def generatedSources = outer.generatedSources()
+ def allSources = outer.allSources()
def moduleDeps = outer.moduleDeps
def sources = outer.sources
def resources = outer.resources
@@ -102,13 +104,13 @@ trait ScoverageModule extends ScalaModule { outer: ScalaModule =>
ScoverageReportWorkerApi
.scoverageReportWorker()
.bridge(toolsClasspath().map(_.path))
- .htmlReport(sources(), dataDir().toString, selfDir().toString)
+ .htmlReport(allSources(), dataDir().toString, selfDir().toString)
}
def xmlReport() = T.command {
ScoverageReportWorkerApi
.scoverageReportWorker()
.bridge(toolsClasspath().map(_.path))
- .xmlReport(sources(), dataDir().toString, selfDir().toString)
+ .xmlReport(allSources(), dataDir().toString, selfDir().toString)
}
}
diff --git a/contrib/scoverage/test/resources/hello-world/core/src/Greet.scala b/contrib/scoverage/test/resources/hello-world/core/src/Greet.scala
index 90830bbc..0c9a6980 100644
--- a/contrib/scoverage/test/resources/hello-world/core/src/Greet.scala
+++ b/contrib/scoverage/test/resources/hello-world/core/src/Greet.scala
@@ -5,4 +5,6 @@ object Greet {
}
val foo = Foo // testing module deps
+
+ val scoverageVersionUsed = BuildInfo.scoverageVersion
}
diff --git a/contrib/scoverage/test/src/HelloWorldTests.scala b/contrib/scoverage/test/src/HelloWorldTests.scala
index 3d5a5114..66f7a50e 100644
--- a/contrib/scoverage/test/src/HelloWorldTests.scala
+++ b/contrib/scoverage/test/src/HelloWorldTests.scala
@@ -2,6 +2,7 @@ package mill.contrib.scoverage
import mill._
import mill.api.Result
+import mill.contrib.BuildInfo
import mill.scalalib._
import mill.util.{TestEvaluator, TestUtil}
import utest._
@@ -19,12 +20,16 @@ object HelloWorldTests extends utest.TestSuite {
def scalaVersion = "2.12.4"
}
- object core extends ScoverageModule {
+ object core extends ScoverageModule with BuildInfo {
def scalaVersion = "2.12.4"
def scoverageVersion = "1.3.1"
def moduleDeps = Seq(other)
+ def buildInfoMembers = T {
+ Map("scoverageVersion" -> scoverageVersion())
+ }
+
object test extends ScoverageTests {
override def ivyDeps = Agg(ivy"org.scalatest::scalatest:3.0.5")
def testFrameworks = Seq("org.scalatest.tools.Framework")