CHERRY-PICK: power_Resume: Make sure power manager is started.
The resume test requires that powerm service is started.
BUG=None
TEST=Manual run power_Resume on factory image.
Reviewed-on: https://gerrit.chromium.org/gerrit/32512
Reviewed-by: Ricky Liang <jcliang@chromium.org>
Tested-by: Ricky Liang <jcliang@chromium.org>
(cherry picked from commit da300a876d4168b22748504eb07c6f24fe7b3411)
Change-Id: If514665d6329de85c323d5cdee57190eda55ceb2
Reviewed-on: https://gerrit.chromium.org/gerrit/32531
Reviewed-by: Ricky Liang <jcliang@chromium.org>
Tested-by: Ricky Liang <jcliang@chromium.org>
diff --git a/client/site_tests/power_Resume/power_Resume.py b/client/site_tests/power_Resume/power_Resume.py
index 2d4d31b..78ccb33 100644
--- a/client/site_tests/power_Resume/power_Resume.py
+++ b/client/site_tests/power_Resume/power_Resume.py
@@ -11,6 +11,29 @@
import flimflam
+def switch_service(service, status):
+ '''Probes current status of service and turns it into status.
+ Args:
+ service: Service name, e.g. powerd or powerm.
+ status: True/False. The intended status of that service.
+ Return:
+ True/False: The current status of service before switching.
+ None: Can not decide current status of service.
+ '''
+ status_probe = utils.system_output(
+ 'status %s | cut -d" " -f2' % service).strip()
+ if status_probe == 'start/running,':
+ if not status:
+ utils.system('stop %s' % service)
+ return True
+ elif status_probe == 'stop/waiting':
+ if status:
+ utils.system('start %s' % service)
+ return False
+ else:
+ return None
+
+
class power_Resume(test.test):
version = 1
preserve_srcdir = True
@@ -268,6 +291,8 @@
logging.error('Could not disconnect: %s.' % status)
disconnect_3G_time = -1
+ original_powerm_status = switch_service('powerm', True)
+
self._enable_pm_print_times()
# Some idle time before initiating suspend-to-ram
idle_time = random.randint(1, 10)
@@ -352,6 +377,8 @@
self.write_perf_keyval(results)
+ switch_service('powerm', original_powerm_status)
+
def cleanup(self):
self._disable_pm_print_times()