diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2018-02-11 15:39:26 -0800 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2018-02-11 16:43:31 -0800 |
commit | fcbb9c9fd65211d6d5ac40333528fa059c947d0a (patch) | |
tree | de0b6ebd7dcd9907d62954247063cfa0138681dd | |
parent | 521e8cbbf5f7331fa59147445b68a858f179a9ba (diff) | |
download | mill-fcbb9c9fd65211d6d5ac40333528fa059c947d0a.tar.gz mill-fcbb9c9fd65211d6d5ac40333528fa059c947d0a.tar.bz2 mill-fcbb9c9fd65211d6d5ac40333528fa059c947d0a.zip |
make test-mill-release run integration tests using the release assembly
-rwxr-xr-x | ci/test-mill-built.sh | 4 | ||||
-rwxr-xr-x | ci/test-mill-release.sh | 4 | ||||
-rwxr-xr-x | ci/test-sbt-built.sh | 4 | ||||
-rwxr-xr-x | ci/test-sbt.sh | 2 | ||||
-rw-r--r-- | integration/test/resources/better-files/build.sc | 2 | ||||
-rw-r--r-- | integration/test/src/mill/integration/AcyclicTests.scala | 3 | ||||
-rw-r--r-- | integration/test/src/mill/integration/AmmoniteTests.scala | 3 | ||||
-rw-r--r-- | integration/test/src/mill/integration/BetterFilesTests.scala | 3 | ||||
-rw-r--r-- | integration/test/src/mill/integration/IntegrationTestSuite.scala | 4 | ||||
-rw-r--r-- | integration/test/src/mill/integration/JawnTests.scala | 3 | ||||
-rw-r--r-- | integration/test/src/mill/integration/UpickleTests.scala | 2 | ||||
-rw-r--r-- | integration/test/src/mill/integration/forked/Tests.scala | 7 | ||||
-rw-r--r-- | integration/test/src/mill/integration/local/Tests.scala | 7 | ||||
-rw-r--r-- | main/test/src/mill/main/JavaCompileJarTests.scala | 2 | ||||
-rw-r--r-- | main/test/src/mill/util/ScriptTestSuite.scala | 18 | ||||
-rw-r--r-- | main/test/src/mill/util/TestEvaluator.scala | 4 | ||||
-rw-r--r-- | scalajslib/src/mill/scalajslib/ScalaJSModule.scala | 2 |
17 files changed, 50 insertions, 24 deletions
diff --git a/ci/test-mill-built.sh b/ci/test-mill-built.sh index 216606cd..61fcf294 100755 --- a/ci/test-mill-built.sh +++ b/ci/test-mill-built.sh @@ -14,6 +14,6 @@ target/bin/mill devAssembly # Second build & run tests using Mill out/devAssembly/dest/out.jar all {main,scalalib,scalajslib}.test devAssembly -out/devAssembly/dest/out.jar integration.test mill.integration.AmmoniteTests -out/devAssembly/dest/out.jar integration.test "mill.integration.{AcyclicTests,BetterFilesTests,JawnTests,UpickleTests}" +out/devAssembly/dest/out.jar integration.test mill.integration.local.AmmoniteTests +out/devAssembly/dest/out.jar integration.test "mill.integration.local.{AcyclicTests,BetterFilesTests,JawnTests,UpickleTests}" out/devAssembly/dest/out.jar devAssembly diff --git a/ci/test-mill-release.sh b/ci/test-mill-release.sh index e6f53f9a..f8e27ed4 100755 --- a/ci/test-mill-release.sh +++ b/ci/test-mill-release.sh @@ -18,6 +18,6 @@ git clean -xdf # Second build & run tests using Mill ~/mill-release all {main,scalalib,scalajslib}.test -~/mill-release integration.test mill.integration.AmmoniteTests -~/mill-release integration.test "mill.integration.{AcyclicTests,BetterFilesTests,JawnTests,UpickleTests}" +~/mill-release integration.test mill.integration.forked.AmmoniteTests +~/mill-release integration.test "mill.integration.forked.{AcyclicTests,BetterFilesTests,JawnTests,UpickleTests}" ~/mill-release devAssembly diff --git a/ci/test-sbt-built.sh b/ci/test-sbt-built.sh index 491c5fed..b27be37f 100755 --- a/ci/test-sbt-built.sh +++ b/ci/test-sbt-built.sh @@ -9,6 +9,6 @@ sbt bin/test:assembly # Run tests using Mill built using SBT target/bin/mill all {main,scalalib,scalajslib}.test -target/bin/mill integration.test mill.integration.AmmoniteTests -target/bin/mill integration.test "mill.integration.{AcyclicTests,BetterFilesTests,JawnTests,UpickleTests}" +target/bin/mill integration.test mill.integration.local.AmmoniteTests +target/bin/mill integration.test "mill.integration.local.{AcyclicTests,BetterFilesTests,JawnTests,UpickleTests}" target/bin/mill devAssembly diff --git a/ci/test-sbt.sh b/ci/test-sbt.sh index 79d93cf5..b54b39e1 100755 --- a/ci/test-sbt.sh +++ b/ci/test-sbt.sh @@ -7,5 +7,5 @@ git clean -xdf # First build & run tests using SBT sbt core/test main/test scalalib/test scalajslib/test -sbt integration/test +sbt "integration/test-only -- mill.integration.local" sbt bin/test:assembly diff --git a/integration/test/resources/better-files/build.sc b/integration/test/resources/better-files/build.sc index 425e70ea..f9747343 100644 --- a/integration/test/resources/better-files/build.sc +++ b/integration/test/resources/better-files/build.sc @@ -27,7 +27,7 @@ trait BetterFilesModule extends SbtModule{ "-Xlint:nullary-unit", // Warn when nullary methods return Unit. "-Xlint:option-implicit", // Option.apply used implicit view. "-Xlint:package-object-classes", // Class or object defined in package object. - "-Xlint:poly-implicit-o¡verload", // Parameterized overloaded implicit methods are not visible as view bounds. + "-Xlint:poly-implicit-overload", // Parameterized overloaded implicit methods are not visible as view bounds. "-Xlint:private-shadow", // A private field (or class parameter) shadows a superclass field. "-Xlint:stars-align", // Pattern sequence wildcard must align with sequence component. "-Xlint:type-parameter-shadow", // A local type parameter shadows a type already in scope. diff --git a/integration/test/src/mill/integration/AcyclicTests.scala b/integration/test/src/mill/integration/AcyclicTests.scala index 42b5179b..d1035af0 100644 --- a/integration/test/src/mill/integration/AcyclicTests.scala +++ b/integration/test/src/mill/integration/AcyclicTests.scala @@ -3,7 +3,8 @@ package mill.integration import ammonite.ops._ import utest._ -object AcyclicTests extends IntegrationTestSuite("MILL_ACYCLIC_REPO", "acyclic") { +class AcyclicTests(fork: Boolean) + extends IntegrationTestSuite("MILL_ACYCLIC_REPO", "acyclic", fork) { val tests = Tests{ initWorkspace() diff --git a/integration/test/src/mill/integration/AmmoniteTests.scala b/integration/test/src/mill/integration/AmmoniteTests.scala index f5906dd2..3f04e84d 100644 --- a/integration/test/src/mill/integration/AmmoniteTests.scala +++ b/integration/test/src/mill/integration/AmmoniteTests.scala @@ -3,7 +3,8 @@ package mill.integration import ammonite.ops._ import utest._ -object AmmoniteTests extends IntegrationTestSuite("MILL_AMMONITE_REPO", "ammonite") { +class AmmoniteTests(fork: Boolean) + extends IntegrationTestSuite("MILL_AMMONITE_REPO", "ammonite", fork) { val tests = Tests{ initWorkspace() diff --git a/integration/test/src/mill/integration/BetterFilesTests.scala b/integration/test/src/mill/integration/BetterFilesTests.scala index 7ee943df..4f3116f7 100644 --- a/integration/test/src/mill/integration/BetterFilesTests.scala +++ b/integration/test/src/mill/integration/BetterFilesTests.scala @@ -3,7 +3,8 @@ package mill.integration import ammonite.ops._ import utest._ -object BetterFilesTests extends IntegrationTestSuite("MILL_BETTERFILES_REPO", "better-files") { +class BetterFilesTests(fork: Boolean) + extends IntegrationTestSuite("MILL_BETTERFILES_REPO", "better-files", fork) { val tests = Tests{ initWorkspace() 'test - { diff --git a/integration/test/src/mill/integration/IntegrationTestSuite.scala b/integration/test/src/mill/integration/IntegrationTestSuite.scala index 4edecbe5..756b724a 100644 --- a/integration/test/src/mill/integration/IntegrationTestSuite.scala +++ b/integration/test/src/mill/integration/IntegrationTestSuite.scala @@ -4,8 +4,8 @@ import ammonite.ops._ import mill.util.ScriptTestSuite import utest._ -abstract class IntegrationTestSuite(repoKey: String, val workspaceSlug: String) - extends ScriptTestSuite{ +abstract class IntegrationTestSuite(repoKey: String, val workspaceSlug: String, fork: Boolean) + extends ScriptTestSuite(fork){ val buildFilePath = pwd / 'integration / 'test / 'resources / workspaceSlug def scriptSourcePath = { // The unzipped git repo snapshots we get from github come with a diff --git a/integration/test/src/mill/integration/JawnTests.scala b/integration/test/src/mill/integration/JawnTests.scala index 21c9f133..da584e01 100644 --- a/integration/test/src/mill/integration/JawnTests.scala +++ b/integration/test/src/mill/integration/JawnTests.scala @@ -3,7 +3,8 @@ package mill.integration import ammonite.ops._ import utest._ -object JawnTests extends IntegrationTestSuite("MILL_JAWN_REPO", "jawn") { +class JawnTests(fork: Boolean) + extends IntegrationTestSuite("MILL_JAWN_REPO", "jawn", fork) { val tests = Tests{ initWorkspace() diff --git a/integration/test/src/mill/integration/UpickleTests.scala b/integration/test/src/mill/integration/UpickleTests.scala index 7c6778ad..b8aa4865 100644 --- a/integration/test/src/mill/integration/UpickleTests.scala +++ b/integration/test/src/mill/integration/UpickleTests.scala @@ -3,7 +3,7 @@ package mill.integration import ammonite.ops._ import utest._ -object UpickleTests extends IntegrationTestSuite("MILL_UPICKLE_REPO", "upickle") { +class UpickleTests(fork: Boolean) extends IntegrationTestSuite("MILL_UPICKLE_REPO", "upickle", fork) { val tests = Tests{ initWorkspace() 'test - { diff --git a/integration/test/src/mill/integration/forked/Tests.scala b/integration/test/src/mill/integration/forked/Tests.scala new file mode 100644 index 00000000..6933bbbe --- /dev/null +++ b/integration/test/src/mill/integration/forked/Tests.scala @@ -0,0 +1,7 @@ +package mill.integration.forked + +object AcyclicTests extends mill.integration.AcyclicTests(fork = true) +object AmmoniteTests extends mill.integration.AmmoniteTests(fork = true) +object BetterFilesTests extends mill.integration.BetterFilesTests(fork = true) +object JawnTests extends mill.integration.JawnTests(fork = true) +object UpickleTests extends mill.integration.UpickleTests(fork = true)
\ No newline at end of file diff --git a/integration/test/src/mill/integration/local/Tests.scala b/integration/test/src/mill/integration/local/Tests.scala new file mode 100644 index 00000000..21b9581c --- /dev/null +++ b/integration/test/src/mill/integration/local/Tests.scala @@ -0,0 +1,7 @@ +package mill.integration.local + +object AcyclicTests extends mill.integration.AcyclicTests(fork = false) +object AmmoniteTests extends mill.integration.AmmoniteTests(fork = false) +object BetterFilesTests extends mill.integration.BetterFilesTests(fork = false) +object JawnTests extends mill.integration.JawnTests(fork = false) +object UpickleTests extends mill.integration.UpickleTests(fork = false)
\ No newline at end of file diff --git a/main/test/src/mill/main/JavaCompileJarTests.scala b/main/test/src/mill/main/JavaCompileJarTests.scala index fb047675..635ac3c5 100644 --- a/main/test/src/mill/main/JavaCompileJarTests.scala +++ b/main/test/src/mill/main/JavaCompileJarTests.scala @@ -4,7 +4,7 @@ import ammonite.ops._ import mill.util.ScriptTestSuite import utest._ -object JavaCompileJarTests extends ScriptTestSuite { +object JavaCompileJarTests extends ScriptTestSuite(fork = false) { def workspaceSlug = "java-compile-jar" def scriptSourcePath = pwd / 'main / 'test / 'resources / 'examples / 'javac val tests = Tests{ diff --git a/main/test/src/mill/util/ScriptTestSuite.scala b/main/test/src/mill/util/ScriptTestSuite.scala index 0d1ff43a..8958b464 100644 --- a/main/test/src/mill/util/ScriptTestSuite.scala +++ b/main/test/src/mill/util/ScriptTestSuite.scala @@ -5,19 +5,27 @@ import java.io.{ByteArrayInputStream, ByteArrayOutputStream, PrintStream} import ammonite.ops._ import utest._ -abstract class ScriptTestSuite extends TestSuite{ +abstract class ScriptTestSuite(fork: Boolean) extends TestSuite{ def workspaceSlug: String def scriptSourcePath: Path val workspacePath = pwd / 'target / 'workspace / workspaceSlug -// val stdOutErr = new PrintStream(new ByteArrayOutputStream()) - val stdOutErr = new PrintStream(System.out) + val stdOutErr = new PrintStream(new ByteArrayOutputStream()) +// val stdOutErr = new PrintStream(System.out) val stdIn = new ByteArrayInputStream(Array()) - val runner = new mill.main.MainRunner( + lazy val runner = new mill.main.MainRunner( ammonite.main.Cli.Config(wd = workspacePath), stdOutErr, stdOutErr, stdIn ) - def eval(s: String*) = runner.runScript(workspacePath / "build.sc", s.toList) + def eval(s: String*) = { + if (!fork) runner.runScript(workspacePath / "build.sc", s.toList) + else{ + try { + %%(home / "mill-release", s)(workspacePath) + true + }catch{case e: Throwable => false} + } + } def meta(s: String) = { val (List(selector), args) = ParseArgs.apply(Seq(s), multiSelect = false).right.get diff --git a/main/test/src/mill/util/TestEvaluator.scala b/main/test/src/mill/util/TestEvaluator.scala index 285aa659..a5be0488 100644 --- a/main/test/src/mill/util/TestEvaluator.scala +++ b/main/test/src/mill/util/TestEvaluator.scala @@ -28,8 +28,8 @@ class TestEvaluator[T <: TestUtil.BaseModule](module: T) tp: TestPath){ val outPath = TestUtil.getOutPath() -// val logger = DummyLogger - val logger = new PrintLogger(true, ammonite.util.Colors.Default, System.out, System.out, System.err) + val logger = DummyLogger +// val logger = new PrintLogger(true, ammonite.util.Colors.Default, System.out, System.out, System.err) val evaluator = new Evaluator(outPath, TestEvaluator.externalOutPath, module, discover, logger) def apply[T](t: Task[T]): Either[Result.Failing[T], (T, Int)] = { diff --git a/scalajslib/src/mill/scalajslib/ScalaJSModule.scala b/scalajslib/src/mill/scalajslib/ScalaJSModule.scala index 88926e49..e3c04c55 100644 --- a/scalajslib/src/mill/scalajslib/ScalaJSModule.scala +++ b/scalajslib/src/mill/scalajslib/ScalaJSModule.scala @@ -44,7 +44,7 @@ trait ScalaJSModule extends scalalib.ScalaModule { outer => Seq( ivy"com.lihaoyi::mill-scalajslib-jsbridges-${scalaJSBridgeVersion()}:${sys.props("MILL_VERSION")}" ) - ).map(_.find(_.path.toString.contains("mill-jsbridge")).get) + ).map(_.find(_.path.toString.contains("mill-scalajslib-jsbridges")).get) } def scalaJSLinkerClasspath: T[Loose.Agg[PathRef]] = T{ |