<!DOCTYPE HTML> <html> <!-- Copyright (c) 2012 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. --> <head> <title>TimelineThread tests</title> <script src="base.js"></script> <script> base.require('unittest'); base.require('test_utils'); base.require('timeline_model'); </script> </head> <body> <script> 'use strict'; var TimelineThreadSlice = tracing.TimelineThreadSlice; var TimelineProcess = tracing.TimelineProcess; var TimelineThread = tracing.TimelineThread; var newSliceNamed = test_utils.newSliceNamed; var newAsyncSlice = test_utils.newAsyncSlice; var newAsyncSliceNamed = test_utils.newAsyncSliceNamed; function testPTIDFromPidAndTid() { assertEquals('1:2', TimelineThread.getPTIDFromPidAndTid(1, 2)); } function testThreadBounds_Empty() { var t = new TimelineThread(new TimelineProcess(7), 1); t.updateBounds(); assertEquals(undefined, t.minTimestamp); assertEquals(undefined, t.maxTimestamp); } function testThreadBounds_SubRow() { var t = new TimelineThread(new TimelineProcess(7), 1); t.pushSlice(new TimelineThreadSlice('', 'a', 0, 1, {}, 3)); t.updateBounds(); assertEquals(1, t.minTimestamp); assertEquals(4, t.maxTimestamp); } function testThreadBounds_AsyncSliceGroup() { var t = new TimelineThread(new TimelineProcess(7), 1); t.pushSlice(new TimelineThreadSlice('', 'a', 0, 1, {}, 3)); t.asyncSlices.push(newAsyncSlice(0.1, 5, t, t)); t.updateBounds(); assertEquals(0.1, t.minTimestamp); assertEquals(5.1, t.maxTimestamp); } function testThreadBounds_Cpu() { var t = new TimelineThread(new TimelineProcess(7), 1); t.cpuSlices = [newSliceNamed('x', 0, 1)]; t.updateBounds(); assertEquals(0, t.minTimestamp); assertEquals(1, t.maxTimestamp); } function testShiftTimestampsForwardWithCpu() { var t = new TimelineThread(new TimelineProcess(7), 1); t.pushSlice(new TimelineThreadSlice('', 'a', 0, 0, {}, 3)); t.asyncSlices.push(newAsyncSlice(0, 5, t, t)); t.cpuSlices = [newSliceNamed('x', 0, 1)]; var shiftCount = 0; t.asyncSlices.shiftTimestampsForward = function(ts) { if (ts == 0.32) shiftCount++; }; t.shiftTimestampsForward(0.32); assertEquals(1, shiftCount); assertEquals(0.32, t.slices[0].start); assertEquals(0.32, t.cpuSlices[0].start); } function testShiftTimestampsForwardWithoutCpu() { var t = new TimelineThread(new TimelineProcess(7), 1); t.pushSlice(new TimelineThreadSlice('', 'a', 0, 0, {}, 3)); t.asyncSlices.push(newAsyncSlice(0, 5, t, t)); var shiftCount = 0; t.asyncSlices.shiftTimestampsForward = function(ts) { if (ts == 0.32) shiftCount++; }; t.shiftTimestampsForward(0.32); assertEquals(1, shiftCount); assertEquals(0.32, t.slices[0].start); } </script> </body> </html>