1a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch# Copyright 2014 The Chromium Authors. All rights reserved. 2a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch# Use of this source code is governed by a BSD-style license that can be 3a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch# found in the LICENSE file. 4a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochimport unittest 5a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 6f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)from telemetry.timeline import model as model_module 7a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 86e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 9a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochclass ThreadUnittest(unittest.TestCase): 10a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 11a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch def testIterAllSlicesInRange(self): 12a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch model = model_module.TimelineModel() 13a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch renderer_main = model.GetOrCreateProcess(1).GetOrCreateThread(2) 14a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch # [ X ] [ Y ] [ U ] 15a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch # [ Z ] [ T ] 16a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch # | | 17a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch # start end 18a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch renderer_main.BeginSlice('cat1', 'X', 10) 19a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch renderer_main.BeginSlice('cat1', 'Z', 20) 20a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch renderer_main.EndSlice(30) 21a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch renderer_main.EndSlice(40) 22a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch renderer_main.BeginSlice('cat1', 'Y', 50) 23a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch renderer_main.BeginSlice('cat1', 'T', 52) 24a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch renderer_main.EndSlice(55) 25a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch renderer_main.EndSlice(60) 26a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch renderer_main.BeginSlice('cat1', 'U', 60) 27a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch renderer_main.EndSlice(70) 28a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch 29a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch model.FinalizeImport(shift_world_to_zero=False) 30a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch slice_names = set(s.name for s in 31a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch renderer_main.IterAllSlicesInRange(start=12, end=65)) 32a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch self.assertEqual(slice_names, {'Z', 'Y', 'T'}) 33