Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / tools / telemetry / telemetry / core / platform / tracing_category_filter_unittest.py
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.
4
5 import unittest
6
7 from telemetry.core.platform import tracing_category_filter
8
9
10 class TracingCategoryFilterTests(unittest.TestCase):
11   def testBasic(self):
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))
19
20     self.assertTrue('x' in f.filter_string)
21     self.assertEquals(
22         'x,disabled-by-default-z,-y,DELAY(7;foo)',
23         f.stable_filter_string)
24
25
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')
33
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')
40
41   def testIncludeAndExcludeCategoryRaisesAssertion(self):
42     a = tracing_category_filter.TracingCategoryFilter()
43     a.AddIncludedCategory('foo')
44     self.assertRaises(AssertionError, a.AddExcludedCategory, 'foo')
45
46     a = tracing_category_filter.TracingCategoryFilter()
47     a.AddExcludedCategory('foo')
48     self.assertRaises(AssertionError, a.AddIncludedCategory, 'foo')
49
50     self.assertRaises(AssertionError,
51                       tracing_category_filter.TracingCategoryFilter, 'foo,-foo')
52
53     self.assertRaises(AssertionError,
54                       tracing_category_filter.TracingCategoryFilter, '-foo,foo')
55
56
57   def testIsSubset(self):
58     b = tracing_category_filter.TracingCategoryFilter()
59     a = tracing_category_filter.TracingCategoryFilter()
60     self.assertEquals(a.IsSubset(b), True)
61
62     b = tracing_category_filter.TracingCategoryFilter()
63     a = tracing_category_filter.TracingCategoryFilter("test1,test2")
64     self.assertEquals(a.IsSubset(b), True)
65
66     b = tracing_category_filter.TracingCategoryFilter()
67     a = tracing_category_filter.TracingCategoryFilter("-test1,-test2")
68     self.assertEquals(a.IsSubset(b), True)
69
70     b = tracing_category_filter.TracingCategoryFilter("test1,test2")
71     a = tracing_category_filter.TracingCategoryFilter()
72     self.assertEquals(a.IsSubset(b), None)
73
74     b = tracing_category_filter.TracingCategoryFilter()
75     a = tracing_category_filter.TracingCategoryFilter("test*")
76     self.assertEquals(a.IsSubset(b), None)
77
78     b = tracing_category_filter.TracingCategoryFilter("test?")
79     a = tracing_category_filter.TracingCategoryFilter()
80     self.assertEquals(a.IsSubset(b), None)
81
82     b = tracing_category_filter.TracingCategoryFilter("test1")
83     a = tracing_category_filter.TracingCategoryFilter("test1,test2")
84     self.assertEquals(a.IsSubset(b), False)
85
86     b = tracing_category_filter.TracingCategoryFilter("-test1")
87     a = tracing_category_filter.TracingCategoryFilter("test1")
88     self.assertEquals(a.IsSubset(b), False)
89
90     b = tracing_category_filter.TracingCategoryFilter("test1,test2")
91     a = tracing_category_filter.TracingCategoryFilter("test2,test1")
92     self.assertEquals(a.IsSubset(b), True)
93
94     b = tracing_category_filter.TracingCategoryFilter("-test1,-test2")
95     a = tracing_category_filter.TracingCategoryFilter("-test2")
96     self.assertEquals(a.IsSubset(b), False)
97
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)
103
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)
109
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)
114
115     b = tracing_category_filter.TracingCategoryFilter("DELAY(foo;0.016)")
116     a = tracing_category_filter.TracingCategoryFilter()
117     self.assertEquals(a.IsSubset(b), True)
118
119     b = tracing_category_filter.TracingCategoryFilter()
120     a = tracing_category_filter.TracingCategoryFilter("DELAY(foo;0.016)")
121     self.assertEquals(a.IsSubset(b), False)
122
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)
126
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)
132
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)
138
139     b = tracing_category_filter.TracingCategoryFilter(
140         "DELAY(foo;0.016),DELAY(bar;0.1)")
141     a = tracing_category_filter.TracingCategoryFilter(
142         "DELAY(bar;0.1)")
143     self.assertEquals(a.IsSubset(b), True)
144
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)