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