run_tests_helper.py revision ca12bfac764ba476d6cd062bf1dde12cc64c3f40
1# Copyright (c) 2012 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5"""Helper functions common to native, java and python test runners."""
6
7import logging
8import os
9import sys
10import time
11
12
13class CustomFormatter(logging.Formatter):
14  """Custom log formatter."""
15
16  #override
17  def __init__(self, fmt='%(threadName)-4s  %(message)s'):
18    # Can't use super() because in older Python versions logging.Formatter does
19    # not inherit from object.
20    logging.Formatter.__init__(self, fmt=fmt)
21    self._creation_time = time.time()
22
23  #override
24  def format(self, record):
25    # Can't use super() because in older Python versions logging.Formatter does
26    # not inherit from object.
27    msg = logging.Formatter.format(self, record)
28    if 'MainThread' in msg[:19]:
29      msg = msg.replace('MainThread', 'Main', 1)
30    timediff = str(int(time.time() - self._creation_time))
31    return '%s %ss %s' % (record.levelname[0], timediff.rjust(4), msg)
32
33
34def SetLogLevel(verbose_count):
35  """Sets log level as |verbose_count|."""
36  log_level = logging.WARNING  # Default.
37  if verbose_count == 1:
38    log_level = logging.INFO
39  elif verbose_count >= 2:
40    log_level = logging.DEBUG
41  logger = logging.getLogger()
42  logger.setLevel(log_level)
43  custom_handler = logging.StreamHandler(sys.stdout)
44  custom_handler.setFormatter(CustomFormatter())
45  logging.getLogger().addHandler(custom_handler)
46