11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci# Copyright 2014 The Chromium Authors. All rights reserved. 21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci# Use of this source code is governed by a BSD-style license that can be 31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci# found in the LICENSE file. 41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciimport logging 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciimport time 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciimport unittest 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifrom telemetry import decorators 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifrom telemetry.core.platform import win_platform_backend 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccifrom telemetry.core.platform.power_monitor import msr_power_monitor 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucciclass MsrPowerMonitorTest(unittest.TestCase): 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci @decorators.Enabled('win') 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci def testMsrRuns(self): 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci platform_backend = win_platform_backend.WinPlatformBackend() 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci power_monitor = msr_power_monitor.MsrPowerMonitor(platform_backend) 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci if not power_monitor.CanMonitorPower(): 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci logging.warning('Test not supported on this platform.') 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci return 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci power_monitor.StartMonitoringPower(None) 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci time.sleep(0.01) 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci statistics = power_monitor.StopMonitoringPower() 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci self.assertEqual(statistics['identifier'], 'msr') 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci self.assertIn('energy_consumption_mwh', statistics) 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci self.assertGreater(statistics['energy_consumption_mwh'], 0) 30