Home | History | Annotate | Download | only in linux_perf
      1 <!DOCTYPE html>
      2 <html>
      3 <!--
      4 Copyright (c) 2012 The Chromium Authors. All rights reserved.
      5 Use of this source code is governed by a BSD-style license that can be
      6 found 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 
     16 base.require('unittest');
     17 base.require('test_utils');
     18 base.require('importer.linux_perf_importer');
     19 
     20 function 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 
     46 function 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 
     72 function 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 
     89 function 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 
    108 function 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 
    123 function 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 
    138 function 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 
    155 function 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