# Copyright 2019 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. from autotest_lib.client.common_lib import utils AUTHOR = "Chromium OS" NAME = "autoupdate_StatefulCompatibility" TIME = "LONG" TEST_CATEGORY = "Functional" TEST_CLASS = "platform" TEST_TYPE = "server" DOC = """ This is an auto update test to check the compatibility of the stateful partition between updates. This is mostly intended to be used for the kernel-next boards to check rollback compatibility but can be used for any pair of images. To specify args for this test invoke this test with: test_that autoupdate_StatefulCompatibility --args="" where ARGLIST is a whitespace separated list of the following key=value pairs. Values pertaining to the test case include: source_payload_uri (optional) the Google Storage bucket URI for the source payload to be installed. If not specified the test will run on the currently installed image. target_payload_uri (optional) the Google Storage bucket URI for the target payload to be installed. If not specified that target_board and target_version_regex fields are required. target_board (optional) the board name for the target image to be installed. target_version_regex (optional) the version of the target image to install. The test will search through all builds that match this prefix and find the most recent image that passed all tests. Examples: 'LATEST-[0-9]*' or 'R75-*' To run locally see the instructions in the autoupdate_EndToEndTest. """ TEST_CONF_KEYS = ( 'source_payload_uri', 'target_payload_uri', 'target_board', 'target_version_regex') args_dict = utils.args_to_dict(args) test_conf = {} for key in TEST_CONF_KEYS: test_conf[key] = args_dict.get(key) or locals().get(key) def run_test(machine): """Execute a test configuration on a given machine.""" host = hosts.create_host(machine) job.run_test("autoupdate_StatefulCompatibility", host=host, test_conf=test_conf, max_image_checks=20) # Invoke parallel tests. parallel_simple(run_test, machines)