aboutsummaryrefslogtreecommitdiffstats
path: root/tests/wpt/grouping_formatter.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/wpt/grouping_formatter.py')
-rw-r--r--tests/wpt/grouping_formatter.py21
1 files changed, 18 insertions, 3 deletions
diff --git a/tests/wpt/grouping_formatter.py b/tests/wpt/grouping_formatter.py
index 955c85d916c..0011e4dcddc 100644
--- a/tests/wpt/grouping_formatter.py
+++ b/tests/wpt/grouping_formatter.py
@@ -4,6 +4,7 @@
from mozlog.formatters import base
import collections
+import json
import os
import sys
import subprocess
@@ -14,7 +15,7 @@ DEFAULT_MOVE_UP_CODE = u"\x1b[A"
DEFAULT_CLEAR_EOL_CODE = u"\x1b[K"
-class GroupingFormatter(base.BaseFormatter):
+class ServoFormatter(base.BaseFormatter):
"""Formatter designed to produce unexpected test results grouped
together in a readable format."""
def __init__(self):
@@ -77,7 +78,7 @@ class GroupingFormatter(base.BaseFormatter):
return ((self.move_up + self.clear_eol) *
self.current_display.count('\n'))
- def generate_output(self, text=None, new_display=None):
+ def generate_output(self, text=None, new_display=None, unexpected_in_test=None):
if not self.interactive:
return text
@@ -230,7 +231,8 @@ class GroupingFormatter(base.BaseFormatter):
subtest_failures)
self.test_failure_text += output
- return self.generate_output(text=output, new_display=new_display)
+ return self.generate_output(text=output, new_display=new_display,
+ unexpected_in_test=test_name)
def test_status(self, data):
if "expected" in data:
@@ -289,3 +291,16 @@ class GroupingFormatter(base.BaseFormatter):
if data['level'] in ('CRITICAL', 'ERROR'):
return self.generate_output(text=data['message'] + "\n")
+
+
+class ServoJsonFormatter(ServoFormatter):
+ def suite_start(self, data):
+ ServoFormatter.suite_start(self, data)
+ # Don't forward the return value
+
+ def generate_output(self, text=None, new_display=None, unexpected_in_test=None):
+ if unexpected_in_test:
+ return "%s\n" % json.dumps({"test": unexpected_in_test, "output": text})
+
+ def log(self, _):
+ return