diff options
Diffstat (limited to 'catapult/telemetry/telemetry/timeline/chrome_trace_config_unittest.py')
-rw-r--r-- | catapult/telemetry/telemetry/timeline/chrome_trace_config_unittest.py | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/catapult/telemetry/telemetry/timeline/chrome_trace_config_unittest.py b/catapult/telemetry/telemetry/timeline/chrome_trace_config_unittest.py new file mode 100644 index 00000000..e65e3544 --- /dev/null +++ b/catapult/telemetry/telemetry/timeline/chrome_trace_config_unittest.py @@ -0,0 +1,112 @@ +# Copyright 2015 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import unittest + +from telemetry.timeline import chrome_trace_category_filter +from telemetry.timeline import chrome_trace_config + + +class ChromeTraceConfigTests(unittest.TestCase): + def testDefault(self): + config = chrome_trace_config.ChromeTraceConfig() + + # Trace config for startup tracing. + self.assertEquals({ + 'record_mode': 'record-as-much-as-possible' + }, config.GetChromeTraceConfigForStartupTracing()) + + # Trace config for DevTools (modern API). + self.assertEquals({ + 'recordMode': 'recordAsMuchAsPossible' + }, config.GetChromeTraceConfigForDevTools()) + + # Trace categories and options for DevTools (legacy API). + self.assertFalse(config.requires_modern_devtools_tracing_start_api) + self.assertEquals( + ('', 'record-as-much-as-possible'), + config.GetChromeTraceCategoriesAndOptionsForDevTools()) + + def testBasic(self): + category_filter = chrome_trace_category_filter.ChromeTraceCategoryFilter( + 'x,-y,disabled-by-default-z,DELAY(7;foo)') + config = chrome_trace_config.ChromeTraceConfig() + config.SetCategoryFilter(category_filter) + config.record_mode = chrome_trace_config.RECORD_UNTIL_FULL + + # Trace config for startup tracing. + self.assertEquals({ + 'excluded_categories': ['y'], + 'included_categories': ['x', 'disabled-by-default-z'], + 'record_mode': 'record-until-full', + 'synthetic_delays': ['DELAY(7;foo)'] + }, config.GetChromeTraceConfigForStartupTracing()) + + # Trace config for DevTools (modern API). + self.assertEquals({ + 'excludedCategories': ['y'], + 'includedCategories': ['x', 'disabled-by-default-z'], + 'recordMode': 'recordUntilFull', + 'syntheticDelays': ['DELAY(7;foo)'] + }, config.GetChromeTraceConfigForDevTools()) + + # Trace categories and options for DevTools (legacy API). + self.assertFalse(config.requires_modern_devtools_tracing_start_api) + self.assertEquals( + ('x,disabled-by-default-z,-y,DELAY(7;foo)', + 'record-until-full'), + config.GetChromeTraceCategoriesAndOptionsForDevTools()) + + def testMemoryDumpConfigFormat(self): + config = chrome_trace_config.ChromeTraceConfig() + config.record_mode = chrome_trace_config.ECHO_TO_CONSOLE + dump_config = chrome_trace_config.MemoryDumpConfig() + config.SetMemoryDumpConfig(dump_config) + + # Trace config for startup tracing. + self.assertEquals({ + 'memory_dump_config': {'triggers': []}, + 'record_mode': 'trace-to-console' + }, config.GetChromeTraceConfigForStartupTracing()) + + # Trace config for DevTools (modern API). + self.assertEquals({ + 'memoryDumpConfig': {'triggers': []}, + 'recordMode': 'traceToConsole' + }, config.GetChromeTraceConfigForDevTools()) + + # Trace categories and options for DevTools (legacy API). + self.assertTrue(config.requires_modern_devtools_tracing_start_api) + with self.assertRaises(AssertionError): + config.GetChromeTraceCategoriesAndOptionsForDevTools() + + dump_config.AddTrigger('light', 250) + dump_config.AddTrigger('detailed', 2000) + + # Trace config for startup tracing. + self.assertEquals({ + 'memory_dump_config': { + 'triggers': [ + {'mode': 'light', 'periodic_interval_ms': 250}, + {'mode': 'detailed', 'periodic_interval_ms': 2000} + ] + }, + 'record_mode': 'trace-to-console' + }, config.GetChromeTraceConfigForStartupTracing()) + + # Trace config for DevTools (modern API). + self.assertEquals({ + 'memoryDumpConfig': { + 'triggers': [ + {'mode': 'light', 'periodicIntervalMs': 250}, + {'mode': 'detailed', 'periodicIntervalMs': 2000} + ] + }, + 'recordMode': 'traceToConsole' + }, config.GetChromeTraceConfigForDevTools()) + + # Trace categories and options for DevTools (legacy API). + self.assertTrue(config.requires_modern_devtools_tracing_start_api) + with self.assertRaises(AssertionError): + config.GetChromeTraceCategoriesAndOptionsForDevTools() |