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

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

Issue 386053002: [Android] Switch to DeviceUtils versions of GetPid, TakeScreenshot, and GetIoStats. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: pre-review cleanup Created 6 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
« no previous file with comments | « no previous file | build/android/pylib/device/device_utils_test.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 """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 582 matching lines...) Expand 10 before | Expand all | Expand 10 after
593 Args: 593 Args:
594 property_name: A string containing the name of the property to set on 594 property_name: A string containing the name of the property to set on
595 the device. 595 the device.
596 value: A string containing the value to set to the property on the 596 value: A string containing the value to set to the property on the
597 device. 597 device.
598 timeout: Same as for |IsOnline|. 598 timeout: Same as for |IsOnline|.
599 retries: Same as for |IsOnline|. 599 retries: Same as for |IsOnline|.
600 """ 600 """
601 self.old_interface.system_properties[property_name] = value 601 self.old_interface.system_properties[property_name] = value
602 602
603 @decorators.WithTimeoutAndRetriesFromInstance()
604 def GetPid(self, process_name, timeout=None, retries=None):
frankf 2014/07/11 20:22:53 this should be plural to match the return value
jbudorick 2014/07/14 16:15:11 Done.
605 """Returns the PIDs of processes with the given name.
606
607 Note that the |process_name| is often the package name.
frankf 2014/07/11 20:29:07 Also isn't this the app package name and not the p
jbudorick 2014/07/14 16:15:11 Not necessarily, though it can be, e.g. these can
608
609 Args:
610 process_name: A string containing the process name to get the PIDs for.
611 timeout: Same as for |IsOnline|.
frankf 2014/07/11 20:22:53 I'd change all these to: timeout: timeout in <som
jbudorick 2014/07/14 16:15:11 I don't really have an objection to this, but...
frankf 2014/07/14 17:04:10 Yea, the spirit of that comment was to cut down on
jbudorick 2014/07/15 15:52:56 Makes sense.
612 retries: Same as for |IsOnline|.
613 Returns:
614 A list containing the PIDs of processes with the given name.
frankf 2014/07/11 20:22:53 are there any assumptions on the ordering here? Fo
jbudorick 2014/07/14 16:15:11 I don't think that the interface should guarantee
frankf 2014/07/14 17:04:10 For example, in monkey test runner, we take the fi
jbudorick 2014/07/15 15:52:56 Ah, ok. Switched to having GetPids return a dict
615 """
frankf 2014/07/11 20:22:53 you should add raises section to all methods
jbudorick 2014/07/14 16:15:11 Done.
616 return self.old_interface.ExtractPid(process_name)
617
618 @decorators.WithTimeoutAndRetriesFromInstance()
619 def TakeScreenshot(self, host_path=None, timeout=None, retries=None):
620 """Takes a screenshot of the device.
621
622 Args:
623 host_path: A string containing the path on the host to save the
624 screenshot to. If None, a file name will be generated.
frankf 2014/07/11 20:22:53 is this a temp file?
jbudorick 2014/07/14 16:15:11 No. The AndroidCommands implementation uses ${PWD
frankf 2014/07/14 17:04:10 So my point was: is the user expected to clean thi
jbudorick 2014/07/15 15:52:56 Yes, the user is expected to clean up the screensh
625 timeout: Same as for |IsOnline|.
626 retries: Same as for |IsOnline|.
627 Returns:
628 The name of the file on the host to which the screenshot was saved.
629 """
630 return self.old_interface.TakeScreenshot(host_path)
631
632 @decorators.WithTimeoutAndRetriesFromInstance()
633 def GetIOStats(self, timeout=None, retries=None):
634 """Gets cumulative disk IO stats since boot for all processes.
635
636 Args:
637 timeout: Same as for |IsOnline|.
638 retries: Same as for |IsOnline|.
639 Returns:
640 A dict containing |num_reads|, |num_writes|, |read_ms|, and |write_ms|.
641 """
642 return self.old_interface.GetIoStats()
643
603 def __str__(self): 644 def __str__(self):
604 """Returns the device serial.""" 645 """Returns the device serial."""
605 return self.old_interface.GetDevice() 646 return self.old_interface.GetDevice()
606 647
607 @staticmethod 648 @staticmethod
608 def parallel(devices=None, async=False): 649 def parallel(devices=None, async=False):
609 """Creates a Parallelizer to operate over the provided list of devices. 650 """Creates a Parallelizer to operate over the provided list of devices.
610 651
611 If |devices| is either |None| or an empty list, the Parallelizer will 652 If |devices| is either |None| or an empty list, the Parallelizer will
612 operate over all attached devices. 653 operate over all attached devices.
613 654
614 Args: 655 Args:
615 devices: A list of either DeviceUtils instances or objects from 656 devices: A list of either DeviceUtils instances or objects from
616 from which DeviceUtils instances can be constructed. If None, 657 from which DeviceUtils instances can be constructed. If None,
617 all attached devices will be used. 658 all attached devices will be used.
618 async: If true, returns a Parallelizer that runs operations 659 async: If true, returns a Parallelizer that runs operations
619 asynchronously. 660 asynchronously.
620 Returns: 661 Returns:
621 A Parallelizer operating over |devices|. 662 A Parallelizer operating over |devices|.
622 """ 663 """
623 if not devices or len(devices) == 0: 664 if not devices or len(devices) == 0:
624 devices = pylib.android_commands.GetAttachedDevices() 665 devices = pylib.android_commands.GetAttachedDevices()
625 parallelizer_type = (parallelizer.Parallelizer if async 666 parallelizer_type = (parallelizer.Parallelizer if async
626 else parallelizer.SyncParallelizer) 667 else parallelizer.SyncParallelizer)
627 return parallelizer_type([ 668 return parallelizer_type([
628 d if isinstance(d, DeviceUtils) else DeviceUtils(d) 669 d if isinstance(d, DeviceUtils) else DeviceUtils(d)
629 for d in devices]) 670 for d in devices])
630 671
OLDNEW
« no previous file with comments | « no previous file | build/android/pylib/device/device_utils_test.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698