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

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

Issue 1101603002: [Android] Rework device filtering and add DeviceUtils.HealthyDevices. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: perezju comments Created 5 years, 8 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/adb_install_apk.py ('k') | build/android/host_heartbeat.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 (c) 2013 The Chromium Authors. All rights reserved. 3 # Copyright (c) 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 """Command line tool for forwarding ports from a device to the host. 7 """Command line tool for forwarding ports from a device to the host.
8 8
9 Allows an Android device to connect to services running on the host machine, 9 Allows an Android device to connect to services running on the host machine,
10 i.e., "adb forward" in reverse. Requires |host_forwarder| and |device_forwarder| 10 i.e., "adb forward" in reverse. Requires |host_forwarder| and |device_forwarder|
11 to be built. 11 to be built.
12 """ 12 """
13 13
14 import logging 14 import logging
15 import optparse 15 import optparse
16 import sys 16 import sys
17 import time 17 import time
18 18
19 from pylib import constants 19 from pylib import constants
20 from pylib import forwarder 20 from pylib import forwarder
21 from pylib.device import adb_wrapper 21 from pylib.device import adb_wrapper
22 from pylib.device import device_filter
23 from pylib.device import device_utils 22 from pylib.device import device_utils
24 from pylib.utils import run_tests_helper 23 from pylib.utils import run_tests_helper
25 24
26 25
27 def main(argv): 26 def main(argv):
28 parser = optparse.OptionParser(usage='Usage: %prog [options] device_port ' 27 parser = optparse.OptionParser(usage='Usage: %prog [options] device_port '
29 'host_port [device_port_2 host_port_2] ...', 28 'host_port [device_port_2 host_port_2] ...',
30 description=__doc__) 29 description=__doc__)
31 parser.add_option('-v', 30 parser.add_option('-v',
32 '--verbose', 31 '--verbose',
(...skipping 14 matching lines...) Expand all
47 parser.error('Need even number of port pairs') 46 parser.error('Need even number of port pairs')
48 sys.exit(1) 47 sys.exit(1)
49 48
50 try: 49 try:
51 port_pairs = map(int, args[1:]) 50 port_pairs = map(int, args[1:])
52 port_pairs = zip(port_pairs[::2], port_pairs[1::2]) 51 port_pairs = zip(port_pairs[::2], port_pairs[1::2])
53 except ValueError: 52 except ValueError:
54 parser.error('Bad port number') 53 parser.error('Bad port number')
55 sys.exit(1) 54 sys.exit(1)
56 55
57 devices = adb_wrapper.AdbWrapper.Devices( 56 devices = device_utils.DeviceUtils.HealthyDevices()
58 filters=device_filter.DefaultFilters())
59 57
60 if options.device: 58 if options.device:
61 if options.device not in [d.GetDeviceSerial() for d in devices]: 59 if options.device not in [str(d) for d in devices]:
62 raise Exception('Error: %s not in attached devices %s' % (options.device, 60 raise Exception('Error: %s not in attached devices %s' % (options.device,
63 ','.join(devices))) 61 ','.join(devices)))
64 devices = [options.device] 62 devices = [options.device]
65 else: 63 else:
66 if not devices: 64 if not devices:
67 raise Exception('Error: no connected devices') 65 raise Exception('Error: no connected devices')
68 logging.info('No device specified. Defaulting to %s', devices[0]) 66 logging.info('No device specified. Defaulting to %s', devices[0])
69 67
70 device = device_utils.DeviceUtils(devices[0]) 68 device = devices[0]
71 constants.SetBuildType(options.build_type) 69 constants.SetBuildType(options.build_type)
72 try: 70 try:
73 forwarder.Forwarder.Map(port_pairs, device) 71 forwarder.Forwarder.Map(port_pairs, device)
74 while True: 72 while True:
75 time.sleep(60) 73 time.sleep(60)
76 except KeyboardInterrupt: 74 except KeyboardInterrupt:
77 sys.exit(0) 75 sys.exit(0)
78 finally: 76 finally:
79 forwarder.Forwarder.UnmapAllDevicePorts(device) 77 forwarder.Forwarder.UnmapAllDevicePorts(device)
80 78
81 if __name__ == '__main__': 79 if __name__ == '__main__':
82 main(sys.argv) 80 main(sys.argv)
OLDNEW
« no previous file with comments | « build/android/adb_install_apk.py ('k') | build/android/host_heartbeat.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698