diff options
author | Roman Timushev <rtimush@gmail.com> | 2017-12-29 22:23:57 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-12-29 22:23:57 +0100 |
commit | 81d4cfb6f63512b314fbbf49c4ba415aedc469d7 (patch) | |
tree | 384952c3be58592a9d54af40f4ce7edefed3eee5 /core | |
parent | 19ecb2b4b9d6e91c6a765e7dbae79e3c1e968888 (diff) | |
parent | 417f2ea33202c4dd5d3732cb9fbc6a35f8b7b4ed (diff) | |
download | mill-81d4cfb6f63512b314fbbf49c4ba415aedc469d7.tar.gz mill-81d4cfb6f63512b314fbbf49c4ba415aedc469d7.tar.bz2 mill-81d4cfb6f63512b314fbbf49c4ba415aedc469d7.zip |
Merge pull request #67 from lihaoyi/scalajs
Scala.js support
Diffstat (limited to 'core')
-rw-r--r-- | core/src/test/scala/mill/util/TestEvaluator.scala | 29 |
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()) + } + } + +} |