power_parser_test.js revision 66a37686207944273ced825e0e8b6b6375f8c3de
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
7base.require('tracing.test_utils');
8base.require('tracing.importer.linux_perf_importer');
9
10base.unittest.testSuite('tracing.importer.linux_perf.power_parser', function() {
11  test('powerFrequencyImport', function() {
12    var lines = [
13      ' kworker/0:3-6880  [000]  2784.783015: power_frequency: ' +
14                 'type=2 state=1000000 cpu_id=0',
15      ' kworker/1:2-7269  [001]  2784.788993: power_frequency: ' +
16                 'type=2 state=800000 cpu_id=1',
17      ' kworker/1:2-7269  [001]  2784.993120: power_frequency: ' +
18                 'type=2 state=1300000 cpu_id=1'
19    ];
20    var m = new tracing.TraceModel(lines.join('\n'), false);
21    assertEquals(0, m.importErrors.length);
22
23    var c0 = m.kernel.cpus[0];
24    assertEquals(0, c0.slices.length);
25    assertEquals(1, c0.counters['Clock Frequency'].samples.length);
26
27    var c1 = m.kernel.cpus[1];
28    assertEquals(0, c1.slices.length);
29    assertEquals(2, c1.counters['Clock Frequency'].samples.length);
30  });
31
32  test('cpuFrequencyImport', function() {
33    var lines = [
34      '     kworker/1:0-9665  [001] 15051.007301: cpu_frequency: ' +
35                     'state=800000 cpu_id=1',
36      '     kworker/1:0-9665  [001] 15051.010278: cpu_frequency: ' +
37                     'state=1300000 cpu_id=1',
38      '     kworker/0:2-7972  [000] 15051.010278: cpu_frequency: ' +
39                     'state=1000000 cpu_id=0',
40      '     kworker/0:2-7972  [000] 15051.020304: cpu_frequency: ' +
41                     'state=800000 cpu_id=0'
42    ];
43    var m = new tracing.TraceModel(lines.join('\n'), false);
44    assertEquals(0, m.importErrors.length);
45
46    var c0 = m.kernel.cpus[0];
47    assertEquals(0, c0.slices.length);
48    assertEquals(2, c0.counters['Clock Frequency'].samples.length);
49
50    var c1 = m.kernel.cpus[1];
51    assertEquals(0, c1.slices.length);
52    assertEquals(2, c1.counters['Clock Frequency'].samples.length);
53  });
54
55  test('cpuIdleImport', function() {
56    var lines = [
57      '          <idle>-0     [000] 15050.992883: cpu_idle: ' +
58          'state=1 cpu_id=0',
59      '          <idle>-0     [000] 15050.993027: cpu_idle: ' +
60          'state=4294967295 cpu_id=0',
61      '          <idle>-0     [001] 15050.993132: cpu_idle: ' +
62          'state=1 cpu_id=1',
63      '          <idle>-0     [001] 15050.993276: cpu_idle: ' +
64          'state=4294967295 cpu_id=1',
65      '          <idle>-0     [001] 15050.993279: cpu_idle: ' +
66          'state=3 cpu_id=1',
67      '          <idle>-0     [001] 15050.993457: cpu_idle: ' +
68          'state=4294967295 cpu_id=1'
69    ];
70    var m = new tracing.TraceModel(lines.join('\n'), false);
71    assertEquals(0, m.importErrors.length);
72
73    var c0 = m.kernel.cpus[0];
74    assertEquals(0, c0.slices.length);
75    assertEquals(2, c0.counters['C-State'].samples.length);
76
77    var c1 = m.kernel.cpus[1];
78    assertEquals(0, c1.slices.length);
79    assertEquals(4, c1.counters['C-State'].samples.length);
80  });
81});
82