blob: d12c163eafc2b773107a39e5826667f65055ffcb [file] [log] [blame]
*** Settings ***
Documentation This suite tests Vital Product Data (VPD) via busctl command.
... Before running this suite, create a data/vpd_data.py file with
... all VPD data to verify from system.
...
... #!/usr/bin/env python3
... VPD_DETAILS = {
... "/system/chassis/motherboard": {
... "DR": "SYSTEM BACKPLANE",
... "LocationCode": "ABCD.EF1.1234567-P0",
... "PN": "PN12345",
... "SN": "SN1234567890",
... },
... "/system/chassis/motherboard/base_op_panel_blyth": {
... "DR": "CEC OP PANEL",
... "LocationCode": "ABCD.EF1.1234567-D0",
... "PN": "PN12345",
... "SN": "SN1234567890",
... }
... }
Variables ../../data/vpd_data.py
Resource ../../lib/openbmc_ffdc.robot
Test Teardown FFDC On Test Case Fail
*** Variables ***
${CMD_INVENTORY_PREFIX} busctl get-property xyz.openbmc_project.Inventory.Manager
... /xyz/openbmc_project/inventory
*** Test Cases ***
Verify Vital Product Data
[Documentation] Verify VPD via busctl command.
[Tags] Verify_Vital_Product_Data
${components}= Get Dictionary Keys ${VPD_DETAILS}
FOR ${component} IN @{components}
Verify VPD Via Busctl ${component}
END
*** Keywords ***
Verify VPD Via Busctl
[Documentation] Verify VPD details via busctl.
[Arguments] ${component}
# Description of argument(s):
# component VPD component (e.g. /system/chassis/motherboard/vdd_vrm1).
# Verify Location code
${busctl_output}= BMC Execute Command
... ${CMD_INVENTORY_PREFIX}${component} com.ibm.ipzvpd.Location LocationCode
Should Be Equal ${busctl_output[0].split('"')[1].strip('"')}
... ${VPD_DETAILS['${component}']['LocationCode']}
# Skip check for other VPD fields if its an ethernet component.
${status}= Run Keyword And Return Status Should Contain ${component} ethernet
Return From Keyword If '${status}' == 'True'
# Verify PrettyName
${busctl_output}= BMC Execute Command
... ${CMD_INVENTORY_PREFIX}${component} xyz.openbmc_project.Inventory.Item PrettyName
Should Contain ${busctl_output[0].split('"')[1].strip('"')}
... ${VPD_DETAILS['${component}']['DR']}
# Verify Part Number
${busctl_output}= BMC Execute Command
... ${CMD_INVENTORY_PREFIX}${component} xyz.openbmc_project.Inventory.Decorator.Asset PartNumber
Should Be Equal ${busctl_output[0].split('"')[1].strip('"')}
... ${VPD_DETAILS['${component}']['PN']}
# Verify Serial Number
${busctl_output}= BMC Execute Command
... ${CMD_INVENTORY_PREFIX}${component} xyz.openbmc_project.Inventory.Decorator.Asset SerialNumber
Should Be Equal ${busctl_output[0].split('"')[1].strip('"')}
... ${VPD_DETAILS['${component}']['SN']}