Adding FRU test case for powersupply component
Change-Id: Ieb461e12d71715701da490e50f0ade2bba12f961
Signed-off-by: Sushma M M <sushmm99@in.ibm.com>
diff --git a/ipmi/test_ipmi_fru.robot b/ipmi/test_ipmi_fru.robot
new file mode 100644
index 0000000..44b1ac7
--- /dev/null
+++ b/ipmi/test_ipmi_fru.robot
@@ -0,0 +1,103 @@
+*** Settings ***
+Documentation Test IPMI FRU data.
+
+Resource ../lib/openbmc_ffdc.robot
+Library ../lib/ipmi_utils.py
+
+
+Suite Setup Suite Setup Execution
+Suite Teardown Suite Teardown Execution
+Test Teardown Test Teardown Execution
+
+
+*** Variables ***
+&{ipmi_redfish_fru_field_map} board_serial=SerialNumber board_part_number=PartNumber
+... board_product=Name
+
+*** Test Cases ***
+
+Test FRU Info Of Power Supplies
+ [Documentation] Verify FRU info of power supply via IPMI and Redfish.
+ [Tags] Test_FRU_Info_Of_Power_Supplies
+
+ # IPMI FRU info.
+ ${ipmi_fru_component_info}= Get Component FRU Info powersupply
+ ... ${fru_objs}
+
+ # Redfish FRU info.
+ ${redfish_power_details}= Redfish.Get Properties /redfish/v1/Chassis/chassis/Power
+ ${redfish_power_supply_reading}= Set Variable ${redfish_power_details['PowerSupplies']}
+
+ Verify IPMI and Redfish subcomponents ${redfish_power_supply_reading}
+ ... ${ipmi_fru_component_info}
+
+*** Keywords ***
+
+Verify IPMI and Redfish subcomponents
+ [Documentation] Get IPMI And Redfish subcomponents of FRU and verify.
+ [Arguments] ${redfish_fru_info} ${ipmi_fru_info}
+
+ # Description of argument(s):
+ # ${ipmi_fru_info} IPMI FRU component values.
+ # ${redfish_fru_info} Redfish FRU component values.
+
+ ${sub_component_count}= Get Length ${redfish_fru_info}
+
+ # Fetch each subcomponent value of IPMI and Redfish and compare.
+ FOR ${sub_component_index} IN RANGE 0 ${sub_component_count}
+ ${ipmi_fru_sub_component}=
+ ... Get From List ${ipmi_fru_info} ${sub_component_index}
+ ${redfish_fru_sub_component}=
+ ... Get From List ${redfish_fru_info} ${sub_component_index}
+ Compare IPMI And Redfish FRU Component ${ipmi_fru_sub_component}
+ ... ${redfish_fru_sub_component}
+ END
+
+
+Compare IPMI And Redfish FRU Component
+ [Documentation] Compare IPMI And Redfish FRU Component data objects.
+ [Arguments] ${ipmi_fru_component_obj} ${redfish_fru_component_obj}
+
+ # Description of argument(s):
+ # ${ipmi_fru_component_obj} IPMI FRU component data in dictionary.
+ # Example:
+ # FRU Device Description : powersupply0 (ID 75)
+ # Board Mfg Date : Sun Dec 31 18:00:00 1995
+ # Board Product : powersupply0
+ # Board Serial : 71G303
+ # Board Part Number : 01KL471
+ # ${redfish_fru_component_obj} Redfish FRU component data in dictionary.
+ # Example:
+ # "Name": "powersupply0",
+ # "PartNumber": "01KL471",
+ # "PowerInputWatts": 114.0,
+ # "SerialNumber": "71G303",
+
+ # Get key_map from ipmi_redfish_fru_field_map.
+ ${key_map}= Get Dictionary Items ${ipmi_redfish_fru_field_map}
+
+ FOR ${key} ${value} IN @{key_map}
+ Should Contain ${redfish_fru_component_obj['${value}']}
+ ... ${ipmi_fru_component_obj['${key}']}
+ ... msg=Comparison failed.
+ END
+
+
+Suite Setup Execution
+ [Documentation] Do test setup initialization.
+
+ ${fru_objs}= Get Fru Info
+ Set Suite Variable ${fru_objs}
+ Redfish.Login
+
+
+Suite Teardown Execution
+ [Documentation] Do the post suite teardown.
+
+ Redfish.Logout
+
+
+Test Teardown Execution
+ [Documentation] Do the post test teardown.
+
+ FFDC On Test Case Fail