Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: tools/android/loading/tracing_unittest.py

Issue 2047463002: Set tracing categories explicitly in Clovis and Sandwich (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: addressed comments Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tools/android/loading/tracing.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2016 The Chromium Authors. All rights reserved. 1 # Copyright 2016 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import collections 5 import collections
6 import copy 6 import copy
7 import logging 7 import logging
8 import operator 8 import operator
9 import unittest 9 import unittest
10 10
(...skipping 24 matching lines...) Expand all
35 {'ts': 10, 'ph': 'X', 'dur': 2, 'pid': 2, 'tid': 2, 35 {'ts': 10, 'ph': 'X', 'dur': 2, 'pid': 2, 'tid': 2,
36 'args': {'name': 'D'}}, 36 'args': {'name': 'D'}},
37 {'ts': 13, 'ph': 'X', 'dur': 1, 'pid': 2, 'tid': 1, 37 {'ts': 13, 'ph': 'X', 'dur': 1, 'pid': 2, 'tid': 1,
38 'args': {'name': 'F'}}, 38 'args': {'name': 'F'}},
39 {'ts': 12, 'ph': 'X', 'dur': 3, 'pid': 2, 'tid': 1, 39 {'ts': 12, 'ph': 'X', 'dur': 3, 'pid': 2, 'tid': 1,
40 'args': {'name': 'E'}}] 40 'args': {'name': 'E'}}]
41 41
42 def setUp(self): 42 def setUp(self):
43 self.tree_threshold = _IntervalTree._TRESHOLD 43 self.tree_threshold = _IntervalTree._TRESHOLD
44 _IntervalTree._TRESHOLD = 2 # Expose more edge cases in the tree. 44 _IntervalTree._TRESHOLD = 2 # Expose more edge cases in the tree.
45 self.track = TracingTrack(None, additional_categories=('A', 'B', 'C', 'D')) 45 self.track = TracingTrack(None, ['A', 'B', 'C', 'D'])
46 46
47 def tearDown(self): 47 def tearDown(self):
48 _IntervalTree._TRESHOLD = self.tree_threshold 48 _IntervalTree._TRESHOLD = self.tree_threshold
49 49
50 def EventToMicroseconds(self, event): 50 def EventToMicroseconds(self, event):
51 result = copy.deepcopy(event) 51 result = copy.deepcopy(event)
52 if 'ts' in result: 52 if 'ts' in result:
53 result['ts'] *= 1000 53 result['ts'] *= 1000
54 if 'dur' in result: 54 if 'dur' in result:
55 result['dur'] *= 1000 55 result['dur'] *= 1000
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 self.assertListEqual([tracing_events[0], tracing_events[3]], 353 self.assertListEqual([tracing_events[0], tracing_events[3]],
354 filtered_events) 354 filtered_events)
355 filtered_events = self.track.Filter(categories=set(['Z'])).GetEvents() 355 filtered_events = self.track.Filter(categories=set(['Z'])).GetEvents()
356 self.assertEquals(0, len(filtered_events)) 356 self.assertEquals(0, len(filtered_events))
357 filtered_events = self.track.Filter(categories=set(['B', 'C'])).GetEvents() 357 filtered_events = self.track.Filter(categories=set(['B', 'C'])).GetEvents()
358 self.assertEquals(3, len(filtered_events)) 358 self.assertEquals(3, len(filtered_events))
359 self.assertListEqual(tracing_events[1:], filtered_events) 359 self.assertListEqual(tracing_events[1:], filtered_events)
360 self.assertSetEqual( 360 self.assertSetEqual(
361 set('A'), self.track.Filter(categories=set('A')).Categories()) 361 set('A'), self.track.Filter(categories=set('A')).Categories())
362 362
363 def testAdditionalCategories(self):
364 track = TracingTrack(None, additional_categories=('best-category-ever',))
365 self.assertIn('best-category-ever', track.Categories())
366 # Cannot re-enable a category.
367 with self.assertRaises(AssertionError):
368 TracingTrack(None, additional_categories=('cc',))
369 # Cannot disable categories via |additional_categories|.
370 with self.assertRaises(AssertionError):
371 TracingTrack(None, additional_categories=('-best-category-ever',))
372
373 def testDisabledCategories(self):
374 track = TracingTrack(None, disabled_categories=('toplevel',))
375 self.assertNotIn('toplevel', track.Categories())
376 self.assertIn('-toplevel', track.Categories())
377 # Can only disable categories that are enabled by default.
378 with self.assertRaises(AssertionError):
379 TracingTrack(None, disabled_categories=('best-category-ever',))
380 with self.assertRaises(AssertionError):
381 TracingTrack(None, disabled_categories=('cc',))
382
383 def _HandleEvents(self, events): 363 def _HandleEvents(self, events):
384 self.track.Handle('Tracing.dataCollected', {'params': {'value': [ 364 self.track.Handle('Tracing.dataCollected', {'params': {'value': [
385 self.EventToMicroseconds(e) for e in events]}}) 365 self.EventToMicroseconds(e) for e in events]}})
386 366
387 367
388 class IntervalTreeTestCase(unittest.TestCase): 368 class IntervalTreeTestCase(unittest.TestCase):
389 class FakeEvent(object): 369 class FakeEvent(object):
390 def __init__(self, start_msec, end_msec): 370 def __init__(self, start_msec, end_msec):
391 self.start_msec = start_msec 371 self.start_msec = start_msec
392 self.end_msec = end_msec 372 self.end_msec = end_msec
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
459 'cat': 'bar,baz,bizbiz', 439 'cat': 'bar,baz,bizbiz',
460 'ph': 'X', 440 'ph': 'X',
461 'ts': 0, 'dur': 0}) 441 'ts': 0, 'dur': 0})
462 self.assertTrue(event.Matches('bar', 'foo')) 442 self.assertTrue(event.Matches('bar', 'foo'))
463 self.assertTrue(event.Matches('baz', 'foo')) 443 self.assertTrue(event.Matches('baz', 'foo'))
464 self.assertFalse(event.Matches('bar', 'biz')) 444 self.assertFalse(event.Matches('bar', 'biz'))
465 self.assertFalse(event.Matches('biz', 'foo')) 445 self.assertFalse(event.Matches('biz', 'foo'))
466 446
467 if __name__ == '__main__': 447 if __name__ == '__main__':
468 unittest.main() 448 unittest.main()
OLDNEW
« no previous file with comments | « tools/android/loading/tracing.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698