aboutsummaryrefslogtreecommitdiff
path: root/catapult/telemetry/telemetry/timeline/slice_unittest.py
diff options
context:
space:
mode:
Diffstat (limited to 'catapult/telemetry/telemetry/timeline/slice_unittest.py')
-rw-r--r--catapult/telemetry/telemetry/timeline/slice_unittest.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/catapult/telemetry/telemetry/timeline/slice_unittest.py b/catapult/telemetry/telemetry/timeline/slice_unittest.py
new file mode 100644
index 00000000..67106c3e
--- /dev/null
+++ b/catapult/telemetry/telemetry/timeline/slice_unittest.py
@@ -0,0 +1,35 @@
+# 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.slice import Slice
+
+
+class SliceTest(unittest.TestCase):
+ def testChildrenLogic(self):
+ # [ top ]
+ # [ a ] [ b ]
+ # [x]
+ top = Slice(None, 'cat', 'top', 0, duration=10, thread_timestamp=0,
+ thread_duration=5)
+ a = Slice(None, 'cat', 'a', 1, duration=2, thread_timestamp=0.5,
+ thread_duration=1)
+ x = Slice(None, 'cat', 'x', 1.5, duration=0.25, thread_timestamp=0.75,
+ thread_duration=0.125)
+ b = Slice(None, 'cat', 'b', 5, duration=2, thread_timestamp=None,
+ thread_duration=None)
+ top.sub_slices.extend([a, b])
+ a.sub_slices.append(x)
+
+ all_children = list(top.IterEventsInThisContainerRecrusively())
+ self.assertEquals([a, x, b], all_children)
+
+ self.assertEquals(x.self_time, 0.25)
+ self.assertEquals(a.self_time, 1.75) # 2 - 0.25
+ self.assertEquals(top.self_time, 6) # 10 - 2 - 2
+
+ self.assertEquals(x.self_thread_time, 0.125)
+ self.assertEquals(a.self_thread_time, 0.875) # 1 - 0.125
+ self.assertEquals(top.self_thread_time, None) # b has no thread time