summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVic Yang <victoryang@chromium.org>2013-09-26 17:40:45 +0800
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2013-09-27 04:33:36 +0000
commit1b1bf3f03f6921ebff1c500cae7959b11287ecd3 (patch)
treeefe789d5e8407e5c3025fea37941dda3416e43c8
parent4de56d4a7f2fb9fb459f31a8e8f1616e54852157 (diff)
downloadchrome-ec-1b1bf3f03f6921ebff1c500cae7959b11287ecd3.tar.gz
Test charging error state when battery is detached
This checks charge state machine goes into error state when battery is not responding. BUG=chrome-os-partner:19236 TEST=Pass sbs_charging test BRANCH=None Change-Id: I61970c4d88cbb0d6242613cdc87b88da7ae3f2f4 Signed-off-by: Vic Yang <victoryang@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/170753 Reviewed-by: Randall Spangler <rspangler@chromium.org>
-rw-r--r--test/sbs_charging.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/test/sbs_charging.c b/test/sbs_charging.c
index b9add7ee63..a411504ff2 100644
--- a/test/sbs_charging.c
+++ b/test/sbs_charging.c
@@ -18,6 +18,7 @@
#include "util.h"
#define WAIT_CHARGER_TASK 500
+#define BATTERY_DETACH_DELAY 35000
static int mock_ac_present = 1;
static int mock_chipset_state = CHIPSET_STATE_ON;
@@ -104,6 +105,20 @@ static int test_charge_state(void)
state = wait_charging_state();
TEST_ASSERT(state == PWR_STATE_CHARGE);
+ /* Detach battery, charging error */
+ ccprintf("[CHARGING TEST] Detach battery\n");
+ TEST_ASSERT(test_detach_i2c(I2C_PORT_BATTERY, BATTERY_ADDR) ==
+ EC_SUCCESS);
+ msleep(BATTERY_DETACH_DELAY);
+ state = wait_charging_state();
+ TEST_ASSERT(state == PWR_STATE_ERROR);
+
+ /* Attach battery again, charging */
+ ccprintf("[CHARGING TEST] Attach battery\n");
+ test_attach_i2c(I2C_PORT_HOST, BATTERY_ADDR);
+ state = wait_charging_state();
+ TEST_ASSERT(state == PWR_STATE_CHARGE);
+
/* Unplug AC, discharging at 1000mAh */
ccprintf("[CHARGING TEST] AC off\n");
mock_ac_present = 0;