| <!DOCTYPE html> |
| <!-- |
| Copyright (c) 2013 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. |
| --> |
| |
| <link rel="import" href="/core/test_utils.html"> |
| <link rel="import" href="/core/timeline_track_view.html"> |
| <link rel="import" href="/model/model.html"> |
| |
| <script> |
| 'use strict'; |
| |
| tr.b.unittest.testSuite(function() { |
| var Cpu = tr.model.Cpu; |
| var CpuTrack = tr.c.tracks.CpuTrack; |
| var Slice = tr.model.Slice; |
| var StackFrame = tr.model.StackFrame; |
| var Sample = tr.model.Sample; |
| var Thread = tr.model.Thread; |
| var Viewport = tr.c.TimelineViewport; |
| |
| test('basicCpu', function() { |
| var cpu = new Cpu({}, 7); |
| cpu.slices = [ |
| new Slice('', 'a', 0, 1, {}, 1), |
| new Slice('', 'b', 1, 2.1, {}, 4.8) |
| ]; |
| cpu.updateBounds(); |
| |
| var testEl = document.createElement('div'); |
| var viewport = new Viewport(testEl); |
| |
| var drawingContainer = new tr.c.tracks.DrawingContainer(viewport); |
| |
| var track = new CpuTrack(viewport); |
| drawingContainer.appendChild(track); |
| |
| track.heading = 'CPU ' + cpu.cpuNumber; |
| track.cpu = cpu; |
| var dt = new tr.c.TimelineDisplayTransform(); |
| dt.xSetWorldBounds(0, 11.1, track.clientWidth); |
| track.viewport.setDisplayTransformImmediately(dt); |
| }); |
| |
| |
| test('withSamples', function() { |
| var model = new tr.Model(); |
| var thread; |
| var cpu; |
| model.importTraces([], false, false, function() { |
| cpu = model.kernel.getOrCreateCpu(1); |
| thread = model.getOrCreateProcess(1).getOrCreateThread(2); |
| |
| var fA = model.addStackFrame(new StackFrame( |
| undefined, 1, 'cat', 'a', 7)); |
| var fAB = model.addStackFrame(new StackFrame( |
| fA, 2, 'cat', 'b', 7)); |
| var fABC = model.addStackFrame(new StackFrame( |
| fAB, 3, 'cat', 'c', 7)); |
| var fAD = model.addStackFrame(new StackFrame( |
| fA, 4, 'cat', 'd', 7)); |
| |
| model.samples.push(new Sample(undefined, thread, 'instructions_retired', |
| 10, fABC, 10)); |
| model.samples.push(new Sample(undefined, thread, 'instructions_retired', |
| 20, fAB, 10)); |
| model.samples.push(new Sample(undefined, thread, 'instructions_retired', |
| 30, fAB, 10)); |
| model.samples.push(new Sample(undefined, thread, 'instructions_retired', |
| 40, fAD, 10)); |
| |
| model.samples.push(new Sample(undefined, thread, 'page_fault', |
| 25, fAB, 10)); |
| model.samples.push(new Sample(undefined, thread, 'page_fault', |
| 35, fAD, 10)); |
| }); |
| |
| var testEl = document.createElement('div'); |
| var viewport = new Viewport(testEl); |
| |
| var drawingContainer = new tr.c.tracks.DrawingContainer(viewport); |
| |
| var track = new CpuTrack(viewport); |
| drawingContainer.appendChild(track); |
| |
| track.heading = 'CPU ' + cpu.cpuNumber; |
| track.cpu = cpu; |
| var dt = new tr.c.TimelineDisplayTransform(); |
| dt.xSetWorldBounds(0, 11.1, track.clientWidth); |
| track.viewport.setDisplayTransformImmediately(dt); |
| }); |
| }); |
| </script> |
| |