You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.4 KiB
65 lines
2.4 KiB
# 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.
|
|
|
|
AUTHOR = "gwendal"
|
|
NAME = 'hardware_DiskFirmwareUpgrade_Server'
|
|
PURPOSE = 'Verify diskfirmware upgrade is not broken'
|
|
TIME = 'SHORT'
|
|
TEST_CLASS = 'hardware'
|
|
TEST_TYPE = 'server'
|
|
DEPENDENCIES = 'storage:ssd'
|
|
ATTRIBUTES = "suite:experimental"
|
|
|
|
DOC = """
|
|
The test uses a list of firmware packages and applies them to the DUT.
|
|
Each package is in a directory listed below.
|
|
Each directory normaly contains a rule file and bzipped firmware image.
|
|
After each tries, the package present in the base image is applied, to be
|
|
in a good state for the next package.
|
|
For each package, a list of 2 parameters is needed:
|
|
1 - the expected return code of chromeos-disk-firmware-update.sh:
|
|
The test verifies the returned error code matches the expected value.
|
|
2 - A boolean:
|
|
- True if the update script should upgrade the firmware on the SSD.
|
|
- False if the update script is not supposed to touch the firmware on the SSD.
|
|
The tests depend on the storage device installed on the machine.
|
|
A regex allows separating the tests based on the device installed.
|
|
"""
|
|
|
|
DISK_FW_PACKAGES = {
|
|
r'LITEONIT LSS-.*' : {
|
|
'broken_firmware_liteon': [0, True], # revert to previous firmware
|
|
'missing_firmware_liteon': [1, False], # package without fw image
|
|
'invalid_firmware_liteon': [5, False], # package with invalid fw image.
|
|
'invalid_revision_liteon': [121, True], # with wrong target revision.
|
|
},
|
|
# eMMC device in hexa:
|
|
# MAG2GC: 4d4147324743
|
|
# HBG4e\05: 484247346505
|
|
# DS2016: 445332303136
|
|
# Samsung 128GB : 4455524d3452
|
|
r'(4d4147324743|484247346505|445332303136|4455524d3452)' : {
|
|
'test_firmware' : [0, True], # revert to previous firmware
|
|
},
|
|
# SATA
|
|
r'(KINGSTON RBU-S.S.*|LITEON CS1-SP.*)' : {
|
|
'test_firmware' : [0, True], # revert to previous firmware
|
|
},
|
|
# NVMe
|
|
r'(SAMSUNG KUS040205M-B001)' : {
|
|
'test_firmware' : [0, True], # revert to previous firmware
|
|
},
|
|
r'.*' : {
|
|
'missing_rules': [120, False], # rule file is missing.
|
|
}
|
|
}
|
|
|
|
def run_hardware_disk_firmware_upgrade(machine):
|
|
job.run_test('hardware_DiskFirmwareUpgrade',
|
|
host=hosts.create_host(machine),
|
|
disk_fw_packages=DISK_FW_PACKAGES)
|
|
|
|
job.parallel_simple(run_hardware_disk_firmware_upgrade, machines)
|
|
|