Improve autoupdate_ForcedOOBEUpdate logging and failures.
This test is going to be added to a partner suite running on moblab so
the test needs to be a bit better at reporting what happens. This CL
does these things:
1. Checks that a reboot actually occurs during an OOBE update
2. Gives an update_engine error if the update fails to start
3. Reduces huge timeouts
4. Deals with hostlog timeouts better by giving an error code
BUG=chromium:936268
TEST=autoupdate_ForcedOOBEUpdate
Change-Id: I09cb0ef270270fe9900d5a1841ba9d63c02bc27b
Reviewed-on: https://chromium-review.googlesource.com/1714224
Tested-by: David Haddock <dhaddock@chromium.org>
Commit-Ready: David Haddock <dhaddock@chromium.org>
Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org>
Reviewed-by: David Haddock <dhaddock@chromium.org>
Reviewed-by: Amin Hassani <ahassani@chromium.org>
diff --git a/server/site_tests/autoupdate_ForcedOOBEUpdate/autoupdate_ForcedOOBEUpdate.py b/server/site_tests/autoupdate_ForcedOOBEUpdate/autoupdate_ForcedOOBEUpdate.py
index 7a47ab1..1f1446b 100644
--- a/server/site_tests/autoupdate_ForcedOOBEUpdate/autoupdate_ForcedOOBEUpdate.py
+++ b/server/site_tests/autoupdate_ForcedOOBEUpdate/autoupdate_ForcedOOBEUpdate.py
@@ -35,16 +35,22 @@
Repeated check status of update. It should move from DOWNLOADING to
FINALIZING to COMPLETE (then reboot) to IDLE.
"""
- # 20 minute timeout.
- timeout_minutes = 20
+ timeout_minutes = 10
timeout = time.time() + 60 * timeout_minutes
+ boot_id = self._host.get_boot_id()
+
while True:
status = self._get_update_engine_status(timeout=10)
# During reboot, status will be None
- if status is not None:
- if self._UPDATE_STATUS_IDLE == status[self._CURRENT_OP]:
- break
+ if status is None:
+ # Checking only for the status to change to IDLE can hide
+ # errors that occurred between status checks. When the forced
+ # update is complete, it will automatically reboot the device.
+ # So we wait for an explict reboot. We will verify that the
+ # update completed successfully later in verify_update_events()
+ self._host.test_wait_for_boot(boot_id)
+ break
time.sleep(1)
if time.time() > timeout:
raise error.TestFail('OOBE update did not finish in %d '