blob: a62b018064157367dcdac2685b77e16ad10f1785 [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
Rahul Maheshwari06174f22017-03-06 03:17:09 -06008Resource ../lib/rest_client.robot
9Resource ../lib/ipmi_client.robot
10Resource ../lib/openbmc_ffdc.robot
George Keishinga7433222017-03-23 23:47:11 -050011Resource ../lib/state_manager.robot
Rahul Maheshwari06174f22017-03-06 03:17:09 -060012Library ../data/model.py
Chris Austenb29d2e82016-06-07 12:25:35 -050013
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -050014Suite setup Setup The Suite
Rahul Maheshwari06174f22017-03-06 03:17:09 -060015Test Setup Open Connection And Log In
16Test Teardown Post Test Case Execution
Chris Austenb29d2e82016-06-07 12:25:35 -050017
18*** Variables ***
Gunnar Mills1cd544d2016-12-06 11:19:22 -060019${model}= ${OPENBMC_MODEL}
Chris Austenb29d2e82016-06-07 12:25:35 -050020
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
Sridevi Ramesh83f5c592017-01-20 04:35:13 -060031Execute Set Sensor Boot Count
32 [Tags] Execute_Set_Sensor_Boot_Count
33
Gunnar Mills1cd544d2016-12-06 11:19:22 -060034 ${uri}= Get System component BootCount
35 ${x}= Get Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -050036
37 Run IPMI command 0x04 0x30 ${x} 0x01 0x00 0x35 0x00 0x00 0x00 0x00 0x00 0x00
38 Read the Attribute ${uri} value
Gunnar Mills1cd544d2016-12-06 11:19:22 -060039 ${val}= convert to integer 53
Chris Austenb29d2e82016-06-07 12:25:35 -050040 Response Should Be Equal ${val}
41
Sridevi Ramesh83f5c592017-01-20 04:35:13 -060042Set Sensor Boot Progress
43 [Tags] Set_Sensor_Boot_Progress
44
Gunnar Mills1cd544d2016-12-06 11:19:22 -060045 ${uri}= Get System component BootProgress
46 ${x}= Get Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -050047
48 Run IPMI command 0x04 0x30 ${x} 0xa9 0x00 0x04 0x00 0x00 0x00 0x00 0x14 0x00
49 Read the Attribute ${uri} value
50 Response Should Be Equal FW Progress, Baseboard Init
51
Sridevi Ramesh83f5c592017-01-20 04:35:13 -060052Set Sensor Boot Progress Longest String
53 [Tags] Set_Sensor_Boot_Progress_Longest_String
Gunnar Mills1cd544d2016-12-06 11:19:22 -060054 ${uri}= Get System component BootProgress
55 ${x}= Get Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -050056
57 Run IPMI command 0x04 0x30 ${x} 0xa9 0x00 0x04 0x00 0x00 0x00 0x00 0x0e 0x00
58 Read The Attribute ${uri} value
59 Response Should Be Equal FW Progress, Docking station attachment
60
Sridevi Ramesh83f5c592017-01-20 04:35:13 -060061Boot Progress Sensor FW Hang Unspecified Error
62 [Tags] Boot_Progress_Sensor_FW_Hang_Unspecified_Error
63
Gunnar Mills1cd544d2016-12-06 11:19:22 -060064 ${uri}= Get System component BootProgress
65 ${x}= Get Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -050066
67 Run IPMI command 0x04 0x30 ${x} 0xa9 0x00 0x02 0x00 0x00 0x00 0x00 0x00 0x00
68 Read The Attribute ${uri} value
69 Response Should Be Equal FW Hang, Unspecified
70
Sridevi Ramesh83f5c592017-01-20 04:35:13 -060071Boot Progress FW Hang State
72 [Tags] Boot_Progress_FW_Hang_State
73
Gunnar Mills1cd544d2016-12-06 11:19:22 -060074 ${uri}= Get System component BootProgress
75 ${x}= Get Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -050076
77 Run IPMI command 0x04 0x30 ${x} 0xa9 0x00 0x01 0x00 0x00 0x00 0x00 0x20 0x00
78 Read The Attribute ${uri} value
79 Response Should Be Equal POST Error, unknown
80
Sridevi Ramesh83f5c592017-01-20 04:35:13 -060081OS Status Sensor Boot Completed Progress
82 [Tags] OS_Status_Sensor_Boot_Completed_Progress
83
Gunnar Mills1cd544d2016-12-06 11:19:22 -060084 ${uri}= Get System component OperatingSystemStatus
85 ${x}= Get Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -050086
87 Run IPMI command 0x04 0x30 ${x} 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x20 0x00
88 Read The Attribute ${uri} value
89 Response Should Be Equal Boot completed (00)
90
Sridevi Ramesh83f5c592017-01-20 04:35:13 -060091OS Status Sensor Progress
92 [Tags] OS_Status_Sensor_Progress
93
Gunnar Mills1cd544d2016-12-06 11:19:22 -060094 ${uri}= Get System component OperatingSystemStatus
95 ${x}= Get Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -050096
97 Run IPMI command 0x04 0x30 ${x} 0x00 0x00 0x04 0x00 0x00 0x00 0x00 0x20 0x00
98 Read The Attribute ${uri} value
99 Response Should Be Equal PXE boot completed
100
Sridevi Ramesh83f5c592017-01-20 04:35:13 -0600101OCC Active Sensor On Enabled
102 [Tags] OCC_Active_Sensor_On_Enabled
103
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600104 ${uri}= Get System component OccStatus
105 ${x}= Get Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -0500106
107 Run IPMI command 0x04 0x30 ${x} 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x20 0x00
108 Read The Attribute ${uri} value
109 Response Should Be Equal Enabled
110
Sridevi Ramesh83f5c592017-01-20 04:35:13 -0600111OCC Active Sensor On Disabled
112 [Tags] OCC_Active_Sensor_On_Disabled
113
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600114 ${uri}= Get System component OccStatus
115 ${x}= Get Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -0500116
117 Run IPMI command 0x04 0x30 ${x} 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x20 0x00
118 Read The Attribute ${uri} value
119 Response Should Be Equal Disabled
120
121CPU Present
Sridevi Ramesh83f5c592017-01-20 04:35:13 -0600122 [Tags] CPU_Present
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500123
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600124 ${uri}= Get System component cpu
125 ${x}= Get Inventory Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -0500126
127 Run IPMI command 0x04 0x30 ${x} 0xa9 0x00 0x80 0x00 0x00 0x00 0x00 0x20 0x00
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500128 Read The Attribute ${uri} present
Chris Austenb29d2e82016-06-07 12:25:35 -0500129 Response Should Be Equal True
130
Sridevi Ramesh83f5c592017-01-20 04:35:13 -0600131CPU Not Present
132 [Tags] CPU_Not_Present
133
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600134 ${uri}= Get System component cpu
135 ${x}= Get Inventory Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -0500136
137 Run IPMI command 0x04 0x30 ${x} 0xa9 0x00 0x00 0x00 0x80 0x00 0x00 0x20 0x00
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500138 Read The Attribute ${uri} present
Chris Austenb29d2e82016-06-07 12:25:35 -0500139 Response Should Be Equal False
140
Sridevi Ramesh83f5c592017-01-20 04:35:13 -0600141CPU No Fault
142 [Tags] CPU_No_Fault
143
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600144 ${uri}= Get System component cpu
145 ${x}= Get Inventory Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -0500146
147 Run IPMI command 0x04 0x30 ${x} 0x00 0x00 0x00 0x00 0x00 0x01 0x00 0x20 0x00
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500148 Read The Attribute ${uri} fault
Chris Austenb29d2e82016-06-07 12:25:35 -0500149 Response Should Be Equal False
150
Sridevi Ramesh83f5c592017-01-20 04:35:13 -0600151Core Present
152 [Tags] Core_Present
153
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600154 ${uri}= Get System component core11
155 ${x}= Get Inventory Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -0500156
157 Run IPMI command 0x04 0x30 ${x} 0xa9 0x00 0x80 0x00 0x00 0x00 0x00 0x20 0x00
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500158 Read The Attribute ${uri} present
Chris Austenb29d2e82016-06-07 12:25:35 -0500159 Response Should Be Equal True
160
Sridevi Ramesh83f5c592017-01-20 04:35:13 -0600161Core Not Present
162 [Tags] Core_Not_Present
163
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600164 ${uri}= Get System component core11
165 ${x}= Get Inventory Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -0500166
167 Run IPMI command 0x04 0x30 ${x} 0xa9 0x00 0x00 0x00 0x80 0x00 0x00 0x20 0x00
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500168 Read The Attribute ${uri} present
Chris Austenb29d2e82016-06-07 12:25:35 -0500169 Response Should Be Equal False
170
Sridevi Ramesh83f5c592017-01-20 04:35:13 -0600171Core Fault
172 [Tags] Core_Fault
173
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600174 ${uri}= Get System component core11
175 ${x}= Get Inventory Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -0500176
177 Run IPMI command 0x04 0x30 ${x} 0xa9 0xff 0x00 0x01 0x00 0x00 0x00 0x20 0x00
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500178 Read The Attribute ${uri} fault
Chris Austenb29d2e82016-06-07 12:25:35 -0500179 Response Should Be Equal True
180
Sridevi Ramesh83f5c592017-01-20 04:35:13 -0600181Core No Fault
182 [Tags] Core_No_Fault
183
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600184 ${uri}= Get System component core11
185 ${x}= Get Inventory Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -0500186
187 Run IPMI command 0x04 0x30 ${x} 0x00 0x00 0x00 0x00 0x00 0x01 0x00 0x20 0x00
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500188 Read The Attribute ${uri} fault
Chris Austenb29d2e82016-06-07 12:25:35 -0500189 Response Should Be Equal False
190
191DIMM3 Present
Rahul Maheshwaribb20f732016-10-24 06:27:14 -0500192 [Tags] DIMM3_Present
193
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600194 ${uri}= Get System component dimm3
195 ${x}= Get Inventory Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -0500196
197 Run IPMI command 0x04 0x30 ${x} 0xa9 0x00 0x40 0x00 0x00 0x00 0x00 0x20 0x00
198 Read The Attribute ${uri} present
199 Response Should Be Equal True
200
201DIMM3 not Present
Rahul Maheshwaribb20f732016-10-24 06:27:14 -0500202 [Tags] DIMM3_not_Present
203
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600204 ${uri}= Get System component dimm3
205 ${x}= Get Inventory Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -0500206
207 Run IPMI command 0x04 0x30 ${x} 0xa9 0xff 0x00 0x00 0x40 0x00 0x00 0x20 0x00
208 Read The Attribute ${uri} present
209 Response Should Be Equal False
210
Chris Austenb29d2e82016-06-07 12:25:35 -0500211DIMM0 no fault
Rahul Maheshwaribb20f732016-10-24 06:27:14 -0500212 [Tags] DIMM0_no_fault
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600213 ${uri}= Get System component dimm0
214 ${x}= Get Inventory Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -0500215
216 Run IPMI command 0x04 0x30 ${x} 0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x20 0x00
217 Read The Attribute ${uri} fault
218 Response Should Be Equal False
219
220Centaur0 Present
Sridevi Ramesh83f5c592017-01-20 04:35:13 -0600221 [Tags] Centaur0_Present
Rahul Maheshwarif8119102016-10-05 01:15:56 -0500222
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600223 ${uri}= Get System component membuf
224 ${x}= Get Inventory Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -0500225
226 Run IPMI command 0x04 0x30 ${x} 0xa9 0x00 0x40 0x00 0x00 0x00 0x00 0x20 0x00
227 Read The Attribute ${uri} present
228 Response Should Be Equal True
229
230Centaur0 not Present
Sridevi Ramesh83f5c592017-01-20 04:35:13 -0600231 [Tags] Centaur0_not_Present
Rahul Maheshwarif8119102016-10-05 01:15:56 -0500232
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600233 ${uri}= Get System component membuf
234 ${x}= Get Inventory Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -0500235
236 Run IPMI command 0x04 0x30 ${x} 0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x20 0x00
237 Read The Attribute ${uri} present
238 Response Should Be Equal False
239
Sridevi Ramesh83f5c592017-01-20 04:35:13 -0600240Centaur0 Fault
241 [Tags] Centaur0_Fault
242
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600243 ${uri}= Get System component membuf
244 ${x}= Get Inventory Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -0500245
246 Run IPMI command 0x04 0x30 ${x} 0x00 0x00 0x10 0x00 0x00 0x00 0x00 0x20 0x00
247 Read The Attribute ${uri} fault
248 Response Should Be Equal True
249
Sridevi Ramesh83f5c592017-01-20 04:35:13 -0600250Centaur0 No Fault
251 [Tags] Centaur0_No_Fault
252
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600253 ${uri}= Get System component membuf
254 ${x}= Get Inventory Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -0500255
256 Run IPMI command 0x04 0x30 ${x} 0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x20 0x00
257 Read The Attribute ${uri} fault
258 Response Should Be Equal False
259
260System Present
Sridevi Ramesh83f5c592017-01-20 04:35:13 -0600261 [Tags] System_Present
Rahul Maheshwarif8119102016-10-05 01:15:56 -0500262
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600263 ${uri}= Get System component system
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500264 Read The Attribute ${uri} present
Chris Austenb29d2e82016-06-07 12:25:35 -0500265 Response Should Be Equal True
Rahul Maheshwarif8119102016-10-05 01:15:56 -0500266
Chris Austenb29d2e82016-06-07 12:25:35 -0500267System Fault
Sridevi Ramesh83f5c592017-01-20 04:35:13 -0600268 [Tags] System_Fault
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600269 ${uri}= Get System component system
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500270 Read The Attribute ${uri} fault
Chris Austenb29d2e82016-06-07 12:25:35 -0500271 Response Should Be Equal False
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500272
Chris Austenb29d2e82016-06-07 12:25:35 -0500273Chassis Present
Sridevi Ramesh83f5c592017-01-20 04:35:13 -0600274 [Tags] Chassis_Present
Rahul Maheshwarif8119102016-10-05 01:15:56 -0500275
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600276 ${uri}= Get System component chassis
George Keishingab1bd922016-12-05 05:29:59 -0600277 Read The Attribute
278 ... ${INVENTORY_URI}system/chassis present
Chris Austenb29d2e82016-06-07 12:25:35 -0500279 Response Should Be Equal True
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500280
Chris Austenb29d2e82016-06-07 12:25:35 -0500281Chassis Fault
Sridevi Ramesh83f5c592017-01-20 04:35:13 -0600282 [Tags] Chassis_Fault
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600283 ${uri}= Get System component chassis
George Keishingab1bd922016-12-05 05:29:59 -0600284 Read The Attribute
285 ... ${INVENTORY_URI}system/chassis fault
Chris Austenb29d2e82016-06-07 12:25:35 -0500286 Response Should Be Equal False
Chris Austenb29d2e82016-06-07 12:25:35 -0500287
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500288io_board Present
Rahul Maheshwarif8119102016-10-05 01:15:56 -0500289 [Tags] io_board_Present
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600290 ${uri}= Get System component io_board
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500291 Read The Attribute ${uri} present
292 Response Should Be Equal True
293
294io_board Fault
Rahul Maheshwarif8119102016-10-05 01:15:56 -0500295 [Tags] io_board_Fault
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600296 ${uri}= Get System component io_board
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500297 Read The Attribute ${uri} fault
298 Response Should Be Equal False
Chris Austenb29d2e82016-06-07 12:25:35 -0500299
300*** Keywords ***
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500301
302Setup The Suite
George Keishinga7433222017-03-23 23:47:11 -0500303 [Documentation] Do the initial suite setup.
304 ${current_state}= Get Host State
305 Run Keyword If '${current_state}' == 'Off'
306 ... Initiate Host Boot
307
308 Wait Until Keyword Succeeds
309 ... 10 min 10 sec Is OS Starting
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500310
311 Open Connection And Log In
George Keishingab1bd922016-12-05 05:29:59 -0600312 ${resp}= Read Properties ${OPENBMC_BASE_URI}enumerate timeout=30
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500313 Set Suite Variable ${SYSTEM_INFO} ${resp}
314 log Dictionary ${resp}
315
316Get System component
317 [Arguments] ${type}
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600318 ${list}= Get Dictionary Keys ${SYSTEM_INFO}
319 ${resp}= Get Matches ${list} regexp=^.*[0-9a-z_].${type}[0-9]*$
320 ${url}= Get From List ${resp} 0
Gunnar Millsc9ea9362016-12-13 16:21:13 -0600321 [Return] ${url}
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500322
Chris Austenb29d2e82016-06-07 12:25:35 -0500323Execute new Command
Gunnar Mills38032802016-12-12 13:43:40 -0600324 [Arguments] ${args}
Chris Austenb29d2e82016-06-07 12:25:35 -0500325 ${output}= Execute Command ${args}
326 set test variable ${OUTPUT} "${output}"
327
328response Should Be Equal
Gunnar Mills38032802016-12-12 13:43:40 -0600329 [Arguments] ${args}
Chris Austenb29d2e82016-06-07 12:25:35 -0500330 Should Be Equal ${OUTPUT} ${args}
331
332Response Should Be Empty
333 Should Be Empty ${OUTPUT}
334
Gunnar Mills56b32892016-11-14 13:56:17 -0600335Read the Attribute
Gunnar Mills38032802016-12-12 13:43:40 -0600336 [Arguments] ${uri} ${parm}
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600337 ${output}= Read Attribute ${uri} ${parm}
Chris Austenb29d2e82016-06-07 12:25:35 -0500338 set test variable ${OUTPUT} ${output}
339
340Get Sensor Number
Gunnar Mills38032802016-12-12 13:43:40 -0600341 [Arguments] ${name}
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600342 ${x}= get sensor ${OPENBMC_MODEL} ${name}
Gunnar Millsc9ea9362016-12-13 16:21:13 -0600343 [Return] ${x}
Chris Austenb29d2e82016-06-07 12:25:35 -0500344
345Get Inventory Sensor Number
Gunnar Mills38032802016-12-12 13:43:40 -0600346 [Arguments] ${name}
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600347 ${x}= get inventory sensor ${OPENBMC_MODEL} ${name}
Gunnar Millsc9ea9362016-12-13 16:21:13 -0600348 [Return] ${x}
Rahul Maheshwari06174f22017-03-06 03:17:09 -0600349
350Post Test Case Execution
351 [Documentation] Do the post test teardown.
352 ... 1. Capture FFDC on test failure.
353 ... 2. Close all open SSH connections.
354
355 FFDC On Test Case Fail
356 Close All Connections