FAFT: firmware_ECPowerButton fails on grunt, probably others |
|
Issue descriptionfirmware_ECPowerButton power cycles the DUT using various durations of button presses and waits between them. In the 4th power cycle attempt, the delay between button presses is shorter than the first button press duration, causing the second button press to start (and end) before the first ends. The result is that the DUT just powers down and doesn't wake up again, and the test times out. I suspect this test was written based on an incorrect belief that a command like `powerbtn 11000` blocks for 11 seconds, whereas it actually blocks for much closer to 0 seconds, and a subsequent 7-second wait begins immediately, not after the button press is released. There are other errors in this style in the test, which don't cause it to fail but do cause the DUT not to enter the power state described by the comments. I happened to be using a grunt DUT when I discovered this, but I have no reason to believe that it's specific to that target.
,
Jan 11
I can reproduce this behavior on octopus.
,
Jan 15
I spent some time looking at firmware_ECPowerButton on Grunt in October. There was a real power button bug on Grunt (b/117676579) which the test was correctly catching. That is now fixed, and the EC FAFT tests are passing on Grunt and Octopus (eg b/112119522, b/111403731). It seemed to me that the firmware_ECPowerButton test was working correctly: it does wait for the power button release before starting the subsequent wake delay. For example, this part of the test: logging.info("Shutdown when powerd is stopped and wake from G3 " "with short power button press.") self.kill_powerd() self.switcher.mode_aware_reboot( 'custom', lambda:self.shutdown_and_wake( self.POWER_BUTTON_NO_POWERD_DURATION, self.LONG_WAKE_DELAY, self.POWER_BUTTON_SHORT_POWER_ON_DURATION)) produced this autotest log output: 13:46:54 INFO | autoserv| -[mode_aware_reboot]-[ is_dev=False ]- 2018-10-26 13:46:54,301 - root - INFO - Pressing power button for 11.0000 secs 13:47:06 INFO | autoserv| -[FAFT]-[ start wait_for_client ]--- 2018-10-26 13:47:18,318 - root - INFO - Pressing power button for 0.0500 secs The 0.05s press starts 24 seconds after the 11s press: 24 = POWER_BUTTON_NO_POWERD_DURATION (11) + LONG_WAKE_DELAY (13).
,
Jan 16
(6 days ago)
With a recent ToT, I consistently see this test fail on the 4th reboot by not booting back up. I have reproduced this on Grunt, Octopus, and Santa. I don't always see the overlapping button presses on step 4, and I'm not sure yet why the test fails in the cases where the button presses happen at appropriate times. Incidentally, I'm getting this from the EC console logs. I don't see button press information in the Autotest logs, even with --debug.
,
Jan 16
(6 days ago)
This test passes (and is consistent with the behavior shown in #c3) on Grunt with a Servo v2, whereas I have been using a Servo v4. |
|
►
Sign in to add a comment |
|
Comment 1 by alevkoy@chromium.org
, Jan 11