blob: f7535aa39c3dab0e6bc616fd81eef50b2edd0c4f [file] [log] [blame]
*** Settings ***
Documentation Energy scale power capping tests.
# Acronyms
# PL Power Limit
# OCC On Chip Controller
Resource ../lib/energy_scale_utils.robot
Resource ../lib/rest_client.robot
Resource ../lib/openbmc_ffdc.robot
Resource ../lib/boot_utils.robot
Resource ../lib/ipmi_client.robot
Suite Setup Suite Setup Execution
Test Teardown Test Teardown Execution
*** Test Cases ***
Escale System On And PL Enabled
[Documentation] Change active power limit with system power on and
... Power limit active.
[Tags] Escale_System_On_And_PL_Enabled
REST Power On stack_mode=skip
OCC Tool Upload Setup
# Get OCC data from OS.
${cmd}= Set Variable /tmp/occtoolp9 -p | grep -e State: -e Sensor:
${output} ${stderr} ${rc}= OS Execute Command ${cmd}
# Check for expected responses.
Should Contain ${output} ACTIVE
Should Contain ${output} Sensor: TEMP
Should Contain ${output} Sensor: FREQ
Should Contain ${output} Sensor: POWR
${power}= Get DCMI Power Limit
Should Be True ${power} == ${0}
... msg=Initial dcmi power limit should be zero.
Activate DCMI Power And Verify
Set DCMI Power Limit And Verify 300
Escale System On And PL Disabled
[Documentation] Change active power limit with system power on and
... deactivate power limit prior to change.
[Tags] Escale_System_On_And_PL_Disabled
${power_setting}= Set Variable ${600}
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
Run External IPMI Standard Command ${cmd}
${power}= Get DCMI Power Limit
Should Be True ${power} == ${500}
... msg=Could not set power limit when power limiting deactivated.
Escale Check Settings System On Then Off
[Documentation] Set power limit and activate power limit before
... BMC state is power on.
[Tags] Escale_Check_Settings_System_On_Then_Off
${power_setting}= Set Variable ${800}
REST Power On stack_mode=skip
Set DCMI Power Limit And Verify ${power_setting}
Deactivate DCMI Power And Verify
${power}= Get DCMI Power Limit
Should Be True ${power} == ${power_setting}
... msg=dcmi power limit not set to ${power_setting} as expected.
Smart Power Off
Activate DCMI Power And Verify
REST Power On
${power}= Get DCMI Power Limit
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
Escale Check Settings System Off Then On
[Documentation] Set and activate power limit with system power off.
[Tags] Escale_Check_Settings_System_Off_Then_On
${power_setting}= Set Variable ${500}
Smart Power Off
# Check that DCMI power limiting is deactivated and that the initial
# power limit setting = 0.
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.
Activate DCMI Power And Verify
Set DCMI Power Limit And Verify ${power_setting}
REST Power On
Fail If DCMI Power Is Not Activated
${power}= Get DCMI Power Limit
Should Be True ${power} == ${power_setting}
... msg=Power limit setting not retained at Runtime.
Escale Change Limit At Runtime
[Documentation] Change power limit at runtime.
[Tags] Escale_Change_Limit_At_Runtime
${power_setting}= Set Variable ${600}
Smart Power Off
Set DCMI Power Limit And Verify ${power_setting}
Activate DCMI Power And Verify
REST Power On stack_mode=skip
# 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
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}
Smart Power Off
Set DCMI Power Limit And Verify ${power_setting}
Activate DCMI Power And Verify
# Power on the system.
REST Power On
# 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.
Deactivate DCMI Power And Verify
Activate DCMI Power And Verify
${power}= Get DCMI Power Limit
Should Be True ${power} == ${power_setting}
... msg=DCMI power limit not set to ${power_setting} watts as expected.
*** Keywords ***
Suite Setup Execution
[Documentation] Do test setup initialization.
# Power Off if system if not already off.
# Deactivate power and set limit = 0.
Smart Power Off
Deactivate DCMI Power And Verify
Set DCMI Power Limit And Verify 0
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.
FFDC On Test Case Fail
Smart Power Off
Deactivate DCMI Power And Verify
Set DCMI Power Limit And Verify 0