| # Copyright 2018 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. |
| |
| """Server side test that controls charging the DUT with Servo v4.""" |
| |
| from autotest_lib.server import autotest |
| from autotest_lib.server import test |
| from autotest_lib.server.cros.power import servo_charger |
| |
| # Max number of hours the DUT can charge for. |
| _MAX_HOURS = 3 |
| |
| |
| class power_BatteryChargeControl(test.test): |
| """Server side test that controls charging the DUT. |
| |
| This server side test first makes sure that the attached Servo v4 can |
| control charging the DUT, then puts the DUT on AC to charge, and finally |
| disconnect DUT from AC. |
| """ |
| version = 1 |
| |
| def run_once(self, host, percent_charge_to_add, percent_target_charge): |
| """Running the test. |
| |
| @param host: CrosHost object representing the DUT. |
| @param percent_charge_to_add: percentage of the charge capacity charge |
| to add. The target charge will be capped at the charge capacity. |
| @param percent_target_charge: percentage of the charge capacity target |
| charge. The target charge will be capped at the charge capacity. |
| """ |
| servo = host.servo |
| charge_manager = servo_charger.ServoV4ChargeManager(host, servo) |
| charge_manager.start_charging() |
| |
| time_limit = _MAX_HOURS * 60 * 60 |
| autotest_client = autotest.Autotest(host) |
| autotest_client.run_test('power_BatteryCharge', |
| max_run_time=time_limit, |
| percent_charge_to_add=percent_charge_to_add, |
| percent_target_charge=percent_target_charge, |
| use_design_charge_capacity=False) |
| |
| charge_manager.restore_original_setting() |