summaryrefslogtreecommitdiff
path: root/src/scalacheck/org/scalacheck/ConsoleReporter.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/scalacheck/org/scalacheck/ConsoleReporter.scala')
-rw-r--r--src/scalacheck/org/scalacheck/ConsoleReporter.scala89
1 files changed, 89 insertions, 0 deletions
diff --git a/src/scalacheck/org/scalacheck/ConsoleReporter.scala b/src/scalacheck/org/scalacheck/ConsoleReporter.scala
new file mode 100644
index 0000000000..ed2a08d3ae
--- /dev/null
+++ b/src/scalacheck/org/scalacheck/ConsoleReporter.scala
@@ -0,0 +1,89 @@
+/*-------------------------------------------------------------------------*\
+** ScalaCheck **
+** Copyright (c) 2007-2010 Rickard Nilsson. All rights reserved. **
+** http://www.scalacheck.org **
+** **
+** This software is released under the terms of the Revised BSD License. **
+** There is NO WARRANTY. See the file LICENSE for the full text. **
+\*-------------------------------------------------------------------------*/
+
+package org.scalacheck
+
+import Pretty._
+import util.FreqMap
+
+class ConsoleReporter(val verbosity: Int) extends Test.TestCallback {
+
+ private val prettyPrms = Params(verbosity)
+
+ override def onPropEval(name: String, w: Int, s: Int, d: Int) =
+ if(verbosity > 0) {
+ if(name == "") {
+ if(d == 0) printf("\rPassed %s tests\r", s)
+ else printf("\rPassed %s tests; %s discarded\r", s, d)
+ } else {
+ if(d == 0) printf("\r %s: Passed %s tests\r", name, s)
+ else printf("\r %s: Passed %s tests; %s discarded\r", name, s, d)
+ }
+ Console.flush
+ }
+
+ override def onTestResult(name: String, res: Test.Result) = {
+ if(name == "") {
+ print(List.fill(78)(' ').mkString)
+ val s = (if(res.passed) "+ " else "! ") + pretty(res, prettyPrms)
+ printf("\r%s\n", format(s, "", "", 75))
+ } else {
+ print(List.fill(78)(' ').mkString)
+ val s = (if(res.passed) "+ " else "! ") + name + ": " +
+ pretty(res, prettyPrms)
+ printf("\r%s\n", format(s, "", "", 75))
+ }
+ }
+
+}
+
+object ConsoleReporter {
+
+ /** Factory method, creates a ConsoleReporter with the
+ * the given verbosity */
+ def apply(verbosity: Int = 0) = new ConsoleReporter(verbosity)
+
+ @deprecated("(v1.8)")
+ def propReport(s: Int, d: Int) = {
+ if(d == 0) printf("\rPassed %s tests\r", s)
+ else printf("\rPassed %s tests; %s discarded\r", s, d)
+ Console.flush
+ }
+
+ @deprecated("(v1.8)")
+ def propReport(pName: String, s: Int, d: Int) = {
+ if(d == 0) printf("\r %s: Passed %s tests\r", pName, s)
+ else printf("\r %s: Passed %s tests; %s discarded\r", pName, s, d)
+ Console.flush
+ }
+
+ @deprecated("(v1.8)")
+ def testReport(res: Test.Result) = {
+ print(List.fill(78)(' ').mkString)
+ val s = (if(res.passed) "+ " else "! ") + pretty(res, Params(0))
+ printf("\r%s\n", format(s, "", "", 75))
+ res
+ }
+
+ @deprecated("(v1.8)")
+ def testStatsEx(res: Test.Result): Unit = testStatsEx("", res)
+
+ def testStatsEx(msg: String, res: Test.Result) = {
+ lazy val m = if(msg.length == 0) "" else msg + ": "
+ res.status match {
+ case Test.Proved(_) => {}
+ case Test.Passed => {}
+ case f @ Test.Failed(_, _) => error(m + f)
+ case Test.Exhausted => {}
+ case f @ Test.GenException(_) => error(m + f)
+ case f @ Test.PropException(_, _, _) => error(m + f)
+ }
+ }
+
+}