| Index: tools/telemetry/telemetry/web_perf/metrics/blob_timeline_unittest.py
|
| diff --git a/tools/telemetry/telemetry/web_perf/metrics/blob_timeline_unittest.py b/tools/telemetry/telemetry/web_perf/metrics/blob_timeline_unittest.py
|
| deleted file mode 100644
|
| index 7f2efb70afb5635410bc4433aa21b68547601b38..0000000000000000000000000000000000000000
|
| --- a/tools/telemetry/telemetry/web_perf/metrics/blob_timeline_unittest.py
|
| +++ /dev/null
|
| @@ -1,124 +0,0 @@
|
| -# Copyright 2015 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 collections import namedtuple
|
| -from telemetry.internal.results import page_test_results
|
| -from telemetry.page import page
|
| -from telemetry.web_perf.metrics import blob_timeline
|
| -from telemetry.web_perf import timeline_interaction_record
|
| -
|
| -
|
| -FakeEvent = namedtuple('Event', 'name, start, end, thread_duration, args')
|
| -Interaction = timeline_interaction_record.TimelineInteractionRecord
|
| -TEST_INTERACTION_LABEL = 'Action_TestInteraction'
|
| -WRITE_EVENT_NAME = 'Registry::RegisterBlob'
|
| -READ_EVENT_NAME = 'BlobRequest'
|
| -
|
| -
|
| -def GetBlobMetrics(events, interactions):
|
| - results = page_test_results.PageTestResults()
|
| - test_page = page.Page('file://blank.html')
|
| - results.WillRunPage(test_page)
|
| - blob_timeline.BlobTimelineMetric()._AddWriteResultsInternal(
|
| - events, interactions, results) # pylint:disable=protected-access
|
| - blob_timeline.BlobTimelineMetric()._AddReadResultsInternal(
|
| - events, interactions, results) # pylint:disable=protected-access
|
| - return_dict = dict((value.name, value.values) for value in
|
| - results.current_page_run.values)
|
| - results.DidRunPage(test_page)
|
| - return return_dict
|
| -
|
| -def FakeWriteEvent(start, end, thread_duration=None):
|
| - if not thread_duration:
|
| - thread_duration = end - start
|
| - return FakeEvent(blob_timeline.WRITE_EVENT_NAME,
|
| - start, end, thread_duration, {'uuid':'fakeuuid'})
|
| -
|
| -def FakeReadEvent(start, end, uuid, thread_duration=None):
|
| - if not thread_duration:
|
| - thread_duration = end - start
|
| - return FakeEvent(blob_timeline.READ_EVENT_NAME,
|
| - start, end, thread_duration, {'uuid': uuid})
|
| -
|
| -def TestInteraction(start, end):
|
| - return Interaction(TEST_INTERACTION_LABEL, start, end)
|
| -
|
| -
|
| -class BlobTimelineMetricUnitTest(unittest.TestCase):
|
| - def testWriteMetric(self):
|
| - events = [FakeWriteEvent(0, 1),
|
| - FakeWriteEvent(9, 11),
|
| - FakeWriteEvent(10, 13),
|
| - FakeWriteEvent(20, 24),
|
| - FakeWriteEvent(21, 26),
|
| - FakeWriteEvent(29, 35),
|
| - FakeWriteEvent(30, 37),
|
| - FakeWriteEvent(40, 48),
|
| - FakeWriteEvent(41, 50),
|
| - FakeEvent('something', 10, 13, 3, {}),
|
| - FakeEvent('FrameView::something', 20, 24, 4, {}),
|
| - FakeEvent('SomeThing::performLayout', 30, 37, 7, {}),
|
| - FakeEvent('something else', 40, 48, 8, {})]
|
| - interactions = [TestInteraction(10, 20),
|
| - TestInteraction(30, 40)]
|
| -
|
| - # The first event starts before the first interaction, so it is ignored.
|
| - # The second event starts before the first interaction, so it is ignored.
|
| - # The third event starts during the first interaction, and its duration is
|
| - # 13 - 10 = 3.
|
| - # The fourth event starts during the first interaction, and its duration is
|
| - # 24 - 20 = 4.
|
| - # The fifth event starts between the two interactions, so it is ignored.
|
| - # The sixth event starts between the two interactions, so it is ignored.
|
| - # The seventh event starts during the second interaction, and its duration
|
| - # is 37 - 30 = 7.
|
| - # The eighth event starts during the second interaction and its duration is
|
| - # 48 - 40 = 8.
|
| - # The ninth event starts after the last interaction, so it is ignored.
|
| - # The rest of the events are not layout events, so they are ignored.
|
| - self.assertEqual({'blob-reads': None, 'blob-writes': [3, 4, 7, 8]},
|
| - GetBlobMetrics(events, interactions))
|
| -
|
| - def testReadMetric(self):
|
| - events = [FakeReadEvent(0, 1, 'a'),
|
| - FakeReadEvent(9, 11, 'a'),
|
| - FakeReadEvent(10, 13, 'b', 1), # counts
|
| - FakeReadEvent(15, 18, 'b'), # counts
|
| - FakeReadEvent(21, 26, 'b'),
|
| - FakeReadEvent(29, 35, 'c'),
|
| - FakeReadEvent(31, 32, 'e'), # counts
|
| - FakeReadEvent(34, 36, 'e', 1), # counts
|
| - FakeReadEvent(32, 37, 'd'), # counts
|
| - FakeEvent('something', 10, 13, 3, {}),
|
| - FakeEvent('something else', 40, 48, 8, {})]
|
| - interactions = [TestInteraction(10, 20),
|
| - TestInteraction(30, 40)]
|
| -
|
| - # We ignore events outside of the interaction intervals, and we use the
|
| - # beginning of the first event of the interval and the end of the last
|
| - # event.
|
| - # 18 - 10 = 8
|
| - # 37 - 32 = 5
|
| - self.assertEqual({'blob-reads': [4, 2, 5], 'blob-writes': None},
|
| - GetBlobMetrics(events, interactions))
|
| -
|
| - def testReadAndWriteMetrics(self):
|
| - events = [FakeReadEvent(0, 1, 'a'),
|
| - FakeReadEvent(9, 11, 'a'),
|
| - FakeReadEvent(10, 13, 'b'), # counts
|
| - FakeWriteEvent(15, 18), # counts
|
| - FakeReadEvent(21, 26, 'c'),
|
| - FakeReadEvent(29, 35, 'd'),
|
| - FakeWriteEvent(31, 34, 1), # counts
|
| - FakeReadEvent(32, 33, 'e'), # counts
|
| - FakeReadEvent(34, 35, 'e'), # counts
|
| - FakeEvent('something', 31, 33, 2, {})]
|
| - interactions = [TestInteraction(10, 20),
|
| - TestInteraction(30, 35)]
|
| -
|
| - # We use the read events in the interactions, so the same as the test above.
|
| - self.assertEqual({'blob-reads': [3, 2], 'blob-writes': [3, 1]},
|
| - GetBlobMetrics(events, interactions))
|
|
|