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

Side by Side Diff: build/android/tombstones.py

Issue 1281923003: [Android] Add --blacklist-file as a command-line option. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix telemetry_unittests Created 5 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
« no previous file with comments | « build/android/test_runner.py ('k') | build/android/update_verification.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # 2 #
3 # Copyright 2013 The Chromium Authors. All rights reserved. 3 # Copyright 2013 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 # 6 #
7 # Find the most recent tombstone file(s) on all connected devices 7 # Find the most recent tombstone file(s) on all connected devices
8 # and prints their stacks. 8 # and prints their stacks.
9 # 9 #
10 # Assumes tombstone file was created with current symbols. 10 # Assumes tombstone file was created with current symbols.
11 11
12 import datetime 12 import datetime
13 import itertools 13 import itertools
14 import logging 14 import logging
15 import multiprocessing 15 import multiprocessing
16 import os 16 import os
17 import re 17 import re
18 import subprocess 18 import subprocess
19 import sys 19 import sys
20 import optparse 20 import optparse
21 21
22 from pylib.device import adb_wrapper 22 from pylib.device import adb_wrapper
23 from pylib.device import device_blacklist
23 from pylib.device import device_errors 24 from pylib.device import device_errors
24 from pylib.device import device_utils 25 from pylib.device import device_utils
25 from pylib.utils import run_tests_helper 26 from pylib.utils import run_tests_helper
26 27
27 28
28 _TZ_UTC = {'TZ': 'UTC'} 29 _TZ_UTC = {'TZ': 'UTC'}
29 30
30 def _ListTombstones(device): 31 def _ListTombstones(device):
31 """List the tombstone files on the device. 32 """List the tombstone files on the device.
32 33
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 def main(): 216 def main():
216 custom_handler = logging.StreamHandler(sys.stdout) 217 custom_handler = logging.StreamHandler(sys.stdout)
217 custom_handler.setFormatter(run_tests_helper.CustomFormatter()) 218 custom_handler.setFormatter(run_tests_helper.CustomFormatter())
218 logging.getLogger().addHandler(custom_handler) 219 logging.getLogger().addHandler(custom_handler)
219 logging.getLogger().setLevel(logging.INFO) 220 logging.getLogger().setLevel(logging.INFO)
220 221
221 parser = optparse.OptionParser() 222 parser = optparse.OptionParser()
222 parser.add_option('--device', 223 parser.add_option('--device',
223 help='The serial number of the device. If not specified ' 224 help='The serial number of the device. If not specified '
224 'will use all devices.') 225 'will use all devices.')
226 parser.add_option('--blacklist-file', help='Device blacklist JSON file.')
225 parser.add_option('-a', '--all-tombstones', action='store_true', 227 parser.add_option('-a', '--all-tombstones', action='store_true',
226 help="""Resolve symbols for all tombstones, rather than just 228 help="""Resolve symbols for all tombstones, rather than just
227 the most recent""") 229 the most recent""")
228 parser.add_option('-s', '--stack', action='store_true', 230 parser.add_option('-s', '--stack', action='store_true',
229 help='Also include symbols for stack data') 231 help='Also include symbols for stack data')
230 parser.add_option('-w', '--wipe-tombstones', action='store_true', 232 parser.add_option('-w', '--wipe-tombstones', action='store_true',
231 help='Erase all tombstones from device after processing') 233 help='Erase all tombstones from device after processing')
232 parser.add_option('-j', '--jobs', type='int', 234 parser.add_option('-j', '--jobs', type='int',
233 default=4, 235 default=4,
234 help='Number of jobs to use when processing multiple ' 236 help='Number of jobs to use when processing multiple '
235 'crash stacks.') 237 'crash stacks.')
236 options, _ = parser.parse_args() 238 options, _ = parser.parse_args()
237 239
240 if options.blacklist_file:
241 blacklist = device_blacklist.Blacklist(options.blacklist_file)
242 else:
243 blacklist = None
244
238 if options.device: 245 if options.device:
239 devices = [device_utils.DeviceUtils(options.device)] 246 devices = [device_utils.DeviceUtils(options.device)]
240 else: 247 else:
241 devices = device_utils.DeviceUtils.HealthyDevices() 248 devices = device_utils.DeviceUtils.HealthyDevices(blacklist)
242 249
243 # This must be done serially because strptime can hit a race condition if 250 # This must be done serially because strptime can hit a race condition if
244 # used for the first time in a multithreaded environment. 251 # used for the first time in a multithreaded environment.
245 # http://bugs.python.org/issue7980 252 # http://bugs.python.org/issue7980
246 tombstones = [] 253 tombstones = []
247 for device in devices: 254 for device in devices:
248 tombstones += _GetTombstonesForDevice(device, options) 255 tombstones += _GetTombstonesForDevice(device, options)
249 256
250 _ResolveTombstones(options.jobs, tombstones) 257 _ResolveTombstones(options.jobs, tombstones)
251 258
252 259
253 if __name__ == '__main__': 260 if __name__ == '__main__':
254 sys.exit(main()) 261 sys.exit(main())
OLDNEW
« no previous file with comments | « build/android/test_runner.py ('k') | build/android/update_verification.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698