blob: cae48162426636f35d55770fdea7f25c3a2432e3 [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
Sweta Potthuri7e5dc592017-07-03 06:10:02 -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
Rahul Maheshwarieb1f6db2017-04-27 06:32:53 -0500121Verify OCC Power Supply Redundancy
122 [Documentation] Check if OCC's power supply is set to not redundant.
123 [Tags] Verify_OCC_Power_Supply_Redundancy
124 ${uri}= Get System Component PowerSupplyRedundancy
125
126 Read The Attribute ${uri} value
127 Response Should Be Equal Disabled
128
129Verify OCC Power Supply Derating Value
130 [Documentation] Check if OCC's power supply derating value
131 ... is set correctly to a constant value 10.
132 [Tags] Verify_OCC_Power_Supply_Derating_Value
133
134 ${uri}= Get System Component PowerSupplyDerating
135
136 Read The Attribute ${uri} value
137 Response Should Be Equal ${10}
138
Rahul Maheshwarica368e52017-05-04 05:01:49 -0500139
140Verify Enabling OCC Turbo Setting Via IPMI
141 [Documentation] Set and verify OCC's turbo allowed on enable.
142 # The allowed value for turbo allowed:
143 # True - To enable turbo allowed.
144 # False - To disable turbo allowed.
Sweta Potthuri7e5dc592017-07-03 06:10:02 -0500145 [Setup] Turbo Setting Test Case Setup
Rahul Maheshwarica368e52017-05-04 05:01:49 -0500146 [Tags] Verify_Enabling_OCC_Turbo_Setting_Via_IPMI
Sweta Potthuri7e5dc592017-07-03 06:10:02 -0500147 [Teardown] Restore System Configuration
Rahul Maheshwarica368e52017-05-04 05:01:49 -0500148
149 ${uri}= Get System Component TurboAllowed
150 ${sensor_num}= Get Sensor Number ${uri}
151
152 ${ipmi_cmd}= Catenate SEPARATOR= 0x04 0x30 ${sensor_num} 0x00${SPACE}
153 ... 0x00 0x01 0x00 0x00 0x00 0x00 0x20 0x00
154 Run IPMI Command ${ipmi_cmd}
155
156 Read The Attribute ${uri} value
157 Response Should Be Equal True
158
159
160Verify Disabling OCC Turbo Setting Via IPMI
161 [Documentation] Set and verify OCC's turbo allowed on disable.
162 # The allowed value for turbo allowed:
163 # True - To enable turbo allowed.
164 # False - To disable turbo allowed.
Sweta Potthuri7e5dc592017-07-03 06:10:02 -0500165 [Setup] Turbo Setting Test Case Setup
Rahul Maheshwarica368e52017-05-04 05:01:49 -0500166 [Tags] Verify_Disabling_OCC_Turbo_Setting_Via_IPMI
Sweta Potthuri7e5dc592017-07-03 06:10:02 -0500167 [Teardown] Restore System Configuration
Rahul Maheshwarica368e52017-05-04 05:01:49 -0500168
169 ${uri}= Get System Component TurboAllowed
170 ${sensor_num}= Get Sensor Number ${uri}
171
172 ${ipmi_cmd}= Catenate SEPARATOR= 0x04 0x30 ${sensor_num} 0x00${SPACE}
173 ... 0x00 0x00 0x00 0x01 0x00 0x00 0x20 0x00
174 Run IPMI Command ${ipmi_cmd}
175
176 Read The Attribute ${uri} value
177 Response Should Be Equal False
178
179
Rahul Maheshwaria3fdba42017-05-30 06:44:04 -0500180Verify Setting OCC Turbo Via REST
181 [Documentation] Verify enabling and disabling OCC's turbo allowed
182 ... via REST.
183 # The allowed value for turbo allowed:
184 # True - To enable turbo allowed.
185 # False - To disable turbo allowed.
186
Sweta Potthuri7e5dc592017-07-03 06:10:02 -0500187 [Setup] Turbo Setting Test Case Setup
Rahul Maheshwaria3fdba42017-05-30 06:44:04 -0500188 [Tags] Verify_Setting_OCC_Turbo_Via_REST
Sweta Potthuri7e5dc592017-07-03 06:10:02 -0500189 [Teardown] Restore System Configuration
Rahul Maheshwaria3fdba42017-05-30 06:44:04 -0500190
191 Set Turbo Setting Via REST False
192 ${setting}= Read Turbo Setting Via REST
193 Should Be Equal ${setting} False
194
195 Set Turbo Setting Via REST True
196 ${setting}= Read Turbo Setting Via REST
197 Should Be Equal ${setting} True
198
Chris Austenb29d2e82016-06-07 12:25:35 -0500199Chassis Present
Sridevi Ramesh83f5c592017-01-20 04:35:13 -0600200 [Tags] Chassis_Present
Rahul Maheshwarif8119102016-10-05 01:15:56 -0500201
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600202 ${uri}= Get System component chassis
George Keishingab1bd922016-12-05 05:29:59 -0600203 Read The Attribute
204 ... ${INVENTORY_URI}system/chassis present
Chris Austenb29d2e82016-06-07 12:25:35 -0500205 Response Should Be Equal True
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500206
Chris Austenb29d2e82016-06-07 12:25:35 -0500207Chassis Fault
Sridevi Ramesh83f5c592017-01-20 04:35:13 -0600208 [Tags] Chassis_Fault
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600209 ${uri}= Get System component chassis
George Keishingab1bd922016-12-05 05:29:59 -0600210 Read The Attribute
211 ... ${INVENTORY_URI}system/chassis fault
Chris Austenb29d2e82016-06-07 12:25:35 -0500212 Response Should Be Equal False
Chris Austenb29d2e82016-06-07 12:25:35 -0500213
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500214io_board Present
Rahul Maheshwarif8119102016-10-05 01:15:56 -0500215 [Tags] io_board_Present
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600216 ${uri}= Get System component io_board
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500217 Read The Attribute ${uri} present
218 Response Should Be Equal True
219
220io_board Fault
Rahul Maheshwarif8119102016-10-05 01:15:56 -0500221 [Tags] io_board_Fault
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600222 ${uri}= Get System component io_board
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500223 Read The Attribute ${uri} fault
224 Response Should Be Equal False
Chris Austenb29d2e82016-06-07 12:25:35 -0500225
226*** Keywords ***
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500227
228Setup The Suite
George Keishinga7433222017-03-23 23:47:11 -0500229 [Documentation] Do the initial suite setup.
George Keishingf1426682017-07-12 23:17:17 -0500230
231 # Reboot host to re-power on clean if host is not "off".
George Keishinga7433222017-03-23 23:47:11 -0500232 ${current_state}= Get Host State
233 Run Keyword If '${current_state}' == 'Off'
234 ... Initiate Host Boot
George Keishingf1426682017-07-12 23:17:17 -0500235 ... ELSE Initiate Host Reboot
George Keishinga7433222017-03-23 23:47:11 -0500236
237 Wait Until Keyword Succeeds
238 ... 10 min 10 sec Is OS Starting
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500239
240 Open Connection And Log In
George Keishingab1bd922016-12-05 05:29:59 -0600241 ${resp}= Read Properties ${OPENBMC_BASE_URI}enumerate timeout=30
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500242 Set Suite Variable ${SYSTEM_INFO} ${resp}
243 log Dictionary ${resp}
244
Sweta Potthuri7e5dc592017-07-03 06:10:02 -0500245Turbo Setting Test Case Setup
246 [Documentation] Open Connection and turbo settings
247
248 Open Connection And Log In
Rahul Maheshwarica368e52017-05-04 05:01:49 -0500249 ${setting}= Read Turbo Setting Via REST
250 Set Global Variable ${TURBO_SETTING} ${setting}
251
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500252Get System component
253 [Arguments] ${type}
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600254 ${list}= Get Dictionary Keys ${SYSTEM_INFO}
255 ${resp}= Get Matches ${list} regexp=^.*[0-9a-z_].${type}[0-9]*$
256 ${url}= Get From List ${resp} 0
Gunnar Millsc9ea9362016-12-13 16:21:13 -0600257 [Return] ${url}
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500258
Chris Austenb29d2e82016-06-07 12:25:35 -0500259Execute new Command
Gunnar Mills38032802016-12-12 13:43:40 -0600260 [Arguments] ${args}
Chris Austenb29d2e82016-06-07 12:25:35 -0500261 ${output}= Execute Command ${args}
262 set test variable ${OUTPUT} "${output}"
263
264response Should Be Equal
Gunnar Mills38032802016-12-12 13:43:40 -0600265 [Arguments] ${args}
Chris Austenb29d2e82016-06-07 12:25:35 -0500266 Should Be Equal ${OUTPUT} ${args}
267
268Response Should Be Empty
269 Should Be Empty ${OUTPUT}
270
Gunnar Mills56b32892016-11-14 13:56:17 -0600271Read the Attribute
Gunnar Mills38032802016-12-12 13:43:40 -0600272 [Arguments] ${uri} ${parm}
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600273 ${output}= Read Attribute ${uri} ${parm}
Chris Austenb29d2e82016-06-07 12:25:35 -0500274 set test variable ${OUTPUT} ${output}
275
276Get Sensor Number
Gunnar Mills38032802016-12-12 13:43:40 -0600277 [Arguments] ${name}
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600278 ${x}= get sensor ${OPENBMC_MODEL} ${name}
Gunnar Millsc9ea9362016-12-13 16:21:13 -0600279 [Return] ${x}
Chris Austenb29d2e82016-06-07 12:25:35 -0500280
281Get Inventory Sensor Number
Gunnar Mills38032802016-12-12 13:43:40 -0600282 [Arguments] ${name}
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600283 ${x}= get inventory sensor ${OPENBMC_MODEL} ${name}
Gunnar Millsc9ea9362016-12-13 16:21:13 -0600284 [Return] ${x}
Rahul Maheshwari06174f22017-03-06 03:17:09 -0600285
Rahul Maheshwarica368e52017-05-04 05:01:49 -0500286Read Turbo Setting Via REST
287 [Documentation] Return turbo allowed setting.
288
289 ${resp}= OpenBMC Get Request ${SENSORS_URI}host/TurboAllowed
290 ${jsondata}= To JSON ${resp.content}
291 Should Be Equal As Strings ${resp.status_code} ${HTTP_OK}
292 [Return] ${jsondata["data"]["value"]}
293
294Set Turbo Setting Via REST
295 [Documentation] Set turbo setting via REST.
296 [Arguments] ${setting}
297 # Description of argument(s):
298 # setting Value which needs to be set.(i.e. False or True)
299
300 ${valueDict}= Create Dictionary data=${setting}
301 Write Attribute ${SENSORS_URI}host/TurboAllowed value data=${valueDict}
302
Rahul Maheshwari06174f22017-03-06 03:17:09 -0600303Post Test Case Execution
304 [Documentation] Do the post test teardown.
305 ... 1. Capture FFDC on test failure.
306 ... 2. Close all open SSH connections.
307
308 FFDC On Test Case Fail
309 Close All Connections
Rahul Maheshwarica368e52017-05-04 05:01:49 -0500310
311Restore System Configuration
312 [Documentation] Restore System Configuration.
313
314 Open Connection And Log In
315 Set Turbo Setting Via REST ${TURBO_SETTING}
316 Close All Connections