diff options
Diffstat (limited to 'test/fan.c')
-rw-r--r-- | test/fan.c | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/test/fan.c b/test/fan.c deleted file mode 100644 index d03aa0213c..0000000000 --- a/test/fan.c +++ /dev/null @@ -1,113 +0,0 @@ -/* Copyright 2014 The Chromium OS Authors. All rights reserved. - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - * - * Test thermal engine. - */ - -#include "common.h" -#include "console.h" -#include "fan.h" -#include "hooks.h" -#include "host_command.h" -#include "printf.h" -#include "temp_sensor.h" -#include "test_util.h" -#include "thermal.h" -#include "timer.h" -#include "util.h" - -#define FAN_RPM(fan) fans[fan].rpm - -/*****************************************************************************/ -/* Tests */ - -void set_thermal_control_enabled(int fan, int enable); - -static int test_fan(void) -{ - /* "actual" fan speed from board/host/fan.c */ - extern int mock_rpm; - - sleep(2); - - /* Fans initialize disabled. */ - TEST_ASSERT(fan_get_rpm_actual(0) == 0); - - set_thermal_control_enabled(0, 1); - - /* - * fan_set_percent_needed() is normally called once a second by the - * thermal task, but we're not using a thermal test in this test so - * we can dink around with the fans without having to wait. The host - * implementation just sets mock_rpm to whatever it's asked for. - */ - - /* Off */ - fan_set_percent_needed(0, 0); - TEST_ASSERT(fan_get_rpm_actual(0) == 0); - fan_set_percent_needed(0, 0); - TEST_ASSERT(fan_get_rpm_actual(0) == 0); - - /* On, but just barely */ - fan_set_percent_needed(0, 1); - TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_start); - /* fan is above min speed now, so should be set to min */ - fan_set_percent_needed(0, 1); - TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_min); - - /* Full speed */ - fan_set_percent_needed(0, 100); - TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_max); - fan_set_percent_needed(0, 100); - TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_max); - - /* Slow again */ - fan_set_percent_needed(0, 1); - TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_min); - fan_set_percent_needed(0, 1); - TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_min); - - /* Off */ - fan_set_percent_needed(0, 0); - TEST_ASSERT(fan_get_rpm_actual(0) == 0); - fan_set_percent_needed(0, 0); - TEST_ASSERT(fan_get_rpm_actual(0) == 0); - - /* On, but just barely */ - fan_set_percent_needed(0, 1); - TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_start); - /* Force the mock_rpm to be slow, to simulate dragging */ - mock_rpm = FAN_RPM(0)->rpm_min - 105; - /* It should keep trying for the start speed */ - fan_set_percent_needed(0, 1); - TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_start); - /* But we have to keep forcing the mock_rpm back down */ - mock_rpm = FAN_RPM(0)->rpm_min - 105; - fan_set_percent_needed(0, 1); - TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_start); - /* Now let it turn just under rpm_min. Should be okay there. */ - mock_rpm = FAN_RPM(0)->rpm_min - 10; - fan_set_percent_needed(0, 1); - TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_min); - /* Let it go a little faster, still okay */ - mock_rpm = FAN_RPM(0)->rpm_min + 10; - fan_set_percent_needed(0, 1); - TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_min); - /* But if it drops too low, it should go back to the start speed */ - mock_rpm = FAN_RPM(0)->rpm_min - 105; - fan_set_percent_needed(0, 1); - TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_start); - /* And then relax */ - fan_set_percent_needed(0, 1); - TEST_ASSERT(fan_get_rpm_actual(0) == FAN_RPM(0)->rpm_min); - - return EC_SUCCESS; -} - -void run_test(int argc, char **argv) -{ - RUN_TEST(test_fan); - - test_print_result(); -} |