Upstream version 9.37.197.0
[platform/framework/web/crosswalk.git] / src / third_party / trace-viewer / trace_viewer / tracing / tracks / cpu_track_test.js
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.
4
5 'use strict';
6
7 tvcm.require('tracing.test_utils');
8 tvcm.require('tracing.timeline_track_view');
9 tvcm.require('tracing.trace_model');
10
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;
19
20   test('basicCpu', function() {
21     var cpu = new Cpu({}, 7);
22     cpu.slices = [
23       new Slice('', 'a', 0, 1, {}, 1),
24       new Slice('', 'b', 1, 2.1, {}, 4.8)
25     ];
26     cpu.updateBounds();
27
28     var testEl = document.createElement('div');
29     var viewport = new Viewport(testEl);
30
31     var drawingContainer = new tracing.tracks.DrawingContainer(viewport);
32
33     var track = new CpuTrack(viewport);
34     drawingContainer.appendChild(track);
35
36     track.heading = 'CPU ' + cpu.cpuNumber;
37     track.cpu = cpu;
38     var dt = new tracing.TimelineDisplayTransform();
39     dt.xSetWorldBounds(0, 11.1, track.clientWidth);
40     track.viewport.setDisplayTransformImmediately(dt);
41   });
42
43
44   test('withSamples', function() {
45     var model = new tracing.TraceModel();
46     var thread;
47     var cpu;
48     model.importTraces([], false, false, function() {
49       cpu = model.kernel.getOrCreateCpu(1);
50       thread = model.getOrCreateProcess(1).getOrCreateThread(2);
51
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));
60
61       model.samples.push(new Sample(undefined, thread, 'instructions_retired',
62                                     10, fABC, 10));
63       model.samples.push(new Sample(undefined, thread, 'instructions_retired',
64                                     20, fAB, 10));
65       model.samples.push(new Sample(undefined, thread, 'instructions_retired',
66                                     30, fAB, 10));
67       model.samples.push(new Sample(undefined, thread, 'instructions_retired',
68                                     40, fAD, 10));
69
70       model.samples.push(new Sample(undefined, thread, 'page_fault',
71                                     25, fAB, 10));
72       model.samples.push(new Sample(undefined, thread, 'page_fault',
73                                     35, fAD, 10));
74     });
75
76     var testEl = document.createElement('div');
77     var viewport = new Viewport(testEl);
78
79     var drawingContainer = new tracing.tracks.DrawingContainer(viewport);
80
81     var track = new CpuTrack(viewport);
82     drawingContainer.appendChild(track);
83
84     track.heading = 'CPU ' + cpu.cpuNumber;
85     track.cpu = cpu;
86     var dt = new tracing.TimelineDisplayTransform();
87     dt.xSetWorldBounds(0, 11.1, track.clientWidth);
88     track.viewport.setDisplayTransformImmediately(dt);
89   });
90 });