diff options
author | Jesse Luehrs <doy@tozt.net> | 2013-02-20 13:47:59 -0600 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2013-02-20 13:47:59 -0600 |
commit | da958e4965a49a574d34d90abae296006795c0b8 (patch) | |
tree | fe0e6187a8f3e5929cba2f16f443b5e89f6711de /src/main/scala/org/perl8/test/TestMore.scala | |
parent | 3eff21ad575a5c4eb9c762869eec0629a700eb9b (diff) | |
download | scala-test-more-da958e4965a49a574d34d90abae296006795c0b8.tar.gz scala-test-more-da958e4965a49a574d34d90abae296006795c0b8.zip |
basic sketch of Test::Harness and Test::More
Diffstat (limited to 'src/main/scala/org/perl8/test/TestMore.scala')
-rw-r--r-- | src/main/scala/org/perl8/test/TestMore.scala | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/main/scala/org/perl8/test/TestMore.scala b/src/main/scala/org/perl8/test/TestMore.scala new file mode 100644 index 0000000..ce85cc2 --- /dev/null +++ b/src/main/scala/org/perl8/test/TestMore.scala @@ -0,0 +1,43 @@ +package org.perl8.test + +import org.perl8.test.builder._ +import org.perl8.test.builder.util._ + +import java.io.OutputStream + +class TestMore ( + plan: Option[Plan], + out: OutputStream +) extends Test with DelayedInit { + def this (plan: Plan, out: OutputStream = System.out) = + this(Some(plan), out) + + def this (out: OutputStream = System.out) = + this(None, out) + + def delayedInit (body: => Unit) { + builder = new Builder(plan, out, 0, NoMessage) + testBody = () => body + } + + def run (): Int = { + testBody() + builder.doneTesting + if (builder.isPassing) 0 else 1 + } + + def ok (cond: Boolean, desc: Message = NoMessage): Boolean = { + builder.ok(cond, desc.map(d => "- " + d)) + if (!cond) { + val caller = Thread.currentThread.getStackTrace()(0) + builder.diag(" Failed test '" + desc + "'") + builder.diag( + " at " + caller.getFileName + " line " + caller.getLineNumber + "." + ) + } + cond + } + + private var builder: Builder = _ + private var testBody: () => Unit = _ +} |