summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDiana Z <dzigterman@chromium.org>2019-12-09 14:58:34 -0700
committerCommit Bot <commit-bot@chromium.org>2019-12-12 21:08:44 +0000
commit6ad16c1bb9128e344f8192c9b459738d202442d8 (patch)
treeba97b9609e5c41c5c9932762ad4696f398b57102 /test
parentd07765c2d2d8a48eb1b728e4d1b0b5f8945279af (diff)
downloadchrome-ec-6ad16c1bb9128e344f8192c9b459738d202442d8.tar.gz
Charge state v2: Only shutdown on cold discharge
Currently, the discharge minimum temperature is always checked when determining if the system should shut down, even if the system is not discharging. This change allows the system to run below the discharging minimum temperature as long as AC is present. BRANCH=octopus BUG=b:145494158 TEST=loaded onto octopus unit, faked low battery temperature and verified the system did shut down when discharging and did not with AC Change-Id: I4f6549b04dc1e7b55e410d3ae4f67dc6126f9c7c Signed-off-by: Diana Z <dzigterman@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1958853 Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org> Reviewed-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1964991
Diffstat (limited to 'test')
-rw-r--r--test/sbs_charging_v2.c34
1 files changed, 33 insertions, 1 deletions
diff --git a/test/sbs_charging_v2.c b/test/sbs_charging_v2.c
index af2c9292a1..e5f1c8ebb9 100644
--- a/test/sbs_charging_v2.c
+++ b/test/sbs_charging_v2.c
@@ -2,7 +2,7 @@
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
- * Test lid switch.
+ * Test charge_state_v2 behavior
*/
#include "battery_smart.h"
@@ -350,6 +350,36 @@ static int test_high_temp_battery(void)
return EC_SUCCESS;
}
+static int test_cold_battery_with_ac(void)
+{
+ test_setup(1);
+
+ ccprintf("[CHARGING TEST] Cold battery no shutdown with AC\n");
+ ev_clear(EC_HOST_EVENT_BATTERY_SHUTDOWN);
+ sb_write(SB_TEMPERATURE, CELSIUS_TO_DECI_KELVIN(-90));
+ wait_charging_state();
+ sleep(CONFIG_BATTERY_CRITICAL_SHUTDOWN_TIMEOUT);
+ TEST_ASSERT(!is_shutdown);
+
+ return EC_SUCCESS;
+}
+
+static int test_cold_battery_no_ac(void)
+{
+ test_setup(0);
+
+ ccprintf("[CHARGING TEST] Cold battery shutdown when discharging\n");
+ ev_clear(EC_HOST_EVENT_BATTERY_SHUTDOWN);
+ sb_write(SB_TEMPERATURE, CELSIUS_TO_DECI_KELVIN(-90));
+ wait_charging_state();
+ TEST_ASSERT(ev_is_set(EC_HOST_EVENT_BATTERY_SHUTDOWN));
+ TEST_ASSERT(!is_shutdown);
+ sleep(CONFIG_BATTERY_CRITICAL_SHUTDOWN_TIMEOUT);
+ TEST_ASSERT(is_shutdown);
+
+ return EC_SUCCESS;
+}
+
static int test_external_funcs(void)
{
int rv, temp;
@@ -688,6 +718,8 @@ void run_test(void)
RUN_TEST(test_charge_state);
RUN_TEST(test_low_battery);
RUN_TEST(test_high_temp_battery);
+ RUN_TEST(test_cold_battery_with_ac);
+ RUN_TEST(test_cold_battery_no_ac);
RUN_TEST(test_external_funcs);
RUN_TEST(test_hc_charge_state);
RUN_TEST(test_hc_current_limit);