Test VPD data via busctl command

For running these test, system specific data/vpd_data.py file
needs to created in below format with VPD details.

"""
VPD_DETAILS = {
    "/system/chassis/motherboard": {
        "DR": "SYSTEM BACKPLANE",
        "LocationCode": "ABCD.AB1.1234567-P0",
        "PN": "PN12345",
        "SN": "YL2E2D010000",
    },
    "/system/chassis/motherboard/base_op_panel_blyth": {
        "DR": "CEC OP PANEL    ",
        "LocationCode": "ABCD.AB1.1234567-P0",
        "PN": "PN12345",
        "SN": "YL6B85010000",
    },
    "/system/chassis/motherboard/ebmc_card_bmc": {
        "DR": "EBMC            ",
        "LocationCode": "ABCD.AB1.1234567-P0",
        "PN": "PN12345",
        "SN": "YL6B58010000",
    }
}
"""

Change-Id: I240427f4f0975ceaccfdf190eed42750aa113179
Signed-off-by: Rahul Maheshwari <rahulmaheshwari@in.ibm.com>
diff --git a/openpower/vpd/test_vpd.robot b/openpower/vpd/test_vpd.robot
new file mode 100644
index 0000000..a0c16de
--- /dev/null
+++ b/openpower/vpd/test_vpd.robot
@@ -0,0 +1,64 @@
+*** 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 Be Equal  ${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']}