This provides summary results such as the following:

% conkeror -q -batch -l tests/simple -walnut-summarize
...
Totals: 58 run, 0 failed in 15 suites
---
 modules/command-line.js |    4 ++++
 modules/walnut.js       |   31 ++++++++++++++++++++++++++++---
 2 files changed, 32 insertions(+), 3 deletions(-)

diff --git a/modules/command-line.js b/modules/command-line.js
index 3b861d3..401a7c6 100644
--- a/modules/command-line.js
+++ b/modules/command-line.js
@@ -118,6 +118,10 @@ command_line_param_handler("l", false, function (path, 
ctx) {
         }
     });
 
+command_line_handler("walnut-summarize", false, function (ctx) {
+        walnut_summarize();
+    });
+
 // note `u' must be called as +u because Mozilla consumes -u
 command_line_handler("u", false, function (ctx) {
         // hack to make sure we send this command to a window
diff --git a/modules/walnut.js b/modules/walnut.js
index cceab15..b3b55c9 100644
--- a/modules/walnut.js
+++ b/modules/walnut.js
@@ -60,8 +60,32 @@ function assert_objects_equal (got, expect) {
 
 
 function walnut_results () {
-    this.run = 0;
-    this.failed = 0;
+    this.init();
+}
+walnut_results.prototype = {
+    init: function () {
+        this.run = 0;
+        this.failed = 0;
+        this.suites = 0;
+    },
+    show: function (title) {
+        dumpln((title ? title + ": " : "") +
+               this.run + " run, " + this.failed + " failed" +
+               (this.suites > 1 ? " in " + this.suites + " suites" : ""));
+    },
+    accumulate: function (results) {
+        this.run += results.run;
+        this.failed += results.failed;
+        this.suites += results.suites ? results.suites : 1;
+    }
+}
+
+var walnut_totals = new walnut_results();
+
+function walnut_summarize (keep) {
+    walnut_totals.show("Totals");
+    if (!keep)
+        walnut_totals.init();
 }
 
 function walnut_run (suite) {
@@ -88,7 +112,8 @@ function walnut_run (suite) {
     }
     if (suite.suite_teardown)
         suite.suite_teardown();
-    dumpln(results.run+" run, "+results.failed+" failed");
+    results.show();
+    walnut_totals.accumulate(results);
     return results;
 }
 
-- 
1.7.6.3

_______________________________________________
Conkeror mailing list
[email protected]
https://www.mozdev.org/mailman/listinfo/conkeror

Reply via email to