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

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

Issue 434193002: [Android] Parallelize provision_devices.py. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 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
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 """Provides a variety of device interactions based on adb. 5 """Provides a variety of device interactions based on adb.
6 6
7 Eventually, this will be based on adb_wrapper. 7 Eventually, this will be based on adb_wrapper.
8 """ 8 """
9 # pylint: disable=W0613 9 # pylint: disable=W0613
10 10
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 Args: 53 Args:
54 device: Either a device serial, an existing AdbWrapper instance, an 54 device: Either a device serial, an existing AdbWrapper instance, an
55 an existing AndroidCommands instance, or nothing. 55 an existing AndroidCommands instance, or nothing.
56 default_timeout: An integer containing the default number of seconds to 56 default_timeout: An integer containing the default number of seconds to
57 wait for an operation to complete if no explicit value 57 wait for an operation to complete if no explicit value
58 is provided. 58 is provided.
59 default_retries: An integer containing the default number or times an 59 default_retries: An integer containing the default number or times an
60 operation should be retried on failure if no explicit 60 operation should be retried on failure if no explicit
61 value is provided. 61 value is provided.
62 """ 62 """
63 self.adb = None
63 self.old_interface = None 64 self.old_interface = None
64 if isinstance(device, basestring): 65 if isinstance(device, basestring):
66 self.adb = adb_wrapper.AdbWrapper(device)
65 self.old_interface = pylib.android_commands.AndroidCommands(device) 67 self.old_interface = pylib.android_commands.AndroidCommands(device)
66 elif isinstance(device, adb_wrapper.AdbWrapper): 68 elif isinstance(device, adb_wrapper.AdbWrapper):
69 self.adb = device
67 self.old_interface = pylib.android_commands.AndroidCommands(str(device)) 70 self.old_interface = pylib.android_commands.AndroidCommands(str(device))
68 elif isinstance(device, pylib.android_commands.AndroidCommands): 71 elif isinstance(device, pylib.android_commands.AndroidCommands):
72 self.adb = adb_wrapper.AdbWrapper(device.GetDevice())
69 self.old_interface = device 73 self.old_interface = device
70 elif not device: 74 elif not device:
71 self.old_interface = pylib.android_commands.AndroidCommands() 75 self.old_interface = pylib.android_commands.AndroidCommands()
72 else: 76 else:
73 raise ValueError('Unsupported type passed for argument "device"') 77 raise ValueError('Unsupported type passed for argument "device"')
74 self._default_timeout = default_timeout 78 self._default_timeout = default_timeout
75 self._default_retries = default_retries 79 self._default_retries = default_retries
76 assert(hasattr(self, decorators.DEFAULT_TIMEOUT_ATTR)) 80 assert(hasattr(self, decorators.DEFAULT_TIMEOUT_ATTR))
77 assert(hasattr(self, decorators.DEFAULT_RETRIES_ATTR)) 81 assert(hasattr(self, decorators.DEFAULT_RETRIES_ATTR))
78 82
(...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after
694 property_name: A string containing the name of the property to set on 698 property_name: A string containing the name of the property to set on
695 the device. 699 the device.
696 value: A string containing the value to set to the property on the 700 value: A string containing the value to set to the property on the
697 device. 701 device.
698 timeout: timeout in seconds 702 timeout: timeout in seconds
699 retries: number of retries 703 retries: number of retries
700 704
701 Raises: 705 Raises:
702 CommandTimeoutError on timeout. 706 CommandTimeoutError on timeout.
703 """ 707 """
708 is_persist_property = property_name.startswith('persist.')
709 if is_persist_property:
710 self._RunShellCommandImpl('stop')
tonyg 2014/08/15 17:19:43 Seems like this should be in system_properties, no
jbudorick 2014/08/15 17:41:47 It could be, although I'm plotting to get rid of s
704 self.old_interface.system_properties[property_name] = value 711 self.old_interface.system_properties[property_name] = value
712 if is_persist_property:
713 self.adb.WaitForDevice()
714 self._RunShellCommandImpl('start')
715 self.old_interface.WaitForDevicePm()
705 716
706 @decorators.WithTimeoutAndRetriesFromInstance() 717 @decorators.WithTimeoutAndRetriesFromInstance()
707 def GetPids(self, process_name, timeout=None, retries=None): 718 def GetPids(self, process_name, timeout=None, retries=None):
708 """Returns the PIDs of processes with the given name. 719 """Returns the PIDs of processes with the given name.
709 720
710 Note that the |process_name| is often the package name. 721 Note that the |process_name| is often the package name.
711 722
712 Args: 723 Args:
713 process_name: A string containing the process name to get the PIDs for. 724 process_name: A string containing the process name to get the PIDs for.
714 timeout: timeout in seconds 725 timeout: timeout in seconds
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
815 A Parallelizer operating over |devices|. 826 A Parallelizer operating over |devices|.
816 """ 827 """
817 if not devices or len(devices) == 0: 828 if not devices or len(devices) == 0:
818 devices = pylib.android_commands.GetAttachedDevices() 829 devices = pylib.android_commands.GetAttachedDevices()
819 parallelizer_type = (parallelizer.Parallelizer if async 830 parallelizer_type = (parallelizer.Parallelizer if async
820 else parallelizer.SyncParallelizer) 831 else parallelizer.SyncParallelizer)
821 return parallelizer_type([ 832 return parallelizer_type([
822 d if isinstance(d, DeviceUtils) else DeviceUtils(d) 833 d if isinstance(d, DeviceUtils) else DeviceUtils(d)
823 for d in devices]) 834 for d in devices])
824 835
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698