Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(31)

Side by Side Diff: build/android/pylib/local/device/local_device_instrumentation_test_run.py

Issue 2854823007: Move screenshot capture to Java-side. (Closed)
Patch Set: Move screenshot capture to Java-side. Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 os
7 import posixpath 7 import posixpath
8 import re 8 import re
9 import time 9 import time
10 10
(...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 # - clearing the application state while persisting permissions 379 # - clearing the application state while persisting permissions
380 if any(r.GetType() not in (base_test_result.ResultType.PASS, 380 if any(r.GetType() not in (base_test_result.ResultType.PASS,
381 base_test_result.ResultType.SKIP) 381 base_test_result.ResultType.SKIP)
382 for r in results): 382 for r in results):
383 with contextlib_ext.Optional( 383 with contextlib_ext.Optional(
384 tempfile_ext.NamedTemporaryDirectory(), 384 tempfile_ext.NamedTemporaryDirectory(),
385 self._test_instance.screenshot_dir is None and 385 self._test_instance.screenshot_dir is None and
386 self._test_instance.gs_results_bucket) as screenshot_host_dir: 386 self._test_instance.gs_results_bucket) as screenshot_host_dir:
387 screenshot_host_dir = ( 387 screenshot_host_dir = (
388 self._test_instance.screenshot_dir or screenshot_host_dir) 388 self._test_instance.screenshot_dir or screenshot_host_dir)
389
389 if screenshot_host_dir: 390 if screenshot_host_dir:
390 file_name = '%s-%s.png' % ( 391 screenshot_device_file = posixpath.join(
391 test_display_name, 392 device.GetExternalStoragePath(),
392 time.strftime('%Y%m%dT%H%M%S-UTC', time.gmtime())) 393 'chromium_tests_root',
jbudorick 2017/05/05 01:21:58 If I don't like hard-coding things, I *really* don
mikecase (-- gone --) 2017/05/05 18:09:19 Changed --screenshot-dir arg to just --screenshot-
393 screenshot_file = device.TakeScreenshot( 394 instrumentation_test_instance.FAILURE_SCREENSHOT_SUBDIR,
394 os.path.join(screenshot_host_dir, file_name)) 395 'failure.png')
395 logging.info( 396 screenshot_host_file = os.path.join(
396 'Saved screenshot for %s to %s.', 397 screenshot_host_dir,
397 test_display_name, screenshot_file) 398 '%s-%s.png' % (
398 if self._test_instance.gs_results_bucket: 399 test_display_name,
399 link = google_storage_helper.upload( 400 time.strftime('%Y%m%dT%H%M%S-UTC', time.gmtime())))
400 google_storage_helper.unique_name('screenshot', device=device), 401 if device.FileExists(screenshot_device_file):
401 screenshot_file, 402 device.PullFile(screenshot_device_file, screenshot_host_file)
402 bucket=self._test_instance.gs_results_bucket + '/screenshots') 403 device.RemovePath(screenshot_device_file)
jbudorick 2017/05/05 01:21:58 We should try to remove the file even if pulling i
mikecase (-- gone --) 2017/05/05 18:09:19 sounds good. Done
403 for result in results: 404
404 result.SetLink('post_test_screenshot', link) 405 logging.info(
406 'Saved screenshot for %s to %s.',
407 test_display_name, screenshot_host_file)
408 if self._test_instance.gs_results_bucket:
409 link = google_storage_helper.upload(
410 google_storage_helper.unique_name(
411 'screenshot', device=device),
412 screenshot_host_file,
413 bucket=self._test_instance.gs_results_bucket + '/screenshots')
jbudorick 2017/05/05 01:21:58 nit: '%s/screenshots' % self._test_instance.gs_res
414 for result in results:
415 result.SetLink('post_test_screenshot', link)
405 416
406 logging.info('detected failure in %s. raw output:', test_display_name) 417 logging.info('detected failure in %s. raw output:', test_display_name)
407 for l in output: 418 for l in output:
408 logging.info(' %s', l) 419 logging.info(' %s', l)
409 if (not self._env.skip_clear_data 420 if (not self._env.skip_clear_data
410 and self._test_instance.package_info): 421 and self._test_instance.package_info):
411 permissions = ( 422 permissions = (
412 self._test_instance.apk_under_test.GetPermissions() 423 self._test_instance.apk_under_test.GetPermissions()
413 if self._test_instance.apk_under_test 424 if self._test_instance.apk_under_test
414 else None) 425 else None)
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
470 if k in annotations: 481 if k in annotations:
471 timeout = v 482 timeout = v
472 break 483 break
473 else: 484 else:
474 logging.warning('Using default 1 minute timeout for %s', test_name) 485 logging.warning('Using default 1 minute timeout for %s', test_name)
475 timeout = 60 486 timeout = 60
476 487
477 timeout *= cls._GetTimeoutScaleFromAnnotations(annotations) 488 timeout *= cls._GetTimeoutScaleFromAnnotations(annotations)
478 489
479 return timeout 490 return timeout
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698