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