blob: 57f1a1d932f7cec462be3cbffa66fd45a7bfa351 [file] [log] [blame]
Chris Austenb29d2e82016-06-07 12:25:35 -05001*** Settings ***
2Documentation This example demonstrates executing commands on a remote machine
3... and getting their output and the return code.
4...
5... Notice how connections are handled as part of the suite setup and
6... teardown. This saves some time when executing several test cases.
7
8Resource ../lib/rest_client.robot
9Resource ../lib/ipmi_client.robot
George Keishingd55a4be2016-08-26 03:28:17 -050010Resource ../lib/openbmc_ffdc.robot
Chris Austenb29d2e82016-06-07 12:25:35 -050011Library ../data/model.py
12
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -050013Suite setup Setup The Suite
Chris Austenb29d2e82016-06-07 12:25:35 -050014Suite Teardown Close All Connections
Gunnar Millseac1af22016-11-14 15:30:09 -060015Test Teardown FFDC On Test Case Fail
Chris Austenb29d2e82016-06-07 12:25:35 -050016
17
18*** Variables ***
19${model} = ${OPENBMC_MODEL}
20
21*** Test Cases ***
22Verify connection
23 Execute new Command echo "hello"
24 Response Should Be Equal "hello"
25
26Execute ipmi BT capabilities command
George Keishingcac24c72016-09-23 04:44:19 -050027 [Tags] Execute_ipmi_BT_capabilities_command
Chris Austenb29d2e82016-06-07 12:25:35 -050028 Run IPMI command 0x06 0x36
29 response Should Be Equal " 01 40 40 0a 01"
30
31Execute Set Sensor boot count
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -050032 ${uri} = Get System component BootCount
Chris Austenb29d2e82016-06-07 12:25:35 -050033 ${x} = Get Sensor Number ${uri}
34
35 Run IPMI command 0x04 0x30 ${x} 0x01 0x00 0x35 0x00 0x00 0x00 0x00 0x00 0x00
36 Read the Attribute ${uri} value
37 ${val} = convert to integer 53
38 Response Should Be Equal ${val}
39
40Set Sensor Boot progress
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -050041 ${uri} = Get System component BootProgress
Chris Austenb29d2e82016-06-07 12:25:35 -050042 ${x} = Get Sensor Number ${uri}
43
44 Run IPMI command 0x04 0x30 ${x} 0xa9 0x00 0x04 0x00 0x00 0x00 0x00 0x14 0x00
45 Read the Attribute ${uri} value
46 Response Should Be Equal FW Progress, Baseboard Init
47
48Set Sensor Boot progress Longest string
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -050049 ${uri} = Get System component BootProgress
Chris Austenb29d2e82016-06-07 12:25:35 -050050 ${x} = Get Sensor Number ${uri}
51
52 Run IPMI command 0x04 0x30 ${x} 0xa9 0x00 0x04 0x00 0x00 0x00 0x00 0x0e 0x00
53 Read The Attribute ${uri} value
54 Response Should Be Equal FW Progress, Docking station attachment
55
56BootProgress sensor FW Hang unspecified Error
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -050057 ${uri} = Get System component BootProgress
Chris Austenb29d2e82016-06-07 12:25:35 -050058 ${x} = Get Sensor Number ${uri}
59
60 Run IPMI command 0x04 0x30 ${x} 0xa9 0x00 0x02 0x00 0x00 0x00 0x00 0x00 0x00
61 Read The Attribute ${uri} value
62 Response Should Be Equal FW Hang, Unspecified
63
64BootProgress fw hang state
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -050065 ${uri} = Get System component BootProgress
Chris Austenb29d2e82016-06-07 12:25:35 -050066 ${x} = Get Sensor Number ${uri}
67
68 Run IPMI command 0x04 0x30 ${x} 0xa9 0x00 0x01 0x00 0x00 0x00 0x00 0x20 0x00
69 Read The Attribute ${uri} value
70 Response Should Be Equal POST Error, unknown
71
72OperatingSystemStatus Sensor boot completed progress
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -050073 ${uri} = Get System component OperatingSystemStatus
Chris Austenb29d2e82016-06-07 12:25:35 -050074 ${x} = Get Sensor Number ${uri}
75
76 Run IPMI command 0x04 0x30 ${x} 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x20 0x00
77 Read The Attribute ${uri} value
78 Response Should Be Equal Boot completed (00)
79
80OperatingSystemStatus Sensor progress
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -050081 ${uri} = Get System component OperatingSystemStatus
Chris Austenb29d2e82016-06-07 12:25:35 -050082 ${x} = Get Sensor Number ${uri}
83
84 Run IPMI command 0x04 0x30 ${x} 0x00 0x00 0x04 0x00 0x00 0x00 0x00 0x20 0x00
85 Read The Attribute ${uri} value
86 Response Should Be Equal PXE boot completed
87
88OCC Active sensor on enabled
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -050089 ${uri} = Get System component OccStatus
Chris Austenb29d2e82016-06-07 12:25:35 -050090 ${x} = Get Sensor Number ${uri}
91
92 Run IPMI command 0x04 0x30 ${x} 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x20 0x00
93 Read The Attribute ${uri} value
94 Response Should Be Equal Enabled
95
96OCC Active sensor on disabled
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -050097 ${uri} = Get System component OccStatus
Chris Austenb29d2e82016-06-07 12:25:35 -050098 ${x} = Get Sensor Number ${uri}
99
100 Run IPMI command 0x04 0x30 ${x} 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x20 0x00
101 Read The Attribute ${uri} value
102 Response Should Be Equal Disabled
103
104CPU Present
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500105
106 ${uri} = Get System component cpu
Chris Austenb29d2e82016-06-07 12:25:35 -0500107 ${x} = Get Inventory Sensor Number ${uri}
108
109 Run IPMI command 0x04 0x30 ${x} 0xa9 0x00 0x80 0x00 0x00 0x00 0x00 0x20 0x00
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500110 Read The Attribute ${uri} present
Chris Austenb29d2e82016-06-07 12:25:35 -0500111 Response Should Be Equal True
112
113CPU not Present
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500114 ${uri} = Get System component cpu
Chris Austenb29d2e82016-06-07 12:25:35 -0500115 ${x} = Get Inventory Sensor Number ${uri}
116
117 Run IPMI command 0x04 0x30 ${x} 0xa9 0x00 0x00 0x00 0x80 0x00 0x00 0x20 0x00
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500118 Read The Attribute ${uri} present
Chris Austenb29d2e82016-06-07 12:25:35 -0500119 Response Should Be Equal False
120
121CPU fault
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500122 ${uri} = Get System component cpu
Chris Austenb29d2e82016-06-07 12:25:35 -0500123 ${x} = Get Inventory Sensor Number ${uri}
124
125 Run IPMI command 0x04 0x30 ${x} 0xa9 0xff 0x00 0x01 0x00 0x00 0x00 0x20 0x00
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500126 Read The Attribute ${uri} fault
Chris Austenb29d2e82016-06-07 12:25:35 -0500127 Response Should Be Equal True
128
129CPU no fault
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500130 ${uri} = Get System component cpu
Chris Austenb29d2e82016-06-07 12:25:35 -0500131 ${x} = Get Inventory Sensor Number ${uri}
132
133 Run IPMI command 0x04 0x30 ${x} 0x00 0x00 0x00 0x00 0x00 0x01 0x00 0x20 0x00
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500134 Read The Attribute ${uri} fault
Chris Austenb29d2e82016-06-07 12:25:35 -0500135 Response Should Be Equal False
136
137core Present
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500138 ${uri} = Get System component core11
Chris Austenb29d2e82016-06-07 12:25:35 -0500139 ${x} = Get Inventory Sensor Number ${uri}
140
141 Run IPMI command 0x04 0x30 ${x} 0xa9 0x00 0x80 0x00 0x00 0x00 0x00 0x20 0x00
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500142 Read The Attribute ${uri} present
Chris Austenb29d2e82016-06-07 12:25:35 -0500143 Response Should Be Equal True
144
145core not Present
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500146 ${uri} = Get System component core11
Chris Austenb29d2e82016-06-07 12:25:35 -0500147 ${x} = Get Inventory Sensor Number ${uri}
148
149 Run IPMI command 0x04 0x30 ${x} 0xa9 0x00 0x00 0x00 0x80 0x00 0x00 0x20 0x00
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500150 Read The Attribute ${uri} present
Chris Austenb29d2e82016-06-07 12:25:35 -0500151 Response Should Be Equal False
152
153core fault
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500154 ${uri} = Get System component core11
Chris Austenb29d2e82016-06-07 12:25:35 -0500155 ${x} = Get Inventory Sensor Number ${uri}
156
157 Run IPMI command 0x04 0x30 ${x} 0xa9 0xff 0x00 0x01 0x00 0x00 0x00 0x20 0x00
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500158 Read The Attribute ${uri} fault
Chris Austenb29d2e82016-06-07 12:25:35 -0500159 Response Should Be Equal True
160
161core no fault
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500162 ${uri} = Get System component core11
Chris Austenb29d2e82016-06-07 12:25:35 -0500163 ${x} = Get Inventory Sensor Number ${uri}
164
165 Run IPMI command 0x04 0x30 ${x} 0x00 0x00 0x00 0x00 0x00 0x01 0x00 0x20 0x00
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500166 Read The Attribute ${uri} fault
Chris Austenb29d2e82016-06-07 12:25:35 -0500167 Response Should Be Equal False
168
169DIMM3 Present
Rahul Maheshwaribb20f732016-10-24 06:27:14 -0500170 [Tags] DIMM3_Present
171
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500172 ${uri} = Get System component dimm3
Chris Austenb29d2e82016-06-07 12:25:35 -0500173 ${x} = Get Inventory Sensor Number ${uri}
174
175 Run IPMI command 0x04 0x30 ${x} 0xa9 0x00 0x40 0x00 0x00 0x00 0x00 0x20 0x00
176 Read The Attribute ${uri} present
177 Response Should Be Equal True
178
179DIMM3 not Present
Rahul Maheshwaribb20f732016-10-24 06:27:14 -0500180 [Tags] DIMM3_not_Present
181
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500182 ${uri} = Get System component dimm3
Chris Austenb29d2e82016-06-07 12:25:35 -0500183 ${x} = Get Inventory Sensor Number ${uri}
184
185 Run IPMI command 0x04 0x30 ${x} 0xa9 0xff 0x00 0x00 0x40 0x00 0x00 0x20 0x00
186 Read The Attribute ${uri} present
187 Response Should Be Equal False
188
189DIMM0 fault
Rahul Maheshwaribb20f732016-10-24 06:27:14 -0500190 [Tags] DIMM0_fault
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500191 ${uri} = Get System component dimm0
Chris Austenb29d2e82016-06-07 12:25:35 -0500192 ${x} = Get Inventory Sensor Number ${uri}
193
194 Run IPMI command 0x04 0x30 ${x} 0x00 0x00 0x10 0x00 0x00 0x00 0x00 0x20 0x00
195 Read The Attribute ${uri} fault
196 Response Should Be Equal True
197
198DIMM0 no fault
Rahul Maheshwaribb20f732016-10-24 06:27:14 -0500199 [Tags] DIMM0_no_fault
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500200 ${uri} = Get System component dimm0
Chris Austenb29d2e82016-06-07 12:25:35 -0500201 ${x} = Get Inventory Sensor Number ${uri}
202
203 Run IPMI command 0x04 0x30 ${x} 0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x20 0x00
204 Read The Attribute ${uri} fault
205 Response Should Be Equal False
206
207Centaur0 Present
Rahul Maheshwarif8119102016-10-05 01:15:56 -0500208 [Tags] Centaur0_Present
209
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500210 ${uri} = Get System component membuf
Chris Austenb29d2e82016-06-07 12:25:35 -0500211 ${x} = Get Inventory Sensor Number ${uri}
212
213 Run IPMI command 0x04 0x30 ${x} 0xa9 0x00 0x40 0x00 0x00 0x00 0x00 0x20 0x00
214 Read The Attribute ${uri} present
215 Response Should Be Equal True
216
217Centaur0 not Present
Rahul Maheshwarif8119102016-10-05 01:15:56 -0500218 [Tags] Centaur0_not_Present
219
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500220 ${uri} = Get System component membuf
Chris Austenb29d2e82016-06-07 12:25:35 -0500221 ${x} = Get Inventory Sensor Number ${uri}
222
223 Run IPMI command 0x04 0x30 ${x} 0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x20 0x00
224 Read The Attribute ${uri} present
225 Response Should Be Equal False
226
227Centaur0 fault
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500228 ${uri} = Get System component membuf
Chris Austenb29d2e82016-06-07 12:25:35 -0500229 ${x} = Get Inventory Sensor Number ${uri}
230
231 Run IPMI command 0x04 0x30 ${x} 0x00 0x00 0x10 0x00 0x00 0x00 0x00 0x20 0x00
232 Read The Attribute ${uri} fault
233 Response Should Be Equal True
234
235Centaur0 no fault
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500236 ${uri} = Get System component membuf
Chris Austenb29d2e82016-06-07 12:25:35 -0500237 ${x} = Get Inventory Sensor Number ${uri}
238
239 Run IPMI command 0x04 0x30 ${x} 0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x20 0x00
240 Read The Attribute ${uri} fault
241 Response Should Be Equal False
242
243System Present
Rahul Maheshwarif8119102016-10-05 01:15:56 -0500244 [Tags] System_Present
245
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500246 ${uri} = Get System component system
247 Read The Attribute ${uri} present
Chris Austenb29d2e82016-06-07 12:25:35 -0500248 Response Should Be Equal True
Rahul Maheshwarif8119102016-10-05 01:15:56 -0500249
Chris Austenb29d2e82016-06-07 12:25:35 -0500250System Fault
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500251 ${uri} = Get System component system
252 Read The Attribute ${uri} fault
Chris Austenb29d2e82016-06-07 12:25:35 -0500253 Response Should Be Equal False
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500254
Chris Austenb29d2e82016-06-07 12:25:35 -0500255Chassis Present
Rahul Maheshwarif8119102016-10-05 01:15:56 -0500256 [Tags] Chassis_Present
257
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500258 ${uri} = Get System component chassis
Chris Austenb29d2e82016-06-07 12:25:35 -0500259 Read The Attribute /org/openbmc/inventory/system/chassis present
260 Response Should Be Equal True
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500261
Chris Austenb29d2e82016-06-07 12:25:35 -0500262Chassis Fault
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500263 ${uri} = Get System component chassis
Chris Austenb29d2e82016-06-07 12:25:35 -0500264 Read The Attribute /org/openbmc/inventory/system/chassis fault
265 Response Should Be Equal False
Chris Austenb29d2e82016-06-07 12:25:35 -0500266
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500267io_board Present
Rahul Maheshwarif8119102016-10-05 01:15:56 -0500268 [Tags] io_board_Present
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500269 ${uri} = Get System component io_board
270 Read The Attribute ${uri} present
271 Response Should Be Equal True
272
273io_board Fault
Rahul Maheshwarif8119102016-10-05 01:15:56 -0500274 [Tags] io_board_Fault
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500275 ${uri} = Get System component io_board
276 Read The Attribute ${uri} fault
277 Response Should Be Equal False
Chris Austenb29d2e82016-06-07 12:25:35 -0500278
279*** Keywords ***
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500280
281Setup The Suite
282
283 Open Connection And Log In
Rahul Maheshwari79c12942016-10-17 09:39:17 -0500284 ${resp} = Read Properties /org/openbmc/enumerate timeout=30
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500285 Set Suite Variable ${SYSTEM_INFO} ${resp}
286 log Dictionary ${resp}
287
288Get System component
289 [Arguments] ${type}
290 ${list} = Get Dictionary Keys ${SYSTEM_INFO}
291 ${resp} = Get Matches ${list} regexp=^.*[0-9a-z_].${type}[0-9]*$
292 ${url} = Get From List ${resp} 0
293 [return] ${url}
294
Chris Austenb29d2e82016-06-07 12:25:35 -0500295Execute new Command
296 [arguments] ${args}
297 ${output}= Execute Command ${args}
298 set test variable ${OUTPUT} "${output}"
299
300response Should Be Equal
301 [arguments] ${args}
302 Should Be Equal ${OUTPUT} ${args}
303
304Response Should Be Empty
305 Should Be Empty ${OUTPUT}
306
Gunnar Mills56b32892016-11-14 13:56:17 -0600307Read the Attribute
Chris Austenb29d2e82016-06-07 12:25:35 -0500308 [arguments] ${uri} ${parm}
309 ${output} = Read Attribute ${uri} ${parm}
310 set test variable ${OUTPUT} ${output}
311
312Get Sensor Number
313 [arguments] ${name}
314 ${x} = get sensor ${OPENBMC_MODEL} ${name}
315 [return] ${x}
316
317Get Inventory Sensor Number
318 [arguments] ${name}
319 ${x} = get inventory sensor ${OPENBMC_MODEL} ${name}
320 [return] ${x}