test_names = list(set([t.__name__.replace('test_', '', 1) for t in tests]))
run = None
- print_res = False
parser = argparse.ArgumentParser(description='hwsim test runner')
parser.add_argument('--logdir', metavar='<directory>',
help="verbose debug output")
group.add_argument('-q', const=logging.WARNING, action='store_const',
dest='loglevel', help="be quiet")
- group.add_argument('-l', action='store_true', dest='logfile',
- help='store debug log to a file (in log directory)')
parser.add_argument('-S', metavar='<sqlite3 db>', dest='database',
help='database to write results to')
else:
args.logdir = 'logs'
- if args.logfile:
- logger.setLevel(logging.DEBUG)
- file_name = os.path.join(args.logdir, 'run-tests.log')
- log_handler = logging.FileHandler(file_name)
- fmt = "%(asctime)s %(levelname)s %(message)s"
- log_formatter = logging.Formatter(fmt)
- log_handler.setFormatter(log_formatter)
- logger.addHandler(log_handler)
- log_to_file = True
- else:
- logging.basicConfig(level=args.loglevel)
- log_handler = None
- log_to_file = False
- if args.loglevel == logging.WARNING:
- print_res = True
+ # Write debug level log to a file and configurable verbosity to stdout
+ logger.setLevel(logging.DEBUG)
+
+ stdout_handler = logging.StreamHandler()
+ stdout_handler.setLevel(args.loglevel)
+ logger.addHandler(stdout_handler)
+
+ file_name = os.path.join(args.logdir, 'run-tests.log')
+ log_handler = logging.FileHandler(file_name)
+ log_handler.setLevel(logging.DEBUG)
+ fmt = "%(asctime)s %(levelname)s %(message)s"
+ log_formatter = logging.Formatter(fmt)
+ log_handler.setFormatter(log_formatter)
+ logger.addHandler(log_handler)
if args.database:
import sqlite3
logger.removeHandler(log_handler)
file_name = os.path.join(args.logdir, name + '.log')
log_handler = logging.FileHandler(file_name)
+ log_handler.setLevel(logging.DEBUG)
log_handler.setFormatter(log_formatter)
logger.addHandler(log_handler)
with DataCollector(args.logdir, name, args.tracing, args.dmesg):
logger.info("START " + name)
- if log_to_file:
+ if args.loglevel == logging.WARNING:
print "START " + name
sys.stdout.flush()
if t.__doc__:
result = result + " " + name + " "
result = result + str(diff.total_seconds()) + " " + str(end)
logger.info(result)
- if log_to_file or print_res:
+ if args.loglevel == logging.WARNING:
print result
sys.stdout.flush()
logger.removeHandler(log_handler)
file_name = os.path.join(args.logdir, 'run-tests.log')
log_handler = logging.FileHandler(file_name)
+ log_handler.setLevel(logging.DEBUG)
log_handler.setFormatter(log_formatter)
logger.addHandler(log_handler)
logger.info("passed " + str(len(passed)) + " test case(s)")
logger.info("skipped " + str(len(skipped)) + " test case(s)")
logger.info("failed tests: " + str(failed))
+ if args.loglevel == logging.WARNING:
+ print "failed tests: " + str(failed)
sys.exit(1)
logger.info("passed all " + str(len(passed)) + " test case(s)")
if len(skipped):
logger.info("skipped " + str(len(skipped)) + " test case(s)")
- if log_to_file:
+ if args.loglevel == logging.WARNING:
print "passed all " + str(len(passed)) + " test case(s)"
if len(skipped):
print "skipped " + str(len(skipped)) + " test case(s)"