Bug 1020516 - Add timestamp messages when dumping buffered messages in mochitest, r?ted draft
authorAndrew Halberstadt <ahalberstadt@mozilla.com>
Wed, 02 Nov 2016 13:42:58 -0400
changeset 432786 02e6f07dd0d4fd5d7633c3a016bb22e89a1871a4
parent 432785 a86ad1d51eb92bfed2170d21429b289fcc8d5105
child 535751 6867893c6d438623acdd8a2bc876bf5346e697f8
push id34422
push userahalberstadt@mozilla.com
push dateWed, 02 Nov 2016 19:47:10 +0000
reviewersted
bugs1020516
milestone52.0a1
Bug 1020516 - Add timestamp messages when dumping buffered messages in mochitest, r?ted When dumping buffered messages in mochitest, this adds a new log line for every second's worth of messages. Alternatively we could print the timestamp in brackets at the end of each buffered message, but I found that in practice there tends to be many log messages generated each second. This looks better for that case, but will look much worse if logs are generated more than a second apart. I would be ok with either method. MozReview-Commit-ID: Jkd9hOlmiGZ
testing/mochitest/runtests.py
--- a/testing/mochitest/runtests.py
+++ b/testing/mochitest/runtests.py
@@ -274,23 +274,29 @@ class MessageLogger(object):
             self.process_message(message)
         return messages
 
     def flush(self):
         sys.stdout.flush()
 
     def dump_buffered(self, limit=False):
         if limit:
-            dumped_messages = self.buffered_messages[-
-                                                     self.BUFFERING_THRESHOLD:]
+            dumped_messages = self.buffered_messages[-self.BUFFERING_THRESHOLD:]
         else:
             dumped_messages = self.buffered_messages
 
-        for buf_msg in dumped_messages:
-            self.logger.log_raw(buf_msg)
+        last_timestamp = None
+        for buf in dumped_messages:
+            timestamp = datetime.fromtimestamp(buf['time'] / 1000).strftime('%H:%M:%S')
+            if timestamp != last_timestamp:
+                self.logger.info("Buffered messages logged at {}".format(timestamp))
+            last_timestamp = timestamp
+
+            self.logger.log_raw(buf)
+        self.logger.info("Buffered messages finished")
         # Cleaning the list of buffered messages
         self.buffered_messages = []
 
     def finish(self):
         self.dump_buffered()
         self.buffering = False
         self.logger.suite_end()