blob: a97d4aca18efbf5f4e7c9548d31a85301b203377 [file] [log] [blame]
# 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 types
import unittest
from telemetry.timeline import counter as counter_module
class FakeProcess(object):
pass
class CounterIterEventsInThisContainerTest(unittest.TestCase):
def setUp(self):
parent = FakeProcess()
self.counter = counter_module.Counter(parent, 'cat', 'name')
def assertIsEmptyIterator(self, itr):
self.assertIsInstance(itr, types.GeneratorType)
self.assertRaises(StopIteration, itr.next)
def testEmptyTimestamps(self):
self.assertIsEmptyIterator(self.counter.IterEventsInThisContainer(
event_type_predicate=lambda x: True,
event_predicate=lambda x: True))
def testEventTypeMismatch(self):
self.counter.timestamps = [111, 222]
self.assertIsEmptyIterator(self.counter.IterEventsInThisContainer(
event_type_predicate=lambda x: False,
event_predicate=lambda x: True))
def testNoEventMatch(self):
self.counter.timestamps = [111, 222]
self.assertIsEmptyIterator(self.counter.IterEventsInThisContainer(
event_type_predicate=lambda x: True,
event_predicate=lambda x: False))
def testAllMatch(self):
self.counter.timestamps = [111, 222]
self.counter.samples = [100, 200]
events = self.counter.IterEventsInThisContainer(
event_type_predicate=lambda x: True,
event_predicate=lambda x: True)
self.assertIsInstance(events, types.GeneratorType)
eventlist = list(events)
self.assertEqual([111, 222], [s.start for s in eventlist])
self.assertEqual(['cat.name', 'cat.name'], [s.name for s in eventlist])
self.assertEqual([100, 200], [s.value for s in eventlist])
def testPartialMatch(self):
self.counter.timestamps = [111, 222]
self.counter.samples = [100, 200]
events = self.counter.IterEventsInThisContainer(
event_type_predicate=lambda x: True,
event_predicate=lambda x: x.start > 200)
self.assertIsInstance(events, types.GeneratorType)
eventlist = list(events)
self.assertEqual([222], [s.start for s in eventlist])
self.assertEqual(['cat.name'], [s.name for s in eventlist])
self.assertEqual([200], [s.value for s in eventlist])