| Index: tools/telemetry/telemetry/web_perf/timeline_interaction_record_unittest.py
|
| diff --git a/tools/telemetry/telemetry/web_perf/timeline_interaction_record_unittest.py b/tools/telemetry/telemetry/web_perf/timeline_interaction_record_unittest.py
|
| deleted file mode 100644
|
| index 870b66ba37a7ed8b211dab5ffb17eb0c1119e25e..0000000000000000000000000000000000000000
|
| --- a/tools/telemetry/telemetry/web_perf/timeline_interaction_record_unittest.py
|
| +++ /dev/null
|
| @@ -1,152 +0,0 @@
|
| -# 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 async_slice
|
| -from telemetry.timeline import model as model_module
|
| -from telemetry.timeline import slice as slice_module
|
| -from telemetry.web_perf import timeline_interaction_record as tir_module
|
| -
|
| -
|
| -class ParseTests(unittest.TestCase):
|
| -
|
| - def testParse(self):
|
| - self.assertTrue(tir_module.IsTimelineInteractionRecord(
|
| - 'Interaction.Foo'))
|
| - self.assertTrue(tir_module.IsTimelineInteractionRecord(
|
| - 'Interaction.Foo/Bar'))
|
| - self.assertFalse(tir_module.IsTimelineInteractionRecord(
|
| - 'SomethingRandom'))
|
| -
|
| -
|
| -class TimelineInteractionRecordTests(unittest.TestCase):
|
| -
|
| - def CreateSimpleRecordWithName(self, event_name):
|
| - s = async_slice.AsyncSlice(
|
| - 'cat', event_name,
|
| - timestamp=0, duration=200, thread_start=20, thread_duration=100)
|
| - return tir_module.TimelineInteractionRecord.FromAsyncEvent(s)
|
| -
|
| - def CreateTestSliceFromTimeRanges(
|
| - self, parent_thread, time_start, time_end, thread_start, thread_end):
|
| - duration = time_end - time_start
|
| - thread_duration = thread_end - thread_start
|
| - return slice_module.Slice(parent_thread, 'Test', 'foo', time_start,
|
| - duration, thread_start, thread_duration)
|
| -
|
| - def testCreate(self):
|
| - r = self.CreateSimpleRecordWithName('Interaction.LogicalName')
|
| - self.assertEquals('LogicalName', r.label)
|
| - self.assertEquals(False, r.repeatable)
|
| -
|
| - r = self.CreateSimpleRecordWithName('Interaction.LogicalName/repeatable')
|
| - self.assertEquals('LogicalName', r.label)
|
| - self.assertEquals(True, r.repeatable)
|
| -
|
| - r = self.CreateSimpleRecordWithName(
|
| - 'Interaction.LogicalNameWith/Slash/repeatable')
|
| - self.assertEquals('LogicalNameWith/Slash', r.label)
|
| - self.assertEquals(True, r.repeatable)
|
| -
|
| - def testGetJavaScriptMarker(self):
|
| - repeatable_marker = tir_module.GetJavaScriptMarker(
|
| - 'MyLabel', [tir_module.REPEATABLE])
|
| - self.assertEquals('Interaction.MyLabel/repeatable', repeatable_marker)
|
| -
|
| - def testGetOverlappedThreadTimeForSliceInSameThread(self):
|
| - # Create a renderer thread.
|
| - model = model_module.TimelineModel()
|
| - renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2)
|
| - model.FinalizeImport()
|
| -
|
| - # Make a record that starts at 30ms and ends at 60ms in thread time.
|
| - s = async_slice.AsyncSlice(
|
| - 'cat', 'Interaction.Test',
|
| - timestamp=0, duration=200, start_thread=renderer_main,
|
| - end_thread=renderer_main, thread_start=30, thread_duration=30)
|
| - record = tir_module.TimelineInteractionRecord.FromAsyncEvent(s)
|
| -
|
| - # Non overlapped range on the left of event.
|
| - s1 = self.CreateTestSliceFromTimeRanges(renderer_main, 0, 100, 10, 20)
|
| - self.assertEquals(0, record.GetOverlappedThreadTimeForSlice(s1))
|
| -
|
| - # Non overlapped range on the right of event.
|
| - s2 = self.CreateTestSliceFromTimeRanges(renderer_main, 0, 100, 70, 90)
|
| - self.assertEquals(0, record.GetOverlappedThreadTimeForSlice(s2))
|
| -
|
| - # Overlapped range on the left of event.
|
| - s3 = self.CreateTestSliceFromTimeRanges(renderer_main, 0, 100, 20, 50)
|
| - self.assertEquals(20, record.GetOverlappedThreadTimeForSlice(s3))
|
| -
|
| - # Overlapped range in the middle of event.
|
| - s4 = self.CreateTestSliceFromTimeRanges(renderer_main, 0, 100, 40, 50)
|
| - self.assertEquals(10, record.GetOverlappedThreadTimeForSlice(s4))
|
| -
|
| - # Overlapped range on the left of event.
|
| - s5 = self.CreateTestSliceFromTimeRanges(renderer_main, 0, 100, 50, 90)
|
| - self.assertEquals(10, record.GetOverlappedThreadTimeForSlice(s5))
|
| -
|
| - def testRepr(self):
|
| - # Create a renderer thread.
|
| - model = model_module.TimelineModel()
|
| - renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2)
|
| - model.FinalizeImport()
|
| -
|
| - s = async_slice.AsyncSlice(
|
| - 'cat', 'Interaction.Test/repeatable',
|
| - timestamp=0, duration=200, start_thread=renderer_main,
|
| - end_thread=renderer_main, thread_start=30, thread_duration=30)
|
| - record = tir_module.TimelineInteractionRecord.FromAsyncEvent(s)
|
| - expected_repr = (
|
| - 'TimelineInteractionRecord(label=\'Test\', '
|
| - 'start=0.000000, end=200.000000, flags=repeatable, '
|
| - 'async_event=TimelineEvent(name=\'Interaction.Test/repeatable\','
|
| - ' start=0.000000, duration=200, thread_start=30, thread_duration=30))')
|
| - self.assertEquals(expected_repr, repr(record))
|
| -
|
| -
|
| - def testGetOverlappedThreadTimeForSliceInDifferentThread(self):
|
| - # Create a renderer thread and another thread.
|
| - model = model_module.TimelineModel()
|
| - renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2)
|
| - another_thread = model.GetOrCreateProcess(1).GetOrCreateThread(3)
|
| - model.FinalizeImport()
|
| -
|
| - # Make a record that starts at 50ms and ends at 150ms in wall time, and is
|
| - # scheduled 75% of the time (hence thread_duration = 100ms*75% = 75ms).
|
| - s = async_slice.AsyncSlice(
|
| - 'cat', 'Interaction.Test',
|
| - timestamp=50, duration=100, start_thread=renderer_main,
|
| - end_thread=renderer_main, thread_start=55, thread_duration=75)
|
| - record = tir_module.TimelineInteractionRecord.FromAsyncEvent(s)
|
| -
|
| - # Non overlapped range on the left of event.
|
| - s1 = self.CreateTestSliceFromTimeRanges(another_thread, 25, 40, 28, 30)
|
| - self.assertEquals(0, record.GetOverlappedThreadTimeForSlice(s1))
|
| -
|
| - # Non overlapped range on the right of event.
|
| - s2 = self.CreateTestSliceFromTimeRanges(another_thread, 200, 300, 270, 290)
|
| - self.assertEquals(0, record.GetOverlappedThreadTimeForSlice(s2))
|
| -
|
| - # Overlapped range on the left of event, and slice is scheduled 50% of the
|
| - # time.
|
| - # The overlapped wall-time duration is 50ms.
|
| - # The overlapped thread-time duration is 50ms * 75% * 50% = 18.75
|
| - s3 = self.CreateTestSliceFromTimeRanges(another_thread, 0, 100, 20, 70)
|
| - self.assertEquals(18.75, record.GetOverlappedThreadTimeForSlice(s3))
|
| -
|
| - # Overlapped range in the middle of event, and slice is scheduled 20% of the
|
| - # time.
|
| - # The overlapped wall-time duration is 40ms.
|
| - # The overlapped thread-time duration is 40ms * 75% * 20% = 6
|
| - s4 = self.CreateTestSliceFromTimeRanges(another_thread, 100, 140, 120, 128)
|
| - self.assertEquals(6, record.GetOverlappedThreadTimeForSlice(s4))
|
| -
|
| - # Overlapped range on the left of event, and slice is scheduled 100% of the
|
| - # time.
|
| - # The overlapped wall-time duration is 32ms.
|
| - # The overlapped thread-time duration is 32ms * 75% * 100% = 24
|
| - s5 = self.CreateTestSliceFromTimeRanges(another_thread, 118, 170, 118, 170)
|
| - self.assertEquals(24, record.GetOverlappedThreadTimeForSlice(s5))
|
|
|