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

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

Issue 2144823003: [Android] Blacklist devices on failures during environment set up + tear down. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 4 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 2016 The Chromium Authors. All rights reserved. 1 # Copyright 2016 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 io 5 import io
6 import json 6 import json
7 import logging 7 import logging
8 import os 8 import os
9 import pickle 9 import pickle
10 import shutil 10 import shutil
11 import tempfile 11 import tempfile
12 import time 12 import time
13 import zipfile 13 import zipfile
14 14
15 from devil.android import battery_utils 15 from devil.android import battery_utils
16 from devil.android import device_errors 16 from devil.android import device_errors
17 from devil.android import device_list 17 from devil.android import device_list
18 from devil.android import device_utils 18 from devil.android import device_utils
19 from devil.android import forwarder 19 from devil.android import forwarder
20 from devil.android.tools import device_recovery 20 from devil.android.tools import device_recovery
21 from devil.android.tools import device_status 21 from devil.android.tools import device_status
22 from devil.utils import cmd_helper 22 from devil.utils import cmd_helper
23 from devil.utils import parallelizer 23 from devil.utils import parallelizer
24 from pylib import constants 24 from pylib import constants
25 from pylib.base import base_test_result 25 from pylib.base import base_test_result
26 from pylib.constants import host_paths 26 from pylib.constants import host_paths
27 from pylib.local.device import local_device_environment
27 from pylib.local.device import local_device_test_run 28 from pylib.local.device import local_device_test_run
28 29
29 30
30 class TestShard(object): 31 class TestShard(object):
31 def __init__( 32 def __init__(
32 self, env, test_instance, device, index, tests, retries=3, timeout=None): 33 self, env, test_instance, device, index, tests, retries=3, timeout=None):
33 logging.info('Create shard %s for device %s to run the following tests:', 34 logging.info('Create shard %s for device %s to run the following tests:',
34 index, device) 35 index, device)
35 for t in tests: 36 for t in tests:
36 logging.info(' %s', t) 37 logging.info(' %s', t)
37 self._battery = battery_utils.BatteryUtils(device) 38 self._battery = battery_utils.BatteryUtils(device)
38 self._device = device 39 self._device = device
39 self._env = env 40 self._env = env
40 self._index = index 41 self._index = index
41 self._output_dir = None 42 self._output_dir = None
42 self._retries = retries 43 self._retries = retries
43 self._test_instance = test_instance 44 self._test_instance = test_instance
44 self._tests = tests 45 self._tests = tests
45 self._timeout = timeout 46 self._timeout = timeout
46 47
47 @local_device_test_run.handle_shard_failures 48 @local_device_environment.handle_shard_failures
48 def RunTestsOnShard(self): 49 def RunTestsOnShard(self):
49 results = base_test_result.TestRunResults() 50 results = base_test_result.TestRunResults()
50 for test in self._tests: 51 for test in self._tests:
51 tries_left = self._retries 52 tries_left = self._retries
52 result_type = None 53 result_type = None
53 while (result_type != base_test_result.ResultType.PASS 54 while (result_type != base_test_result.ResultType.PASS
54 and tries_left > 0): 55 and tries_left > 0):
55 try: 56 try:
56 self._TestSetUp(test) 57 self._TestSetUp(test)
57 result_type = self._RunSingleTest(test) 58 result_type = self._RunSingleTest(test)
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after
373 # override 374 # override
374 def _RunTest(self, _device, _test): 375 def _RunTest(self, _device, _test):
375 raise NotImplementedError 376 raise NotImplementedError
376 377
377 378
378 class TestDictVersionError(Exception): 379 class TestDictVersionError(Exception):
379 pass 380 pass
380 381
381 class PerfTestRunGetStepsError(Exception): 382 class PerfTestRunGetStepsError(Exception):
382 pass 383 pass
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698