64 lines
2.5 KiB
Plaintext
64 lines
2.5 KiB
Plaintext
# 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 <DUT-IPADDR> autoupdate_StatefulCompatibility --args="<ARGLIST>"
|
|
|
|
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)
|