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

AUTHOR = "kyleshima, ChromiumOS"
NAME = "autoupdate_WithDLC.full"
METADATA = {
  "contacts": [
    "chromeos-core-services@google.com",
    "chromeos-sw-engprod@google.com"
  ],
  "bug_component": "b:908319",
  "criteria": "Tests installing a DLC and doing an N-to-N update with DLC present."
}
TIME = "MEDIUM"
TEST_TYPE = "server"
ATTRIBUTES = "suite:bvt-inline, suite:infra_qual, suite:satlab-qual-bvt-inline, suite:distributed_lab_qual_bvt_shard1"
JOB_RETRIES = 2
DOC = """
This tests that DLC can be installed, and auto-updated together with the OS.

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

job.parallel_simple(run, machines)
