1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
7 from telemetry.core.platform import tracing_category_filter
10 class TracingCategoryFilterTests(unittest.TestCase):
12 f = tracing_category_filter.TracingCategoryFilter(
13 'x,-y,disabled-by-default-z,DELAY(7;foo)')
14 self.assertEquals(set(['x']), set(f.included_categories))
15 self.assertEquals(set(['y']), set(f.excluded_categories))
16 self.assertEquals(set(['disabled-by-default-z']),
17 set(f.disabled_by_default_categories))
18 self.assertEquals(set(['DELAY(7;foo)']), set(f.synthetic_delays))
20 self.assertTrue('x' in f.filter_string)
22 'x,disabled-by-default-z,-y,DELAY(7;foo)',
23 f.stable_filter_string)
26 class CategoryFilterTest(unittest.TestCase):
27 def testAddIncludedCategory(self):
28 a = tracing_category_filter.TracingCategoryFilter()
29 a.AddIncludedCategory('foo')
30 a.AddIncludedCategory('bar')
31 a.AddIncludedCategory('foo')
32 self.assertEquals(a.stable_filter_string, 'bar,foo')
34 def testAddExcludedCategory(self):
35 a = tracing_category_filter.TracingCategoryFilter()
36 a.AddExcludedCategory('foo')
37 a.AddExcludedCategory('bar')
38 a.AddExcludedCategory('foo')
39 self.assertEquals(a.stable_filter_string, '-bar,-foo')
41 def testIncludeAndExcludeCategoryRaisesAssertion(self):
42 a = tracing_category_filter.TracingCategoryFilter()
43 a.AddIncludedCategory('foo')
44 self.assertRaises(AssertionError, a.AddExcludedCategory, 'foo')
46 a = tracing_category_filter.TracingCategoryFilter()
47 a.AddExcludedCategory('foo')
48 self.assertRaises(AssertionError, a.AddIncludedCategory, 'foo')
50 self.assertRaises(AssertionError,
51 tracing_category_filter.TracingCategoryFilter, 'foo,-foo')
53 self.assertRaises(AssertionError,
54 tracing_category_filter.TracingCategoryFilter, '-foo,foo')
57 def testIsSubset(self):
58 b = tracing_category_filter.TracingCategoryFilter()
59 a = tracing_category_filter.TracingCategoryFilter()
60 self.assertEquals(a.IsSubset(b), True)
62 b = tracing_category_filter.TracingCategoryFilter()
63 a = tracing_category_filter.TracingCategoryFilter("test1,test2")
64 self.assertEquals(a.IsSubset(b), True)
66 b = tracing_category_filter.TracingCategoryFilter()
67 a = tracing_category_filter.TracingCategoryFilter("-test1,-test2")
68 self.assertEquals(a.IsSubset(b), True)
70 b = tracing_category_filter.TracingCategoryFilter("test1,test2")
71 a = tracing_category_filter.TracingCategoryFilter()
72 self.assertEquals(a.IsSubset(b), None)
74 b = tracing_category_filter.TracingCategoryFilter()
75 a = tracing_category_filter.TracingCategoryFilter("test*")
76 self.assertEquals(a.IsSubset(b), None)
78 b = tracing_category_filter.TracingCategoryFilter("test?")
79 a = tracing_category_filter.TracingCategoryFilter()
80 self.assertEquals(a.IsSubset(b), None)
82 b = tracing_category_filter.TracingCategoryFilter("test1")
83 a = tracing_category_filter.TracingCategoryFilter("test1,test2")
84 self.assertEquals(a.IsSubset(b), False)
86 b = tracing_category_filter.TracingCategoryFilter("-test1")
87 a = tracing_category_filter.TracingCategoryFilter("test1")
88 self.assertEquals(a.IsSubset(b), False)
90 b = tracing_category_filter.TracingCategoryFilter("test1,test2")
91 a = tracing_category_filter.TracingCategoryFilter("test2,test1")
92 self.assertEquals(a.IsSubset(b), True)
94 b = tracing_category_filter.TracingCategoryFilter("-test1,-test2")
95 a = tracing_category_filter.TracingCategoryFilter("-test2")
96 self.assertEquals(a.IsSubset(b), False)
98 b = tracing_category_filter.TracingCategoryFilter(
99 "disabled-by-default-test1")
100 a = tracing_category_filter.TracingCategoryFilter(
101 "disabled-by-default-test1,disabled-by-default-test2")
102 self.assertEquals(a.IsSubset(b), False)
104 b = tracing_category_filter.TracingCategoryFilter(
105 "disabled-by-default-test1")
106 a = tracing_category_filter.TracingCategoryFilter(
107 "disabled-by-default-test2")
108 self.assertEquals(a.IsSubset(b), False)
110 def testIsSubsetWithSyntheticDelays(self):
111 b = tracing_category_filter.TracingCategoryFilter("DELAY(foo;0.016)")
112 a = tracing_category_filter.TracingCategoryFilter("DELAY(foo;0.016)")
113 self.assertEquals(a.IsSubset(b), True)
115 b = tracing_category_filter.TracingCategoryFilter("DELAY(foo;0.016)")
116 a = tracing_category_filter.TracingCategoryFilter()
117 self.assertEquals(a.IsSubset(b), True)
119 b = tracing_category_filter.TracingCategoryFilter()
120 a = tracing_category_filter.TracingCategoryFilter("DELAY(foo;0.016)")
121 self.assertEquals(a.IsSubset(b), False)
123 b = tracing_category_filter.TracingCategoryFilter("DELAY(foo;0.016)")
124 a = tracing_category_filter.TracingCategoryFilter("DELAY(foo;0.032)")
125 self.assertEquals(a.IsSubset(b), False)
127 b = tracing_category_filter.TracingCategoryFilter(
128 "DELAY(foo;0.016;static)")
129 a = tracing_category_filter.TracingCategoryFilter(
130 "DELAY(foo;0.016;oneshot)")
131 self.assertEquals(a.IsSubset(b), False)
133 b = tracing_category_filter.TracingCategoryFilter(
134 "DELAY(foo;0.016),DELAY(bar;0.1)")
135 a = tracing_category_filter.TracingCategoryFilter(
136 "DELAY(bar;0.1),DELAY(foo;0.016)")
137 self.assertEquals(a.IsSubset(b), True)
139 b = tracing_category_filter.TracingCategoryFilter(
140 "DELAY(foo;0.016),DELAY(bar;0.1)")
141 a = tracing_category_filter.TracingCategoryFilter(
143 self.assertEquals(a.IsSubset(b), True)
145 b = tracing_category_filter.TracingCategoryFilter(
146 "DELAY(foo;0.016),DELAY(bar;0.1)")
147 a = tracing_category_filter.TracingCategoryFilter(
148 "DELAY(foo;0.032),DELAY(bar;0.1)")
149 self.assertEquals(a.IsSubset(b), False)