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

Side by Side Diff: build/android/pylib/local/device/local_device_instrumentation_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, 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 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
11 from devil.android import device_errors 11 from devil.android import device_errors
12 from devil.android import flag_changer 12 from devil.android import flag_changer
13 from devil.utils import reraiser_thread 13 from devil.utils import reraiser_thread
14 from pylib import valgrind_tools 14 from pylib import valgrind_tools
15 from pylib.base import base_test_result 15 from pylib.base import base_test_result
16 from pylib.local.device import local_device_environment
16 from pylib.local.device import local_device_test_run 17 from pylib.local.device import local_device_test_run
17 18
18 19
19 TIMEOUT_ANNOTATIONS = [ 20 TIMEOUT_ANNOTATIONS = [
20 ('Manual', 10 * 60 * 60), 21 ('Manual', 10 * 60 * 60),
21 ('IntegrationTest', 30 * 60), 22 ('IntegrationTest', 30 * 60),
22 ('External', 10 * 60), 23 ('External', 10 * 60),
23 ('EnormousTest', 10 * 60), 24 ('EnormousTest', 10 * 60),
24 ('LargeTest', 5 * 60), 25 ('LargeTest', 5 * 60),
25 ('MediumTest', 3 * 60), 26 ('MediumTest', 3 * 60),
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 61
61 def SetUp(self): 62 def SetUp(self):
62 def substitute_device_root(d, device_root): 63 def substitute_device_root(d, device_root):
63 if not d: 64 if not d:
64 return device_root 65 return device_root
65 elif isinstance(d, list): 66 elif isinstance(d, list):
66 return posixpath.join(p if p else device_root for p in d) 67 return posixpath.join(p if p else device_root for p in d)
67 else: 68 else:
68 return d 69 return d
69 70
70 @local_device_test_run.handle_shard_failures_with( 71 @local_device_environment.handle_shard_failures_with(
71 self._env.BlacklistDevice) 72 self._env.BlacklistDevice)
72 def individual_device_set_up(dev, host_device_tuples): 73 def individual_device_set_up(dev, host_device_tuples):
73 def install_apk(): 74 def install_apk():
74 if self._test_instance.apk_under_test: 75 if self._test_instance.apk_under_test:
75 if self._test_instance.apk_under_test_incremental_install_script: 76 if self._test_instance.apk_under_test_incremental_install_script:
76 local_device_test_run.IncrementalInstall( 77 local_device_test_run.IncrementalInstall(
77 dev, 78 dev,
78 self._test_instance.apk_under_test, 79 self._test_instance.apk_under_test,
79 self._test_instance.apk_under_test_incremental_install_script) 80 self._test_instance.apk_under_test_incremental_install_script)
80 else: 81 else:
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 reraiser_thread.RunAsync(steps) 142 reraiser_thread.RunAsync(steps)
142 else: 143 else:
143 for step in steps: 144 for step in steps:
144 step() 145 step()
145 146
146 self._env.parallel_devices.pMap( 147 self._env.parallel_devices.pMap(
147 individual_device_set_up, 148 individual_device_set_up,
148 self._test_instance.GetDataDependencies()) 149 self._test_instance.GetDataDependencies())
149 150
150 def TearDown(self): 151 def TearDown(self):
151 @local_device_test_run.handle_shard_failures_with( 152 @local_device_environment.handle_shard_failures_with(
152 self._env.BlacklistDevice) 153 self._env.BlacklistDevice)
153 def individual_device_tear_down(dev): 154 def individual_device_tear_down(dev):
154 if str(dev) in self._flag_changers: 155 if str(dev) in self._flag_changers:
155 self._flag_changers[str(dev)].Restore() 156 self._flag_changers[str(dev)].Restore()
156 157
157 # Remove package-specific configuration 158 # Remove package-specific configuration
158 dev.RunShellCommand(['am', 'clear-debug-app'], check_return=True) 159 dev.RunShellCommand(['am', 'clear-debug-app'], check_return=True)
159 160
160 valgrind_tools.SetChromeTimeoutScale(dev, None) 161 valgrind_tools.SetChromeTimeoutScale(dev, None)
161 162
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
360 timeout = v 361 timeout = v
361 break 362 break
362 else: 363 else:
363 logging.warning('Using default 1 minute timeout for %s', test_name) 364 logging.warning('Using default 1 minute timeout for %s', test_name)
364 timeout = 60 365 timeout = 60
365 366
366 timeout *= cls._GetTimeoutScaleFromAnnotations(annotations) 367 timeout *= cls._GetTimeoutScaleFromAnnotations(annotations)
367 368
368 return timeout 369 return timeout
369 370
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698