blob: e9467dfc7c0cb7369aa086408532ab5f97cb55bc [file] [log] [blame]
*** Settings ***
Documentation This suite tests System Vital Product Data (VPD) using vpdtool.
Library ../../lib/vpd_utils.py
Variables ../../data/vpd_variables.py
Resource ../../lib/openbmc_ffdc.robot
Resource ../../lib/boot_utils.robot
Resource ../../lib/vpd_tool_resource.robot
Test Teardown FFDC On Test Case Fail
Test Tags VPD_Tool
*** Variables ***
${CMD_GET_PROPERTY_INVENTORY} busctl get-property xyz.openbmc_project.Inventory.Manager
*** Test Cases ***
Verify System VPD Data Via Vpdtool
[Documentation] Verify the system VPD details via vpdtool output.
[Tags] Verify_System_VPD_Data_Via_Vpdtool
[Template] Verify VPD Data Via Vpdtool
# Component Field
System Model
System SerialNumber
System LocationCode
Verify VPD Component Read
[Documentation] Verify details of all VPD component via vpdtool.
[Tags] Verify_VPD_Component_Read
${vpd_records}= Vpdtool -i
${components}= Get Dictionary Keys ${vpd_records}
FOR ${component} IN @{components}
Verify VPD Component Read Operation ${component}
END
Verify VPD Field Read
[Documentation] Verify reading VPD field value via vpdtool.
[Tags] Verify_VPD_Field_Read
${vpd_records}= Vpdtool -i
${components}= Get Dictionary Keys ${vpd_records}
FOR ${component} IN @{components}
# Drive component field values response in ascii format
# due to that skipping here.
IF 'drive' in '${component}'
CONTINUE
ELSE
Verify VPD Field Read Operation ${component}
END
END
Verify VPD Field Write
[Documentation] Verify writing VPD field value via vpdtool.
[Tags] Verify_VPD_Field_Write
# Put system to power off state before VPD write operation.
Redfish Power Off stack_mode=skip
${components}= Get Dictionary Keys ${VPD_DETAILS}
FOR ${component} IN @{components}
# VPD fields "DR", "CC" and "FN" will be added later.
@{vpd_fields}= Create List SN PN
${field}= Evaluate random.choice($vpd_fields) random
Verify VPD Field Write Operation ${component} ${field}
END