# 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
    r'(4d4147324743|484247346505|445332303136)' : {
        '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)

