From 2f6007fbe3131b24c22f139dbd4d317b668aef9b Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Tue, 26 Feb 2013 20:36:13 -0600 Subject: split out the tap stream parser from the individual line parsers --- src/test/scala/org/perl8/test/ExtensionTest.scala | 4 +- src/test/scala/org/perl8/test/TestMoreTest.scala | 4 +- .../scala/org/perl8/test/tap/ConsumerTest.scala | 127 -------------------- src/test/scala/org/perl8/test/tap/ParserTest.scala | 128 +++++++++++++++++++++ 4 files changed, 132 insertions(+), 131 deletions(-) delete mode 100644 src/test/scala/org/perl8/test/tap/ConsumerTest.scala create mode 100644 src/test/scala/org/perl8/test/tap/ParserTest.scala (limited to 'src/test') diff --git a/src/test/scala/org/perl8/test/ExtensionTest.scala b/src/test/scala/org/perl8/test/ExtensionTest.scala index 5a9c1ac..f5635c4 100644 --- a/src/test/scala/org/perl8/test/ExtensionTest.scala +++ b/src/test/scala/org/perl8/test/ExtensionTest.scala @@ -2,7 +2,7 @@ package org.perl8.test import java.io.ByteArrayOutputStream -import org.perl8.test.tap.Consumer +import org.perl8.test.tap.Parser trait NumberZero { this: TestMore => def is_zero (i: Int, desc: String): Boolean = hideTestMethod { @@ -34,7 +34,7 @@ class ExtensionTest extends TestMore { } } - is(Consumer.parse(out).exitCode, 2) + is((new Parser).parse(out).exitCode, 2) val tap = "ok 1 - it's zero\n" + diff --git a/src/test/scala/org/perl8/test/TestMoreTest.scala b/src/test/scala/org/perl8/test/TestMoreTest.scala index bee1e64..b1af5da 100644 --- a/src/test/scala/org/perl8/test/TestMoreTest.scala +++ b/src/test/scala/org/perl8/test/TestMoreTest.scala @@ -2,7 +2,7 @@ package org.perl8.test import java.io.ByteArrayOutputStream -import org.perl8.test.tap.Consumer +import org.perl8.test.tap.Parser class TestMoreTest extends TestMore { val lineZero = Thread.currentThread.getStackTrace()(1).getLineNumber + 3 @@ -64,7 +64,7 @@ class TestMoreTest extends TestMore { } } - is(Consumer.parse(out).exitCode, 9, "got the right plan") + is((new Parser).parse(out).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 deleted file mode 100644 index e07e73d..0000000 --- a/src/test/scala/org/perl8/test/tap/ConsumerTest.scala +++ /dev/null @@ -1,127 +0,0 @@ -package org.perl8.test.tap - -import org.perl8.test.{TestMore,SkipAll,NumericPlan} - -class ConsumerTest extends TestMore { - subtest ("basic") { - val tap = - "1..1\n" + - "ok 1\n" - - val result = Consumer.parse(tap) - is(result.plan, NumericPlan(1), "got the right plan") - is(result.results.map(_.passed), Seq(true), "got the right results") - } - - subtest ("skip all") { - val tap = - "1..0 # SKIP nope\n" - - val result = Consumer.parse(tap) - is(result.plan, SkipAll("nope"), "got the right plan") - is(result.results, Nil, "got the right results") - } - - subtest ("more complicated") { - val tap = - "# starting...\n" + - "ok 1 - stuff\n" + - "not ok 2 - does this work?\n" + - "not ok 3 - eventually # TODO doesn't work yet\n" + - "# skipping some stuff\n" + - "ok 4 # skip don't do this yet\n" + - "# finished!\n" + - "1..4\n" + - "# Looks like you failed 1 test of 4.\n" - - val result = Consumer.parse(tap) - is(result.plan, NumericPlan(4)) - is(result.results.map(_.passed), Seq(true, false, false, true)) - is(result.results.map(_.number), Seq(1, 2, 3, 4)) - is( - result.results.map(_.description), - Seq( - "- stuff", - "- does this work?", - "- eventually", - "" - ) - ) - - is( - result.results.map(_.directive), - Seq( - None, - None, - Some(TodoDirective(Some("doesn't work yet"))), - Some(SkipDirective(Some("don't do this yet"))) - ) - ) - } - - subtest ("subtests") { - val tap = - "ok 1 - not subtest\n" + - " ok 1 - passed\n" + - " not ok 2 - failed\n" + - " ok 3 - passed again\n" + - " 1..1\n" + - " ok 1 - sub-sub-test\n" + - " ok 4 - nested subtests\n" + - " 1..4\n" + - " # Looks like you failed 1 test of 4.\n" + - "not ok 2 - subtest\n" + - "1..2\n" + - "# Looks like you failed 1 test of 2.\n" - - val result = Consumer.parse(tap) - is(result.plan, NumericPlan(2)) - is(result.results.map(_.passed), Seq(true, false)) - is(result.results.map(_.number), Seq(1, 2)) - is( - result.results.map(_.description), - Seq( - "- not subtest", - "- subtest" - ) - ) - is(result.results.map(_.directive), Seq(None, None)) - - is(result.results(0).subtest, None) - ok(result.results(1).subtest.isDefined) - - val subtest = result.results(1).subtest.get - is(subtest.plan, NumericPlan(4)) - is(subtest.results.map(_.passed), Seq(true, false, true, true)) - is(subtest.results.map(_.number), Seq(1, 2, 3, 4)) - is( - subtest.results.map(_.description), - Seq( - "- passed", - "- failed", - "- passed again", - "- nested subtests" - ) - ) - is(subtest.results.map(_.directive), Seq(None, None, None, None)) - - is(subtest.results(0).subtest, None) - is(subtest.results(1).subtest, None) - is(subtest.results(2).subtest, None) - ok(subtest.results(3).subtest.isDefined) - - val subsubtest = subtest.results(3).subtest.get - is(subsubtest.plan, NumericPlan(1)) - is(subsubtest.results.map(_.passed), Seq(true)) - is(subsubtest.results.map(_.number), Seq(1)) - is( - subsubtest.results.map(_.description), - Seq( - "- sub-sub-test" - ) - ) - is(subsubtest.results.map(_.directive), Seq(None)) - - is(subsubtest.results(0).subtest, None) - } -} diff --git a/src/test/scala/org/perl8/test/tap/ParserTest.scala b/src/test/scala/org/perl8/test/tap/ParserTest.scala new file mode 100644 index 0000000..0781399 --- /dev/null +++ b/src/test/scala/org/perl8/test/tap/ParserTest.scala @@ -0,0 +1,128 @@ +package org.perl8.test.tap + +import org.perl8.test.{TestMore,SkipAll,NumericPlan} +import org.perl8.test.tap.Consumer.{SkipDirective,TodoDirective} + +class ParserTest extends TestMore { + subtest ("basic") { + val tap = + "1..1\n" + + "ok 1\n" + + val result = (new Parser).parse(tap) + is(result.plan, NumericPlan(1), "got the right plan") + is(result.results.map(_.passed), Seq(true), "got the right results") + } + + subtest ("skip all") { + val tap = + "1..0 # SKIP nope\n" + + val result = (new Parser).parse(tap) + is(result.plan, SkipAll("nope"), "got the right plan") + is(result.results, Nil, "got the right results") + } + + subtest ("more complicated") { + val tap = + "# starting...\n" + + "ok 1 - stuff\n" + + "not ok 2 - does this work?\n" + + "not ok 3 - eventually # TODO doesn't work yet\n" + + "# skipping some stuff\n" + + "ok 4 # skip don't do this yet\n" + + "# finished!\n" + + "1..4\n" + + "# Looks like you failed 1 test of 4.\n" + + val result = (new Parser).parse(tap) + is(result.plan, NumericPlan(4)) + is(result.results.map(_.passed), Seq(true, false, false, true)) + is(result.results.map(_.number), Seq(1, 2, 3, 4)) + is( + result.results.map(_.description), + Seq( + "- stuff", + "- does this work?", + "- eventually", + "" + ) + ) + + is( + result.results.map(_.directive), + Seq( + None, + None, + Some(TodoDirective(Some("doesn't work yet"))), + Some(SkipDirective(Some("don't do this yet"))) + ) + ) + } + + subtest ("subtests") { + val tap = + "ok 1 - not subtest\n" + + " ok 1 - passed\n" + + " not ok 2 - failed\n" + + " ok 3 - passed again\n" + + " 1..1\n" + + " ok 1 - sub-sub-test\n" + + " ok 4 - nested subtests\n" + + " 1..4\n" + + " # Looks like you failed 1 test of 4.\n" + + "not ok 2 - subtest\n" + + "1..2\n" + + "# Looks like you failed 1 test of 2.\n" + + val result = (new Parser).parse(tap) + is(result.plan, NumericPlan(2)) + is(result.results.map(_.passed), Seq(true, false)) + is(result.results.map(_.number), Seq(1, 2)) + is( + result.results.map(_.description), + Seq( + "- not subtest", + "- subtest" + ) + ) + is(result.results.map(_.directive), Seq(None, None)) + + is(result.results(0).subtest, None) + ok(result.results(1).subtest.isDefined) + + val subtest = result.results(1).subtest.get + is(subtest.plan, NumericPlan(4)) + is(subtest.results.map(_.passed), Seq(true, false, true, true)) + is(subtest.results.map(_.number), Seq(1, 2, 3, 4)) + is( + subtest.results.map(_.description), + Seq( + "- passed", + "- failed", + "- passed again", + "- nested subtests" + ) + ) + is(subtest.results.map(_.directive), Seq(None, None, None, None)) + + is(subtest.results(0).subtest, None) + is(subtest.results(1).subtest, None) + is(subtest.results(2).subtest, None) + ok(subtest.results(3).subtest.isDefined) + + val subsubtest = subtest.results(3).subtest.get + is(subsubtest.plan, NumericPlan(1)) + is(subsubtest.results.map(_.passed), Seq(true)) + is(subsubtest.results.map(_.number), Seq(1)) + is( + subsubtest.results.map(_.description), + Seq( + "- sub-sub-test" + ) + ) + is(subsubtest.results.map(_.directive), Seq(None)) + + is(subsubtest.results(0).subtest, None) + } +} -- cgit v1.2.3-54-g00ecf