1c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch# Copyright 2014 The Chromium Authors. All rights reserved. 2c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch# Use of this source code is governed by a BSD-style license that can be 3c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch# found in the LICENSE file. 4c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 5c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochimport os 6c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochimport unittest 7c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 8c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochfrom telemetry.core.platform.power_monitor import android_dumpsys_power_monitor 9c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochfrom telemetry.core.util import GetUnittestDataDir 10c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 11c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 1203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)class DumpsysPowerMonitorMonitorTest(unittest.TestCase): 13c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch def testEnergyComsumption(self): 14c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch package = 'com.google.android.apps.chrome' 155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) dumpsys_output = os.path.join(GetUnittestDataDir(), 'batterystats_v8.csv') 16c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch with open(dumpsys_output, 'r') as output: 17c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch results = ( 18c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch android_dumpsys_power_monitor.DumpsysPowerMonitor.ParseSamplingOutput( 19c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch package, output)) 20c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch self.assertEqual(results['identifier'], 'dumpsys') 215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) self.assertAlmostEqual(results['energy_consumption_mwh'], 95.6) 22c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 23c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch # Older version of the OS do not have the data. 24c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch def testNoData(self): 25c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch package = 'com.android.chrome' 26c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch dumpsys_output = os.path.join(GetUnittestDataDir(), 275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) 'batterystats_v8_no_data.csv') 28c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch with open(dumpsys_output, 'r') as output: 29c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch results = ( 30c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch android_dumpsys_power_monitor.DumpsysPowerMonitor.ParseSamplingOutput( 31c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch package, output)) 32c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch self.assertEqual(results['identifier'], 'dumpsys') 33c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch self.assertEqual(results['energy_consumption_mwh'], 0) 34c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch 35c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochif __name__ == '__main__': 36c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch unittest.main() 37