blob: 7c38cf06d9045ef6ad7a1bf9b6f918a08b3b7a0c [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
Sridevi Ramesh208e2582025-09-07 01:43:30 -050019Test Tags Escale_Base
Steven Sombarfc4d5752017-11-28 11:56:35 -060020
Steven Sombarfc4d5752017-11-28 11:56:35 -060021*** Variables ****
22
Steven Sombar90b76102019-01-11 11:04:38 -060023${over_max_power} 4001
Steven Sombarfc4d5752017-11-28 11:56:35 -060024${max_power} 3050
25${mid_power} 1950
Steven Sombarc9b30672018-03-26 14:25:27 -050026${min_power} 600
Steven Sombarfc4d5752017-11-28 11:56:35 -060027${below_min_power} 499
28${zero_power} 0
Steven Sombarc9b30672018-03-26 14:25:27 -050029# The power limits are documented in
Steven Sombarfc4d5752017-11-28 11:56:35 -060030# open-power/witherspoon-xml/master/witherspoon.xml.
31
32
Steven Sombarfc4d5752017-11-28 11:56:35 -060033*** Test Cases ***
34
35
36Escale Base Test Inactive Monitoring
Benjamin Fair30ea8b12019-10-14 18:08:26 -070037 [Documentation] Run base power tests with DCMI power monitoring off.
George Keishing5236ec52022-01-31 12:07:58 -060038 [Tags] Escale_Base_Test_Inactive_Monitoring
Steven Sombarfc4d5752017-11-28 11:56:35 -060039
40 Deactivate DCMI Power And Verify
41 Verify Power Limits
42
43
44Escale Base Test Active Monitoring
Steven Sombarc4351022018-01-15 13:47:38 -060045 [Documentation] Run base power tests with DCMI power monitoring on.
Steven Sombarfc4d5752017-11-28 11:56:35 -060046 [Tags] Escale_Base_Test_Active_Monitoring
47
48 Activate DCMI Power And Verify
49 Verify Power Limits
50
51
Steven Sombarc4351022018-01-15 13:47:38 -060052Escale Power Setting Via REST And Verify
53 [Documentation] Set power via REST and check using IPMI.
54 [Tags] Escale_Power_Setting_Via_REST_And_Verify
55
56 # A convenient power level bewtwwn maximum and minimum.
57 ${test_power}= Set Variable 1700
58
59 # Set the power limit via REST.
60 Set DCMI Power Limit Via REST ${test_power}
61
62 # Read the power limit using IPMI.
63 ${power_limit}= Get DCMI Power Limit
64 Should Be True ${power_limit} == ${test_power}
65 ... msg=Reading Power limit with IPMI failed after setting it with REST.
66
67
68Escale Power Setting Via IPMI And Verify
69 [Documentation] Set power via IPMI then check via REST.
70 [Tags] Escale_Power_Setting_Via_IPMI_And_Verify
71
72 # A convenient power level bewtwwn maximum and minimum.
73 ${test_power}= Set Variable 2200
74
75 # Set DCMI Power via IPMI.
76 Set DCMI Power Limit And Verify ${test_power}
77
78 # Read the limit via REST.
79 ${power_limit}= Get DCMI Power Limit Via REST
80 Should Be True ${power_limit} == ${test_power}
81 ... msg=Reading power limit with REST failed after setting it with IPMI.
82
83
84Escale Activation Test Via REST
85 [Documentation] Activate power monitoring via REST then check via IPMI.
86 [Tags] Escale_Activation_Test_Via_REST
87
88 Activate DCMI Power Via REST
89 # Confirm activation state using IPMI.
90 Fail If DCMI Power Is Not Activated
91
92
George Keishing5b9a0c32021-06-01 03:36:36 -050093Escale Deactivation Test Via REST
Steven Sombarc4351022018-01-15 13:47:38 -060094 [Documentation] Deactivate power monitoring via REST and check via IPMI.
95 [Tags] Escale_Deactivation_Test_Via_REST
96
97 Deactivate DCMI Power Via REST
98 # Confirm activation state using IPMI.
99 Fail If DCMI Power Is Not Deactivated
100
Steven Sombarfc4d5752017-11-28 11:56:35 -0600101
102*** Keywords ***
103
104
105Verify Power Limits
106 [Documentation] Set power levels and verify limits.
107
108 Set DCMI Power Limit And Verify ${mid_power}
109 Test Power Limit ${min_power} ${below_min_power}
110 Test Power Limit ${min_power} ${zero_power}
111 Test Power Limit ${max_power} ${over_max_power}
112
Steven Sombar90b76102019-01-11 11:04:38 -0600113 ${power_limit}= Get DCMI Power Limit
114 Should Be True ${power_limit} == ${max_power}
115 ... msg=Power at ${power_limit}. Power should be at ${max_power}.
Steven Sombarc9b30672018-03-26 14:25:27 -0500116
Steven Sombarfc4d5752017-11-28 11:56:35 -0600117
118Test Power Limit
119 [Documentation] Set power and check limit.
120 [Arguments] ${good_power} ${outside_bounds_power}
121
122 # Description of argument(s):
123 # good_power A valid power setting, usually at a limit.
124 # outside_bounds_power A power level that is beyond the limit.
125
126 Set DCMI Power Limit And Verify ${good_power}
127
Steven Sombarc9b30672018-03-26 14:25:27 -0500128 # Attempt set power limit out of range.
Steven Sombar792747a2019-01-25 12:04:42 -0600129 ${int_power_limit}= Convert To Integer ${outside_bounds_power}
130 ${data}= Create Dictionary data=${int_power_limit}
Steven Sombarc9b30672018-03-26 14:25:27 -0500131 Write Attribute ${CONTROL_HOST_URI}power_cap PowerCap data=${data}
Steven Sombarfc4d5752017-11-28 11:56:35 -0600132
133
134Suite Setup Execution
135 [Documentation] Do test setup initialization.
136
Steven Sombar1593e8c2019-08-19 09:33:06 -0500137 Redfish.Login
138
Steven Sombarfc4d5752017-11-28 11:56:35 -0600139 # Save the deactivation/activation setting.
140 ${cmd}= Catenate dcmi power get_limit | grep State
141 ${resp}= Run External IPMI Standard Command ${cmd}
142 # Response is either "Power Limit Active" or "No Active Power Limit".
143 ${initial_deactivation}= Get Count ${resp} No
144 # If deactivated: initial_deactivation = 1, 0 otherwise.
145 Set Suite Variable ${initial_deactivation} children=true
146
147 # Save the power limit setting.
148 ${initial_power_setting}= Get DCMI Power Limit
149 Set Suite Variable ${initial_power_setting} children=true
150
George Keishingfd0c20a2018-06-18 12:23:51 -0500151 Delete All Error Logs
Steven Sombarc9b30672018-03-26 14:25:27 -0500152
Steven Sombarfc4d5752017-11-28 11:56:35 -0600153
154Test Teardown Execution
155 [Documentation] Do the post test teardown.
156
157 FFDC On Test Case Fail
158
Gunnar Mills948e2e22018-03-23 12:54:27 -0500159 # Restore the system's initial power limit setting.
George Keishing7dc48472025-05-07 20:23:47 +0530160 IF '${initial_power_setting}' != '${0}'
161 Set DCMI Power Limit And Verify ${initial_power_setting}
162 END
Steven Sombarfc4d5752017-11-28 11:56:35 -0600163
Gunnar Mills948e2e22018-03-23 12:54:27 -0500164 # Restore the system's initial deactivation/activation setting.
George Keishing7dc48472025-05-07 20:23:47 +0530165 IF '${initial_deactivation}' == '${1}'
166 Deactivate DCMI Power And Verify
167 ELSE
168 Activate DCMI Power And Verify
169 END
Steven Sombar90b76102019-01-11 11:04:38 -0600170
171 # Clean up any error logs before exiting.
172 Delete All Error Logs
Steven Sombar1593e8c2019-08-19 09:33:06 -0500173
174 Redfish.Logout