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: |