*** Settings ***
Documentation   This suite tests Vital Product Data (VPD) via busctl command.

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 VPD Data
    [Documentation]  Verify VPD via busctl command.
    [Tags]  Verify_VPD_Data
    [Template]  Verify VPD Via Busctl

    # Component name
    /system/chassis/motherboard
    /system/chassis/motherboard/base_op_panel_blyth
    /system/chassis/motherboard/ebmc_card_bmc
    /system/chassis/motherboard/lcd_op_panel_hill
    /system/chassis/motherboard/tpm_wilson
    /system/chassis/motherboard/vdd_vrm0
    /system/chassis/motherboard/vdd_vrm1


*** 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']}

    # 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']}
