blob: 44b1ac7d94bf3262ade95411e624e49ea8292c1e [file] [log] [blame]
Sushma M M8f254b52020-04-23 06:16:39 -05001*** Settings ***
2Documentation Test IPMI FRU data.
3
4Resource ../lib/openbmc_ffdc.robot
5Library ../lib/ipmi_utils.py
6
7
8Suite Setup Suite Setup Execution
9Suite Teardown Suite Teardown Execution
10Test Teardown Test Teardown Execution
11
12
13*** Variables ***
14&{ipmi_redfish_fru_field_map} board_serial=SerialNumber board_part_number=PartNumber
15... board_product=Name
16
17*** Test Cases ***
18
19Test FRU Info Of Power Supplies
20 [Documentation] Verify FRU info of power supply via IPMI and Redfish.
21 [Tags] Test_FRU_Info_Of_Power_Supplies
22
23 # IPMI FRU info.
24 ${ipmi_fru_component_info}= Get Component FRU Info powersupply
25 ... ${fru_objs}
26
27 # Redfish FRU info.
28 ${redfish_power_details}= Redfish.Get Properties /redfish/v1/Chassis/chassis/Power
29 ${redfish_power_supply_reading}= Set Variable ${redfish_power_details['PowerSupplies']}
30
31 Verify IPMI and Redfish subcomponents ${redfish_power_supply_reading}
32 ... ${ipmi_fru_component_info}
33
34*** Keywords ***
35
36Verify IPMI and Redfish subcomponents
37 [Documentation] Get IPMI And Redfish subcomponents of FRU and verify.
38 [Arguments] ${redfish_fru_info} ${ipmi_fru_info}
39
40 # Description of argument(s):
41 # ${ipmi_fru_info} IPMI FRU component values.
42 # ${redfish_fru_info} Redfish FRU component values.
43
44 ${sub_component_count}= Get Length ${redfish_fru_info}
45
46 # Fetch each subcomponent value of IPMI and Redfish and compare.
47 FOR ${sub_component_index} IN RANGE 0 ${sub_component_count}
48 ${ipmi_fru_sub_component}=
49 ... Get From List ${ipmi_fru_info} ${sub_component_index}
50 ${redfish_fru_sub_component}=
51 ... Get From List ${redfish_fru_info} ${sub_component_index}
52 Compare IPMI And Redfish FRU Component ${ipmi_fru_sub_component}
53 ... ${redfish_fru_sub_component}
54 END
55
56
57Compare IPMI And Redfish FRU Component
58 [Documentation] Compare IPMI And Redfish FRU Component data objects.
59 [Arguments] ${ipmi_fru_component_obj} ${redfish_fru_component_obj}
60
61 # Description of argument(s):
62 # ${ipmi_fru_component_obj} IPMI FRU component data in dictionary.
63 # Example:
64 # FRU Device Description : powersupply0 (ID 75)
65 # Board Mfg Date : Sun Dec 31 18:00:00 1995
66 # Board Product : powersupply0
67 # Board Serial : 71G303
68 # Board Part Number : 01KL471
69 # ${redfish_fru_component_obj} Redfish FRU component data in dictionary.
70 # Example:
71 # "Name": "powersupply0",
72 # "PartNumber": "01KL471",
73 # "PowerInputWatts": 114.0,
74 # "SerialNumber": "71G303",
75
76 # Get key_map from ipmi_redfish_fru_field_map.
77 ${key_map}= Get Dictionary Items ${ipmi_redfish_fru_field_map}
78
79 FOR ${key} ${value} IN @{key_map}
80 Should Contain ${redfish_fru_component_obj['${value}']}
81 ... ${ipmi_fru_component_obj['${key}']}
82 ... msg=Comparison failed.
83 END
84
85
86Suite Setup Execution
87 [Documentation] Do test setup initialization.
88
89 ${fru_objs}= Get Fru Info
90 Set Suite Variable ${fru_objs}
91 Redfish.Login
92
93
94Suite Teardown Execution
95 [Documentation] Do the post suite teardown.
96
97 Redfish.Logout
98
99
100Test Teardown Execution
101 [Documentation] Do the post test teardown.
102
103 FFDC On Test Case Fail