1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
7 tvcm.require('tracing.test_utils');
8 tvcm.require('tracing.timeline_track_view');
9 tvcm.require('tracing.trace_model');
11 tvcm.unittest.testSuite('tracing.tracks.cpu_track_test', function() {
12 var Cpu = tracing.trace_model.Cpu;
13 var CpuTrack = tracing.tracks.CpuTrack;
14 var Slice = tracing.trace_model.Slice;
15 var StackFrame = tracing.trace_model.StackFrame;
16 var Sample = tracing.trace_model.Sample;
17 var Thread = tracing.trace_model.Thread;
18 var Viewport = tracing.TimelineViewport;
20 test('basicCpu', function() {
21 var cpu = new Cpu({}, 7);
23 new Slice('', 'a', 0, 1, {}, 1),
24 new Slice('', 'b', 1, 2.1, {}, 4.8)
28 var testEl = document.createElement('div');
29 var viewport = new Viewport(testEl);
31 var drawingContainer = new tracing.tracks.DrawingContainer(viewport);
33 var track = new CpuTrack(viewport);
34 drawingContainer.appendChild(track);
36 track.heading = 'CPU ' + cpu.cpuNumber;
38 var dt = new tracing.TimelineDisplayTransform();
39 dt.xSetWorldBounds(0, 11.1, track.clientWidth);
40 track.viewport.setDisplayTransformImmediately(dt);
44 test('withSamples', function() {
45 var model = new tracing.TraceModel();
48 model.importTraces([], false, false, function() {
49 cpu = model.kernel.getOrCreateCpu(1);
50 thread = model.getOrCreateProcess(1).getOrCreateThread(2);
52 var fA = model.addStackFrame(new StackFrame(
53 undefined, 1, 'cat', 'a', 7));
54 var fAB = model.addStackFrame(new StackFrame(
55 fA, 2, 'cat', 'b', 7));
56 var fABC = model.addStackFrame(new StackFrame(
57 fAB, 3, 'cat', 'c', 7));
58 var fAD = model.addStackFrame(new StackFrame(
59 fA, 4, 'cat', 'd', 7));
61 model.samples.push(new Sample(undefined, thread, 'instructions_retired',
63 model.samples.push(new Sample(undefined, thread, 'instructions_retired',
65 model.samples.push(new Sample(undefined, thread, 'instructions_retired',
67 model.samples.push(new Sample(undefined, thread, 'instructions_retired',
70 model.samples.push(new Sample(undefined, thread, 'page_fault',
72 model.samples.push(new Sample(undefined, thread, 'page_fault',
76 var testEl = document.createElement('div');
77 var viewport = new Viewport(testEl);
79 var drawingContainer = new tracing.tracks.DrawingContainer(viewport);
81 var track = new CpuTrack(viewport);
82 drawingContainer.appendChild(track);
84 track.heading = 'CPU ' + cpu.cpuNumber;
86 var dt = new tracing.TimelineDisplayTransform();
87 dt.xSetWorldBounds(0, 11.1, track.clientWidth);
88 track.viewport.setDisplayTransformImmediately(dt);