diff options
author | Jesse Luehrs <doy@tozt.net> | 2013-02-23 02:14:47 -0600 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2013-02-23 02:26:21 -0600 |
commit | c3e56778e8d47aec5c5e8354148ea1356a980e69 (patch) | |
tree | 02d16cfb1d7a08a06f7f15af24c7c60aaa1eba71 /src | |
parent | fa9b8522a5ea474b63d1dad5108ee7b1c858c9ed (diff) | |
download | scala-test-more-c3e56778e8d47aec5c5e8354148ea1356a980e69.tar.gz scala-test-more-c3e56778e8d47aec5c5e8354148ea1356a980e69.zip |
stop threading outputstreams through everything
it's not really necessary, since we can already capture output if
necessary externally
Diffstat (limited to 'src')
8 files changed, 102 insertions, 99 deletions
diff --git a/src/main/scala/org/perl8/test/TestMore.scala b/src/main/scala/org/perl8/test/TestMore.scala index dddd468..fa3b6d4 100644 --- a/src/main/scala/org/perl8/test/TestMore.scala +++ b/src/main/scala/org/perl8/test/TestMore.scala @@ -3,22 +3,15 @@ package org.perl8.test import org.perl8.test.tap.TestBuilder import org.perl8.test.Utils._ -import java.io.OutputStream import scala.util.matching.Regex -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) +class TestMore (plan: Option[Plan] = None) extends Test with DelayedInit { + def this (plan: Plan) = + this(Some(plan)) def delayedInit (body: => Unit) { todo = NoMessage - builder = new TestBuilder(plan, out, 0, NoMessage) + builder = new TestBuilder(plan, "", NoMessage) testBody = () => body } @@ -126,8 +119,7 @@ class TestMore ( val success = try { builder = new TestBuilder( plan, - out, - oldBuilder.indent + 1, + oldBuilder.indent + " ", name.map(n => "- " + n) ) body diff --git a/src/main/scala/org/perl8/test/harness/SummaryReporter.scala b/src/main/scala/org/perl8/test/harness/SummaryReporter.scala index 08544ce..23e5244 100644 --- a/src/main/scala/org/perl8/test/harness/SummaryReporter.scala +++ b/src/main/scala/org/perl8/test/harness/SummaryReporter.scala @@ -1,6 +1,6 @@ package org.perl8.test.harness -import java.io.{OutputStream,ByteArrayOutputStream} +import java.io.ByteArrayOutputStream import org.perl8.test.Test import org.perl8.test.tap @@ -22,8 +22,10 @@ class SummaryReporter extends MultiTestReporter { print(name + ("." * (maxLength - name.length)) + "... ") val out = new ByteArrayOutputStream - val test = newInstance[Test, OutputStream](name, out) - val exitCode = test.run + val test = newInstance[Test](name) + val exitCode = Console.withOut(out) { + test.run + } val result = tap.Consumer.parse(out) if (exitCode == 0) { diff --git a/src/main/scala/org/perl8/test/harness/TAPReporter.scala b/src/main/scala/org/perl8/test/harness/TAPReporter.scala index c9e353a..e478880 100644 --- a/src/main/scala/org/perl8/test/harness/TAPReporter.scala +++ b/src/main/scala/org/perl8/test/harness/TAPReporter.scala @@ -1,11 +1,9 @@ package org.perl8.test.harness -import java.io.OutputStream - import org.perl8.test.Test import Utils._ class TAPReporter extends Reporter { def run (testName: String): Int = - newInstance[Test, OutputStream](testName, System.out).run + newInstance[Test](testName).run } diff --git a/src/main/scala/org/perl8/test/sbt/Runner.scala b/src/main/scala/org/perl8/test/sbt/Runner.scala index 86abbc9..cd68fd1 100644 --- a/src/main/scala/org/perl8/test/sbt/Runner.scala +++ b/src/main/scala/org/perl8/test/sbt/Runner.scala @@ -1,7 +1,6 @@ package org.perl8.test.sbt import org.scalatools.testing.{EventHandler,Event,Result} -import java.io.{OutputStream,ByteArrayOutputStream} import org.perl8.test.harness.Utils._ import org.perl8.test.harness.SummaryReporter diff --git a/src/main/scala/org/perl8/test/tap/TestBuilder.scala b/src/main/scala/org/perl8/test/tap/TestBuilder.scala index f9c684c..ac576d8 100644 --- a/src/main/scala/org/perl8/test/tap/TestBuilder.scala +++ b/src/main/scala/org/perl8/test/tap/TestBuilder.scala @@ -1,31 +1,26 @@ package org.perl8.test.tap -import java.io.OutputStream - import org.perl8.test.Utils._ class TestBuilder ( plan: Option[Plan], - out: OutputStream, - val indent: Int, + val indent: String, private val name: Message ) { plan.foreach(p => println(Producer.plan(p))) def this ( plan: Plan, - out: OutputStream = System.out, - indent: Int = 0, + indent: String = "", name: Message = NoMessage ) = - this(Some(plan), out, indent, name) + this(Some(plan), indent, name) def this ( - out: OutputStream = System.out, - indent: Int = 0, + indent: String = "", name: Message = NoMessage ) = - this(None, out, indent, name) + this(None, indent, name) def ok ( test: Boolean, @@ -92,11 +87,9 @@ class TestBuilder ( private val state = new TestState private def println (str: String) { - Console.withOut(out) { - val indented = - str.split("\n").map(s => (" " * (indent * 4)) + s).mkString("\n") - Console.println(indented) - } + val indented = + str.split("\n").map(s => indent + s).mkString("\n") + Console.println(indented) } private class TestState { diff --git a/src/test/scala/org/perl8/test/TestMoreTest.scala b/src/test/scala/org/perl8/test/TestMoreTest.scala index 5b3f8a3..4272fdd 100644 --- a/src/test/scala/org/perl8/test/TestMoreTest.scala +++ b/src/test/scala/org/perl8/test/TestMoreTest.scala @@ -1,13 +1,13 @@ package org.perl8.test -import java.io.{OutputStream,ByteArrayOutputStream} +import java.io.ByteArrayOutputStream -class TestMoreTest (out: OutputStream) extends TestMore(out) { +class TestMoreTest extends TestMore { private object OutputContainer { val output = new ByteArrayOutputStream } - private class MyBasicTest extends TestMore(OutputContainer.output) { + private class MyBasicTest extends TestMore { diag("ok") ok(1 == 1, "it works!") ok(0 == 1, "it doesn't work!") @@ -56,7 +56,11 @@ class TestMoreTest (out: OutputStream) extends TestMore(out) { } } - is((new MyBasicTest).run, 9, "got the right plan") + val exitCode = Console.withOut(OutputContainer.output) { + (new MyBasicTest).run + } + + is(exitCode, 9, "got the right plan") val expected = "# ok\n" + diff --git a/src/test/scala/org/perl8/test/tap/ConsumerTest.scala b/src/test/scala/org/perl8/test/tap/ConsumerTest.scala index 8cee3df..f43f095 100644 --- a/src/test/scala/org/perl8/test/tap/ConsumerTest.scala +++ b/src/test/scala/org/perl8/test/tap/ConsumerTest.scala @@ -2,11 +2,9 @@ package org.perl8.test.tap import org.perl8.test.TestMore -import java.io.OutputStream - import org.perl8.test.Utils._ -class ConsumerTest (out: OutputStream) extends TestMore(out) { +class ConsumerTest extends TestMore { subtest ("basic") { val tap = "1..1\n" + diff --git a/src/test/scala/org/perl8/test/tap/TestBuilderTest.scala b/src/test/scala/org/perl8/test/tap/TestBuilderTest.scala index c527cd2..cf4a40d 100644 --- a/src/test/scala/org/perl8/test/tap/TestBuilderTest.scala +++ b/src/test/scala/org/perl8/test/tap/TestBuilderTest.scala @@ -2,19 +2,21 @@ package org.perl8.test.tap import org.perl8.test.TestMore -import java.io.{OutputStream,ByteArrayOutputStream} +import java.io.ByteArrayOutputStream import org.perl8.test.Utils._ -class TestBuilderTest (out: OutputStream) extends TestMore(out) { +class TestBuilderTest extends TestMore { subtest ("ok") { val output = new ByteArrayOutputStream - val builder = new TestBuilder(4, output) - builder.ok(true, "test succeeded") - builder.ok(false, "test failed") - builder.ok(true) - builder.ok(false) - builder.doneTesting + Console.withOut(output) { + val builder = new TestBuilder(4) + builder.ok(true, "test succeeded") + builder.ok(false, "test failed") + builder.ok(true) + builder.ok(false) + builder.doneTesting + } val expected = "1..4\n" + @@ -29,12 +31,14 @@ class TestBuilderTest (out: OutputStream) extends TestMore(out) { subtest ("no plan") { val output = new ByteArrayOutputStream - val builder = new TestBuilder(output) - builder.ok(true, "test succeeded") - builder.ok(false, "test failed") - builder.ok(true) - builder.ok(false) - builder.doneTesting + Console.withOut(output) { + val builder = new TestBuilder + builder.ok(true, "test succeeded") + builder.ok(false, "test failed") + builder.ok(true) + builder.ok(false) + builder.doneTesting + } val expected = "ok 1 test succeeded\n" + @@ -49,8 +53,10 @@ class TestBuilderTest (out: OutputStream) extends TestMore(out) { subtest ("empty") { val output = new ByteArrayOutputStream - val builder = new TestBuilder(output) - builder.doneTesting + Console.withOut(output) { + val builder = new TestBuilder + builder.doneTesting + } val expected = "1..0\n" + @@ -61,14 +67,15 @@ class TestBuilderTest (out: OutputStream) extends TestMore(out) { subtest ("diag") { val output = new ByteArrayOutputStream - val builder = new TestBuilder(output) - - builder.ok(true, "the test passes") - builder.ok(false, "the test passes") - builder.diag("got false, expected true") - builder.ok(true) - builder.diag("ending\nnow") - builder.doneTesting + Console.withOut(output) { + val builder = new TestBuilder + builder.ok(true, "the test passes") + builder.ok(false, "the test passes") + builder.diag("got false, expected true") + builder.ok(true) + builder.diag("ending\nnow") + builder.doneTesting + } val expected = "ok 1 the test passes\n" + @@ -85,31 +92,35 @@ class TestBuilderTest (out: OutputStream) extends TestMore(out) { subtest ("is passing") { val output = new ByteArrayOutputStream - val builder = new TestBuilder(output) - - ok(!builder.isPassing) - builder.ok(true) - ok(builder.isPassing) - builder.ok(false) - ok(!builder.isPassing) - builder.ok(true) - ok(!builder.isPassing) + val oldOut = Console.out + Console.withOut(output) { + val builder = new TestBuilder + Console.withOut(oldOut) { ok(!builder.isPassing) } + builder.ok(true) + Console.withOut(oldOut) { ok(builder.isPassing) } + builder.ok(false) + Console.withOut(oldOut) { ok(!builder.isPassing) } + builder.ok(true) + Console.withOut(oldOut) { ok(!builder.isPassing) } + } } subtest ("bail out") { val output = new ByteArrayOutputStream - val builder = new TestBuilder(output) - - builder.ok(true) - try { - builder.bailOut("oh no!") - fail() - } - catch { - case e: BailOutException => { - is(e.message, "oh no!") + val oldOut = Console.out + Console.withOut(output) { + val builder = new TestBuilder + builder.ok(true) + try { + builder.bailOut("oh no!") + Console.withOut(oldOut) { fail() } + } + catch { + case e: BailOutException => Console.withOut(oldOut) { + is(e.message, "oh no!") + } + case _: Throwable => Console.withOut(oldOut) { fail() } } - case _: Throwable => fail() } val expected = @@ -121,7 +132,9 @@ class TestBuilderTest (out: OutputStream) extends TestMore(out) { subtest ("skip all") { val output = new ByteArrayOutputStream - val builder = new TestBuilder(SkipAll(), output) + Console.withOut(output) { + val builder = new TestBuilder(SkipAll()) + } val expected = "1..0 # SKIP\n" @@ -131,7 +144,9 @@ class TestBuilderTest (out: OutputStream) extends TestMore(out) { subtest ("skip all with reason") { val output = new ByteArrayOutputStream - val builder = new TestBuilder(SkipAll("foo bar"), output) + Console.withOut(output) { + val builder = new TestBuilder(SkipAll("foo bar")) + } val expected = "1..0 # SKIP foo bar\n" @@ -141,12 +156,13 @@ class TestBuilderTest (out: OutputStream) extends TestMore(out) { subtest ("skip") { val output = new ByteArrayOutputStream - val builder = new TestBuilder(output) - - builder.ok(false) - builder.skip("not now") - builder.skip() - builder.doneTesting + Console.withOut(output) { + val builder = new TestBuilder + builder.ok(false) + builder.skip("not now") + builder.skip() + builder.doneTesting + } val expected = "not ok 1\n" + @@ -160,11 +176,12 @@ class TestBuilderTest (out: OutputStream) extends TestMore(out) { subtest ("todo") { val output = new ByteArrayOutputStream - val builder = new TestBuilder(output) - - builder.ok(false, "do a thing", todo = "not working yet") - builder.ok(true, todo = "is it?") - builder.doneTesting + Console.withOut(output) { + val builder = new TestBuilder + builder.ok(false, "do a thing", todo = "not working yet") + builder.ok(true, todo = "is it?") + builder.doneTesting + } val expected = "not ok 1 do a thing # TODO not working yet\n" + |