Index: tools/telemetry/telemetry/core/timeline/thread_unittest.py |
diff --git a/tools/telemetry/telemetry/core/timeline/thread_unittest.py b/tools/telemetry/telemetry/core/timeline/thread_unittest.py |
index 4b5818ea4d71d76b1e4792a371df438c369e34b8..971d59917164a8061803f7d97f09d892595d48bb 100644 |
--- a/tools/telemetry/telemetry/core/timeline/thread_unittest.py |
+++ b/tools/telemetry/telemetry/core/timeline/thread_unittest.py |
@@ -7,7 +7,7 @@ from telemetry.core.timeline import model as model_module |
class ThreadUnittest(unittest.TestCase): |
- def testIterAllSlicesInRange(self): |
+ def testIterAllSlicesInTimeRange(self): |
model = model_module.TimelineModel() |
renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2) |
# [ X ] [ Y ] [ U ] |
@@ -27,5 +27,38 @@ class ThreadUnittest(unittest.TestCase): |
model.FinalizeImport(shift_world_to_zero=False) |
slice_names = set(s.name for s in |
- renderer_main.IterAllSlicesInRange(start=12, end=65)) |
+ renderer_main.IterAllSlicesInTimeRange(start=12, end=65)) |
self.assertEqual(slice_names, {'Z', 'Y', 'T'}) |
+ |
+ def testIterAllSlicesOverlappedWithTimeRange(self): |
+ model = model_module.TimelineModel() |
+ renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2) |
+ # [ X ] [ Y ] [ U ] |
+ # [ Z ] [ T ] |
+ # | | |
+ # start end |
+ |
+ # Z starts at 5 and ends at 12 |
+ renderer_main.BeginSlice('cat1', 'Z', 5) |
+ renderer_main.EndSlice(12) |
+ |
+ # X starts at 15 and ends at 25 |
+ # T starts at 17 and ends at 20 |
+ renderer_main.BeginSlice('cat1', 'X', 15) |
+ renderer_main.BeginSlice('cat1', 'T', 17) |
+ renderer_main.EndSlice(20) |
+ renderer_main.EndSlice(25) |
+ |
+ # Y starts at 30 and ends at 45 |
+ renderer_main.BeginSlice('cat1', 'Y', 30) |
+ renderer_main.EndSlice(45) |
+ |
+ # U starts at 55 and ends at 65 |
+ renderer_main.BeginSlice('cat1', 'U', 55) |
+ renderer_main.EndSlice(65) |
+ |
+ model.FinalizeImport(shift_world_to_zero=False) |
+ slice_names = set( |
+ s.name for s in |
+ renderer_main.IterAllSlicesOverlappedWithTimeRange(16, 35)) |
+ self.assertEqual(slice_names, {'X', 'Y', 'T'}) |