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
--- 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()