Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(338)

Unified Diff: tools/telemetry/telemetry/page/page_measurement_unittest_base.py

Issue 208643007: Add cleanup for measurements that use tracing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/telemetry/page/page_measurement_unittest_base.py
diff --git a/tools/telemetry/telemetry/page/page_measurement_unittest_base.py b/tools/telemetry/telemetry/page/page_measurement_unittest_base.py
index 35c3db806ca6e6877fc6651d1f9168357acf58a6..b1e70ebb1c6c74f072c606fd27c6f42175abccae 100644
--- a/tools/telemetry/telemetry/page/page_measurement_unittest_base.py
+++ b/tools/telemetry/telemetry/page/page_measurement_unittest_base.py
@@ -51,3 +51,35 @@ class PageMeasurementUnitTestBase(unittest.TestCase):
page_runner.ProcessCommandLineArgs(temp_parser, options)
measurement.ProcessCommandLineArgs(temp_parser, options)
return page_runner.Run(measurement, ps, expectations, options)
+
+ def TestTracingCleanedUp(self, measurement_class, options=None):
+ ps = self.CreatePageSetFromFileInUnittestDataDir('blank.html')
+ start_tracing_called = [False]
+ tracing_closed_called = [False]
+
+ class BuggyMeasurement(measurement_class):
+ def __init__(self, *args, **kwargs):
+ measurement_class.__init__(self, *args, **kwargs)
+
+ # Inject fake tracing methods to browser
+ def TabForPage(self, page, browser):
+ ActualStartTracing = browser.StartTracing
+ def FakeStartTracing(*args, **kwargs):
+ ActualStartTracing(*args, **kwargs)
+ start_tracing_called[0] = True
+ raise Exception('Intentional exception')
+ browser.StartTracing = FakeStartTracing
+
+ ActualStopTracing = browser.StopTracing
+ def FakeStopTracing(*args, **kwargs):
+ ActualStopTracing(*args, **kwargs)
+ tracing_closed_called[0] = True
+ browser.StopTracing = FakeStopTracing
+
+ return measurement_class.TabForPage(self, page, browser)
+
+ measurement = BuggyMeasurement()
+ self.RunMeasurement(measurement, ps, options=options)
+ assert start_tracing_called[0], ("%s measurement doesn't start tracing" %
+ measurement_class)
+ self.assertTrue(tracing_closed_called[0])
« tools/perf/measurements/smoothness_controller.py ('K') | « tools/perf/metrics/timeline.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698