Test the revised energy scale power limit values
New limits are: 500-3050 watts.
In previous code levels the limits were 0..1000 watts (placeholder).
Resolves openbmc/openbmc-test-automation#1064
Change-Id: I1622febff35754c108a7d31be50f6a20f4b1ccc6
Signed-off-by: Steven Sombar <ssombar@us.ibm.com>
diff --git a/systest/test_power_capping.robot b/systest/test_power_capping.robot
index f7535aa..5a93989 100644
--- a/systest/test_power_capping.robot
+++ b/systest/test_power_capping.robot
@@ -17,6 +17,15 @@
Test Teardown Test Teardown Execution
+
+*** Variables ****
+
+${max_power} 3050
+${near_max_power_50} 3000
+${near_max_power_100} 2950
+
+
+
*** Test Cases ***
@@ -25,6 +34,8 @@
... Power limit active.
[Tags] Escale_System_On_And_PL_Enabled
+ Set DCMI Power Limit And Verify ${max_power}
+
REST Power On stack_mode=skip
OCC Tool Upload Setup
@@ -40,12 +51,12 @@
Should Contain ${output} Sensor: POWR
${power}= Get DCMI Power Limit
- Should Be True ${power} == ${0}
- ... msg=Initial dcmi power limit should be zero.
+ Should Be True ${power} == ${max_power}
+ ... msg=DCMI power limit should be ${max_power}.
Activate DCMI Power And Verify
- Set DCMI Power Limit And Verify 300
+ Set DCMI Power Limit And Verify ${near_max_power_50}
Escale System On And PL Disabled
@@ -53,22 +64,20 @@
... deactivate power limit prior to change.
[Tags] Escale_System_On_And_PL_Disabled
- ${power_setting}= Set Variable ${600}
+ ${power_setting}= Set Variable ${near_max_power_100}
REST Power On stack_mode=skip
- Activate DCMI Power And Verify
-
Set DCMI Power Limit And Verify ${power_setting}
# Deactivate and check limit
Deactivate DCMI Power And Verify
- ${cmd}= Catenate dcmi power set_limit limit 500
+ ${cmd}= Catenate dcmi power set_limit limit ${near_max_power_50}
Run External IPMI Standard Command ${cmd}
${power}= Get DCMI Power Limit
- Should Be True ${power} == ${500}
+ Should Be True ${power} == ${near_max_power_50}
... msg=Could not set power limit when power limiting deactivated.
@@ -77,7 +86,7 @@
... BMC state is power on.
[Tags] Escale_Check_Settings_System_On_Then_Off
- ${power_setting}= Set Variable ${800}
+ ${power_setting}= Set Variable ${near_max_power_100}
REST Power On stack_mode=skip
@@ -98,7 +107,6 @@
Should Be True ${power} == ${power_setting}
... msg=Power limit setting of watts not retained at Runtime.
- Set DCMI Power Limit And Verify 0
Deactivate DCMI Power And Verify
@@ -106,16 +114,17 @@
[Documentation] Set and activate power limit with system power off.
[Tags] Escale_Check_Settings_System_Off_Then_On
- ${power_setting}= Set Variable ${500}
+ ${power_setting}= Set Variable ${near_max_power_50}
+
+ Set DCMI Power Limit And Verify ${power_setting}
Smart Power Off
- # Check that DCMI power limiting is deactivated and that the initial
- # power limit setting = 0.
+ # Check deactivated and the power limit.
Fail If DCMI Power Is Not Deactivated
${power}= Get DCMI Power Limit
- Should Be True ${power} == ${0}
- ... msg=Initial dcmi power limit should be zero.
+ Should Be True ${power} == ${power_setting}
+ ... msg=DCMI power not set at ${power_setting} as expected
Activate DCMI Power And Verify
Set DCMI Power Limit And Verify ${power_setting}
@@ -133,28 +142,29 @@
[Documentation] Change power limit at runtime.
[Tags] Escale_Change_Limit_At_Runtime
- ${power_setting}= Set Variable ${600}
+ ${power_setting}= Set Variable ${near_max_power_100}
+
+ Set DCMI Power Limit And Verify ${near_max_power_50}
Smart Power Off
- Set DCMI Power Limit And Verify ${power_setting}
- Activate DCMI Power And Verify
-
REST Power On stack_mode=skip
+ Set DCMI Power Limit And Verify ${power_setting}
+
# Check that DCMI power limit setting = ${power_setting}.
${power}= Get DCMI Power Limit
Should Be True ${power} == ${power_setting}
... msg=DCMI power limit not set to ${power_setting} watts as expected.
- Set DCMI Power Limit And Verify 800
+ Set DCMI Power Limit And Verify ${max_power}
Escale Disable And Enable At Runtime
[Documentation] Disable/enable power limit at runtime.
[Tags] Escale_Disable_And_Enable_At_Runtime
- ${power_setting}= Set Variable ${500}
+ ${power_setting}= Set Variable ${near_max_power_50}
Smart Power Off
@@ -184,19 +194,43 @@
Suite Setup Execution
[Documentation] Do test setup initialization.
# Power Off if system if not already off.
- # Deactivate power and set limit = 0.
+ # Save initial settings.
+ # Deactivate power and set limit.
+
Smart Power Off
+
+ # Save the deactivation/activation setting.
+ ${cmd}= Catenate dcmi power get_limit | grep State
+ ${resp}= Run External IPMI Standard Command ${cmd}
+ # Response is either "Power Limit Active" or "No Active Power Limit".
+ ${initial_deactivation}= Get Count ${resp} No
+ # If deactivated: initial_deactivation = 1, 0 otherwise.
+ Set Suite Variable ${initial_deactivation} children=true
+
+ # Save the power limit setting.
+ ${initial_power_setting}= Get DCMI Power Limit
+ Set Suite Variable ${initial_power_setting} children=true
+
+ # Set power limiting deactivated.
Deactivate DCMI Power And Verify
- Set DCMI Power Limit And Verify 0
+
+ # Set initial power setting value.
+ Set DCMI Power Limit And Verify ${max_power}
Test Teardown Execution
[Documentation] Do the post test teardown.
# FFDC on test case fail.
# Power off the OS and wait for power off state.
- # Set deactivated DCMI power enablement and power limit = 0.
+ # Return the system's intial deactivation/activation setting.
+ # Return the system's intial power limit setting.
FFDC On Test Case Fail
+
Smart Power Off
- Deactivate DCMI Power And Verify
- Set DCMI Power Limit And Verify 0
+
+ Run Keyword If '${initial_power_setting}' != '${0}'
+ ... Set DCMI Power Limit And Verify ${initial_power_setting}
+
+ Run Keyword If '${initial_deactivation}' == '${1}'
+ ... Deactivate DCMI Power And Verify ELSE Activate DCMI Power And Verify