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

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: Created 4 years, 5 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_blacklist 16 from devil.android import device_blacklist
17 from devil.android import device_errors 17 from devil.android import device_errors
18 from devil.android import device_list 18 from devil.android import device_list
19 from devil.android import device_utils 19 from devil.android import device_utils
20 from devil.android import forwarder 20 from devil.android import forwarder
21 from devil.android.tools import device_recovery 21 from devil.android.tools import device_recovery
22 from devil.android.tools import device_status 22 from devil.android.tools import device_status
23 from devil.utils import cmd_helper 23 from devil.utils import cmd_helper
24 from devil.utils import parallelizer 24 from devil.utils import parallelizer
25 from pylib import constants 25 from pylib import constants
26 from pylib.base import base_test_result 26 from pylib.base import base_test_result
27 from pylib.constants import host_paths 27 from pylib.constants import host_paths
28 from pylib.local.device import local_device_environment
28 from pylib.local.device import local_device_test_run 29 from pylib.local.device import local_device_test_run
29 30
30 31
31 class TestShard(object): 32 class TestShard(object):
32 def __init__( 33 def __init__(
33 self, env, test_instance, device, index, tests, retries=3, timeout=None): 34 self, env, test_instance, device, index, tests, retries=3, timeout=None):
34 logging.info('Create shard %s for device %s to run the following tests:', 35 logging.info('Create shard %s for device %s to run the following tests:',
35 index, device) 36 index, device)
36 for t in tests: 37 for t in tests:
37 logging.info(' %s', t) 38 logging.info(' %s', t)
38 self._battery = battery_utils.BatteryUtils(device) 39 self._battery = battery_utils.BatteryUtils(device)
39 self._device = device 40 self._device = device
40 self._env = env 41 self._env = env
41 self._index = index 42 self._index = index
42 self._output_dir = None 43 self._output_dir = None
43 self._retries = retries 44 self._retries = retries
44 self._test_instance = test_instance 45 self._test_instance = test_instance
45 self._tests = tests 46 self._tests = tests
46 self._timeout = timeout 47 self._timeout = timeout
47 48
48 @local_device_test_run.handle_shard_failures 49 @local_device_environment.handle_shard_failures
49 def RunTestsOnShard(self): 50 def RunTestsOnShard(self):
50 results = base_test_result.TestRunResults() 51 results = base_test_result.TestRunResults()
51 for test in self._tests: 52 for test in self._tests:
52 tries_left = self._retries 53 tries_left = self._retries
53 result_type = None 54 result_type = None
54 while (result_type != base_test_result.ResultType.PASS 55 while (result_type != base_test_result.ResultType.PASS
55 and tries_left > 0): 56 and tries_left > 0):
56 try: 57 try:
57 self._TestSetUp(test) 58 self._TestSetUp(test)
58 result_type = self._RunSingleTest(test) 59 result_type = self._RunSingleTest(test)
(...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 # override 378 # override
378 def _RunTest(self, _device, _test): 379 def _RunTest(self, _device, _test):
379 raise NotImplementedError 380 raise NotImplementedError
380 381
381 382
382 class TestDictVersionError(Exception): 383 class TestDictVersionError(Exception):
383 pass 384 pass
384 385
385 class PerfTestRunGetStepsError(Exception): 386 class PerfTestRunGetStepsError(Exception):
386 pass 387 pass
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698