blob: 3c6ceeff7e0c53529c86b3843d427f4dbb75050a [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
Sweta Potthuriaf741cb2017-07-04 09:41:17 -050013Resource ../lib/boot_utils.robot
Steven Sombaraaf72c42017-09-05 12:02:00 -050014Resource ../lib/utils.robot
Chris Austenb29d2e82016-06-07 12:25:35 -050015
Sweta Potthuri7e5dc592017-07-03 06:10:02 -050016Suite Setup Setup The Suite
Rahul Maheshwari06174f22017-03-06 03:17:09 -060017Test Setup Open Connection And Log In
18Test Teardown Post Test Case Execution
Chris Austenb29d2e82016-06-07 12:25:35 -050019
20*** Variables ***
Sweta Potthuriaf741cb2017-07-04 09:41:17 -050021
22${stack_mode} skip
23${model}= ${OPENBMC_MODEL}
Chris Austenb29d2e82016-06-07 12:25:35 -050024
25*** Test Cases ***
26Verify connection
27 Execute new Command echo "hello"
28 Response Should Be Equal "hello"
29
30Execute ipmi BT capabilities command
George Keishingcac24c72016-09-23 04:44:19 -050031 [Tags] Execute_ipmi_BT_capabilities_command
Chris Austenb29d2e82016-06-07 12:25:35 -050032 Run IPMI command 0x06 0x36
33 response Should Be Equal " 01 40 40 0a 01"
34
Sridevi Ramesh83f5c592017-01-20 04:35:13 -060035Execute Set Sensor Boot Count
36 [Tags] Execute_Set_Sensor_Boot_Count
37
Gunnar Mills1cd544d2016-12-06 11:19:22 -060038 ${uri}= Get System component BootCount
39 ${x}= Get Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -050040
41 Run IPMI command 0x04 0x30 ${x} 0x01 0x00 0x35 0x00 0x00 0x00 0x00 0x00 0x00
42 Read the Attribute ${uri} value
Gunnar Mills1cd544d2016-12-06 11:19:22 -060043 ${val}= convert to integer 53
Chris Austenb29d2e82016-06-07 12:25:35 -050044 Response Should Be Equal ${val}
45
Sridevi Ramesh83f5c592017-01-20 04:35:13 -060046OCC Active Sensor On Enabled
47 [Tags] OCC_Active_Sensor_On_Enabled
48
Gunnar Mills1cd544d2016-12-06 11:19:22 -060049 ${uri}= Get System component OccStatus
50 ${x}= Get Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -050051
52 Run IPMI command 0x04 0x30 ${x} 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x20 0x00
53 Read The Attribute ${uri} value
54 Response Should Be Equal Enabled
55
Sridevi Ramesh83f5c592017-01-20 04:35:13 -060056OCC Active Sensor On Disabled
57 [Tags] OCC_Active_Sensor_On_Disabled
58
Gunnar Mills1cd544d2016-12-06 11:19:22 -060059 ${uri}= Get System component OccStatus
60 ${x}= Get Sensor Number ${uri}
Chris Austenb29d2e82016-06-07 12:25:35 -050061
62 Run IPMI command 0x04 0x30 ${x} 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x20 0x00
63 Read The Attribute ${uri} value
64 Response Should Be Equal Disabled
65
Rahul Maheshwarieb1f6db2017-04-27 06:32:53 -050066Verify OCC Power Supply Redundancy
67 [Documentation] Check if OCC's power supply is set to not redundant.
68 [Tags] Verify_OCC_Power_Supply_Redundancy
69 ${uri}= Get System Component PowerSupplyRedundancy
70
71 Read The Attribute ${uri} value
72 Response Should Be Equal Disabled
73
74Verify OCC Power Supply Derating Value
75 [Documentation] Check if OCC's power supply derating value
76 ... is set correctly to a constant value 10.
77 [Tags] Verify_OCC_Power_Supply_Derating_Value
78
79 ${uri}= Get System Component PowerSupplyDerating
80
81 Read The Attribute ${uri} value
82 Response Should Be Equal ${10}
83
Rahul Maheshwarica368e52017-05-04 05:01:49 -050084
85Verify Enabling OCC Turbo Setting Via IPMI
86 [Documentation] Set and verify OCC's turbo allowed on enable.
87 # The allowed value for turbo allowed:
88 # True - To enable turbo allowed.
89 # False - To disable turbo allowed.
Sweta Potthuri7e5dc592017-07-03 06:10:02 -050090 [Setup] Turbo Setting Test Case Setup
Rahul Maheshwarica368e52017-05-04 05:01:49 -050091 [Tags] Verify_Enabling_OCC_Turbo_Setting_Via_IPMI
Sweta Potthuri7e5dc592017-07-03 06:10:02 -050092 [Teardown] Restore System Configuration
Rahul Maheshwarica368e52017-05-04 05:01:49 -050093
94 ${uri}= Get System Component TurboAllowed
95 ${sensor_num}= Get Sensor Number ${uri}
96
97 ${ipmi_cmd}= Catenate SEPARATOR= 0x04 0x30 ${sensor_num} 0x00${SPACE}
98 ... 0x00 0x01 0x00 0x00 0x00 0x00 0x20 0x00
99 Run IPMI Command ${ipmi_cmd}
100
101 Read The Attribute ${uri} value
102 Response Should Be Equal True
103
104
105Verify Disabling OCC Turbo Setting Via IPMI
106 [Documentation] Set and verify OCC's turbo allowed on disable.
107 # The allowed value for turbo allowed:
108 # True - To enable turbo allowed.
109 # False - To disable turbo allowed.
Sweta Potthuri7e5dc592017-07-03 06:10:02 -0500110 [Setup] Turbo Setting Test Case Setup
Rahul Maheshwarica368e52017-05-04 05:01:49 -0500111 [Tags] Verify_Disabling_OCC_Turbo_Setting_Via_IPMI
Sweta Potthuri7e5dc592017-07-03 06:10:02 -0500112 [Teardown] Restore System Configuration
Rahul Maheshwarica368e52017-05-04 05:01:49 -0500113
114 ${uri}= Get System Component TurboAllowed
115 ${sensor_num}= Get Sensor Number ${uri}
116
117 ${ipmi_cmd}= Catenate SEPARATOR= 0x04 0x30 ${sensor_num} 0x00${SPACE}
118 ... 0x00 0x00 0x00 0x01 0x00 0x00 0x20 0x00
119 Run IPMI Command ${ipmi_cmd}
120
121 Read The Attribute ${uri} value
122 Response Should Be Equal False
123
124
Rahul Maheshwaria3fdba42017-05-30 06:44:04 -0500125Verify Setting OCC Turbo Via REST
126 [Documentation] Verify enabling and disabling OCC's turbo allowed
127 ... via REST.
128 # The allowed value for turbo allowed:
129 # True - To enable turbo allowed.
130 # False - To disable turbo allowed.
131
Sweta Potthuri7e5dc592017-07-03 06:10:02 -0500132 [Setup] Turbo Setting Test Case Setup
Rahul Maheshwaria3fdba42017-05-30 06:44:04 -0500133 [Tags] Verify_Setting_OCC_Turbo_Via_REST
Sweta Potthuri7e5dc592017-07-03 06:10:02 -0500134 [Teardown] Restore System Configuration
Rahul Maheshwaria3fdba42017-05-30 06:44:04 -0500135
136 Set Turbo Setting Via REST False
137 ${setting}= Read Turbo Setting Via REST
138 Should Be Equal ${setting} False
139
140 Set Turbo Setting Via REST True
141 ${setting}= Read Turbo Setting Via REST
142 Should Be Equal ${setting} True
143
Chris Austenb29d2e82016-06-07 12:25:35 -0500144Chassis Present
Sridevi Ramesh83f5c592017-01-20 04:35:13 -0600145 [Tags] Chassis_Present
Rahul Maheshwarif8119102016-10-05 01:15:56 -0500146
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600147 ${uri}= Get System component chassis
George Keishingab1bd922016-12-05 05:29:59 -0600148 Read The Attribute
149 ... ${INVENTORY_URI}system/chassis present
Chris Austenb29d2e82016-06-07 12:25:35 -0500150 Response Should Be Equal True
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500151
Chris Austenb29d2e82016-06-07 12:25:35 -0500152Chassis Fault
Sridevi Ramesh83f5c592017-01-20 04:35:13 -0600153 [Tags] Chassis_Fault
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600154 ${uri}= Get System component chassis
George Keishingab1bd922016-12-05 05:29:59 -0600155 Read The Attribute
156 ... ${INVENTORY_URI}system/chassis fault
Chris Austenb29d2e82016-06-07 12:25:35 -0500157 Response Should Be Equal False
Chris Austenb29d2e82016-06-07 12:25:35 -0500158
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500159io_board Present
Rahul Maheshwarif8119102016-10-05 01:15:56 -0500160 [Tags] io_board_Present
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600161 ${uri}= Get System component io_board
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500162 Read The Attribute ${uri} present
163 Response Should Be Equal True
164
165io_board Fault
Rahul Maheshwarif8119102016-10-05 01:15:56 -0500166 [Tags] io_board_Fault
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600167 ${uri}= Get System component io_board
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500168 Read The Attribute ${uri} fault
169 Response Should Be Equal False
Chris Austenb29d2e82016-06-07 12:25:35 -0500170
171*** Keywords ***
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500172
173Setup The Suite
Steven Sombaraaf72c42017-09-05 12:02:00 -0500174 [Documentation] Initial suite setup.
George Keishingf1426682017-07-12 23:17:17 -0500175
Sweta Potthuriaf741cb2017-07-04 09:41:17 -0500176 # Boot Host.
177 REST Power On
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500178
179 Open Connection And Log In
George Keishingab1bd922016-12-05 05:29:59 -0600180 ${resp}= Read Properties ${OPENBMC_BASE_URI}enumerate timeout=30
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500181 Set Suite Variable ${SYSTEM_INFO} ${resp}
182 log Dictionary ${resp}
183
Sweta Potthuri7e5dc592017-07-03 06:10:02 -0500184Turbo Setting Test Case Setup
185 [Documentation] Open Connection and turbo settings
186
187 Open Connection And Log In
Rahul Maheshwarica368e52017-05-04 05:01:49 -0500188 ${setting}= Read Turbo Setting Via REST
189 Set Global Variable ${TURBO_SETTING} ${setting}
190
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500191Get System component
192 [Arguments] ${type}
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600193 ${list}= Get Dictionary Keys ${SYSTEM_INFO}
194 ${resp}= Get Matches ${list} regexp=^.*[0-9a-z_].${type}[0-9]*$
195 ${url}= Get From List ${resp} 0
Gunnar Millsc9ea9362016-12-13 16:21:13 -0600196 [Return] ${url}
Rahul Maheshwari4a4eb6e2016-09-24 01:06:36 -0500197
Chris Austenb29d2e82016-06-07 12:25:35 -0500198Execute new Command
Gunnar Mills38032802016-12-12 13:43:40 -0600199 [Arguments] ${args}
Chris Austenb29d2e82016-06-07 12:25:35 -0500200 ${output}= Execute Command ${args}
201 set test variable ${OUTPUT} "${output}"
202
203response Should Be Equal
Gunnar Mills38032802016-12-12 13:43:40 -0600204 [Arguments] ${args}
Chris Austenb29d2e82016-06-07 12:25:35 -0500205 Should Be Equal ${OUTPUT} ${args}
206
207Response Should Be Empty
208 Should Be Empty ${OUTPUT}
209
Gunnar Mills56b32892016-11-14 13:56:17 -0600210Read the Attribute
Gunnar Mills38032802016-12-12 13:43:40 -0600211 [Arguments] ${uri} ${parm}
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600212 ${output}= Read Attribute ${uri} ${parm}
Chris Austenb29d2e82016-06-07 12:25:35 -0500213 set test variable ${OUTPUT} ${output}
214
215Get Sensor Number
Gunnar Mills38032802016-12-12 13:43:40 -0600216 [Arguments] ${name}
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600217 ${x}= get sensor ${OPENBMC_MODEL} ${name}
Gunnar Millsc9ea9362016-12-13 16:21:13 -0600218 [Return] ${x}
Chris Austenb29d2e82016-06-07 12:25:35 -0500219
220Get Inventory Sensor Number
Gunnar Mills38032802016-12-12 13:43:40 -0600221 [Arguments] ${name}
Gunnar Mills1cd544d2016-12-06 11:19:22 -0600222 ${x}= get inventory sensor ${OPENBMC_MODEL} ${name}
Gunnar Millsc9ea9362016-12-13 16:21:13 -0600223 [Return] ${x}
Rahul Maheshwari06174f22017-03-06 03:17:09 -0600224
225Post Test Case Execution
226 [Documentation] Do the post test teardown.
227 ... 1. Capture FFDC on test failure.
228 ... 2. Close all open SSH connections.
229
230 FFDC On Test Case Fail
231 Close All Connections
Rahul Maheshwarica368e52017-05-04 05:01:49 -0500232
233Restore System Configuration
234 [Documentation] Restore System Configuration.
235
236 Open Connection And Log In
237 Set Turbo Setting Via REST ${TURBO_SETTING}
238 Close All Connections