xref: /openbmc/openbmc-test-automation/redfish/extended/test_fan_operation.robot (revision 4aff2d02245284f855158954da20deb7eef75755)
1741e99d9SSteven Sombar*** Settings ***
2741e99d9SSteven Sombar
3741e99d9SSteven SombarDocumentation  Operational check of fans with OS booted.
4741e99d9SSteven Sombar
5741e99d9SSteven Sombar# Test Parameters:
6741e99d9SSteven Sombar# OPENBMC_HOST       The BMC host name or IP address.
7741e99d9SSteven Sombar# OPENBMC_USERNAME   The userID to login to the BMC as.
8741e99d9SSteven Sombar# OPENBMC_PASSWORD   The password for OPENBMC_USERNAME.
9741e99d9SSteven Sombar#
10741e99d9SSteven Sombar# Approximate run time:   18 minutes.
11741e99d9SSteven Sombar
12741e99d9SSteven SombarResource        ../../lib/utils.robot
13741e99d9SSteven SombarResource        ../../lib/fan_utils.robot
14741e99d9SSteven SombarResource        ../../lib/dump_utils.robot
15741e99d9SSteven Sombar
16741e99d9SSteven Sombar
17741e99d9SSteven SombarSuite Setup     Suite Setup Execution
18741e99d9SSteven SombarTest Teardown   Test Teardown Execution
19741e99d9SSteven Sombar
20741e99d9SSteven Sombar
21741e99d9SSteven Sombar*** Test Cases ***
22741e99d9SSteven Sombar
23741e99d9SSteven Sombar
24741e99d9SSteven SombarCheck Number Of Fans With Power On
25741e99d9SSteven Sombar    [Documentation]  Verify system has the minimum number of fans.
26741e99d9SSteven Sombar    [Tags]  Check_Number_Of_Fans_With_Power_On
27741e99d9SSteven Sombar
28741e99d9SSteven Sombar    # Determine if system is water cooled.
29741e99d9SSteven Sombar    ${water_cooled}=  Is Water Cooled
30741e99d9SSteven Sombar    Rprint Vars  water_cooled
31741e99d9SSteven Sombar
32741e99d9SSteven Sombar    Verify Minimum Number Of Fans With Cooling Type  ${number_of_fans}
33741e99d9SSteven Sombar    ...  ${water_cooled}
34741e99d9SSteven Sombar
35741e99d9SSteven Sombar
36741e99d9SSteven SombarCheck Number Of Fan Monitors With Power On
37741e99d9SSteven Sombar    [Documentation]  Verify monitors are present when power on.
38741e99d9SSteven Sombar    [Tags]  Check_Number_Of_Fan_Monitors_With_Power_On
39741e99d9SSteven Sombar
40741e99d9SSteven Sombar    Verify Fan Monitors With State  On
41741e99d9SSteven Sombar
42741e99d9SSteven Sombar
43741e99d9SSteven SombarCheck Fans Running At Target Speed
44741e99d9SSteven Sombar    [Documentation]  Verify fans are running at or near target speed.
45741e99d9SSteven Sombar    [Tags]  Check_Fans_Running_At_Target_Speed
46741e99d9SSteven Sombar
47741e99d9SSteven Sombar    # Set the speed tolerance criteria.
484cb50e66SSteven Sombar    # A tolerance value of .30 means that the fan's speed should be
494cb50e66SSteven Sombar    # within 30% of its set target speed.   Fans may be accelerating
504cb50e66SSteven Sombar    # or decelerating to meet a new target, so allow .20 extra.
514cb50e66SSteven Sombar    ${tolerance}=  Set Variable  .50
52741e99d9SSteven Sombar    Rprint Vars  tolerance
53741e99d9SSteven Sombar
54741e99d9SSteven Sombar    Verify Fan Speed  ${tolerance}  ${fan_names}
55741e99d9SSteven Sombar
56741e99d9SSteven Sombar
57741e99d9SSteven SombarCheck Fan Manual Control
58741e99d9SSteven Sombar    [Documentation]  Check direct control of fans.
59741e99d9SSteven Sombar    [Tags]  Check_Fan_Manual_Control
60741e99d9SSteven Sombar
61741e99d9SSteven Sombar    # The maximum target speed.
62741e99d9SSteven Sombar    ${max_speed}=  Set Variable  ${10500}
63741e99d9SSteven Sombar
64741e99d9SSteven Sombar    # Speed criteria for passing, which is 85% of max_speed.
65741e99d9SSteven Sombar    ${min_speed}=  Set Variable  ${8925}
66741e99d9SSteven Sombar
67741e99d9SSteven Sombar    # Time allowed for the fan daemon to take control and then return
68741e99d9SSteven Sombar    # the fans to normal speed.
69741e99d9SSteven Sombar    ${minutes_to_stabilize}=  Set Variable  4
70741e99d9SSteven Sombar
71741e99d9SSteven Sombar    Verify Direct Fan Control
72741e99d9SSteven Sombar    ...  ${max_speed}  ${min_speed}  ${minutes_to_stabilize}
73741e99d9SSteven Sombar    ...  ${number_of_fans}  ${fan_names}
74741e99d9SSteven Sombar
75741e99d9SSteven Sombar
76741e99d9SSteven SombarCheck Fan Speed Increase When One Disabled
77741e99d9SSteven Sombar    [Documentation]  Verify that the speed of working fans increase when
78741e99d9SSteven Sombar    ...  one fan is disabled.
79741e99d9SSteven Sombar    [Tags]  Check_Fan_Speed_Increase_When_One_Disabled
80741e99d9SSteven Sombar    #  A non-functional fan should cause an error log and
81741e99d9SSteven Sombar    #  an enclosure LED will light.  The other fans should speed up.
82741e99d9SSteven Sombar
83741e99d9SSteven Sombar    Verify Fan Speed Increase  ${fan_names}
84741e99d9SSteven Sombar
85741e99d9SSteven Sombar
86741e99d9SSteven SombarCheck System Shutdown Due To Fans
87741e99d9SSteven Sombar    [Documentation]  Shut down when not enough fans.
88741e99d9SSteven Sombar    [Tags]  Check_System_Shutdown_Due_To_Fans
89741e99d9SSteven Sombar
904cb50e66SSteven Sombar    # Previous test may have shut down the OS.
914cb50e66SSteven Sombar    Redfish Power On  stack_mode=skip
924cb50e66SSteven Sombar
93741e99d9SSteven Sombar    Verify System Shutdown Due To Fans  ${fan_names}
94741e99d9SSteven Sombar
95741e99d9SSteven Sombar
96741e99d9SSteven Sombar*** Keywords ***
97741e99d9SSteven Sombar
98741e99d9SSteven SombarReset Fans And Error Logs
99741e99d9SSteven Sombar    [Documentation]  Reset Fans, Error Logs, and LEDs
100741e99d9SSteven Sombar
101741e99d9SSteven Sombar    Reset Fans  ${fan_names}
102741e99d9SSteven Sombar    Run Key U  Sleep \ 15s
103741e99d9SSteven Sombar    Delete All Error Logs
104*4aff2d02STim Lee    Redfish Delete All BMC Dumps
105741e99d9SSteven Sombar    Set System LED State  front_fault  Off
106741e99d9SSteven Sombar    Set System LED State  rear_fault  Off
107741e99d9SSteven Sombar
108741e99d9SSteven Sombar
109741e99d9SSteven SombarSuite Setup Execution
110741e99d9SSteven Sombar    [Documentation]  Do the pre-suite setup.
111741e99d9SSteven Sombar
112741e99d9SSteven Sombar    Redfish Power On  stack_mode=skip
113741e99d9SSteven Sombar
114741e99d9SSteven Sombar    ${number_of_fans}  ${fan_names}=  Get Fan Count And Names
115741e99d9SSteven Sombar    Printn
116741e99d9SSteven Sombar    Rprint Vars  number_of_fans  fan_names
117741e99d9SSteven Sombar    Set Suite Variable  ${fan_names}  children=true
118741e99d9SSteven Sombar    Set Suite Variable  ${number_of_fans}  children=true
119741e99d9SSteven Sombar
120741e99d9SSteven Sombar    Reset Fans And Error Logs
121741e99d9SSteven Sombar
122741e99d9SSteven Sombar
123741e99d9SSteven SombarTest Teardown Execution
124741e99d9SSteven Sombar    [Documentation]  Do the post-test teardown.
125741e99d9SSteven Sombar
126741e99d9SSteven Sombar    FFDC On Test Case Fail
127741e99d9SSteven Sombar    Reset Fans And Error Logs
128