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

Unified Diff: tools/telemetry/telemetry/core/tracing_controller_unittest.py

Issue 1338423007: [Telemetry] Platform-level tracing (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: review fix Created 5 years, 3 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
« no previous file with comments | « no previous file | tools/telemetry/telemetry/internal/backends/chrome/desktop_browser_backend.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/telemetry/telemetry/core/tracing_controller_unittest.py
diff --git a/tools/telemetry/telemetry/core/tracing_controller_unittest.py b/tools/telemetry/telemetry/core/tracing_controller_unittest.py
index 2b58d7d41a4428b1a19df7fd114d2ce22b58239c..adb5dc8ba52a5bda31dd88430feeb89c19313823 100644
--- a/tools/telemetry/telemetry/core/tracing_controller_unittest.py
+++ b/tools/telemetry/telemetry/core/tracing_controller_unittest.py
@@ -2,6 +2,9 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
+from telemetry import decorators
+from telemetry.core import platform as platform_module
+from telemetry.testing import browser_test_case
from telemetry.testing import tab_test_case
from telemetry.timeline import model as model_module
from telemetry.timeline import tracing_category_filter
@@ -84,3 +87,46 @@ class TracingControllerTest(tab_test_case.TabTestCase):
self.assertFalse(tracing_controller.is_tracing_running)
# Calling stop again will raise exception
self.assertRaises(Exception, tracing_controller.Stop)
+
+ def _StartupTracing(self, platform):
+ # Stop browser
+ browser_test_case.teardown_browser()
+
+ # Start tracing
+ self.assertFalse(platform.tracing_controller.is_tracing_running)
+ trace_options = tracing_options.TracingOptions()
+ trace_options.enable_chrome_trace = True
+ category_filter = tracing_category_filter.TracingCategoryFilter()
+ platform.tracing_controller.Start(trace_options, category_filter)
+ self.assertTrue(platform.tracing_controller.is_tracing_running)
+
+ try:
+ # Start browser
+ self.setUpClass()
+ self._browser.tabs[0].Navigate('about:blank')
+ self._browser.tabs[0].WaitForDocumentReadyStateToBeInteractiveOrBetter()
+ self.assertEquals(platform, self._browser.platform)
+ # Calling start tracing again will return False
+ self.assertFalse(self._browser.platform.tracing_controller.Start(
+ trace_options, category_filter))
+
+ trace_data = self._browser.platform.tracing_controller.Stop()
+ # Test that trace data is parsable
+ model_module.TimelineModel(trace_data)
+ self.assertFalse(
+ self._browser.platform.tracing_controller.is_tracing_running)
+ # Calling stop tracing again will raise exception
+ self.assertRaises(Exception,
+ self._browser.platform.tracing_controller.Stop)
+ finally:
+ if self._browser:
+ self._browser.Close()
+ self._browser = None
+
+ @decorators.Enabled('android')
+ def testStartupTracingOnAndroid(self):
+ self._StartupTracing(self._browser.platform)
+
+ @decorators.Enabled('linux', 'mac', 'win')
+ def testStartupTracingOnDesktop(self):
+ self._StartupTracing(platform_module.GetHostPlatform())
« no previous file with comments | « no previous file | tools/telemetry/telemetry/internal/backends/chrome/desktop_browser_backend.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698