aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/scala/org/perl8/test/TestMore.scala
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2013-02-20 13:47:59 -0600
committerJesse Luehrs <doy@tozt.net>2013-02-20 13:47:59 -0600
commitda958e4965a49a574d34d90abae296006795c0b8 (patch)
treefe0e6187a8f3e5929cba2f16f443b5e89f6711de /src/main/scala/org/perl8/test/TestMore.scala
parent3eff21ad575a5c4eb9c762869eec0629a700eb9b (diff)
downloadscala-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.scala43
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 = _
+}