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

AUTHOR = "kimjae, ChromiumOS"
NAME = "autoupdate_DeferredUpdate.delta"
METADATA = {
  "contacts": [
    "chromeos-core-services@google.com",
    "chromeos-sw-engprod@google.com"
  ],
  "bug_component": "b:908319",
  "criteria": "Test deferred update."
}
TIME = "MEDIUM"
TEST_TYPE = "server"
ATTRIBUTES = "suite:au-perbuild"
DOC = """
Tests that the DUT handles deferred updates.

Deferred updates only apply on periodic update checks, hence it's required to
schedule periodic update checks using (test-update-check-internal-timeout).

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_DeferredUpdate', host=host, full_payload=False,
                 **args_dict)

job.parallel_simple(run, machines)
