summaryrefslogtreecommitdiff
path: root/contrib/scoverage/test/src/HelloWorldTests.scala
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/scoverage/test/src/HelloWorldTests.scala')
-rw-r--r--contrib/scoverage/test/src/HelloWorldTests.scala107
1 files changed, 107 insertions, 0 deletions
diff --git a/contrib/scoverage/test/src/HelloWorldTests.scala b/contrib/scoverage/test/src/HelloWorldTests.scala
new file mode 100644
index 00000000..98a4201c
--- /dev/null
+++ b/contrib/scoverage/test/src/HelloWorldTests.scala
@@ -0,0 +1,107 @@
+package mill.contrib.scoverage
+
+import mill._
+import mill.api.Result
+import mill.scalalib._
+import mill.util.{TestEvaluator, TestUtil}
+import utest._
+import utest.framework.TestPath
+
+object HelloWorldTests extends utest.TestSuite {
+ val resourcePath = os.pwd / 'contrib / 'scoverage / 'test / 'resources / "hello-world"
+ trait HelloBase extends TestUtil.BaseModule {
+ def millSourcePath = TestUtil.getSrcPathBase() / millOuterCtx.enclosing.split('.')
+ }
+
+ object HelloWorld extends HelloBase {
+ object core extends ScoverageModule {
+ def scalaVersion = "2.12.4"
+ def scoverageVersion = "1.3.1"
+
+ object test extends ScoverageTests {
+ override def ivyDeps = Agg(ivy"org.scalatest::scalatest:3.0.5")
+ def testFrameworks = Seq("org.scalatest.tools.Framework")
+ }
+ }
+ }
+
+ def workspaceTest[T](m: TestUtil.BaseModule, resourcePath: os.Path = resourcePath)
+ (t: TestEvaluator => T)
+ (implicit tp: TestPath): T = {
+ val eval = new TestEvaluator(m)
+ os.remove.all(m.millSourcePath)
+ os.remove.all(eval.outPath)
+ os.makeDir.all(m.millSourcePath / os.up)
+ os.copy(resourcePath, m.millSourcePath)
+ t(eval)
+ }
+
+ def tests: utest.Tests = utest.Tests {
+ "HelloWorld" - {
+ "core" - {
+ "scoverageVersion" - workspaceTest(HelloWorld) { eval =>
+ val Right((result, evalCount)) = eval.apply(HelloWorld.core.scoverageVersion)
+
+ assert(
+ result == "1.3.1",
+ evalCount > 0
+ )
+ }
+ "scoverage" - {
+ "ivyDeps" - workspaceTest(HelloWorld) { eval =>
+ val Right((result, evalCount)) =
+ eval.apply(HelloWorld.core.scoverage.ivyDeps)
+
+ assert(
+ result == Agg(ivy"org.scoverage::scalac-scoverage-runtime:1.3.1"),
+ evalCount > 0
+ )
+ }
+ "scalacPluginIvyDeps" - workspaceTest(HelloWorld) { eval =>
+ val Right((result, evalCount)) =
+ eval.apply(HelloWorld.core.scoverage.scalacPluginIvyDeps)
+
+ assert(
+ result == Agg(ivy"org.scoverage::scalac-scoverage-plugin:1.3.1"),
+ evalCount > 0
+ )
+ }
+ "dataDir" - workspaceTest(HelloWorld) { eval =>
+ val Right((result, evalCount)) = eval.apply(HelloWorld.core.scoverage.dataDir)
+
+ assert(
+ result.toString.endsWith("mill/target/workspace/mill/contrib/scoverage/HelloWorldTests/eval/HelloWorld/core/scoverage/dataDir/core/scoverage/data"),
+ evalCount > 0
+ )
+ }
+ }
+ "test" - {
+ "upstreamAssemblyClasspath" - workspaceTest(HelloWorld) { eval =>
+ val Right((result, evalCount)) = eval.apply(HelloWorld.core.scoverage.upstreamAssemblyClasspath)
+
+ assert(
+ result.map(_.toString).exists(_.contains("scalac-scoverage-runtime")),
+ evalCount > 0
+ )
+ }
+ "compileClasspath" - workspaceTest(HelloWorld) { eval =>
+ val Right((result, evalCount)) = eval.apply(HelloWorld.core.scoverage.compileClasspath)
+
+ assert(
+ result.map(_.toString).exists(_.contains("scalac-scoverage-runtime")),
+ evalCount > 0
+ )
+ }
+ "runClasspath" - TestUtil.disableInJava9OrAbove(workspaceTest(HelloWorld) { eval =>
+ val Right((result, evalCount)) = eval.apply(HelloWorld.core.scoverage.runClasspath)
+
+ assert(
+ result.map(_.toString).exists(_.contains("scalac-scoverage-runtime")),
+ evalCount > 0
+ )
+ })
+ }
+ }
+ }
+ }
+}