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

AUTHOR = "dhaddock, ChromiumOS"
NAME = "autoupdate_DataPreserved.m2n.full"
METADATA = {
  "contacts": [
    "chromeos-core-services@google.com",
    "chromeos-sw-engprod@google.com"
  ],
  "bug_component": "b:908319",
  "criteria": "Test user data is not reset by updating."
}
TIME = "MEDIUM"
TEST_TYPE = "server"
ATTRIBUTES = "suite:au-m2n-chrome"
DOC = """
This tests that user's timezone, input methods, and downloaded files remain
unchanged after an update.

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

Note: for m2n tests, the source version is the currently serving stable channel
version.

"""

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

job.parallel_simple(run, machines)
