Bug 1404733 - Handle non-utf8 better in wpt logging, r=maja_zf draft
authorJames Graham <james@hoppipolla.co.uk>
Tue, 24 Oct 2017 18:30:05 +0100
changeset 685491 7abce615f68e6afdcff10738bf3abed10250bd2b
parent 685447 967c95cee709756596860ed2a3e6ac06ea3a053f
child 685569 dbad07fba09f612512cab00a9e08e120dd95e2f4
child 686018 38feb3bb1fd2434bc288bfe9716afd267bf78b6d
push id85944
push userbmo:james@hoppipolla.co.uk
push dateTue, 24 Oct 2017 17:30:28 +0000
reviewersmaja_zf
bugs1404733
milestone58.0a1
Bug 1404733 - Handle non-utf8 better in wpt logging, r=maja_zf MozReview-Commit-ID: GMofBbKUtt0
testing/web-platform/tests/tools/wptrunner/wptrunner/wptlogging.py
--- a/testing/web-platform/tests/tools/wptrunner/wptrunner/wptlogging.py
+++ b/testing/web-platform/tests/tools/wptrunner/wptrunner/wptlogging.py
@@ -71,17 +71,20 @@ class LoggingWrapper(StringIO):
 
     def __init__(self, queue, prefix=None):
         StringIO.__init__(self)
         self.queue = queue
         self.prefix = prefix
 
     def write(self, data):
         if isinstance(data, str):
-            data = data.decode("utf8")
+            try:
+                data = data.decode("utf8")
+            except UnicodeDecodeError:
+                data = data.encode("string_escape").decode("ascii")
 
         if data.endswith("\n"):
             data = data[:-1]
         if data.endswith("\r"):
             data = data[:-1]
         if not data:
             return
         if self.prefix is not None: