blob: ed5b01cc7cf985836c86868b9eb950a2e78b84bd [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
9Resource ../lib/energy_scale_utils.robot
10Resource ../lib/openbmc_ffdc.robot
Steven Sombarc9b30672018-03-26 14:25:27 -050011Resource ../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
36 [Documentation] Run base power tests with DCMI power montoring off.
37 [Tags] Escale_Base_Test_Deactive_Monitoring
38
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
92Escale Dectivation Test Via REST
93 [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
136 # Save the deactivation/activation setting.
137 ${cmd}= Catenate dcmi power get_limit | grep State
138 ${resp}= Run External IPMI Standard Command ${cmd}
139 # Response is either "Power Limit Active" or "No Active Power Limit".
140 ${initial_deactivation}= Get Count ${resp} No
141 # If deactivated: initial_deactivation = 1, 0 otherwise.
142 Set Suite Variable ${initial_deactivation} children=true
143
144 # Save the power limit setting.
145 ${initial_power_setting}= Get DCMI Power Limit
146 Set Suite Variable ${initial_power_setting} children=true
147
George Keishingfd0c20a2018-06-18 12:23:51 -0500148 Delete All Error Logs
Steven Sombarc9b30672018-03-26 14:25:27 -0500149
Steven Sombarfc4d5752017-11-28 11:56:35 -0600150
151Test Teardown Execution
152 [Documentation] Do the post test teardown.
153
154 FFDC On Test Case Fail
155
Gunnar Mills948e2e22018-03-23 12:54:27 -0500156 # Restore the system's initial power limit setting.
Steven Sombarfc4d5752017-11-28 11:56:35 -0600157 Run Keyword If '${initial_power_setting}' != '${0}'
158 ... Set DCMI Power Limit And Verify ${initial_power_setting}
159
Gunnar Mills948e2e22018-03-23 12:54:27 -0500160 # Restore the system's initial deactivation/activation setting.
Steven Sombarfc4d5752017-11-28 11:56:35 -0600161 Run Keyword If '${initial_deactivation}' == '${1}'
162 ... Deactivate DCMI Power And Verify ELSE Activate DCMI Power And Verify
Steven Sombar90b76102019-01-11 11:04:38 -0600163
164 # Clean up any error logs before exiting.
165 Delete All Error Logs