OLD | NEW |
1 # Copyright 2015 The Chromium Authors. All rights reserved. | 1 # Copyright 2015 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import logging | 5 import logging |
| 6 import os |
6 import re | 7 import re |
7 import time | 8 import time |
8 | 9 |
9 from devil.android import device_errors | 10 from devil.android import device_errors |
10 from devil.android import flag_changer | 11 from devil.android import flag_changer |
11 from devil.utils import reraiser_thread | 12 from devil.utils import reraiser_thread |
12 from pylib import valgrind_tools | 13 from pylib import valgrind_tools |
13 from pylib.base import base_test_result | 14 from pylib.base import base_test_result |
14 from pylib.local.device import local_device_test_run | 15 from pylib.local.device import local_device_test_run |
15 | 16 |
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
256 if r.GetName() == test_name: | 257 if r.GetName() == test_name: |
257 r.SetName(test_display_name) | 258 r.SetName(test_display_name) |
258 if DidPackageCrashOnDevice(self._test_instance.test_package, device): | 259 if DidPackageCrashOnDevice(self._test_instance.test_package, device): |
259 for r in results: | 260 for r in results: |
260 if r.GetType() == base_test_result.ResultType.UNKNOWN: | 261 if r.GetType() == base_test_result.ResultType.UNKNOWN: |
261 r.SetType(base_test_result.ResultType.CRASH) | 262 r.SetType(base_test_result.ResultType.CRASH) |
262 | 263 |
263 if any(r.GetType() not in (base_test_result.ResultType.PASS, | 264 if any(r.GetType() not in (base_test_result.ResultType.PASS, |
264 base_test_result.ResultType.SKIP) | 265 base_test_result.ResultType.SKIP) |
265 for r in results): | 266 for r in results): |
| 267 if self._test_instance.screenshot_dir: |
| 268 file_name = '%s-%s.png' % ( |
| 269 test_display_name, |
| 270 time.strftime('%Y%m%dT%H%M%S', time.localtime())) |
| 271 saved_dir = device.TakeScreenshot( |
| 272 os.path.join(self._test_instance.screenshot_dir, file_name)) |
| 273 logging.info( |
| 274 'Saved screenshot for %s to %s.', |
| 275 test_display_name, saved_dir) |
266 logging.info('detected failure in %s. raw output:', test_display_name) | 276 logging.info('detected failure in %s. raw output:', test_display_name) |
267 for l in output: | 277 for l in output: |
268 logging.info(' %s', l) | 278 logging.info(' %s', l) |
269 if (not self._env.skip_clear_data | 279 if (not self._env.skip_clear_data |
270 and self._test_instance.package_info): | 280 and self._test_instance.package_info): |
271 permissions = ( | 281 permissions = ( |
272 self._test_instance.apk_under_test.GetPermissions() | 282 self._test_instance.apk_under_test.GetPermissions() |
273 if self._test_instance.apk_under_test | 283 if self._test_instance.apk_under_test |
274 else None) | 284 else None) |
275 device.ClearApplicationState(self._test_instance.package_info.package, | 285 device.ClearApplicationState(self._test_instance.package_info.package, |
(...skipping 25 matching lines...) Expand all Loading... |
301 timeout = v | 311 timeout = v |
302 break | 312 break |
303 else: | 313 else: |
304 logging.warning('Using default 1 minute timeout for %s', test_name) | 314 logging.warning('Using default 1 minute timeout for %s', test_name) |
305 timeout = 60 | 315 timeout = 60 |
306 | 316 |
307 timeout *= cls._GetTimeoutScaleFromAnnotations(annotations) | 317 timeout *= cls._GetTimeoutScaleFromAnnotations(annotations) |
308 | 318 |
309 return timeout | 319 return timeout |
310 | 320 |
OLD | NEW |