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()