aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/scala/org/perl8/test/harness/SummaryReporter.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/org/perl8/test/harness/SummaryReporter.scala')
-rw-r--r--src/main/scala/org/perl8/test/harness/SummaryReporter.scala34
1 files changed, 16 insertions, 18 deletions
diff --git a/src/main/scala/org/perl8/test/harness/SummaryReporter.scala b/src/main/scala/org/perl8/test/harness/SummaryReporter.scala
index 23e5244..460059a 100644
--- a/src/main/scala/org/perl8/test/harness/SummaryReporter.scala
+++ b/src/main/scala/org/perl8/test/harness/SummaryReporter.scala
@@ -10,12 +10,12 @@ import Utils._
class SummaryReporter extends MultiTestReporter {
def run (testNames: Seq[String]): Int = {
val results = runTests(testNames)
- val success = results.values.map(_._1).forall(_ == 0)
+ val success = results.values.forall(_.success)
printTestSummary(success, results)
if (success) 0 else 1
}
- def runTests (testNames: Seq[String]): Map[String, (Int, TAPResult)] = {
+ def runTests (testNames: Seq[String]): Map[String, TAPResult] = {
val maxLength = testNames.map(_.length).max
testNames.map { name =>
@@ -23,12 +23,12 @@ class SummaryReporter extends MultiTestReporter {
val out = new ByteArrayOutputStream
val test = newInstance[Test](name)
- val exitCode = Console.withOut(out) {
+ Console.withOut(out) {
test.run
}
val result = tap.Consumer.parse(out)
- if (exitCode == 0) {
+ if (result.success) {
println("ok")
}
else {
@@ -37,17 +37,17 @@ class SummaryReporter extends MultiTestReporter {
!t.passed && !t.directive.isDefined
}
- println("Dubious, test returned " + exitCode)
+ println("Dubious, test returned " + result.exitCode)
println("Failed " + failed + "/" + results + " subtests")
}
- name -> (exitCode, result)
+ name -> result
}.toMap
}
def printTestSummary (
success: Boolean,
- results: Map[String, (Int, TAPResult)]
+ results: Map[String, TAPResult]
) {
printSuccess(success)
printShortSummary(results)
@@ -61,16 +61,14 @@ class SummaryReporter extends MultiTestReporter {
}
}
- private def printShortSummary (results: Map[String, (Int, TAPResult)]) {
+ private def printShortSummary (results: Map[String, TAPResult]) {
val files = results.size
- val tests = results.values.map(_._2.results.length).sum
+ val tests = results.values.map(_.results.length).sum
println("Files=" + files + ", Tests=" + tests)
}
- private def printLongSummary (results: Map[String, (Int, TAPResult)]) {
- val resultMap = results.map { case (s, r) => s -> r._2 }
-
- val todoSucceeded = resultMap.mapValues { r =>
+ private def printLongSummary (results: Map[String, TAPResult]) {
+ val todoSucceeded = results.mapValues { r =>
r.results.filter { t =>
t.directive match {
case Some(TodoDirective(_)) => t.passed
@@ -79,7 +77,7 @@ class SummaryReporter extends MultiTestReporter {
}
}.filter(_._2.length > 0)
- val testsFailed = resultMap.mapValues { r =>
+ val testsFailed = results.mapValues { r =>
r.results.filter { t =>
t.directive match {
case None => !t.passed
@@ -98,7 +96,7 @@ class SummaryReporter extends MultiTestReporter {
val maxLength = testNames.map(_.length).max
for (name <- testNames) {
- val result = resultMap(name)
+ val result = results(name)
println(
name + (" " * (maxLength - name.length)) + " " +
@@ -122,7 +120,7 @@ class SummaryReporter extends MultiTestReporter {
)
}
- val exitCode = results(name)._1
+ val exitCode = results(name).exitCode
if (exitCode != 0) {
println(" Non-zero exit status: " + exitCode)
}
@@ -132,7 +130,7 @@ class SummaryReporter extends MultiTestReporter {
private def printPassFail (
success: Boolean,
- results: Map[String, (Int, TAPResult)]
+ results: Map[String, TAPResult]
) {
if (success) {
println("Result: PASS")
@@ -140,7 +138,7 @@ class SummaryReporter extends MultiTestReporter {
else {
println("Result: FAIL")
- val testResults = results.values.map(_._2)
+ val testResults = results.values
val testsFailed = testResults.map { r =>
r.results.count { t =>