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

Side by Side Diff: build/android/pylib/device/device_errors.py

Issue 839143002: Roll Chrome into Mojo. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Rebase Created 5 years, 11 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/pylib/device/adb_wrapper.py ('k') | build/android/pylib/device/device_utils.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 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 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 """ 5 """
6 Exception classes raised by AdbWrapper and DeviceUtils. 6 Exception classes raised by AdbWrapper and DeviceUtils.
7 """ 7 """
8 8
9 from pylib import cmd_helper 9 from pylib import cmd_helper
10 10
11 11
12 class BaseError(Exception): 12 class BaseError(Exception):
13 """Base exception for all device and command errors.""" 13 """Base exception for all device and command errors."""
14 pass 14 pass
15 15
16 16
17 class CommandFailedError(BaseError): 17 class CommandFailedError(BaseError):
18 """Exception for command failures.""" 18 """Exception for command failures."""
19 19
20 def __init__(self, message, device_serial=None): 20 def __init__(self, message, device_serial=None):
21 if device_serial is not None: 21 if device_serial is not None:
22 message = '(device: %s) %s' % (device_serial, message) 22 message = '(device: %s) %s' % (device_serial, message)
23 self.device_serial = device_serial 23 self.device_serial = device_serial
24 super(CommandFailedError, self).__init__(message) 24 super(CommandFailedError, self).__init__(message)
25 25
26 26
27 class AdbCommandFailedError(CommandFailedError): 27 class AdbCommandFailedError(CommandFailedError):
28 """Exception for adb command failures.""" 28 """Exception for adb command failures."""
29 29
30 def __init__(self, cmd, output, status=None, device_serial=None): 30 def __init__(self, args, output, status=None, device_serial=None,
31 self.cmd = cmd 31 message=None):
32 self.args = args
32 self.output = output 33 self.output = output
33 self.status = status 34 self.status = status
34 message = [] 35 if not message:
35 if self.cmd[0] == 'shell': 36 adb_cmd = ' '.join(cmd_helper.SingleQuote(arg) for arg in self.args)
36 assert len(self.cmd) == 2 37 message = ['adb %s: failed ' % adb_cmd]
37 message.append('adb shell command %r failed with' % self.cmd[1]) 38 if status:
39 message.append('with exit status %s ' % self.status)
40 if output:
41 message.append('and output:\n')
42 message.extend('- %s\n' % line for line in output.splitlines())
43 else:
44 message.append('and no output.')
45 message = ''.join(message)
46 super(AdbCommandFailedError, self).__init__(message, device_serial)
47
48
49 class AdbShellCommandFailedError(AdbCommandFailedError):
50 """Exception for shell command failures run via adb."""
51
52 def __init__(self, command, output, status, device_serial=None):
53 self.command = command
54 message = ['shell command run via adb failed on the device:\n',
55 ' command: %s\n' % command]
56 message.append(' exit status: %s\n' % status)
57 if output:
58 message.append(' output:\n')
59 message.extend(' - %s\n' % line for line in output.splitlines())
38 else: 60 else:
39 command = ' '.join(cmd_helper.SingleQuote(arg) for arg in self.cmd) 61 message.append(" output: ''\n")
40 message.append('adb command %r failed with' % command) 62 message = ''.join(message)
41 if status: 63 super(AdbShellCommandFailedError, self).__init__(
42 message.append(' exit status %d and' % self.status) 64 ['shell', command], output, status, device_serial, message)
43 if output:
44 message.append(' output:\n')
45 message.extend('> %s\n' % line for line in output.splitlines())
46 else:
47 message.append(' no output')
48 super(AdbCommandFailedError, self).__init__(''.join(message), device_serial)
49 65
50 66
51 class CommandTimeoutError(BaseError): 67 class CommandTimeoutError(BaseError):
52 """Exception for command timeouts.""" 68 """Exception for command timeouts."""
53 pass 69 pass
54 70
55 71
56 class DeviceUnreachableError(BaseError): 72 class DeviceUnreachableError(BaseError):
57 """Exception for device unreachable failures.""" 73 """Exception for device unreachable failures."""
58 pass 74 pass
59 75
60 76
61 class NoDevicesError(BaseError): 77 class NoDevicesError(BaseError):
62 """Exception for having no devices attached.""" 78 """Exception for having no devices attached."""
63 79
64 def __init__(self): 80 def __init__(self):
65 super(NoDevicesError, self).__init__('No devices attached.') 81 super(NoDevicesError, self).__init__('No devices attached.')
66 82
OLDNEW
« no previous file with comments | « build/android/pylib/device/adb_wrapper.py ('k') | build/android/pylib/device/device_utils.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698