autotest: Set other logging handlers when require_logfile is not set.
BUG=chromium:741829
TEST=Ran ./site_utils/run_suite.py --build *** --require_logfile vs
./site_utils/run_suite.py --build *** vs
./site_utils/run_suite.py --require_logfile.
Change-Id: I0c7f329508de2dfcca245e6442a3d50f8b6c3334
Reviewed-on: https://chromium-review.googlesource.com/569062
Commit-Queue: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
Trybot-Ready: Xixuan Wu <xixuan@chromium.org>
Reviewed-by: Richard Barnette <jrbarnette@google.com>
diff --git a/site_utils/run_suite.py b/site_utils/run_suite.py
index d03a929..b7cc906 100755
--- a/site_utils/run_suite.py
+++ b/site_utils/run_suite.py
@@ -279,7 +279,7 @@
help=('A dict of args passed all the way to each individual test that '
'will be actually ran.'))
parser.add_argument(
- '--require_log', action='store_true',
+ '--require_logfile', action='store_true',
help=('Stream logs of run_suite.py to a local file named '
'run_suite-<build name>.log.'))
@@ -1574,16 +1574,8 @@
if options.use_suite_attr:
options = change_options_for_suite_attr(options)
- log_name = 'run_suite-default.log'
- if options.build:
- # convert build name from containing / to containing only _
- log_name = 'run_suite-%s.log' % options.build.replace('/', '_')
- log_dir = os.path.join(common.autotest_dir, 'logs')
- if os.path.exists(log_dir):
- log_name = os.path.join(log_dir, log_name)
-
- if options.require_log:
- utils.setup_logging(logfile=log_name)
+ log_name = _get_log_name(options)
+ utils.setup_logging(logfile=log_name)
if not options.bypass_labstatus and not options.web:
utils.check_lab_status(options.build)
@@ -1652,6 +1644,26 @@
return _handle_job_wait(afe, job_id, options, job_timer, is_real_time)
+def _get_log_name(options):
+ """Return local log file's name.
+
+ @param options: Parsed options.
+
+ @return log_name, a string file name.
+ """
+ if options.require_logfile:
+ # options.build is verified to exist in verify_options.
+ # convert build name from containing / to containing only _.
+ log_name = 'run_suite-%s.log' % options.build.replace('/', '_')
+ log_dir = os.path.join(common.autotest_dir, 'logs')
+ if os.path.exists(log_dir):
+ log_name = os.path.join(log_dir, log_name)
+
+ return log_name
+ else:
+ return None
+
+
def _create_afe(options):
"""Return an afe instance based on options.