Index: tools/perf/measurements/power.py |
diff --git a/tools/perf/measurements/power.py b/tools/perf/measurements/power.py |
index 2552539cf85c6c80cbb715f87d5de55a3f90638d..c9724cc6d3c6f2d9f9db972da3c188f2491f4019 100644 |
--- a/tools/perf/measurements/power.py |
+++ b/tools/perf/measurements/power.py |
@@ -2,12 +2,16 @@ |
# Use of this source code is governed by a BSD-style license that can be |
# found in the LICENSE file. |
-from telemetry.page import page_test |
+import time |
from metrics import power |
+from telemetry.core import util |
+from telemetry.page import page_test |
class Power(page_test.PageTest): |
+ """Measures power draw and idle wakeups during the page's interactions.""" |
+ |
def __init__(self): |
super(Power, self).__init__() |
self._power_metric = None |
@@ -21,3 +25,24 @@ class Power(page_test.PageTest): |
def ValidateAndMeasurePage(self, page, tab, results): |
self._power_metric.Stop(page, tab) |
self._power_metric.AddResults(tab, results) |
+ |
+ |
+class QuiescentPower(page_test.PageTest): |
+ """Measures power draw and idle wakeups after the page finished loading.""" |
+ |
+ # Amount of time to measure, in seconds. |
+ SAMPLE_TIME = 30 |
+ |
+ def ValidateAndMeasurePage(self, page, tab, results): |
+ if not tab.browser.platform.CanMonitorPower(): |
+ return |
+ |
+ util.WaitFor(tab.HasReachedQuiescence, 60) |
+ |
+ metric = power.PowerMetric(tab.browser.platform) |
+ metric.Start(page, tab) |
+ |
+ time.sleep(QuiescentPower.SAMPLE_TIME) |
+ |
+ metric.Stop(page, tab) |
+ metric.AddResults(tab, results) |