| 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())
|
|
|