diff --git a/interface/src/test/scala/TestLogger.scala b/interface/src/test/scala/TestLogger.scala index f78a0f533..c8df588f6 100644 --- a/interface/src/test/scala/TestLogger.scala +++ b/interface/src/test/scala/TestLogger.scala @@ -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() } + } } \ No newline at end of file