Home | History | Annotate | Download | only in system_ColdBoot
      1 # Copyright (c) 2015 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 time
      6 
      7 from autotest_lib.server import autotest, test
      8 
      9 class system_ColdBoot(test.test):
     10     """
     11     Shut down the device gracefully via Linux shell commands, then simulate
     12     a power button press and verify that it comes back up correctly.
     13     """
     14     version = 1
     15 
     16     # Allowed timeout for graceful shutdown.
     17     TIMEOUT_POWEROFF_TRANSITION = 15
     18     # Time to sleep to ensure full power off, after OS quits replying to pings.
     19     WAIT_TIME_FULL_POWEROFF = 5
     20 
     21     def run_once(self, host):
     22         boot_id = host.get_boot_id()
     23 
     24         host.run("poweroff")
     25         host.test_wait_for_shutdown(self.TIMEOUT_POWEROFF_TRANSITION)
     26         time.sleep(self.WAIT_TIME_FULL_POWEROFF)
     27 
     28         host.servo.power_normal_press()
     29         host.test_wait_for_boot(boot_id)
     30 
     31         autotest.Autotest(host).run_test("desktopui_SimpleLogin",
     32                                          exit_without_logout=True)
     33