mirror of https://github.com/sbt/sbt.git
Tests and fixes for component manager and cache interface.
This commit is contained in:
parent
4b824fbe84
commit
31b6464101
|
|
@ -8,10 +8,16 @@ class TestLogger extends Logger
|
|||
def debug(msg: F0[String]) = buffer("[debug] ", msg)
|
||||
def error(msg: F0[String]) = buffer("[error] ", msg)
|
||||
def verbose(msg: F0[String]) = buffer("[verbose] ", msg)
|
||||
def info(msg: => String) = buffer("[info] ", msg)
|
||||
def warn(msg: => String) = buffer("[warn] ", msg)
|
||||
def debug(msg: => String) = buffer("[debug] ", msg)
|
||||
def error(msg: => String) = buffer("[error] ", msg)
|
||||
def verbose(msg: => String) = buffer("[verbose] ", msg)
|
||||
def show() { buffer.foreach(_()) }
|
||||
def clear() { buffer.clear() }
|
||||
def trace(t: F0[Throwable]) { buffer += f0(t().printStackTrace) }
|
||||
private def buffer(s: String, msg: F0[String]) { buffer += f0(println(s + msg())) }
|
||||
private def buffer(s: String, msg: F0[String]) { buffer(s, msg()) }
|
||||
private def buffer(s: String, msg: => String) { buffer += f0(println(s + msg)) }
|
||||
}
|
||||
object TestLogger
|
||||
{
|
||||
|
|
@ -22,4 +28,11 @@ object TestLogger
|
|||
catch { case e: Exception => log.show(); throw e }
|
||||
finally { log.clear() }
|
||||
}
|
||||
def apply[L <: TestLogger, T](newLogger: => L)(f: L => T): T =
|
||||
{
|
||||
val log = newLogger
|
||||
try { f(log) }
|
||||
catch { case e: Exception => log.show(); throw e }
|
||||
finally { log.clear() }
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue