| Index: build/android/pylib/local/device/local_device_instrumentation_test_run.py
|
| diff --git a/build/android/pylib/local/device/local_device_instrumentation_test_run.py b/build/android/pylib/local/device/local_device_instrumentation_test_run.py
|
| index a203ce069e5bc4760c2a84be3808e1aae3fb94f6..f522322d09e35acea2e2b7f73c8d830091cd848f 100644
|
| --- a/build/android/pylib/local/device/local_device_instrumentation_test_run.py
|
| +++ b/build/android/pylib/local/device/local_device_instrumentation_test_run.py
|
| @@ -12,13 +12,13 @@ from devil.android import device_errors
|
| from devil.android import flag_changer
|
| from devil.utils import reraiser_thread
|
| from pylib import valgrind_tools
|
| +from pylib.android import logdog_logcat_monitor
|
| from pylib.base import base_test_result
|
| from pylib.instrumentation import instrumentation_test_instance
|
| from pylib.local.device import local_device_environment
|
| from pylib.local.device import local_device_test_run
|
| import tombstones
|
|
|
| -
|
| _TAG = 'test_runner_py'
|
|
|
| TIMEOUT_ANNOTATIONS = [
|
| @@ -245,10 +245,19 @@ class LocalDeviceInstrumentationTestRun(
|
| device.RunShellCommand(
|
| ['log', '-p', 'i', '-t', _TAG, 'START %s' % test_name],
|
| check_return=True)
|
| + logcat_url = None
|
| time_ms = lambda: int(time.time() * 1e3)
|
| start_ms = time_ms()
|
| - output = device.StartInstrumentation(
|
| - target, raw=True, extras=extras, timeout=timeout, retries=0)
|
| + if self._test_instance.should_save_logcat:
|
| + with logdog_logcat_monitor.LogdogLogcatMonitor(
|
| + device.adb,
|
| + 'logcat_%s' % test_name.replace('#', '.')) as logmon:
|
| + output = device.StartInstrumentation(
|
| + target, raw=True, extras=extras, timeout=timeout, retries=0)
|
| + logcat_url = logmon.GetLogcatURL()
|
| + else:
|
| + output = device.StartInstrumentation(
|
| + target, raw=True, extras=extras, timeout=timeout, retries=0)
|
| finally:
|
| device.RunShellCommand(
|
| ['log', '-p', 'i', '-t', _TAG, 'END %s' % test_name],
|
| @@ -266,6 +275,8 @@ class LocalDeviceInstrumentationTestRun(
|
| self._test_instance.ParseAmInstrumentRawOutput(output))
|
| results = self._test_instance.GenerateTestResults(
|
| result_code, result_bundle, statuses, start_ms, duration_ms)
|
| + for result in results:
|
| + result.SetLogcatUrl(logcat_url)
|
|
|
| # Update the result name if the test used flags.
|
| if flags:
|
|
|