Chromium Code Reviews| 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..80caec0540fc1baef94c9f704ed707f62782eb9f 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() |
|
jbudorick
2016/11/29 00:50:59
You need to do this outside the scope of the with
BigBossZhiling
2016/11/29 01:38:27
Done.
|
| + 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: |