• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!DOCTYPE html>
2<html>
3<!--
4Copyright (c) 2012 The Chromium Authors. All rights reserved.
5Use of this source code is governed by a BSD-style license that can be
6found in the LICENSE file.
7-->
8<head>
9<title>importer.linux_perf.CpufreqParser tests</title>
10<script src="../../base.js"></script>
11</head>
12<body>
13<script>
14'use strict';
15
16base.require('unittest');
17base.require('test_utils');
18base.require('importer.linux_perf_importer');
19
20function testCpuFreqTargetImport() {
21  var lines = [
22    '<idle>-0     [000] ..s3  1043.718825: cpufreq_interactive_target: ' +
23        'cpu=0 load=2 cur=2000000 targ=300000\n',
24    '<idle>-0     [000] ..s3  1043.718825: cpufreq_interactive_target: ' +
25        'cpu=0 load=12 cur=1000000 actual=1000000 targ=200000\n'
26  ];
27  var m = new tracing.Model(lines.join('\n'), false);
28  assertEquals(0, m.importErrors.length);
29
30  var threads = m.getAllThreads();
31  assertEquals(1, threads.length);
32
33  var thread = threads[0];
34  assertEquals(0, thread.slices[0].args['cpu']);
35  assertEquals(2, thread.slices[0].args['load']);
36  assertEquals(2000000, thread.slices[0].args['cur']);
37  assertEquals(300000, thread.slices[0].args['targ']);
38
39  assertEquals(0, thread.slices[1].args['cpu']);
40  assertEquals(12, thread.slices[1].args['load']);
41  assertEquals(1000000, thread.slices[1].args['cur']);
42  assertEquals(1000000, thread.slices[1].args['actual']);
43  assertEquals(200000, thread.slices[1].args['targ']);
44}
45
46function testCpuFreqNotYetImport() {
47  var lines = [
48    '<idle>-0     [001] ..s3  1043.718832: cpufreq_interactive_notyet: ' +
49        'cpu=1 load=10 cur=700000 targ=200000\n',
50    '<idle>-0     [001] ..s3  1043.718832: cpufreq_interactive_notyet: ' +
51        'cpu=1 load=10 cur=700000 actual=1000000 targ=200000\n'
52  ];
53  var m = new tracing.Model(lines.join('\n'), false);
54  assertEquals(0, m.importErrors.length);
55
56  var threads = m.getAllThreads();
57  assertEquals(1, threads.length);
58
59  var thread = threads[0];
60  assertEquals(1, thread.slices[0].args['cpu']);
61  assertEquals(10, thread.slices[0].args['load']);
62  assertEquals(700000, thread.slices[0].args['cur']);
63  assertEquals(200000, thread.slices[0].args['targ']);
64
65  assertEquals(1, thread.slices[1].args['cpu']);
66  assertEquals(10, thread.slices[1].args['load']);
67  assertEquals(700000, thread.slices[1].args['cur']);
68  assertEquals(1000000, thread.slices[1].args['actual']);
69  assertEquals(200000, thread.slices[1].args['targ']);
70}
71
72function testCpuFreqSetSpeedImport() {
73  var lines = [
74    'cfinteractive-23    [001] ...1  1043.719688: ' +
75        'cpufreq_interactive_setspeed: cpu=0 targ=200000 actual=700000\n'
76  ];
77  var m = new tracing.Model(lines.join('\n'), false);
78  assertEquals(0, m.importErrors.length);
79
80  var threads = m.getAllThreads();
81  assertEquals(1, threads.length);
82
83  var thread = threads[0];
84  assertEquals(0, thread.slices[0].args['cpu']);
85  assertEquals(200000, thread.slices[0].args['targ']);
86  assertEquals(700000, thread.slices[0].args['actual']);
87}
88
89function testCpuFreqAlreadyImport() {
90  var lines = [
91    '<idle>-0     [000] ..s3  1043.738822: cpufreq_interactive_already: ' +
92        'cpu=0 load=18 cur=200000 actual=700000 targ=200000\n'
93  ];
94  var m = new tracing.Model(lines.join('\n'), false);
95  assertEquals(0, m.importErrors.length);
96
97  var threads = m.getAllThreads();
98  assertEquals(1, threads.length);
99
100  var thread = threads[0];
101  assertEquals(0, thread.slices[0].args['cpu']);
102  assertEquals(18, thread.slices[0].args['load']);
103  assertEquals(200000, thread.slices[0].args['cur']);
104  assertEquals(700000, thread.slices[0].args['actual']);
105  assertEquals(200000, thread.slices[0].args['targ']);
106}
107
108function testCpuFreqBoostImport() {
109  var lines = [
110    'InputDispatcher-465   [001] ...1  1044.213948: ' +
111        'cpufreq_interactive_boost: pulse\n'
112  ];
113  var m = new tracing.Model(lines.join('\n'), false);
114  assertEquals(0, m.importErrors.length);
115
116  var threads = m.getAllThreads();
117  assertEquals(1, threads.length);
118
119  var thread = threads[0];
120  assertEquals('pulse', thread.slices[0].args['type']);
121}
122
123function testsCpuFreqUnBoostImport() {
124  var lines = [
125    'InputDispatcher-465   [001] ...1  1044.213948: ' +
126        'cpufreq_interactive_unboost: pulse\n'
127  ];
128  var m = new tracing.Model(lines.join('\n'), false);
129  assertEquals(0, m.importErrors.length);
130
131  var threads = m.getAllThreads();
132  assertEquals(1, threads.length);
133
134  var thread = threads[0];
135  assertEquals('pulse', thread.slices[0].args['type']);
136}
137
138function testCpuFreqUpImport() {
139  var lines = [
140    'kinteractive-69    [003] .... 414324.164432: ' +
141        'cpufreq_interactive_up: cpu=1 targ=1400000 actual=800000'
142  ];
143  var m = new tracing.Model(lines.join('\n'), false);
144  assertEquals(0, m.importErrors.length);
145
146  var threads = m.getAllThreads();
147  assertEquals(1, threads.length);
148
149  var thread = threads[0];
150  assertEquals(1, thread.slices[0].args['cpu']);
151  assertEquals(1400000, thread.slices[0].args['targ']);
152  assertEquals(800000, thread.slices[0].args['actual']);
153}
154
155function testCpuFreqDownImport() {
156  var lines = [
157    'kinteractive-69    [003] .... 414365.834193: cpufreq_interactive_down: ' +
158      'cpu=3 targ=800000 actual=1000000'
159  ];
160  var m = new tracing.Model(lines.join('\n'), false);
161  assertEquals(0, m.importErrors.length);
162
163  var threads = m.getAllThreads();
164  assertEquals(1, threads.length);
165
166  var thread = threads[0];
167  assertEquals(3, thread.slices[0].args['cpu']);
168  assertEquals(800000, thread.slices[0].args['targ']);
169  assertEquals(1000000, thread.slices[0].args['actual']);
170}
171
172</script>
173</body>
174</html>
175