diff --git a/tests/test_fans.robot b/tests/test_fans.robot
deleted file mode 100755
index 28b31f7..0000000
--- a/tests/test_fans.robot
+++ /dev/null
@@ -1,45 +0,0 @@
-*** Settings ***
-
-Documentation  Fan checks.
-
-# Test Parameters:
-# OPENBMC_HOST       The BMC host name or IP address.
-# OPENBMC_USERNAME   The userID for the BMC login.
-# OPENBMC_PASSWORD   The password for OPENBMC_USERNAME.
-#
-# Approximate run time:  15 seconds.
-
-Resource         ../lib/state_manager.robot
-Resource         ../lib/fan_utils.robot
-Resource         ../lib/openbmc_ffdc.robot
-
-Suite Setup      Suite Setup Execution
-Test Teardown    FFDC On Test Case Fail
-
-*** Test Cases ***
-
-Fan Base Check Number Of Fans
-    [Documentation]  Verify minimum number of fans.
-    [Tags]  Fan_Base_Check_Number_Of_Fans
-
-    # 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}
-
-
-Fan Base Check Number Of Fan Monitors
-    [Documentation]  Verify number of fan monitor daemons.
-    [Tags]  Fan_Base_Check_Number_Of_Fan_Monitors
-
-    ${power_state}=  Get Chassis Power State
-    Verify Fan Monitors With State  ${power_state}
-
-*** Keywords ***
-
-Suite Setup Execution
-    [Documentation]  Get and set fan count and names.
-    ${number_of_fans}  ${fan_names}=  Get Fan Count And Names
-    Set Suite Variable  ${number_of_fans}  children=true
diff --git a/tests/test_fans_os.robot b/tests/test_fans_os.robot
deleted file mode 100755
index efd081c..0000000
--- a/tests/test_fans_os.robot
+++ /dev/null
@@ -1,127 +0,0 @@
-*** 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
