summaryrefslogtreecommitdiff
path: root/scalaplugin/src/main
diff options
context:
space:
mode:
authorLi Haoyi <haoyi.sg@gmail.com>2017-11-18 10:26:51 -0800
committerLi Haoyi <haoyi.sg@gmail.com>2017-11-18 10:26:51 -0800
commit435c578c4571fcff697ab2f601d399854950393a (patch)
treecb058a96bbf49a84102b1b2aeef61bc0de8485d5 /scalaplugin/src/main
parent010848c477d84e0c97c71a25632dd48033580fae (diff)
downloadmill-435c578c4571fcff697ab2f601d399854950393a.tar.gz
mill-435c578c4571fcff697ab2f601d399854950393a.tar.bz2
mill-435c578c4571fcff697ab2f601d399854950393a.zip
Tweak implicits to make `build.sc` pass again
Diffstat (limited to 'scalaplugin/src/main')
-rw-r--r--scalaplugin/src/main/scala/mill/scalaplugin/TestRunner.scala20
1 files changed, 14 insertions, 6 deletions
diff --git a/scalaplugin/src/main/scala/mill/scalaplugin/TestRunner.scala b/scalaplugin/src/main/scala/mill/scalaplugin/TestRunner.scala
index 93721e8f..d8577f9c 100644
--- a/scalaplugin/src/main/scala/mill/scalaplugin/TestRunner.scala
+++ b/scalaplugin/src/main/scala/mill/scalaplugin/TestRunner.scala
@@ -8,6 +8,8 @@ import java.util.zip.ZipInputStream
import ammonite.ops.{Path, ls, pwd}
import sbt.testing._
+import scala.collection.mutable
+
object TestRunner {
def listClassFiles(base: Path): Iterator[String] = {
if (base.isDir) ls.rec(base).toIterator.filter(_.ext == "class").map(_.relativeTo(base).toString)
@@ -38,7 +40,7 @@ object TestRunner {
def apply(frameworkName: String,
entireClasspath: Seq[Path],
- testClassfilePath: Seq[Path]): Unit = {
+ testClassfilePath: Seq[Path]): mill.eval.Result[Unit] = {
val outerClassLoader = getClass.getClassLoader
val cl = new URLClassLoader(entireClasspath.map(_.toIO.toURI.toURL).toArray){
override def findClass(name: String) = {
@@ -64,10 +66,11 @@ object TestRunner {
new TaskDef(cls.getName.stripSuffix("$"), fingerprint, true, Array())
}
)
+ val events = mutable.Buffer.empty[Status]
for(t <- tasks){
t.execute(
new EventHandler {
- def handle(event: Event) = ()
+ def handle(event: Event) = events.append(event.status())
},
Array(
new Logger {
@@ -86,9 +89,14 @@ object TestRunner {
)
}
val doneMsg = runner.done()
- if (doneMsg.trim.nonEmpty){
- println(doneMsg)
- println(doneMsg)
- }
+ val msg =
+ if (doneMsg.trim.nonEmpty)doneMsg
+ else{
+ val grouped = events.groupBy(x => x).mapValues(_.length).filter(_._2 != 0).toList.sorted
+ grouped.map{case (k, v) => k + ": " + v}.mkString(",")
+ }
+ println(msg)
+ if (events.count(Set(Status.Error, Status.Failure)) == 0) mill.eval.Result.Success(())
+ else mill.eval.Result.Failure(msg)
}
}