*** 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