diff options
Diffstat (limited to 'scalaworker')
-rw-r--r-- | scalaworker/src/mill/scalaworker/ScalaWorker.scala | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/scalaworker/src/mill/scalaworker/ScalaWorker.scala b/scalaworker/src/mill/scalaworker/ScalaWorker.scala index c74768a5..c7aa4cd5 100644 --- a/scalaworker/src/mill/scalaworker/ScalaWorker.scala +++ b/scalaworker/src/mill/scalaworker/ScalaWorker.scala @@ -36,10 +36,20 @@ object ScalaWorker{ def main(args: Array[String]): Unit = { try{ - val (hm, frameworks, classpath, testCp, arguments, outputPath, colored) = args match { - case Array(h, fs, cp, tcp, op, c) => (h, fs, cp, tcp, "", op, c) - case Array(h, fs, cp, tcp, as, op, c) => (h, fs, cp, tcp, as, op, c) + var i = 0 + def readArray() = { + val count = args(i).toInt + val slice = args.slice(i + 1, i + count + 1) + i = i + count + 1 + slice } + val frameworks = readArray() + val classpath = readArray() + val arguments = readArray() + val outputPath = args(i + 0) + val colored = args(i + 1) + val testCp = args(i + 2) + val homeStr = args(i + 3) val ctx = new Ctx.Log with Ctx.Home { val log = PrintLogger( colored == "true", @@ -50,13 +60,13 @@ object ScalaWorker{ System.err, System.in ) - val home = Path(hm) + val home = Path(homeStr) } val result = new ScalaWorker(null, null).runTests( - frameworkInstances = TestRunner.frameworks(frameworks.split(" ")), - entireClasspath = Agg.from(classpath.split(" ").map(Path(_))), - testClassfilePath = Agg.from(testCp.split(" ").map(Path(_))), - args = arguments match{ case "" => Nil case x => x.split(" ").toList } + frameworkInstances = TestRunner.frameworks(frameworks), + entireClasspath = Agg.from(classpath.map(Path(_))), + testClassfilePath = Agg(Path(testCp)), + args = arguments )(ctx) ammonite.ops.write(Path(outputPath), upickle.default.write(result)) @@ -255,7 +265,6 @@ class ScalaWorker(ctx0: mill.util.Ctx, testClassfilePath: Agg[Path], args: Seq[String]) (implicit ctx: Ctx.Log with Ctx.Home): (String, Seq[Result]) = { - Jvm.inprocess(entireClasspath, classLoaderOverrideSbtTesting = true, cl => { val frameworks = frameworkInstances(cl) |