62 lines
2.0 KiB
Python
62 lines
2.0 KiB
Python
# Copyright 2015 The Chromium OS Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
import logging
|
|
|
|
from autotest_lib.client.common_lib import error
|
|
from autotest_lib.server.cros.faft.firmware_test import FirmwareTest
|
|
|
|
|
|
class firmware_ECKeyboardReboot(FirmwareTest):
|
|
"""
|
|
Test the dut-control ec_uart_cmd:reboot command.
|
|
This simulate the Power+refresh reboot but not exactly. The F3 + power EC
|
|
reset is triggered by the Silego IC, and it taps directly into the KB row
|
|
column lines to check the trigger (requires physical presence).
|
|
|
|
see test case: 1.3.8 Power+refresh; System reboots
|
|
https://testtracker.googleplex.com/efforts/testcase/detail/721602
|
|
"""
|
|
version = 1
|
|
|
|
# Delay between commands
|
|
CMD_DELAY = 1
|
|
|
|
def initialize(self, host, cmdline_args):
|
|
super(firmware_ECKeyboardReboot, self).initialize(host, cmdline_args)
|
|
# Only run in normal mode
|
|
self.switcher.setup_mode('normal')
|
|
self.host = host
|
|
|
|
def confirm_dut_off(self):
|
|
"""Confirms the DUT is off."""
|
|
if not self.host.ping_wait_down(timeout=10):
|
|
raise error.TestFail('DUT is on, expected off')
|
|
logging.info('DUT is off as expected')
|
|
|
|
def confirm_dut_on(self):
|
|
"""Confirms the DUT is on."""
|
|
if not self.host.wait_up(timeout=60):
|
|
raise error.TestFail('DUT is off, expected on')
|
|
logging.info('DUT is on as expected')
|
|
|
|
def run_once(self):
|
|
"""Runs a single iteration of the test."""
|
|
if not self.check_ec_capability(['keyboard']):
|
|
raise error.TestNAError("Nothing needs to be tested on this device")
|
|
logging.info("Test dut-control ec_uart_cmd:reboot command.")
|
|
|
|
self.ec.reboot()
|
|
self.confirm_dut_off()
|
|
self.confirm_dut_on()
|
|
|
|
self.ec.reboot('hard')
|
|
self.confirm_dut_off()
|
|
self.confirm_dut_on()
|
|
|
|
self.ec.reboot('ap-off')
|
|
self.confirm_dut_off()
|
|
self.ec.reboot()
|
|
self.confirm_dut_on()
|