| Index: telemetry/telemetry/timeline/chrome_trace_category_filter_unittest.py
|
| diff --git a/telemetry/telemetry/timeline/chrome_trace_category_filter_unittest.py b/telemetry/telemetry/timeline/chrome_trace_category_filter_unittest.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9bcb377c93ec3c1a31065a34872d315b1f5724de
|
| --- /dev/null
|
| +++ b/telemetry/telemetry/timeline/chrome_trace_category_filter_unittest.py
|
| @@ -0,0 +1,176 @@
|
| +# Copyright 2014 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
|
| +
|
| +
|
| +class ChromeTraceCategoryFilterTest(unittest.TestCase):
|
| + def CheckBasicCategoryFilters(self, cf):
|
| + self.assertEquals(set(['x']), set(cf.included_categories))
|
| + self.assertEquals(set(['y']), set(cf.excluded_categories))
|
| + self.assertEquals(set(['disabled-by-default-z']),
|
| + set(cf.disabled_by_default_categories))
|
| + self.assertEquals(set(['DELAY(7;foo)']), set(cf.synthetic_delays))
|
| +
|
| + self.assertTrue('x' in cf.filter_string)
|
| + self.assertEquals(
|
| + 'x,disabled-by-default-z,-y,DELAY(7;foo)',
|
| + cf.stable_filter_string)
|
| +
|
| + def testBasic(self):
|
| + cf = chrome_trace_category_filter.ChromeTraceCategoryFilter(
|
| + 'x,-y,disabled-by-default-z,DELAY(7;foo)')
|
| + self.CheckBasicCategoryFilters(cf)
|
| +
|
| + def testBasicWithSpace(self):
|
| + cf = chrome_trace_category_filter.ChromeTraceCategoryFilter(
|
| + ' x ,\n-y\t,disabled-by-default-z ,DELAY(7;foo)')
|
| + self.CheckBasicCategoryFilters(cf)
|
| +
|
| + def testNoneAndEmptyCategory(self):
|
| + a = chrome_trace_category_filter.ChromeTraceCategoryFilter()
|
| + self.assertEquals(a.stable_filter_string, '')
|
| + self.assertEquals(a.filter_string, '')
|
| + self.assertEquals(str(a.GetDictForChromeTracing()), '{}')
|
| +
|
| + # Initializing chrome trace category filter with empty string is the same
|
| + # as initialization with None.
|
| + b = chrome_trace_category_filter.ChromeTraceCategoryFilter(filter_string='')
|
| + self.assertEquals(b.stable_filter_string, '')
|
| + self.assertEquals(b.filter_string, '')
|
| + self.assertEquals(str(b.GetDictForChromeTracing()), '{}')
|
| +
|
| + def testAddIncludedCategory(self):
|
| + a = chrome_trace_category_filter.ChromeTraceCategoryFilter()
|
| + a.AddIncludedCategory('foo')
|
| + a.AddIncludedCategory('bar')
|
| + a.AddIncludedCategory('foo')
|
| + self.assertEquals(a.stable_filter_string, 'bar,foo')
|
| +
|
| + def testAddExcludedCategory(self):
|
| + a = chrome_trace_category_filter.ChromeTraceCategoryFilter()
|
| + a.AddExcludedCategory('foo')
|
| + a.AddExcludedCategory('bar')
|
| + a.AddExcludedCategory('foo')
|
| + self.assertEquals(a.stable_filter_string, '-bar,-foo')
|
| +
|
| + def testIncludeAndExcludeCategoryRaisesAssertion(self):
|
| + a = chrome_trace_category_filter.ChromeTraceCategoryFilter()
|
| + a.AddIncludedCategory('foo')
|
| + self.assertRaises(AssertionError, a.AddExcludedCategory, 'foo')
|
| +
|
| + a = chrome_trace_category_filter.ChromeTraceCategoryFilter()
|
| + a.AddExcludedCategory('foo')
|
| + self.assertRaises(AssertionError, a.AddIncludedCategory, 'foo')
|
| +
|
| + self.assertRaises(AssertionError,
|
| + chrome_trace_category_filter.ChromeTraceCategoryFilter,
|
| + 'foo,-foo')
|
| +
|
| + self.assertRaises(AssertionError,
|
| + chrome_trace_category_filter.ChromeTraceCategoryFilter,
|
| + '-foo,foo')
|
| +
|
| +
|
| + def testIsSubset(self):
|
| + b = chrome_trace_category_filter.ChromeTraceCategoryFilter()
|
| + a = chrome_trace_category_filter.ChromeTraceCategoryFilter()
|
| + self.assertEquals(a.IsSubset(b), True)
|
| +
|
| + b = chrome_trace_category_filter.ChromeTraceCategoryFilter()
|
| + a = chrome_trace_category_filter.ChromeTraceCategoryFilter("test1,test2")
|
| + self.assertEquals(a.IsSubset(b), True)
|
| +
|
| + b = chrome_trace_category_filter.ChromeTraceCategoryFilter()
|
| + a = chrome_trace_category_filter.ChromeTraceCategoryFilter("-test1,-test2")
|
| + self.assertEquals(a.IsSubset(b), True)
|
| +
|
| + b = chrome_trace_category_filter.ChromeTraceCategoryFilter("test1,test2")
|
| + a = chrome_trace_category_filter.ChromeTraceCategoryFilter()
|
| + self.assertEquals(a.IsSubset(b), None)
|
| +
|
| + b = chrome_trace_category_filter.ChromeTraceCategoryFilter()
|
| + a = chrome_trace_category_filter.ChromeTraceCategoryFilter("test*")
|
| + self.assertEquals(a.IsSubset(b), None)
|
| +
|
| + b = chrome_trace_category_filter.ChromeTraceCategoryFilter("test?")
|
| + a = chrome_trace_category_filter.ChromeTraceCategoryFilter()
|
| + self.assertEquals(a.IsSubset(b), None)
|
| +
|
| + b = chrome_trace_category_filter.ChromeTraceCategoryFilter("test1")
|
| + a = chrome_trace_category_filter.ChromeTraceCategoryFilter("test1,test2")
|
| + self.assertEquals(a.IsSubset(b), False)
|
| +
|
| + b = chrome_trace_category_filter.ChromeTraceCategoryFilter("-test1")
|
| + a = chrome_trace_category_filter.ChromeTraceCategoryFilter("test1")
|
| + self.assertEquals(a.IsSubset(b), False)
|
| +
|
| + b = chrome_trace_category_filter.ChromeTraceCategoryFilter("test1,test2")
|
| + a = chrome_trace_category_filter.ChromeTraceCategoryFilter("test2,test1")
|
| + self.assertEquals(a.IsSubset(b), True)
|
| +
|
| + b = chrome_trace_category_filter.ChromeTraceCategoryFilter("-test1,-test2")
|
| + a = chrome_trace_category_filter.ChromeTraceCategoryFilter("-test2")
|
| + self.assertEquals(a.IsSubset(b), False)
|
| +
|
| + b = chrome_trace_category_filter.ChromeTraceCategoryFilter(
|
| + "disabled-by-default-test1")
|
| + a = chrome_trace_category_filter.ChromeTraceCategoryFilter(
|
| + "disabled-by-default-test1,disabled-by-default-test2")
|
| + self.assertEquals(a.IsSubset(b), False)
|
| +
|
| + b = chrome_trace_category_filter.ChromeTraceCategoryFilter(
|
| + "disabled-by-default-test1")
|
| + a = chrome_trace_category_filter.ChromeTraceCategoryFilter(
|
| + "disabled-by-default-test2")
|
| + self.assertEquals(a.IsSubset(b), False)
|
| +
|
| + def testIsSubsetWithSyntheticDelays(self):
|
| + b = chrome_trace_category_filter.ChromeTraceCategoryFilter(
|
| + "DELAY(foo;0.016)")
|
| + a = chrome_trace_category_filter.ChromeTraceCategoryFilter(
|
| + "DELAY(foo;0.016)")
|
| + self.assertEquals(a.IsSubset(b), True)
|
| +
|
| + b = chrome_trace_category_filter.ChromeTraceCategoryFilter(
|
| + "DELAY(foo;0.016)")
|
| + a = chrome_trace_category_filter.ChromeTraceCategoryFilter()
|
| + self.assertEquals(a.IsSubset(b), True)
|
| +
|
| + b = chrome_trace_category_filter.ChromeTraceCategoryFilter()
|
| + a = chrome_trace_category_filter.ChromeTraceCategoryFilter(
|
| + "DELAY(foo;0.016)")
|
| + self.assertEquals(a.IsSubset(b), False)
|
| +
|
| + b = chrome_trace_category_filter.ChromeTraceCategoryFilter(
|
| + "DELAY(foo;0.016)")
|
| + a = chrome_trace_category_filter.ChromeTraceCategoryFilter(
|
| + "DELAY(foo;0.032)")
|
| + self.assertEquals(a.IsSubset(b), False)
|
| +
|
| + b = chrome_trace_category_filter.ChromeTraceCategoryFilter(
|
| + "DELAY(foo;0.016;static)")
|
| + a = chrome_trace_category_filter.ChromeTraceCategoryFilter(
|
| + "DELAY(foo;0.016;oneshot)")
|
| + self.assertEquals(a.IsSubset(b), False)
|
| +
|
| + b = chrome_trace_category_filter.ChromeTraceCategoryFilter(
|
| + "DELAY(foo;0.016),DELAY(bar;0.1)")
|
| + a = chrome_trace_category_filter.ChromeTraceCategoryFilter(
|
| + "DELAY(bar;0.1),DELAY(foo;0.016)")
|
| + self.assertEquals(a.IsSubset(b), True)
|
| +
|
| + b = chrome_trace_category_filter.ChromeTraceCategoryFilter(
|
| + "DELAY(foo;0.016),DELAY(bar;0.1)")
|
| + a = chrome_trace_category_filter.ChromeTraceCategoryFilter(
|
| + "DELAY(bar;0.1)")
|
| + self.assertEquals(a.IsSubset(b), True)
|
| +
|
| + b = chrome_trace_category_filter.ChromeTraceCategoryFilter(
|
| + "DELAY(foo;0.016),DELAY(bar;0.1)")
|
| + a = chrome_trace_category_filter.ChromeTraceCategoryFilter(
|
| + "DELAY(foo;0.032),DELAY(bar;0.1)")
|
| + self.assertEquals(a.IsSubset(b), False)
|
|
|