blob: f14a57b8455dafe4c5073c7054aaf17fa055be29 [file] [log] [blame]
Rahul Maheshwari77ab1602018-02-28 07:21:55 -06001*** Settings ***
2Documentation Test IPMI sensor IDs.
3
George Keishingd6bc1c12019-03-08 12:59:29 -06004Resource ../lib/rest_client.robot
5Resource ../lib/ipmi_client.robot
6Resource ../lib/openbmc_ffdc.robot
7Resource ../lib/boot_utils.robot
8Resource ../lib/bmc_redfish_resource.robot
Rahul Maheshwaribad5e822019-07-30 12:36:27 -05009Library ../lib/ipmi_utils.py
Rahul Maheshwari77ab1602018-02-28 07:21:55 -060010
11Suite setup Suite Setup Execution
12Test Teardown Test Teardown Execution
13
14Force Tags SDR_Test
15
16
17*** Test Cases ***
18
Rahul Maheshwaribad5e822019-07-30 12:36:27 -050019Verify SDR Info
20 [Documentation] Verify sdr info command output.
21 [Tags] Verify_SDR_Info
22 # Example of SDR info command output:
23 # SDR Version : 0x51
24 # Record Count : 216
25 # Free Space : unspecified
26 # Most recent Addition :
27 # Most recent Erase :
28 # SDR overflow : no
29 # SDR Repository Update Support : unspecified
30 # Delete SDR supported : no
31 # Partial Add SDR supported : no
32 # Reserve SDR repository supported : no
33 # SDR Repository Alloc info supported : no
34
35 ${sdr_info}= Get SDR Info
36 Should Be Equal ${sdr_info['sdr_version']} 0x51
37
38 # Get sensor count from "sdr elist all" command output.
39 ${sensor_count}= Get Sensor Count
40 Should Be Equal As Strings
41 ... ${sdr_info['record_count']} ${sensor_count}
42
43 Should Be Equal ${sdr_info['free_space']} unspecified
44 Should Be Equal ${sdr_info['most_recent_addition']} ${EMPTY}
45 Should Be Equal ${sdr_info['most_recent_erase']} ${EMPTY}
46 Should Be Equal ${sdr_info['sdr_overflow']} no
47 Should Be Equal ${sdr_info['sdr_repository_update_support']} unspecified
48 Should Be Equal ${sdr_info['delete_sdr_supported']} no
49 Should Be Equal ${sdr_info['partial_add_sdr_supported']} no
50 Should Be Equal ${sdr_info['reserve_sdr_repository_supported']} no
51 Should Be Equal ${sdr_info['sdr_repository_alloc_info_supported']} no
52
Rahul Maheshwari77ab1602018-02-28 07:21:55 -060053
54Test CPU Core SDR Info At Power On
George Keishingd6bc1c12019-03-08 12:59:29 -060055 [Documentation] Verify CPU core SDR info via IPMI and Redfish at power on.
Rahul Maheshwari77ab1602018-02-28 07:21:55 -060056
57 [Tags] Test_CPU_Core_SDR_Info_At_Power_On
58
George Keishingd6bc1c12019-03-08 12:59:29 -060059 Redfish Power On stack_mode=skip quiet=1
Rahul Maheshwari77ab1602018-02-28 07:21:55 -060060 Test SDR Info core
61
62
63Test DIMM SDR Info At Power On
George Keishingd6bc1c12019-03-08 12:59:29 -060064 [Documentation] Verify DIMM SDR info via IPMI and Redfish at power on.
Rahul Maheshwari77ab1602018-02-28 07:21:55 -060065
66 [Tags] Test_DIMM_SDR_Info_At_Power_On
67
George Keishingd6bc1c12019-03-08 12:59:29 -060068 Redfish Power On stack_mode=skip quiet=1
Rahul Maheshwari77ab1602018-02-28 07:21:55 -060069 Test SDR Info dimm
70
Rahul Maheshwaricd7b19c2018-04-10 07:35:56 -050071
72Test GPU SDR Info At Power On
George Keishingd6bc1c12019-03-08 12:59:29 -060073 [Documentation] Verify GPU SDR info via IPMI and Redfish at power on.
Rahul Maheshwaricd7b19c2018-04-10 07:35:56 -050074
75 [Tags] Test_GPU_SDR_Info_At_Power_On
76
George Keishingd6bc1c12019-03-08 12:59:29 -060077 Redfish Power On stack_mode=skip quiet=1
Rahul Maheshwaricd7b19c2018-04-10 07:35:56 -050078 Test SDR Info gv100card
79
80
Rahul Maheshwari77ab1602018-02-28 07:21:55 -060081Test CPU Core SDR Info At Power Off
George Keishingd6bc1c12019-03-08 12:59:29 -060082 [Documentation] Verify CPU core SDR info via IPMI and Redfish at power off.
Rahul Maheshwari77ab1602018-02-28 07:21:55 -060083
84 [Tags] Test_CPU_Core_SDR_Info_At_Power_Off
85
George Keishingd6bc1c12019-03-08 12:59:29 -060086 Redfish Hard Power Off stack_mode=skip quiet=1
Rahul Maheshwari77ab1602018-02-28 07:21:55 -060087 Test SDR Info core
88
89
90Test DIMM SDR Info At Power Off
George Keishingd6bc1c12019-03-08 12:59:29 -060091 [Documentation] Verify DIMM SDR info via IPMI and Redfish at power off.
Rahul Maheshwari77ab1602018-02-28 07:21:55 -060092
93 [Tags] Test_DIMM_SDR_Info_At_Power_Off
94
George Keishingd6bc1c12019-03-08 12:59:29 -060095 Redfish Hard Power Off stack_mode=skip quiet=1
Rahul Maheshwari77ab1602018-02-28 07:21:55 -060096 Test SDR Info dimm
97
98
Rahul Maheshwaricd7b19c2018-04-10 07:35:56 -050099Test Turbo Allowed SDR Info
George Keishingd6bc1c12019-03-08 12:59:29 -0600100 [Documentation] Verify turbo allowed SDR info via IPMI and Redfish.
Rahul Maheshwaricd7b19c2018-04-10 07:35:56 -0500101 [Tags] Test_Turbo_Allowed_SDR_Info
102
103 ${component_uri_list}= Get Component URIs turbo_allowed
104 ${component_uri}= Get From List ${component_uri_list} 0
105 ${state_rest}= Read Attribute ${component_uri} TurboAllowed
106
107 ${state_ipmi}= Get SDR Presence Via IPMI turbo_allowed${SPACE}
108
109 Run Keyword If '${state_ipmi}' == 'Disabled'
George Keishing9a75e682019-10-24 00:22:08 -0500110 ... Should Be True ${state_rest} == ${0}
Rahul Maheshwaricd7b19c2018-04-10 07:35:56 -0500111 ... ELSE IF '${state_ipmi}' == 'State Asserted'
George Keishing9a75e682019-10-24 00:22:08 -0500112 ... Should Be True ${state_rest} == ${1}
Rahul Maheshwaricd7b19c2018-04-10 07:35:56 -0500113
114
115Test Auto Reboot SDR Info
George Keishingd6bc1c12019-03-08 12:59:29 -0600116 [Documentation] Verify auto reboot SDR info via IPMI and Redfish.
Rahul Maheshwaricd7b19c2018-04-10 07:35:56 -0500117 [Tags] Test_Auto_Reboot_SDR_Info
118
119
120 ${component_uri_list}= Get Component URIs auto_reboot
121 ${component_uri}= Get From List ${component_uri_list} 0
122 ${state_rest}= Read Attribute ${component_uri} AutoReboot
123
124 ${state_ipmi}= Get SDR Presence Via IPMI auto_reboot${SPACE}
125
126 Run Keyword If '${state_ipmi}' == 'Disabled'
George Keishing9a75e682019-10-24 00:22:08 -0500127 ... Should Be True ${state_rest} == ${0}
Rahul Maheshwaricd7b19c2018-04-10 07:35:56 -0500128 ... ELSE IF '${state_ipmi}' == 'State Asserted'
George Keishing9a75e682019-10-24 00:22:08 -0500129 ... Should Be True ${state_rest} == ${1}
Rahul Maheshwaricd7b19c2018-04-10 07:35:56 -0500130
131
132Test TPM Enable SDR Info
George Keishingd6bc1c12019-03-08 12:59:29 -0600133 [Documentation] Verify auto reboot SDR info via IPMI and Redfish.
Rahul Maheshwaricd7b19c2018-04-10 07:35:56 -0500134 [Tags] Test_TPM_Enable_SDR_Info
135
136
137 ${component_uri_list}= Get Component URIs TPMEnable
138 ${component_uri}= Get From List ${component_uri_list} 0
139 ${state_rest}= Read Attribute ${component_uri} TPMEnable
140
141 ${state_ipmi}= Get SDR Presence Via IPMI auto_reboot${SPACE}
142
143 Run Keyword If '${state_ipmi}' == 'Disabled'
George Keishing9a75e682019-10-24 00:22:08 -0500144 ... Should Be True ${state_rest} == ${0}
Rahul Maheshwaricd7b19c2018-04-10 07:35:56 -0500145 ... ELSE IF '${state_ipmi}' == 'State Asserted'
George Keishing9a75e682019-10-24 00:22:08 -0500146 ... Should Be True ${state_rest} == ${1}
Rahul Maheshwaricd7b19c2018-04-10 07:35:56 -0500147
148
Rahul Maheshwari77ab1602018-02-28 07:21:55 -0600149*** Keywords ***
150
Rahul Maheshwaribad5e822019-07-30 12:36:27 -0500151Get Sensor Count
152 [Documentation] Get sensors count using "sdr elist all" command.
153 # Example of "sdr elist all" command output:
154 # BootProgress | 03h | ok | 34.2 |
155 # OperatingSystemS | 05h | ok | 35.1 |
156 # AttemptsLeft | 07h | ok | 34.1 |
157 # occ0 | 08h | ok | 210.1 | Device Disabled
158 # occ1 | 09h | ok | 210.2 | Device Disabled
159 # p0_core0_temp | 11h | ns | 3.1 | Disabled
160 # cpu0_core0 | 12h | ok | 208.1 | Presence detected
161 # p0_core1_temp | 14h | ns | 3.2 | Disabled
162 # cpu0_core1 | 15h | ok | 208.2 | Presence detected
163 # p0_core2_temp | 17h | ns | 3.3 | Disabled
164 # ..
165 # ..
166 # ..
167 # ..
168 # ..
169 # ..
170 # fan3 | 00h | ns | 29.4 | Logical FRU @35h
171 # bmc | 00h | ns | 6.1 | Logical FRU @3Ch
172 # ethernet | 00h | ns | 1.1 | Logical FRU @46h
173
174 ${output}= Run IPMI Standard Command sdr elist all
175 ${sensor_list}= Split String ${output} \n
176 ${sensor_count}= Get Length ${sensor_list}
177 [Return] ${sensor_count}
178
179
Rahul Maheshwari77ab1602018-02-28 07:21:55 -0600180Get Component URIs
181 [Documentation] Get URIs for given component from given URIs
182 ... and return as a list.
183 [Arguments] ${component_name} ${uri_list}=${SYSTEM_URI}
184
185 # A sample result returned for the "core" component:
186 # /xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core0
187 # /xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core1
188 # /xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core10
189 # /xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core11
190 # /xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core12
191 # (etc.)
192
193 # Description of argument(s):
194 # component_name Component name (e.g. "core", "dimm", etc.).
195 # uri_list URI list.
196
197 ${component_uris}= Get Matches ${uri_list}
Michael Walshd917c6e2018-12-11 10:09:09 -0600198 ... regexp=^.*[0-9a-z_].${component_name}\[0-9]*$
Rahul Maheshwari77ab1602018-02-28 07:21:55 -0600199 [Return] ${component_uris}
200
201
202Get SDR Presence Via IPMI
203 [Documentation] Return presence info from IPMI sensor data record.
204 [Arguments] ${component_name}
205
206 # Description of argument(s):
207 # component_name Component name (e.g. "cpu0_core0", "dimm0", etc.).
208
209 # Example of IPMI SDR elist output.
210 # BootProgress | 03h | ok | 34.2 |
211 # OperatingSystemS | 05h | ok | 35.1 | boot completed - device not specified
212 # AttemptsLeft | 07h | ok | 34.1 |
213 # occ0 | 08h | ok | 210.1 | Device Disabled
214 # occ1 | 09h | ok | 210.2 | Device Disabled
215 # cpu0_core0 | 12h | ok | 208.1 | Presence detected
216 # cpu0_core1 | 15h | ok | 208.2 | Disabled
217 # cpu0_core2 | 18h | ok | 208.3 | Presence detected
218 # dimm0 | A6h | ok | 32.1 | Presence Detected
219 # dimm1 | A8h | ok | 32.2 | Presence Detected
220 # dimm2 | AAh | ok | 32.9 | Presence Detected
221 # gv100card0 | C5h | ok | 216.1 | 0 unspecified
222 # gv100card1 | C8h | ok | 216.2 | 0 unspecified
223 # TPMEnable | D7h | ok | 3.3 | State Asserted
224 # auto_reboot | DAh | ok | 33.2 | State Asserted
225 # volatile | DBh | ok | 33.1 | State Deasserted
226
227 ${sdr_elist_output}= Run IPMI Standard Command sdr elist
228 ${sdr_component_line}=
229 ... Get Lines Containing String ${sdr_elist_output} ${component_name}
230 ... case-insensitive
231
232 ${presence_ipmi}= Fetch From Right ${sdr_component_line} |
233 ${presence_ipmi}= Strip String ${presence_ipmi}
234 [Return] ${presence_ipmi}
235
236
237Verify SDR
238 [Documentation] Verify IPMI sensor data record for given component
George Keishingd6bc1c12019-03-08 12:59:29 -0600239 ... with Redfish.
Rahul Maheshwari77ab1602018-02-28 07:21:55 -0600240 [Arguments] ${component_name}
241
242 # Description of argument(s):
243 # component_name Component name (e.g. "cpu0/core0", "dimm0", etc.).
244
245 ${presence_rest}= Read Attribute
246 ... ${HOST_INVENTORY_URI}system/chassis/motherboard/${component_name}
247 ... Present
248 ${functional_rest}= Read Attribute
249 ... ${HOST_INVENTORY_URI}system/chassis/motherboard/${component_name}
250 ... Functional
251
252 # Replace "/" with "_" if there is any "/" in component name.
253 # e.g. cpu0/core0 to cpu0_core0
254 ${component_name}= Replace String ${component_name} / _
255 ${presence_ipmi}= Get SDR Presence Via IPMI ${component_name}${SPACE}
256
257 Run Keyword If '${presence_ipmi}' == 'Disabled'
George Keishing9a75e682019-10-24 00:22:08 -0500258 ... Should Be True ${presence_rest} == ${0} and ${functional_rest} == ${0}
Rahul Maheshwari77ab1602018-02-28 07:21:55 -0600259 ... ELSE IF '${presence_ipmi}' == 'Presence Detected' or '${presence_ipmi}' == 'Presence detected'
George Keishing9a75e682019-10-24 00:22:08 -0500260 ... Should Be True ${presence_rest} == ${1} and ${functional_rest} == ${1}
Rahul Maheshwari77ab1602018-02-28 07:21:55 -0600261 ... ELSE IF '${presence_ipmi}' == 'State Asserted'
George Keishing9a75e682019-10-24 00:22:08 -0500262 ... Should Be True ${presence_rest} == ${1} and ${functional_rest} == ${1}
Rahul Maheshwari77ab1602018-02-28 07:21:55 -0600263 ... ELSE IF '${presence_ipmi}' == 'State Deasserted'
George Keishing9a75e682019-10-24 00:22:08 -0500264 ... Should Be True ${presence_rest} == ${1} and ${functional_rest} == ${0}
Rahul Maheshwari77ab1602018-02-28 07:21:55 -0600265 ... ELSE Fail msg=Invalid Presence${presence_ipmi}
266
267
268Test SDR Info
269 [Documentation] Test SDR info for given component.
270 [Arguments] ${component_name}
271
272 # Description of argument(s):
273 # component_name Component name (e.g. "core", "dimm", etc.).
274
275 ${component_uri_list}= Get Component URIs ${component_name}
Sushil Singhab209cd2020-07-01 09:01:14 -0500276
277 FOR ${uri} IN @{component_uri_list}
278 ${component_name}= Fetch From Right ${uri} motherboard/
279 Log To Console ${component_name}
280 Verify SDR ${component_name}
281 END
Rahul Maheshwari77ab1602018-02-28 07:21:55 -0600282
283
284Suite Setup Execution
285 [Documentation] Do the initial suite setup.
286
Rahul Maheshwarib6ebe4c2019-07-17 02:02:17 -0500287 Redfish Power On stack_mode=skip quiet=1
Rahul Maheshwari77ab1602018-02-28 07:21:55 -0600288
289 ${uri_list}= Read Properties ${OPENBMC_BASE_URI}list
290 Set Suite Variable ${SYSTEM_URI} ${uri_list}
291 Log ${uri_list}
292
293
294Test Teardown Execution
295 [Documentation] Do the post test teardown.
296
297 FFDC On Test Case Fail