Home | History | Annotate | Download | only in brillo_PowerMgmtInterfaces
      1 # Copyright 2016 The Chromium OS Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 import logging
      6 import os
      7 
      8 import common
      9 from autotest_lib.client.common_lib import error
     10 from autotest_lib.server import test
     11 
     12 class brillo_PowerMgmtInterfaces(test.test):
     13     """Verify presence of required power management kernel interfaces."""
     14     version = 1
     15 
     16     def check_cpuidle(self, host):
     17         cpuidle_driver = host.run_output('cat /sys/devices/system/cpu/cpuidle/current_driver')
     18 
     19         if cpuidle_driver == 'none' or cpuidle_driver == '':
     20             raise error.testFail('no cpuidle driver registered')
     21 
     22     def check_cpufreq(self, host):
     23         cpufreq_governors = host.run_output('cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors')
     24 
     25         if cpufreq_governors == '':
     26             raise error.testFail('no cpufreq governors registered')
     27 
     28     def check_wakelocks(self, host):
     29         wakelock_ls = host.run_output('ls /sys/power/wake_lock')
     30 
     31     def check_suspend(self, host):
     32         pm_states = host.run_output('cat /sys/power/state')
     33         if pm_states.find("mem") == -1:
     34             raise error.testFail('suspend-to-mem not supported')
     35 
     36     def run_once(self, host):
     37         """Run the Brillo power management kernel interfaces presence test.
     38 
     39         @param host: a host object representing the DUT.
     40 
     41         """
     42         self.check_cpuidle(host)
     43         self.check_cpufreq(host)
     44         self.check_wakelocks(host)
     45         self.check_suspend(host)
     46