summaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
authorRoman Timushev <rtimush@gmail.com>2017-12-29 22:23:57 +0100
committerGitHub <noreply@github.com>2017-12-29 22:23:57 +0100
commit81d4cfb6f63512b314fbbf49c4ba415aedc469d7 (patch)
tree384952c3be58592a9d54af40f4ce7edefed3eee5 /core/src
parent19ecb2b4b9d6e91c6a765e7dbae79e3c1e968888 (diff)
parent417f2ea33202c4dd5d3732cb9fbc6a35f8b7b4ed (diff)
downloadmill-81d4cfb6f63512b314fbbf49c4ba415aedc469d7.tar.gz
mill-81d4cfb6f63512b314fbbf49c4ba415aedc469d7.tar.bz2
mill-81d4cfb6f63512b314fbbf49c4ba415aedc469d7.zip
Merge pull request #67 from lihaoyi/scalajs
Scala.js support
Diffstat (limited to 'core/src')
-rw-r--r--core/src/test/scala/mill/util/TestEvaluator.scala29
1 files changed, 29 insertions, 0 deletions
diff --git a/core/src/test/scala/mill/util/TestEvaluator.scala b/core/src/test/scala/mill/util/TestEvaluator.scala
new file mode 100644
index 00000000..5d16de43
--- /dev/null
+++ b/core/src/test/scala/mill/util/TestEvaluator.scala
@@ -0,0 +1,29 @@
+package mill.util
+
+import ammonite.ops.Path
+import mill.define.{Target, Task}
+import mill.discover.{Discovered, Mirror}
+import mill.eval.{Evaluator, Result}
+
+class TestEvaluator(mapping: Discovered.Mapping[_], workspacePath: Path){
+ val evaluator = new Evaluator(workspacePath, mapping, DummyLogger)
+
+ def apply[T](t: Task[T]): Either[Result.Failing, (T, Int)] = {
+ val evaluated = evaluator.evaluate(OSet(t))
+
+ if (evaluated.failing.keyCount == 0) {
+ Right(
+ Tuple2(
+ evaluated.rawValues.head.asInstanceOf[Result.Success[T]].value,
+ evaluated.evaluated.collect {
+ case t: Target[_] if mapping.targets.contains(t) => t
+ case t: mill.define.Command[_] => t
+ }.size
+ ))
+ } else {
+ Left(
+ evaluated.failing.lookupKey(evaluated.failing.keys().next).items.next())
+ }
+ }
+
+}