power_Draw.py revision bee23c2b0ca824c12c39e7a5a4cd4d2a313918b7
1# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5import logging, time
6from autotest_lib.client.bin import test
7from autotest_lib.client.cros import power_status
8
9
10class power_Draw(test.test):
11    version = 1
12
13
14    def run_once(self, seconds=200):
15        status = power_status.get_status()
16        if status.linepower[0].online:
17            logging.warn('AC power is online -- '
18                         'unable to monitor energy consumption')
19            return
20
21        start_energy = status.battery[0].energy
22
23        # Let the test run
24        time.sleep(seconds)
25
26        status.refresh()
27        end_energy = status.battery[0].energy
28
29        consumed_energy = start_energy - end_energy
30        energy_rate = consumed_energy * 60 * 60 / seconds
31
32        keyvals = {}
33        keyvals['wh_energy_full'] = status.battery[0].energy_full
34        keyvals['wh_start_energy'] = start_energy
35        keyvals['wh_end_energy'] = end_energy
36        keyvals['wh_consumed_energy'] = consumed_energy
37        keyvals['w_average_energy_rate'] = energy_rate
38        keyvals['w_end_energy_rate'] = status.battery[0].energy_rate
39        self.write_perf_keyval(keyvals)
40