| # Copyright (c) 2013 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_Rollback" |
| TIME = "MEDIUM" |
| TEST_CATEGORY = "Functional" |
| TEST_CLASS = "platform" |
| TEST_TYPE = "server" |
| ATTRIBUTES = "suite:bvt-installer" |
| |
| DOC = """ |
| This is a rollback test for Chrome OS releases. It first updates a machine and |
| then invokes rollback to boot from its previously booted partition. It tests |
| rollback using the update_engine_client rather than manipulating the UI. |
| |
| To run locally: |
| 1) Lease a DUT in the lab |
| 2) Edit your shadow_config.ini to point to a devserver that the leased DUT can reach. |
| 3) Run with test_that passing job_repo_url |
| |
| For example: |
| |
| test_that <dut_ip> autoupdate_Rollback --args="job_repo_url='http://<IP>:<port>/static/<board>-release/RXX-XXXX.X.X/autotest/packages'" |
| |
| """ |
| |
| args_dict = utils.args_to_dict(args) |
| job_repo_url = args_dict.get('job_repo_url') |
| |
| |
| def run_test(machine): |
| """Execute a test configuration on a given machine.""" |
| host = hosts.create_host(machine) |
| job.run_test("autoupdate_Rollback", host=host, |
| job_repo_url=job_repo_url) |
| |
| |
| # Invoke parallel tests. |
| parallel_simple(run_test, machines) |