diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2017-12-31 22:56:45 -0800 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2018-01-01 10:10:19 -0800 |
commit | cf5fb5fdfd477e0bb4ffa0e4fec3a8ec01bf5cf1 (patch) | |
tree | f3897463b6f55019f2bbd59ba5cff73cf0fb571f /core/src/main/scala | |
parent | 6996c01a391cb9aaa27268dd1f0cf0a1749ade21 (diff) | |
download | mill-cf5fb5fdfd477e0bb4ffa0e4fec3a8ec01bf5cf1.tar.gz mill-cf5fb5fdfd477e0bb4ffa0e4fec3a8ec01bf5cf1.tar.bz2 mill-cf5fb5fdfd477e0bb4ffa0e4fec3a8ec01bf5cf1.zip |
Split Acyclic/Jawn/BetterFiles tests into their own `integration/` test suite.
Those tests now download a snapshot of the relevant git repo rather than vendoring the files, and use a bare `build.sc` instead of having the build object be included in the test classpath.
Tests pass using `sbt integration/test`, but `mill integration.test` still doesn't work
Diffstat (limited to 'core/src/main/scala')
-rw-r--r-- | core/src/main/scala/mill/main/MainRunner.scala | 10 | ||||
-rw-r--r-- | core/src/main/scala/mill/main/RunScript.scala | 7 | ||||
-rw-r--r-- | core/src/main/scala/mill/modules/Jvm.scala | 10 |
3 files changed, 15 insertions, 12 deletions
diff --git a/core/src/main/scala/mill/main/MainRunner.scala b/core/src/main/scala/mill/main/MainRunner.scala index 8f58f114..869975bc 100644 --- a/core/src/main/scala/mill/main/MainRunner.scala +++ b/core/src/main/scala/mill/main/MainRunner.scala @@ -11,8 +11,7 @@ import upickle.Js * `build.sc` scripts with mill-specific tweaks such as a custom * `scriptCodeWrapper` or with a persistent evaluator between runs. */ -class MainRunner(config: ammonite.main.Cli.Config, - show: Boolean) +class MainRunner(config: ammonite.main.Cli.Config, show: Boolean) extends ammonite.MainRunner( config, System.out, System.err, System.in, System.out, System.err @@ -72,7 +71,12 @@ class MainRunner(config: ammonite.main.Cli.Config, } override def initMain(isRepl: Boolean) = { - super.initMain(isRepl).copy(scriptCodeWrapper = mill.main.MainRunner.CustomCodeWrapper) + super.initMain(isRepl).copy( + scriptCodeWrapper = mill.main.MainRunner.CustomCodeWrapper, + // Ammonite does not properly forward the wd from CliConfig to Main, so + // force forward it outselves + wd = config.wd + ) } } diff --git a/core/src/main/scala/mill/main/RunScript.scala b/core/src/main/scala/mill/main/RunScript.scala index 1fac419b..4fa7953b 100644 --- a/core/src/main/scala/mill/main/RunScript.scala +++ b/core/src/main/scala/mill/main/RunScript.scala @@ -3,7 +3,7 @@ package mill.main import java.nio.file.NoSuchFileException import ammonite.interp.Interpreter -import ammonite.ops.{Path, pwd, read} +import ammonite.ops.{Path, read} import ammonite.util.Util.CodeSource import ammonite.util.{Name, Res, Util} import mill.{PathRef, define} @@ -12,9 +12,6 @@ import mill.discover.Mirror.Segment import mill.discover.{Discovered, Mirror} import mill.eval.{Evaluator, Result} import mill.util.{OSet, PrintLogger} -import upickle.Js - -import scala.collection.mutable /** * Custom version of ammonite.main.Scripts, letting us run the build.sc script @@ -39,7 +36,7 @@ object RunScript{ case _ => interp.watch(path) for(mapping <- evaluateMapping(wd, path, interp)) - yield new Evaluator(pwd / 'out, pwd, mapping, log) + yield new Evaluator(wd / 'out, wd, mapping, log) } (watches, res) <- Res(evaluateTarget(evaluator, scriptArgs)) } yield (evaluator, watches, res) diff --git a/core/src/main/scala/mill/modules/Jvm.scala b/core/src/main/scala/mill/modules/Jvm.scala index 3bed0917..1bff3c9b 100644 --- a/core/src/main/scala/mill/modules/Jvm.scala +++ b/core/src/main/scala/mill/modules/Jvm.scala @@ -39,7 +39,7 @@ object Jvm { classPath: Seq[Path], jvmOptions: Seq[String] = Seq.empty, options: Seq[String] = Seq.empty, - workingDir: Path = ammonite.ops.pwd) + workingDir: Path = null) (implicit ctx: Ctx) = { val commandArgs = @@ -48,9 +48,11 @@ object Jvm { Vector("-cp", classPath.mkString(":"), mainClass) ++ options + val workingDir1 = Option(workingDir).getOrElse(ctx.dest) + mkdir(workingDir1) val proc = new java.lang.ProcessBuilder() - .directory(workingDir.toIO) + .directory(workingDir1.toIO) .command(commandArgs:_*) .redirectOutput(ProcessBuilder.Redirect.PIPE) .redirectError(ProcessBuilder.Redirect.PIPE) @@ -158,11 +160,11 @@ object Jvm { val seen = mutable.Set("META-INF/MANIFEST.MF") try{ - assert(inputPaths.forall(exists(_))) + for{ p <- inputPaths - + if exists(p) (file, mapping) <- if (p.isFile) { val jf = new JarFile(p.toIO) |