| Index: build/android/test_runner.py
|
| diff --git a/build/android/test_runner.py b/build/android/test_runner.py
|
| index 99711722442a312ce6ce0a519f62a3275c0f5bf1..1b800a0f8d345fcb31fe9a3e5c91a5e612b87e2d 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
|
| @@ -36,6 +37,7 @@ from pylib.base import test_run_factory
|
| from pylib.constants import host_paths
|
| from pylib.results import json_results
|
| from pylib.results import report_results
|
| +from pylib.utils import logdog_helper
|
|
|
| from py_utils import contextlib_ext
|
|
|
| @@ -115,6 +117,9 @@ def AddCommonOptions(parser):
|
| help='Path to save test_runner trace data to. This option '
|
| 'has been implemented for gtest, instrumentation '
|
| 'test and perf test.')
|
| + group.add_argument('--upload-logcats-file', action='store_true',
|
| + dest='upload_logcats_file',
|
| + help='Whether to upload logcat file to logdog.')
|
|
|
| logcat_output_group = group.add_mutually_exclusive_group()
|
| logcat_output_group.add_argument(
|
| @@ -725,6 +730,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(),
|
| + args.upload_logcats_file)
|
| +
|
| ### Set up test objects.
|
|
|
| env = environment_factory.CreateEnvironment(args, infra_error)
|
| @@ -734,7 +757,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())
|
|
|