Forced AU at OOBE with interruptions.

This test interrupts the forced update at OOBE by
1. Rebooting
2. Pulling the network for a couple of minutes
3. Suspend/Resume the device.

We want to ensure the device can continue with the update no matter what
end users do to the DUT.

The test team manually performs these steps during every new device FSI.
This test will remove the need for any more manual forced update at OOBE
testing.

BUG=chromium:810153
TEST=autoupdate_ForcedOOBEUpdate.* passing

Change-Id: I8e2a6c1ae8556f3afbcef4510e93fd87f2465ba4
Reviewed-on: https://chromium-review.googlesource.com/917651
Commit-Ready: David Haddock <dhaddock@chromium.org>
Tested-by: David Haddock <dhaddock@chromium.org>
Reviewed-by: Katherine Threlkeld <kathrelkeld@chromium.org>
diff --git a/server/site_tests/autoupdate_ForcedOOBEUpdate/control.interrupt.full b/server/site_tests/autoupdate_ForcedOOBEUpdate/control.interrupt.full
new file mode 100644
index 0000000..f0c450f
--- /dev/null
+++ b/server/site_tests/autoupdate_ForcedOOBEUpdate/control.interrupt.full
@@ -0,0 +1,34 @@
+# Copyright 2018 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.
+
+AUTHOR = "dhaddock, Chromium OS"
+NAME = "autoupdate_ForcedOOBEUpdate.interrupt.full"
+PURPOSE = "Test forced update at OOBE with interruptions."
+TIME = "MEDIUM"
+TEST_CATEGORY = "Functional"
+TEST_CLASS = "platform"
+TEST_TYPE = "server"
+DEPENDENCIES = "servo, use_lid"
+ATTRIBUTES = "suite:bvt-perbuild"
+DOC = """
+This tests the forced autoupdate flow at OOBE with interruptions.
+
+During the update it will
+1. Reboot
+2. Disconnect the network for X minutes (X is configurable in the test).
+3. Use servo to open/close lid.
+
+"""
+
+from autotest_lib.client.common_lib import utils
+
+args_dict = utils.args_to_dict(args)
+servo_args = hosts.CrosHost.get_servo_arguments(args_dict)
+
+def run(machine):
+    host = hosts.create_host(machine, servo_args=servo_args)
+    job.run_test('autoupdate_ForcedOOBEUpdate', host=host, full_payload=True,
+                 interrupt=True, max_updates=3, **args_dict)
+
+job.parallel_simple(run, machines)