| Index: tools/telemetry/telemetry/internal/platform/power_monitor/android_dumpsys_power_monitor_unittest.py
|
| diff --git a/tools/telemetry/telemetry/internal/platform/power_monitor/android_dumpsys_power_monitor_unittest.py b/tools/telemetry/telemetry/internal/platform/power_monitor/android_dumpsys_power_monitor_unittest.py
|
| index 1b21386b9d8b5ccbba0673a1d014c549ab1cc69c..d532b048737ec01d849f3d89e51e5928850d0231 100644
|
| --- a/tools/telemetry/telemetry/internal/platform/power_monitor/android_dumpsys_power_monitor_unittest.py
|
| +++ b/tools/telemetry/telemetry/internal/platform/power_monitor/android_dumpsys_power_monitor_unittest.py
|
| @@ -5,21 +5,32 @@
|
| import unittest
|
|
|
| from telemetry.internal.platform.power_monitor import android_dumpsys_power_monitor
|
| +from telemetry.internal.platform.power_monitor import pm_mock
|
|
|
|
|
| -class DumpsysPowerMonitorMonitorTest(unittest.TestCase):
|
| +_PACKAGE = 'com.google.android.apps.chrome'
|
|
|
| - def testApplicationEnergyConsumption(self):
|
| - package = 'com.google.android.apps.chrome'
|
| - power_data = {
|
| +_TYPICAL_POWER_DATA = {
|
| + 'system_total': 2000.0,
|
| + 'per_package': {
|
| + _PACKAGE: {'data': [23.9], 'uid': '12345'}
|
| + }
|
| + }
|
| +
|
| +_TYPICAL_POWER_DATA_MULTISAMPLE = {
|
| 'system_total': 2000.0,
|
| 'per_package': {
|
| - package: {'data': [23.9], 'uid': '12345'}
|
| + _PACKAGE: {'data': [23.9, 26.1], 'uid': '12345'}
|
| }
|
| }
|
| +
|
| +
|
| +class DumpsysPowerMonitorMonitorTest(unittest.TestCase):
|
| +
|
| + def testApplicationEnergyConsumption(self):
|
| results = (
|
| android_dumpsys_power_monitor.DumpsysPowerMonitor.ProcessPowerData(
|
| - power_data, 4.0, package))
|
| + _TYPICAL_POWER_DATA, 4.0, _PACKAGE))
|
| self.assertEqual(results['identifier'], 'dumpsys')
|
| self.assertAlmostEqual(results['application_energy_consumption_mwh'], 95.6)
|
|
|
| @@ -35,6 +46,37 @@ class DumpsysPowerMonitorMonitorTest(unittest.TestCase):
|
| self.assertEqual(results['application_energy_consumption_mwh'], 0)
|
| self.assertEqual(results['energy_consumption_mwh'], 8000.0)
|
|
|
| + def testMonitorCycle(self):
|
| + browser = pm_mock.MockBrowser(_PACKAGE)
|
| + battery = pm_mock.MockBattery(_TYPICAL_POWER_DATA_MULTISAMPLE, voltage=5.0)
|
| + backend = pm_mock.MockPlatformBackend()
|
| + pm = android_dumpsys_power_monitor.DumpsysPowerMonitor(battery, backend)
|
| + pm.StartMonitoringPower(browser)
|
| + result = pm.StopMonitoringPower()
|
| + self.assertEqual(result['identifier'], 'dumpsys')
|
| + self.assertEqual(result['power_samples_mw'], [])
|
| + self.assertAlmostEqual(result['application_energy_consumption_mwh'], 250.0)
|
| + self.assertAlmostEqual(result['energy_consumption_mwh'], 10000.0)
|
| +
|
| + def testDoubleStop(self):
|
| + browser = pm_mock.MockBrowser(_PACKAGE)
|
| + battery = pm_mock.MockBattery(_TYPICAL_POWER_DATA_MULTISAMPLE, voltage=5.0)
|
| + backend = pm_mock.MockPlatformBackend()
|
| + pm = android_dumpsys_power_monitor.DumpsysPowerMonitor(battery, backend)
|
| + pm.StartMonitoringPower(browser)
|
| + pm.StopMonitoringPower()
|
| + with self.assertRaises(AssertionError):
|
| + pm.StopMonitoringPower()
|
| +
|
| + def testDoubleStart(self):
|
| + browser = pm_mock.MockBrowser(_PACKAGE)
|
| + battery = pm_mock.MockBattery(_TYPICAL_POWER_DATA_MULTISAMPLE, voltage=5.0)
|
| + backend = pm_mock.MockPlatformBackend()
|
| + pm = android_dumpsys_power_monitor.DumpsysPowerMonitor(battery, backend)
|
| + pm.StartMonitoringPower(browser)
|
| + with self.assertRaises(AssertionError):
|
| + pm.StartMonitoringPower(browser)
|
| +
|
|
|
| if __name__ == '__main__':
|
| unittest.main()
|
|
|