summaryrefslogtreecommitdiff
path: root/scalaworker
diff options
context:
space:
mode:
Diffstat (limited to 'scalaworker')
-rw-r--r--scalaworker/src/mill/scalaworker/ScalaWorker.scala27
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)