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