aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/scala/org/perl8/test/harness/SummarizedTests.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/org/perl8/test/harness/SummarizedTests.scala')
-rw-r--r--src/main/scala/org/perl8/test/harness/SummarizedTests.scala32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/main/scala/org/perl8/test/harness/SummarizedTests.scala b/src/main/scala/org/perl8/test/harness/SummarizedTests.scala
new file mode 100644
index 0000000..afa5f41
--- /dev/null
+++ b/src/main/scala/org/perl8/test/harness/SummarizedTests.scala
@@ -0,0 +1,32 @@
+package org.perl8.test.harness
+
+import java.io.{PipedInputStream,PipedOutputStream}
+import scala.concurrent.Await
+import scala.concurrent.duration.Duration
+import scala.concurrent.ExecutionContext.Implicits.global
+import scala.concurrent.Future
+
+import org.perl8.test.tap.Consumer.{TAPResult,TodoDirective}
+import org.perl8.test.tap._
+import org.perl8.test.Test
+
+trait SummarizedTests {
+ def runOneTest (test: Test, cb: TAPEvent => Unit): TAPResult = {
+ val out = new PipedOutputStream
+ val in = new PipedInputStream(out)
+
+ val testFuture = Future {
+ Console.withOut(out) {
+ test.runInHarness
+ }
+ out.close
+ }
+
+ val parser = new Parser(cb)
+ val result = parser.parse(in)
+ in.close
+ Await.ready(testFuture, Duration.Inf)
+
+ result
+ }
+}