# Copyright 2021 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

AUTHOR = "vyshu@google.com, ChromiumOS"
NAME = "autoupdate_ConsecutiveUpdatesBeforeReboot.full"
METADATA = {
  "contacts": [
    "chromeos-core-services@google.com",
    "chromeos-sw-engprod@google.com"
  ],
  "bug_component": "b:908319",
  "criteria": "Test repeated autoupdate."
}
TIME = "MEDIUM"
TEST_TYPE = "server"
ATTRIBUTES = "suite:au-perbuild"
DOC = """
This tests a repeated update by enabling the repeated updates feature.
This ensures that Update Engine checks for and performs another update even
when waiting for reboot. The update runs first with a full payload and then
again with a delta payload to avoid duplicate fingerprint values.

Refer to autoupdate_Basic's control.delta file for instructions on how to run
this test locally from your workstation.
"""

from autotest_lib.client.common_lib import utils
args_dict = utils.args_to_dict(args)

def run(machine):
    host = hosts.create_host(machine)
    job.run_test('autoupdate_ConsecutiveUpdatesBeforeReboot', host=host,
                 **args_dict)

job.parallel_simple(run, machines)
