| 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 da4da4027a1e16772665cc8ae55f3ae485aecdf1..906487f009dc5892fb86554ee124a903ccce301f 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
|
| @@ -55,6 +55,11 @@ LOGCAT_FILTERS = ['*:e', 'chromium:v', 'cr_*:v', 'DEBUG:I']
|
| EXTRA_SCREENSHOT_FILE = (
|
| 'org.chromium.base.test.ScreenshotOnFailureStatement.ScreenshotFile')
|
|
|
| +EXTRA_UI_CAPTURE_DIR = (
|
| + 'org.chromium.base.test.util.Screenshooter.ScreenshotDir')
|
| +
|
| +UI_CAPTURE_DIRS = ['chromium_tests_root', 'UiCapture']
|
| +
|
| FEATURE_ANNOTATION = 'Feature'
|
| RENDER_TEST_FEATURE_ANNOTATION = 'RenderTest'
|
|
|
| @@ -92,6 +97,7 @@ class LocalDeviceInstrumentationTestRun(
|
| def __init__(self, env, test_instance):
|
| super(LocalDeviceInstrumentationTestRun, self).__init__(env, test_instance)
|
| self._flag_changers = {}
|
| + self._ui_capture_dir = dict()
|
|
|
| #override
|
| def TestPackage(self):
|
| @@ -216,8 +222,20 @@ class LocalDeviceInstrumentationTestRun(
|
| valgrind_tools.SetChromeTimeoutScale(
|
| dev, self._test_instance.timeout_scale)
|
|
|
| + @trace_event.traced
|
| + def setup_ui_capture_dir():
|
| + # Make sure the UI capture directory exists and is empty by deleting
|
| + # and recreating it.
|
| + # TODO (aberent) once DeviceTempDir exists use it here.
|
| + self._ui_capture_dir[dev] = posixpath.join(dev.GetExternalStoragePath(),
|
| + *UI_CAPTURE_DIRS)
|
| +
|
| + if dev.PathExists(self._ui_capture_dir[dev]):
|
| + dev.RunShellCommand(['rm', '-rf', self._ui_capture_dir[dev]])
|
| + dev.RunShellCommand(['mkdir', self._ui_capture_dir[dev]])
|
| +
|
| steps += [set_debug_app, edit_shared_prefs, push_test_data,
|
| - create_flag_changer]
|
| + create_flag_changer, setup_ui_capture_dir]
|
| if self._env.concurrent_adb:
|
| reraiser_thread.RunAsync(steps)
|
| else:
|
| @@ -244,6 +262,20 @@ class LocalDeviceInstrumentationTestRun(
|
|
|
| valgrind_tools.SetChromeTimeoutScale(dev, None)
|
|
|
| + if self._test_instance.ui_screenshot_dir:
|
| + pull_ui_screen_captures(dev)
|
| +
|
| + @trace_event.traced
|
| + def pull_ui_screen_captures(dev):
|
| + file_names = dev.ListDirectory(self._ui_capture_dir[dev])
|
| + target_path = self._test_instance.ui_screenshot_dir
|
| + if not os.path.exists(target_path):
|
| + os.makedirs(target_path)
|
| +
|
| + for file_name in file_names:
|
| + dev.PullFile(posixpath.join(self._ui_capture_dir[dev], file_name),
|
| + target_path)
|
| +
|
| self._env.parallel_devices.pMap(individual_device_tear_down)
|
|
|
| def _CreateFlagChangerIfNeeded(self, device):
|
| @@ -292,6 +324,8 @@ class LocalDeviceInstrumentationTestRun(
|
| device.adb, suffix='.png', dir=device.GetExternalStoragePath())
|
| extras[EXTRA_SCREENSHOT_FILE] = screenshot_device_file.name
|
|
|
| + extras[EXTRA_UI_CAPTURE_DIR] = self._ui_capture_dir[device]
|
| +
|
| if isinstance(test, list):
|
| if not self._test_instance.driver_apk:
|
| raise Exception('driver_apk does not exist. '
|
|
|