Index: tools/perf/measurements/smoothness_unittest.py |
diff --git a/tools/perf/measurements/smoothness_unittest.py b/tools/perf/measurements/smoothness_unittest.py |
index e537399237661481f02e767b04604c9ba982a614..e210dc4ef029b2584f973b6f0bc821fe0a446ba2 100644 |
--- a/tools/perf/measurements/smoothness_unittest.py |
+++ b/tools/perf/measurements/smoothness_unittest.py |
@@ -4,9 +4,11 @@ |
import sys |
from measurements import smoothness |
+from telemetry.core import exceptions |
from telemetry.core import wpr_modes |
from telemetry.page import page |
from telemetry.page import page_measurement_unittest_base |
+from telemetry.page import page_test |
from telemetry.unittest import options_for_unittests |
class FakePlatform(object): |
@@ -131,3 +133,37 @@ class SmoothnessUnitTest( |
def testCleanUpTrace(self): |
self.TestTracingCleanedUp(smoothness.Smoothness, self._options) |
+ |
+ def testCleanUpPowerMetric(self): |
+ class FailPage(page.Page): |
+ def __init__(self, page_set): |
+ super(FailPage, self).__init__( |
+ url='file://blank.html', |
+ page_set=page_set, base_dir=page_set.base_dir) |
+ def RunSmoothness(self, _): |
+ raise exceptions.IntentionalException |
+ |
+ ps = self.CreateEmptyPageSet() |
+ ps.AddPage(FailPage(ps)) |
+ |
+ start_measuring_called = [False] |
+ stop_measuring_called = [False] |
+ class BuggyMeasurement(smoothness.Smoothness): |
+ # Inject fake measuring_power methods to browser |
+ def WillStartBrowser(self, browser): |
+ super(BuggyMeasurement, self).WillStartBrowser(browser) |
+ def FakeStart(_1, _2): |
+ start_measuring_called[0] = True |
+ def FakeStop(_1, _2): |
+ stop_measuring_called[0] = True |
+ self._power_metric.Start = FakeStart |
+ self._power_metric.Stop = FakeStop |
+ |
+ measurement = BuggyMeasurement() |
+ try: |
+ self.RunMeasurement(measurement, ps) |
+ except page_test.TestNotSupportedOnPlatformFailure: |
+ pass |
+ |
+ self.assertTrue(start_measuring_called[0]) |
+ self.assertTrue(stop_measuring_called[0]) |