| # 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_CatchBadSignatures" |
| TIME = "MEDIUM" |
| TEST_CATEGORY = "Functional" |
| TEST_CLASS = "platform" |
| TEST_TYPE = "server" |
| JOB_RETRIES = 2 |
| # TODO(jorgelo): move this to bvt-cq after crbug.com/427384 is fixed. |
| ATTRIBUTES = "suite:bvt-perbuild" |
| BUG_TEMPLATE = { |
| 'cc': ['chromeos-installer-alerts@google.com'], |
| 'components': ['Internals>Installer'], |
| } |
| |
| DOC = """ |
| This is a test to verify that update_engine correctly checks |
| signatures in the metadata hash and the update payload itself. This is |
| achieved by feeding updates to update_engine where the private key |
| used to make the signature, intentionally does not match with the |
| public key used for verification. |
| |
| To run locally, you need to choose a devserver and a DUT that can reach each |
| other. You cannot use a devserver on your workstation because it will not be |
| accessible from any DUTs (due to SNAX). |
| |
| So lock a DUT that is not in use by the lab. |
| Next, look up the dev_server_common.ini.erb (in repo chromeos_admin) for |
| dev_server & restricted_subnet fields to pick a devserver in the same |
| subnet with the testing DUT. |
| |
| Test that they can ping each other. |
| |
| You tell the test which devserver you want to use in this file: |
| src/third_party/autotest/files/shadow_config.ini |
| |
| by adding these lines: |
| |
| [CROS] |
| dev_server = http://<hostname of devserver>:<port> |
| |
| With this in place, you can now run the test: |
| |
| $ test_that <DUT_IP> autoupdate_CatchBadSignatures -b ${BOARD} |
| |
| """ |
| |
| def run_test(machine): |
| """Execute a test configuration on a given machine.""" |
| host = hosts.create_host(machine) |
| job.run_test("autoupdate_CatchBadSignatures", host=host) |
| |
| # Invoke parallel tests. |
| parallel_simple(run_test, machines) |