|  | *** 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 |