summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2018-02-11 15:39:26 -0800
committerLi Haoyi <haoyi.sg@gmail.com>2018-02-11 16:43:31 -0800
commitfcbb9c9fd65211d6d5ac40333528fa059c947d0a (patch)
treede0b6ebd7dcd9907d62954247063cfa0138681dd
parent521e8cbbf5f7331fa59147445b68a858f179a9ba (diff)
downloadmill-fcbb9c9fd65211d6d5ac40333528fa059c947d0a.tar.gz
mill-fcbb9c9fd65211d6d5ac40333528fa059c947d0a.tar.bz2
mill-fcbb9c9fd65211d6d5ac40333528fa059c947d0a.zip
make test-mill-release run integration tests using the release assembly
-rwxr-xr-xci/test-mill-built.sh4
-rwxr-xr-xci/test-mill-release.sh4
-rwxr-xr-xci/test-sbt-built.sh4
-rwxr-xr-xci/test-sbt.sh2
-rw-r--r--integration/test/resources/better-files/build.sc2
-rw-r--r--integration/test/src/mill/integration/AcyclicTests.scala3
-rw-r--r--integration/test/src/mill/integration/AmmoniteTests.scala3
-rw-r--r--integration/test/src/mill/integration/BetterFilesTests.scala3
-rw-r--r--integration/test/src/mill/integration/IntegrationTestSuite.scala4
-rw-r--r--integration/test/src/mill/integration/JawnTests.scala3
-rw-r--r--integration/test/src/mill/integration/UpickleTests.scala2
-rw-r--r--integration/test/src/mill/integration/forked/Tests.scala7
-rw-r--r--integration/test/src/mill/integration/local/Tests.scala7
-rw-r--r--main/test/src/mill/main/JavaCompileJarTests.scala2
-rw-r--r--main/test/src/mill/util/ScriptTestSuite.scala18
-rw-r--r--main/test/src/mill/util/TestEvaluator.scala4
-rw-r--r--scalajslib/src/mill/scalajslib/ScalaJSModule.scala2
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{