blob: efd081c4b7ea611422c943322bb230cdc3cd23dd [file] [log] [blame]
*** Settings ***
Documentation Operational check of fans with OS booted.
# Test Parameters:
# OPENBMC_HOST The BMC host name or IP address.
# OPENBMC_USERNAME The userID to login to the BMC as.
# OPENBMC_PASSWORD The password for OPENBMC_USERNAME.
#
# Approximate run time: 18 minutes.
Resource ../syslib/utils_os.robot
Resource ../lib/logging_utils.robot
Resource ../lib/utils.robot
Resource ../lib/fan_utils.robot
Library ../syslib/utils_keywords.py
Library OperatingSystem
Suite Setup Suite Setup Execution
Test Teardown Test Teardown Execution
*** Test Cases ***
Check Number Of Fans With Power On
[Documentation] Verify system has the minimum number of fans.
[Tags] Check_Number_Of_Fans_With_Power_On
# Determine if system is water cooled.
${water_cooled}= Is Water Cooled
Rprint Vars water_cooled
Verify Minimum Number Of Fans With Cooling Type ${number_of_fans}
... ${water_cooled}
Check Number Of Fan Monitors With Power On
[Documentation] Verify monitors are present when power on.
[Tags] Check_Number_Of_Fan_Monitors_With_Power_On
Verify Fan Monitors With State On
Check Fans Running At Target Speed
[Documentation] Verify fans are running at or near target speed.
[Tags] Check_Fans_Running_At_Target_Speed
# Set the speed tolerance criteria.
# A tolerance value of .30 means that the fan's speed should be
# within 30% of its set target speed. Fans may be accelerating
# or decelerating to meet a new target, so allow .20 extra.
${tolerance}= Set Variable .50
Rpvars tolerance
Verify Fan Speed ${tolerance} ${fan_names}
Check Fan Manual Control
[Documentation] Check direct control of fans.
[Tags] Check_Fan_Manual_Control
# The maximum target speed.
${max_fan_target_setting}= Set Variable ${10500}
# Speed criteria for passing, which is 85% of max_fan_target_setting.
${min_speed}= Set Variable ${8925}
# Time allowed for the fan daemon to take control and then return
# the fans to normal speed.
${minutes_to_stabilize}= Set Variable 4
Verify Direct Fan Control
... ${max_fan_target_setting} ${min_speed} ${minutes_to_stabilize}
... ${number_of_fans} ${fan_names}
Check Fan Speed Increase When One Disabled
[Documentation] Verify that the speed of working fans increase when
... one fan is disabled.
[Tags] Check_Fan_Speed_Increase_When_One_Disabled
# A non-functional fan should cause an error log and
# an enclosure LED will light. The other fans should speed up.
Verify Fan Speed Increase ${fan_names}
Check System Shutdown Due To Fans
[Documentation] Shut down when not enough fans.
[Tags] Check_System_Shutdown_Due_To_Fans
# Previous test may have shut down the OS.
REST Power On stack_mode=skip
Verify System Shutdown Due To Fans ${fan_names}
*** Keywords ***
Suite Setup Execution
[Documentation] Do the pre-test setup.
REST Power On stack_mode=skip
${number_of_fans} ${fan_names}= Get Fan Count And Names
Printn
Rprint Vars number_of_fans fan_names
Set Suite Variable ${fan_names} children=true
Set Suite Variable ${number_of_fans} children=true
Reset Fans ${fan_names}
Run Key U Sleep \ 15s
Delete All Error Logs
Set System LED State front_fault Off
Set System LED State rear_fault Off
Test Teardown Execution
[Documentation] Do the post-test teardown.
FFDC On Test Case Fail
Reset Fans ${fan_names}
Run Key U Sleep \ 15s
Delete All Error Logs
Set System LED State front_fault Off
Set System LED State rear_fault Off