aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2013-02-20 15:02:06 -0600
committerJesse Luehrs <doy@tozt.net>2013-02-20 15:02:06 -0600
commit87e3fc7b9b397545ddd0379ee92d7f58a61cccc5 (patch)
treec6347cf5706a473fa2b593f7ecd6a838b11b470e
parentcbae98e561e9c619d239a86b9f71b77ee731be4b (diff)
downloadscala-test-more-87e3fc7b9b397545ddd0379ee92d7f58a61cccc5.tar.gz
scala-test-more-87e3fc7b9b397545ddd0379ee92d7f58a61cccc5.zip
actually, stop fiddling with levels
-rw-r--r--src/main/scala/org/perl8/test/TestMore.scala25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/main/scala/org/perl8/test/TestMore.scala b/src/main/scala/org/perl8/test/TestMore.scala
index 3d07c60..a1addbd 100644
--- a/src/main/scala/org/perl8/test/TestMore.scala
+++ b/src/main/scala/org/perl8/test/TestMore.scala
@@ -28,18 +28,27 @@ class TestMore (
def ok (cond: Boolean, desc: Message = NoMessage): Boolean = {
builder.ok(cond, desc.map(d => "- " + d))
if (!cond) {
- val caller = Thread.currentThread.getStackTrace()(2)
- val message = " Failed test" + (desc match {
- case HasMessage(m) => " '" + m + "'\n "
- case NoMessage => " "
- })
- val trace =
- "at " + caller.getFileName + " line " + caller.getLineNumber + "."
- builder.diag(message + trace)
+ failed(desc)
}
cond
}
+ private def failed (desc: Message) {
+ val caller = Thread.currentThread.getStackTrace.drop(1).find(frame => {
+ frame.getFileName != "TestMore.scala"
+ })
+ val (file, line) = caller match {
+ case Some(frame) => (frame.getFileName, frame.getLineNumber)
+ case None => ("<unknown file>", "<unknown line>")
+ }
+ val message = " Failed test" + (desc match {
+ case HasMessage(m) => " '" + m + "'\n "
+ case NoMessage => " "
+ })
+ val trace = "at " + file + " line " + line + "."
+ builder.diag(message + trace)
+ }
+
private var builder: TestBuilder = _
private var testBody: () => Unit = _
}