| Index: build/android/test_runner.py
|
| diff --git a/build/android/test_runner.py b/build/android/test_runner.py
|
| index ee6f87a86a0a382a7be1b30054c5a1617c1cb61e..0bf240d16e1ccc106c1a51cabd102f86fb56e390 100755
|
| --- a/build/android/test_runner.py
|
| +++ b/build/android/test_runner.py
|
| @@ -12,6 +12,7 @@ import contextlib
|
| import itertools
|
| import logging
|
| import os
|
| +import shutil
|
| import signal
|
| import sys
|
| import threading
|
| @@ -34,6 +35,7 @@ from pylib.base import test_instance_factory
|
| from pylib.base import test_run_factory
|
| from pylib.results import json_results
|
| from pylib.results import report_results
|
| +from pylib.utils import logdog_helper
|
|
|
| from py_utils import contextlib_ext
|
|
|
| @@ -208,6 +210,12 @@ def AddDeviceOptions(parser):
|
| help='Run the test under a tool '
|
| '(use --tool help to list them)')
|
|
|
| + parser.add_argument(
|
| + '--upload-logcats-file',
|
| + action='store_true',
|
| + dest='upload_logcats_file',
|
| + help='Whether to upload logcat file to logdog.')
|
| +
|
| logcat_output_group = parser.add_mutually_exclusive_group()
|
| logcat_output_group.add_argument(
|
| '--logcat-output-dir', type=os.path.realpath,
|
| @@ -725,6 +733,24 @@ def RunTestsInPlatformMode(args):
|
| write_json_file(),
|
| args.json_results_file)
|
|
|
| + @contextlib.contextmanager
|
| + def upload_logcats_file():
|
| + try:
|
| + yield
|
| + finally:
|
| + if not args.logcat_output_file:
|
| + logging.critical('Cannot upload logcats file. '
|
| + 'File to save logcat is not specified.')
|
| + else:
|
| + with open(args.logcat_output_file) as src:
|
| + dst = logdog_helper.open_text('unified_logcats')
|
| + if dst:
|
| + shutil.copyfileobj(src, dst)
|
| +
|
| + logcats_uploader = contextlib_ext.Optional(
|
| + upload_logcats_file(),
|
| + 'upload_logcats_file' in args and args.upload_logcats_file)
|
| +
|
| ### Set up test objects.
|
|
|
| env = environment_factory.CreateEnvironment(args, infra_error)
|
| @@ -734,7 +760,7 @@ def RunTestsInPlatformMode(args):
|
|
|
| ### Run.
|
|
|
| - with json_writer, env, test_instance, test_run:
|
| + with json_writer, logcats_uploader, env, test_instance, test_run:
|
|
|
| repetitions = (xrange(args.repeat + 1) if args.repeat >= 0
|
| else itertools.count())
|
|
|