blob: 040581da8bee4d88caeed601068a03d33f7a64b5 [file] [log] [blame]
Steven Sombarfc4d5752017-11-28 11:56:35 -06001*** Settings ***
2Documentation Energy scale base tests.
3
4
5# Test Parameters:
6# OPENBMC_HOST The BMC host name or IP address.
7
8
Steven Sombar1593e8c2019-08-19 09:33:06 -05009Resource ../../lib/energy_scale_utils.robot
10Resource ../../lib/openbmc_ffdc.robot
11Resource ../../lib/utils.robot
12Resource ../../lib/logging_utils.robot
13Library ../../lib/logging_utils.py
Steven Sombarfc4d5752017-11-28 11:56:35 -060014
15
16Suite Setup Suite Setup Execution
17Test Teardown Test Teardown Execution
18
19
Steven Sombarfc4d5752017-11-28 11:56:35 -060020*** Variables ****
21
Steven Sombar90b76102019-01-11 11:04:38 -060022${over_max_power} 4001
Steven Sombarfc4d5752017-11-28 11:56:35 -060023${max_power} 3050
24${mid_power} 1950
Steven Sombarc9b30672018-03-26 14:25:27 -050025${min_power} 600
Steven Sombarfc4d5752017-11-28 11:56:35 -060026${below_min_power} 499
27${zero_power} 0
Steven Sombarc9b30672018-03-26 14:25:27 -050028# The power limits are documented in
Steven Sombarfc4d5752017-11-28 11:56:35 -060029# open-power/witherspoon-xml/master/witherspoon.xml.
30
31
Steven Sombarfc4d5752017-11-28 11:56:35 -060032*** Test Cases ***
33
34
35Escale Base Test Inactive Monitoring
Benjamin Fair30ea8b12019-10-14 18:08:26 -070036 [Documentation] Run base power tests with DCMI power monitoring off.
George Keishing5236ec52022-01-31 12:07:58 -060037 [Tags] Escale_Base_Test_Inactive_Monitoring
Steven Sombarfc4d5752017-11-28 11:56:35 -060038
39 Deactivate DCMI Power And Verify
40 Verify Power Limits
41
42
43Escale Base Test Active Monitoring
Steven Sombarc4351022018-01-15 13:47:38 -060044 [Documentation] Run base power tests with DCMI power monitoring on.
Steven Sombarfc4d5752017-11-28 11:56:35 -060045 [Tags] Escale_Base_Test_Active_Monitoring
46
47 Activate DCMI Power And Verify
48 Verify Power Limits
49
50
Steven Sombarc4351022018-01-15 13:47:38 -060051Escale Power Setting Via REST And Verify
52 [Documentation] Set power via REST and check using IPMI.
53 [Tags] Escale_Power_Setting_Via_REST_And_Verify
54
55 # A convenient power level bewtwwn maximum and minimum.
56 ${test_power}= Set Variable 1700
57
58 # Set the power limit via REST.
59 Set DCMI Power Limit Via REST ${test_power}
60
61 # Read the power limit using IPMI.
62 ${power_limit}= Get DCMI Power Limit
63 Should Be True ${power_limit} == ${test_power}
64 ... msg=Reading Power limit with IPMI failed after setting it with REST.
65
66
67Escale Power Setting Via IPMI And Verify
68 [Documentation] Set power via IPMI then check via REST.
69 [Tags] Escale_Power_Setting_Via_IPMI_And_Verify
70
71 # A convenient power level bewtwwn maximum and minimum.
72 ${test_power}= Set Variable 2200
73
74 # Set DCMI Power via IPMI.
75 Set DCMI Power Limit And Verify ${test_power}
76
77 # Read the limit via REST.
78 ${power_limit}= Get DCMI Power Limit Via REST
79 Should Be True ${power_limit} == ${test_power}
80 ... msg=Reading power limit with REST failed after setting it with IPMI.
81
82
83Escale Activation Test Via REST
84 [Documentation] Activate power monitoring via REST then check via IPMI.
85 [Tags] Escale_Activation_Test_Via_REST
86
87 Activate DCMI Power Via REST
88 # Confirm activation state using IPMI.
89 Fail If DCMI Power Is Not Activated
90
91
George Keishing5b9a0c32021-06-01 03:36:36 -050092Escale Deactivation Test Via REST
Steven Sombarc4351022018-01-15 13:47:38 -060093 [Documentation] Deactivate power monitoring via REST and check via IPMI.
94 [Tags] Escale_Deactivation_Test_Via_REST
95
96 Deactivate DCMI Power Via REST
97 # Confirm activation state using IPMI.
98 Fail If DCMI Power Is Not Deactivated
99
Steven Sombarfc4d5752017-11-28 11:56:35 -0600100
101*** Keywords ***
102
103
104Verify Power Limits
105 [Documentation] Set power levels and verify limits.
106
107 Set DCMI Power Limit And Verify ${mid_power}
108 Test Power Limit ${min_power} ${below_min_power}
109 Test Power Limit ${min_power} ${zero_power}
110 Test Power Limit ${max_power} ${over_max_power}
111
Steven Sombar90b76102019-01-11 11:04:38 -0600112 ${power_limit}= Get DCMI Power Limit
113 Should Be True ${power_limit} == ${max_power}
114 ... msg=Power at ${power_limit}. Power should be at ${max_power}.
Steven Sombarc9b30672018-03-26 14:25:27 -0500115
Steven Sombarfc4d5752017-11-28 11:56:35 -0600116
117Test Power Limit
118 [Documentation] Set power and check limit.
119 [Arguments] ${good_power} ${outside_bounds_power}
120
121 # Description of argument(s):
122 # good_power A valid power setting, usually at a limit.
123 # outside_bounds_power A power level that is beyond the limit.
124
125 Set DCMI Power Limit And Verify ${good_power}
126
Steven Sombarc9b30672018-03-26 14:25:27 -0500127 # Attempt set power limit out of range.
Steven Sombar792747a2019-01-25 12:04:42 -0600128 ${int_power_limit}= Convert To Integer ${outside_bounds_power}
129 ${data}= Create Dictionary data=${int_power_limit}
Steven Sombarc9b30672018-03-26 14:25:27 -0500130 Write Attribute ${CONTROL_HOST_URI}power_cap PowerCap data=${data}
Steven Sombarfc4d5752017-11-28 11:56:35 -0600131
132
133Suite Setup Execution
134 [Documentation] Do test setup initialization.
135
Steven Sombar1593e8c2019-08-19 09:33:06 -0500136 Redfish.Login
137
Steven Sombarfc4d5752017-11-28 11:56:35 -0600138 # Save the deactivation/activation setting.
139 ${cmd}= Catenate dcmi power get_limit | grep State
140 ${resp}= Run External IPMI Standard Command ${cmd}
141 # Response is either "Power Limit Active" or "No Active Power Limit".
142 ${initial_deactivation}= Get Count ${resp} No
143 # If deactivated: initial_deactivation = 1, 0 otherwise.
144 Set Suite Variable ${initial_deactivation} children=true
145
146 # Save the power limit setting.
147 ${initial_power_setting}= Get DCMI Power Limit
148 Set Suite Variable ${initial_power_setting} children=true
149
George Keishingfd0c20a2018-06-18 12:23:51 -0500150 Delete All Error Logs
Steven Sombarc9b30672018-03-26 14:25:27 -0500151
Steven Sombarfc4d5752017-11-28 11:56:35 -0600152
153Test Teardown Execution
154 [Documentation] Do the post test teardown.
155
156 FFDC On Test Case Fail
157
Gunnar Mills948e2e22018-03-23 12:54:27 -0500158 # Restore the system's initial power limit setting.
Steven Sombarfc4d5752017-11-28 11:56:35 -0600159 Run Keyword If '${initial_power_setting}' != '${0}'
160 ... Set DCMI Power Limit And Verify ${initial_power_setting}
161
Gunnar Mills948e2e22018-03-23 12:54:27 -0500162 # Restore the system's initial deactivation/activation setting.
Steven Sombarfc4d5752017-11-28 11:56:35 -0600163 Run Keyword If '${initial_deactivation}' == '${1}'
164 ... Deactivate DCMI Power And Verify ELSE Activate DCMI Power And Verify
Steven Sombar90b76102019-01-11 11:04:38 -0600165
166 # Clean up any error logs before exiting.
167 Delete All Error Logs
Steven Sombar1593e8c2019-08-19 09:33:06 -0500168
169 Redfish.Logout