| # Copyright 2019 The ChromiumOS Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # Starts with MP-signed firmware. Then successively tries to flash three |
| # versions to RW: dev, corrupted first byte, and corrupted last byte. Each of |
| # these should flash successfully, but fail to boot (i.e., stay in RO mode). |
| # Finally, it flashes an MP-signed version, which should successfully boot to |
| # RW. |
| |
| from autotest_lib.server import utils |
| |
| NAME = "firmware_Fingerprint.ROOnlyBootsValidRW" |
| METADATA = { |
| "contacts": ["chromeos-fingerprint@google.com"], |
| "bug_component": "b:782045", |
| "criteria": "Fails if the RO firmware boots invalid RW firmware.", |
| } |
| |
| ATTRIBUTES = "suite:fingerprint" |
| TEST_TYPE = "server" |
| DEPENDENCIES = "servo_state:WORKING, fingerprint" |
| HW_DEPS = ['biod'] |
| JOB_RETRIES = 0 |
| |
| # This test uses futility and dev keys from autotest/files/server/cros/faft. |
| REQUIRE_SSP = True |
| |
| test_images = [ |
| "TEST_IMAGE_ORIGINAL", |
| "TEST_IMAGE_DEV", |
| "TEST_IMAGE_CORRUPT_FIRST_BYTE", |
| "TEST_IMAGE_CORRUPT_LAST_BYTE", |
| ] |
| |
| args_dict = utils.args_to_dict(args) |
| servo_args = hosts.CrosHost.get_servo_arguments(args_dict) |
| |
| |
| def run(machine): |
| host = hosts.create_host(machine, servo_args=servo_args) |
| job.run_test( |
| "firmware_Fingerprint", |
| host=host, |
| test_exe="ro_only_boots_valid_rw.sh", |
| test_exe_args=test_images, |
| tag="ROOnlyBootsValidRW", |
| ) |
| |
| |
| parallel_simple(run, machines) |