1# Copyright (c) 2013 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 5import os, time 6 7from autotest_lib.client.bin import test 8from autotest_lib.client.common_lib import error 9from autotest_lib.client.common_lib.cros import chrome 10from autotest_lib.client.cros import power_suspend, power_utils 11 12 13class dummy_IdleSuspend(test.test): 14 """ 15 This is not a complete test. It is a dummy test that must be run in parallel 16 with power_SuspendStress(method='idle') to control powerd idle values and 17 perform a login. 18 """ 19 version = 1 20 21 _IDLE_TIMINGS = { 22 'disable_idle_suspend': 0, 23 'ignore_external_policy': 1, 24 'unplugged_dim_ms': 4000, 25 'unplugged_off_ms': 6000, 26 'unplugged_suspend_ms': 8000, 27 'plugged_dim_ms': 4000, 28 'plugged_off_ms': 6000, 29 'plugged_suspend_ms': 8000, 30 } 31 32 # Don't wait longer than this to start... if power_SuspendStress died before 33 # creating the HWCLOCK_FILE, we might otherwise wait forever 34 _TEST_START_TIMEOUT = 70 35 36 def run_once(self): 37 with chrome.Chrome(): 38 # Just idle while power_SuspendStress does all the work. Existence 39 # of the HWCLOCK_FILE tells us when it starts and when it's done. 40 for _ in xrange(self._TEST_START_TIMEOUT): 41 time.sleep(1) 42 if os.path.exists(power_suspend.Suspender.HWCLOCK_FILE): 43 break 44 else: 45 raise error.TestError("Parallel test didn't create Suspender.") 46 47 # These must not be enabled too soon, or the system might suspend 48 # before a wakeup is scheduled. They must not be disabled too late 49 # either, or we might suspend again after the parallel test is done. 50 power_prefs = power_utils.PowerPrefChanger(self._IDLE_TIMINGS) 51 52 while os.path.exists(power_suspend.Suspender.HWCLOCK_FILE): 53 time.sleep(1) 54 55 power_prefs.finalize() 56